This is probably more of a question for the DWARF producer, like GCC, than the DWARF workgroup, but let's take a look anyway...
Ah, OK, simplifying things down a bit. You've got this case: ``` struct t1 { typedef struct { } t2; #ifdef USE_VIRTUAL virtual void f1(); #endif }; t1::t2 v1 #ifdef USE_ARRAY [1] #endif ; ``` And the observed behavior of GCC is that the type of `v1` is (potentially array-of) "t1::(anonymous struct)" if USE_VIRTUAL && USE_ARRAY, and otherwise the type is "t1::t2" Yeah, seems to be the case ( https://godbolt.org/z/c19PrPx83 ). I'd guess it's just a minor bug in GCC - seems to still be there today/trunk. The inconsistency seems to point to it being a bug, and that the expected behavior would be that the type is `t1::t2` even if it's an array and t1 has virtual functions.
-- Dwarf-discuss mailing list Dwarf-discuss@lists.dwarfstd.org https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss