http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46313
--- Comment #3 from kargl at gcc dot gnu.org 2010-11-06 00:37:47 UTC --- (In reply to comment #1) > > Namespace: A-Z: (UNKNOWN 0) > procedure name = MAIN__ > symtree: 'MAIN__' || symbol: 'MAIN__' > type spec : (UNKNOWN 0) > attributes: (PROGRAM PUBLIC SUBROUTINE) > symtree: 'a1' || symbol: 'a1' > type spec : (CLASS class$mytype_a) > attributes: (VARIABLE ) > value: class$mytype_a(NULL() , ()) > symtree: 'a2' || symbol: 'a2' > type spec : (CLASS class$mytype_a) > attributes: (VARIABLE ) > value: class$mytype_a(NULL() , ()) > symtree: 'b1' || symbol: 'b1' > type spec : (CLASS class$mytype_a) > attributes: (VARIABLE ) > value: class$mytype_a(NULL() , ()) > symtree: 'b2' || symbol: 'b2' > type spec : (CLASS class$mytype_a) > attributes: (VARIABLE ) > value: class$mytype_a(NULL() , ()) After staring at the -fdump-parse-tree, I realized that everything is referencing mytype. Shouldn't the symtrees for a1 and a2 reference t1 and the symtrees for b1 and b2 reference t2? That is, symtree: 'a1' || symbol: 'a1' type spec : (CLASS class$t1_a) attributes: (VARIABLE ) value: class$mytype_a(NULL() , ()) -- steve