On Thu, Jun 27, 2013 at 02:25:21PM -0400, Andrew MacLeod wrote: > I'm doing some trial file conversions to my proposed wrapper > classes, I'm seeing a couple of places which aren't mapping > properly (they triggered compile errors), and I think its because > there is a couple of bugs regarding the use of IDENTIFIERS in > ssanames.. (I wasn't even aware you could have non-var_decls...) > so this is just a sanity check :-)
If ssa_name.var is IDENTIFIER_NODE, it is just like ssa_name.var == NULL, i.e. anonymous SSA_NAME, just that in the dumps it is given some name and not just _NNN. > in tree-ssanames.c:release_ssa_names() : > > if (! SSA_NAME_IN_FREE_LIST (var)) > { > tree saved_ssa_name_var = SSA_NAME_VAR (var); > int saved_ssa_name_version = SSA_NAME_VERSION (var); > use_operand_p imm = &(SSA_NAME_IMM_USE_NODE (var)); > <..> > /* Hopefully this can go away once we have the new incremental > SSA updating code installed. */ > SET_SSA_NAME_VAR_OR_IDENTIFIER (var, saved_ssa_name_var); I don't see a big issue with this, sure, you could tree saved_ssa_name_identifier = saved_ssa_name_var ? saved_ssa_name_var : SSA_NAME_IDENTIFIER (var); and use that instead in SET_SSA_NAME_VAR_OR_IDENTIFIER. Jakub