> >> 2016-12-19 Martin Liska <mli...@suse.cz> > >> > >> * cgraphclones.c (cgraph_node::create_virtual_clone): > >> Create either IPA_REF_LOAD of IPA_REF_READ depending on > >> whether new_tree is a VAR_DECL or an ADDR_EXPR. > >> * ipa-cp.c (create_specialized_node): Add reference just for > >> ADDR_EXPRs. > >> * symtab.c (symtab_node::maybe_create_reference): Remove guard > >> as it's guarded in callers.
Path is OK > ipa_ref * > -symtab_node::maybe_create_reference (tree val, enum ipa_ref_use use_type, > - gimple *stmt) > +symtab_node::maybe_create_reference (tree val, gimple *stmt) > { > STRIP_NOPS (val); > - if (TREE_CODE (val) != ADDR_EXPR) > - return NULL; > + ipa_ref_use use_type; > + > + switch (TREE_CODE (val)) > + { > + case VAR_DECL: > + use_type = IPA_REF_LOAD; > + break; > + case ADDR_EXPR: > + use_type = IPA_REF_ADDR; > + break; > + default: > + return NULL; > + } I would add assert into default that we don't get handled_component_ref here so we are sure we don't miss any declarations (because the bug leads to quite esoteric issues, it is better to be safe than sorry) Honza