GCC omits the enumeration type if only its enumeration values get used.
The type with its enumerator is described by DWARF if the type itself is used.

enum { a, b };
int v = a;
char s[b];

No "a" or "b" is put in DWARF.  Some other variants can be created.
Workaround:

enum { a, b } dummy;
int v = a;
char s[b];

Tested as buggy:
GNU C 4.5.0 20090814 (experimental)
GNU C 4.4.2 20090806 (prerelease)
GNU C 4.4.0 20090506 (Red Hat 4.4.0-4)


-- 
           Summary: DW_TAG_enumeration_type+DW_TAG_enumerator is sometimes
                    missing
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: debug
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jan dot kratochvil at redhat dot com
GCC target triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41065

Reply via email to