<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <div class="moz-cite-prefix">On 12/01/2014 15:29, Aaron Ballman
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAAt6xTtyT=ezhfG+_5SbyshjUZ26RzEpMsnJnYOTZHBMReFnqA@mail.gmail.com"
      type="cite">
      <pre wrap="">On Sun, Jan 12, 2014 at 10:18 AM, Alp Toker <a class="moz-txt-link-rfc2396E" href="mailto:alp@nuanti.com"><alp@nuanti.com></a> wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Author: alp
Date: Sun Jan 12 09:18:06 2014
New Revision: 199053

URL: <a class="moz-txt-link-freetext" href="http://llvm.org/viewvc/llvm-project?rev=199053&view=rev">http://llvm.org/viewvc/llvm-project?rev=199053&view=rev</a>
Log:
Clarify warn_cxx98_compat_attribute diagnostic

Various attribute flavours are supported in C++98. Make it clear that this
compatibility warning relates specifically to C++11-style generalized
attributes.

Modified:
    cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
    cfe/trunk/test/SemaCXX/cxx98-compat.cpp

Modified: cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
URL: <a class="moz-txt-link-freetext" href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=199053&r1=199052&r2=199053&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=199053&r1=199052&r2=199053&view=diff</a>
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td Sun Jan 12 09:18:06 2014
@@ -517,7 +517,7 @@ def warn_cxx98_compat_nullptr : Warning<
 def warn_cxx98_compat_alignas : Warning<"'alignas' is incompatible with C++98">,
   InGroup<CXX98Compat>, DefaultIgnore;
 def warn_cxx98_compat_attribute : Warning<
-  "attributes are incompatible with C++98">,
+  "generalized attributes are incompatible with C++98">,
</pre>
      </blockquote>
      <pre wrap="">
What are "generalized" attributes? I think it would be better-worded
as "C++11 attributes are incompatible with C++98" (this is more
consistent with other parser diagnostics, as well).</pre>
    </blockquote>
    <br>
    <br>
    Hi Aaron,<br>
    <br>
    I'd say it's time to use the more natural name for C++11 attributes
    because the syntax now appears in a published standard. That's the
    usual lifecycle for clang language features moving from experimental
    to fully supported.<br>
    <br>
    As for the name itself, it's the terminology adopted by the C++
    community and also the name by which we advertise the feature on our
    own C++ status page at <a class="moz-txt-link-freetext" href="http://clang.llvm.org/cxx_status.html">http://clang.llvm.org/cxx_status.html</a>:<br>
    <br>
    <cite>  Generalized attributes    N2761    Clang 3.3 (1)</cite><br>
    <br>
    There's also a compelling reason _not_ to keep the old experimental
    naming scheme indefinitely -- doing so will cause terminology
    dissonance as other language dialects like ISO C look to adopt the
    new syntax, likewise if we decide to introduce generalized
    attributes as a clang extension to C11 in the meantime.<br>
    <br>
    Alp.<br>
    <br>
    <br>
    <blockquote
cite="mid:CAAt6xTtyT=ezhfG+_5SbyshjUZ26RzEpMsnJnYOTZHBMReFnqA@mail.gmail.com"
      type="cite">
      <pre wrap="">

Otherwise, LGTM!

~Aaron
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
<a class="moz-txt-link-freetext" href="http://www.nuanti.com">http://www.nuanti.com</a>
the browser experts
</pre>
  </body>
</html>