Gerald, Could I get a hand on checking in this last addition?
-m 'Add a blurb to htdocs/gcc-5/changes.html to explain the __has_cpp_attribute and
the equivalent __has_attribute macros.' Thanks, Ed Sorry, I forgot to add gcc-patches.
Index: htdocs/gcc-5/changes.html =================================================================== RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-5/changes.html,v retrieving revision 1.73 diff -r1.73 changes.html 186a187,206 > <li>A new built-in function to detect the existence of an attribute, > <code>__has_attribute</code>, has been added. The equivalent built-in > function > <code>__has_cpp_attribute</code> was added to C++ to support > <a > href="http://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations"> > Feature-testing recommendations for C++</a>. The function > <code>__has_attribute</code> > is added to all C-like functions as an extension: > <blockquote><pre> > int > #ifdef __has_attribute > # if __has_attribute(__noinline__) > __attribute__((__noinline__)) > # endif > #endif > foo(int x); > </pre></blockquote> > If an attribute exists a nonzero constant integer is returned. Except > for > standardized C++ attributes that return dates the constant returned is > 1. > The has_attribute macros will add underscores to an attribute name if > necessary > to resolve the name. For C++11 and onwards the attribute may be scoped. > </li>