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

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-03-26
                 CC|                            |manu at gcc dot gnu.org
            Summary|C++ compiler produces       |Improve message and add an
                   |warning for an unnamed      |option for warning for an
                   |struct member: TYPE has a   |unnamed struct member: TYPE
                   |field FIELD whose type uses |has a field FIELD whose
                   |the anonymous namespace     |type uses the anonymous
                   |                            |namespace
     Ever Confirmed|0                           |1

--- Comment #4 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2013-03-26 
20:26:15 UTC ---
(In reply to comment #3)
> +1 for the ability to disable this warning.

1) Invent a descriptive name for the warning, say "bla"
2) Add -Wbla to gcc/c-family/c.opt, document it in gcc/doc/invoke.texi
3) Change:

decl2.c-2335       if (!in_main_input_context ())
decl2.c-2336-         warning (0, "\
decl2.c-2336+         warning (OPT_Wbla, "\
decl2.c:2337:%qT has a field %qD whose type uses the anonymous namespace",
decl2.c-2338                  type, t);
decl2.c-2339     }

4) bootstrap

5) run testsuite, fix failing tests, submit patch to gcc-patches, profit.

+ Bonus points for improving the message to explain user what is exactly the
potential problem.

++ Extra bonus points if the explanation does not include the words "internal
linkage".

(Note that you can do steps 1-4 in your own copy, but it will be broken again
in the next release, so it is better to contribute your patch).

Reply via email to