This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug ipa/61548] [5 Regression] FAIL: gcc.dg/tls/alias-1.c (internal compiler error)


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61548

--- Comment #13 from Jan Hubicka <hubicka at ucw dot cz> ---
> So, what is here is:
> emutls calls varpool_node::create_alias(decl("emutls_v.bar"),
> decl("emutls_v.foo")) which sets alias = true and alias_target =
> node("emutls_v.foo") on the node for "emutls_v.bar", however it does not set up
> ref_list.references on node("emutls_v.bar") to point at node("emutls_v.foo").
> Then during varification we call symtab_node::get_alias_target() which gets the
> alias from node("emutls_v.bar").ref_list.references but that crashes becauses
> references doesn't contain an element for the alias target.

The way to get the references for alias is to call alias->resolve_alias.
The resolution normally happens at the end of parsing but if someone introduces
new alias late, he needs to cal the resolve_alias manually.

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]