[Bug c++/39219] attribute doesn't work with enums properly

sebor at roguewave dot com gcc-bugzilla@gcc.gnu.org
Tue Feb 17 21:00:00 GMT 2009



------- Comment #4 from sebor at roguewave dot com  2009-02-17 21:00 -------
Thanks for looking into so quickly!

In addition to the missing warnings mentioned in the initial report I would
expect a warning for each of the references to e below (i.e., on lines 3, 9,
and 15), analogously to those already issued:

$ cat -n u.cpp && g++ -W -Wall -Werror -c u.cpp; echo $?
     1  struct A {
     2      enum __attribute__ ((deprecated)) E { e };
     3      enum F { f = e };       // missing warning
     4      static const E g = e;   // missing warning
     5  };
     6
     7  struct B {
     8      enum E { e } __attribute__ ((deprecated));
     9      enum F { f = e };       // missing warning
    10      static const E g = e;
    11  };
    12
    13  struct C {
    14      typedef enum { e } E __attribute__ ((deprecated));
    15      enum F { f = e };       // missing warning
    16      static const E g = e;
    17  };
cc1plus: warnings being treated as errors
u.cpp:10: error: 'E' is deprecated (declared at u.cpp:8)
u.cpp:16: error: 'C::E' is deprecated (declared at u.cpp:14)
1


-- 


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



More information about the Gcc-bugs mailing list