Hello,
On Sat, 25 Jul 2020, Gary Oblock via Gcc wrote:
> if ( TYPE_P ( type) )
> {
> TREE_TYPE ( ssa_name) = TYPE_MAIN_VARIANT ( type);
> if ( ssa_defined_default_def_p ( ssa_name) )
> {
> // I guessing which I know is a terrible thing to do...
> SET_SSA_NAME_VAR_OR_IDENTIFIER ( ssa_name, TYPE_MAIN_VARIANT (
> type));
As the macro name indicates this takes a VAR_DECL, or an IDENTIFIER_NODE.
You put in a type, that won't work.
You also simply override the type of the SSA name, without also caring for
the type of the underlying variable that is (potentially!) associated with
the SSA name; if those two disagree then issues will arise, you have to
replace either the variables type (not advisable!), or the associated
variable, with either nothing or a new variable (of the appropriate type),
or an mere identifier. Generally you can't modify SSA names in place like
this, i.e. as Richi says, create new SSA names, replace all occurences of
one with the other.
Ciao,
Michael.