diff options
author | Erik Pilkington <erik.pilkington@gmail.com> | 2018-10-29 03:24:16 +0000 |
---|---|---|
committer | Erik Pilkington <erik.pilkington@gmail.com> | 2018-10-29 03:24:16 +0000 |
commit | b287a015e3a8f19734762f89ff02d877037c80e9 (patch) | |
tree | f8d8c5c09d763e15a4f84f75dd7e0fe04473e06b /clang/docs/LanguageExtensions.rst | |
parent | a7cc6b360fe976c9105968d73f60e26172dc7b77 (diff) | |
download | bcm5719-llvm-b287a015e3a8f19734762f89ff02d877037c80e9.tar.gz bcm5719-llvm-b287a015e3a8f19734762f89ff02d877037c80e9.zip |
Revert "Support for groups of attributes in #pragma clang attribute"
This reverts commit r345486.
Looks like it causes some old versions of GCC to crash, I'll see if I can
work around it and recommit...
llvm-svn: 345487
Diffstat (limited to 'clang/docs/LanguageExtensions.rst')
-rw-r--r-- | clang/docs/LanguageExtensions.rst | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/clang/docs/LanguageExtensions.rst b/clang/docs/LanguageExtensions.rst index 506d2736891..894b7504fd2 100644 --- a/clang/docs/LanguageExtensions.rst +++ b/clang/docs/LanguageExtensions.rst @@ -2651,19 +2651,17 @@ Specifying an attribute for multiple declarations (#pragma clang attribute) The ``#pragma clang attribute`` directive can be used to apply an attribute to multiple declarations. The ``#pragma clang attribute push`` variation of the -directive pushes a new "scope" of ``#pragma clang attribute`` that attributes -can be added to. The ``#pragma clang attribute (...)`` variation adds an -attribute to that scope, and the ``#pragma clang attribute pop`` variation pops -the scope. You can also use ``#pragma clang attribute push (...)``, which is a -shorthand for when you want to add one attribute to a new scope. Multiple push -directives can be nested inside each other. +directive pushes a new attribute to the attribute stack. The declarations that +follow the pragma receive the attributes that are on the attribute stack, until +the stack is cleared using a ``#pragma clang attribute pop`` directive. Multiple +push directives can be nested inside each other. The attributes that are used in the ``#pragma clang attribute`` directives can be written using the GNU-style syntax: .. code-block:: c++ - #pragma clang attribute push (__attribute__((annotate("custom"))), apply_to = function) + #pragma clang attribute push(__attribute__((annotate("custom"))), apply_to = function) void function(); // The function now has the annotate("custom") attribute @@ -2673,7 +2671,7 @@ The attributes can also be written using the C++11 style syntax: .. code-block:: c++ - #pragma clang attribute push ([[noreturn]], apply_to = function) + #pragma clang attribute push([[noreturn]], apply_to = function) void function(); // The function now has the [[noreturn]] attribute @@ -2683,7 +2681,7 @@ The ``__declspec`` style syntax is also supported: .. code-block:: c++ - #pragma clang attribute push (__declspec(dllexport), apply_to = function) + #pragma clang attribute push(__declspec(dllexport), apply_to = function) void function(); // The function now has the __declspec(dllexport) attribute |