public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/56641] New: [4.7/4.8 regression] Bogus warning: 'A' has a field 'A::e' whose type uses the anonymous namespace @ 2013-03-17 15:43 ppluzhnikov at google dot com 2013-03-17 19:25 ` [Bug c++/56641] " jason at gcc dot gnu.org 2013-03-17 19:42 ` ppluzhnikov at google dot com 0 siblings, 2 replies; 3+ messages in thread From: ppluzhnikov at google dot com @ 2013-03-17 15:43 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56641 Bug #: 56641 Summary: [4.7/4.8 regression] Bogus warning: 'A' has a field 'A::e' whose type uses the anonymous namespace Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned@gcc.gnu.org ReportedBy: ppluzhnikov@google.com This one is recent regression of gcc-4_7 branch. Confirmed with current trunk r196749. namespace { #1 "foo.cc" enum E { }; } struct A { enum E e; }; g++ -c foo.ii foo.cc:4:8: warning: ‘A’ has a field ‘A::e’ whose type uses the anonymous namespace [enabled by default] Deleting the '#1 "foo.cc"' line makes the warning go away. ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/56641] [4.7/4.8 regression] Bogus warning: 'A' has a field 'A::e' whose type uses the anonymous namespace 2013-03-17 15:43 [Bug c++/56641] New: [4.7/4.8 regression] Bogus warning: 'A' has a field 'A::e' whose type uses the anonymous namespace ppluzhnikov at google dot com @ 2013-03-17 19:25 ` jason at gcc dot gnu.org 2013-03-17 19:42 ` ppluzhnikov at google dot com 1 sibling, 0 replies; 3+ messages in thread From: jason at gcc dot gnu.org @ 2013-03-17 19:25 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56641 Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #1 from Jason Merrill <jason at gcc dot gnu.org> 2013-03-17 19:24:45 UTC --- The compiler is working as intended; the warning is there because if E and A are included in multiple translation units, the A type changes between translation units, creating an ODR violation. Without the #1 line, the compiler doesn't warn because the types are being defined in the main input file rather than an #included file. ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/56641] [4.7/4.8 regression] Bogus warning: 'A' has a field 'A::e' whose type uses the anonymous namespace 2013-03-17 15:43 [Bug c++/56641] New: [4.7/4.8 regression] Bogus warning: 'A' has a field 'A::e' whose type uses the anonymous namespace ppluzhnikov at google dot com 2013-03-17 19:25 ` [Bug c++/56641] " jason at gcc dot gnu.org @ 2013-03-17 19:42 ` ppluzhnikov at google dot com 1 sibling, 0 replies; 3+ messages in thread From: ppluzhnikov at google dot com @ 2013-03-17 19:42 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56641 Paul Pluzhnikov <ppluzhnikov at google dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID --- Comment #2 from Paul Pluzhnikov <ppluzhnikov at google dot com> 2013-03-17 19:42:28 UTC --- Thanks for the explanation. The actual use case looks like this: // test-skeleton.cc namespace { enum E { }; } struct A { E e; }; //... other common test skeleton code ... // foo-test.cc #include "test-skeleton.cc" //... specific foo tests The workaround is to either make 'enum E' global, or name the namespace. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-03-17 19:42 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2013-03-17 15:43 [Bug c++/56641] New: [4.7/4.8 regression] Bogus warning: 'A' has a field 'A::e' whose type uses the anonymous namespace ppluzhnikov at google dot com 2013-03-17 19:25 ` [Bug c++/56641] " jason at gcc dot gnu.org 2013-03-17 19:42 ` ppluzhnikov at google dot com
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).