http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58285
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org --- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> --- It is because following condition: if (CODE_CONTAINS_STRUCT (code, TS_DECL_MINIMAL)) { /* Drop names that were created for anonymous entities. */ if (DECL_NAME (expr) && TREE_CODE (DECL_NAME (expr)) == IDENTIFIER_NODE && ANON_AGGRNAME_P (DECL_NAME (expr))) ; else DFS_follow_tree_edge (DECL_NAME (expr)); DFS_follow_tree_edge (DECL_CONTEXT (expr)); } disaggree with: static void write_ts_decl_minimal_tree_pointers (struct output_block *ob, tree expr, bool ref_p) { /* Drop names that were created for anonymous entities. */ if (DECL_NAME (expr) && TREE_CODE (DECL_NAME (expr)) == IDENTIFIER_NODE && ANON_AGGRNAME_P (DECL_NAME (expr))) stream_write_tree (ob, NULL_TREE, ref_p); else stream_write_tree (ob, DECL_NAME (expr), ref_p); stream_write_tree (ob, DECL_CONTEXT (expr), ref_p); } the name is $_1 that is anon, but once we miss the fact. I ust be blind, but do not see how.