[Dwarf-discuss] Virtual Methods/Array Of Structs and Anonymous Structs

David Blaikie dblaikie@gmail.com
Wed Dec 18 19:26:47 GMT 2024


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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dwarfstd.org/pipermail/dwarf-discuss/attachments/20241218/a7b67c26/attachment-0001.htm>


More information about the Dwarf-discuss mailing list