<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Dec 16, 2014 at 1:17 PM, Nico Weber <span dir="ltr"><<a href="mailto:thakis@chromium.org" target="_blank">thakis@chromium.org</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Ok, I moved -Wkeyword-macro into -pedantic in r224371. I also removed -Wreserved-id-macro in the same revision, as it's not covered by the standards bit you cited </div></blockquote><div><br></div><div>I would like to have something like -Wreserved-id-macro eventually, but it's really hard to differentiate between uses of internal C++ implementation details (calling __builtin_foo()) and user defined names that are not part of "the implementation" (compiler + stdlib). This is partially covered by the C++ standard in [global.names]p1:</div><div><br></div><div>"""</div><div><div>Certain sets of names and function signatures are always reserved to the implementation:</div><div>— Each name that contains a double underscore _ _ or begins with an underscore followed by an uppercase</div><div>letter (2.12) is reserved to the implementation for any use.</div><div>— Each name that begins with an underscore is reserved to the implementation for use as a name in the</div><div>global namespace.</div></div><div>"""</div><div><br></div><div>It says nothing about macros, though, and this is such a hard problem that it's not clear to me that the committed implementation is worth having.</div></div></div></div>