summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/include/clang/Basic/AttrDocs.td6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td
index f9d962fbdec..b28ef6df0ed 100644
--- a/clang/include/clang/Basic/AttrDocs.td
+++ b/clang/include/clang/Basic/AttrDocs.td
@@ -1627,7 +1627,9 @@ def NotTailCalledDocs : Documentation {
The ``not_tail_called`` attribute prevents tail-call optimization on statically bound calls. It has no effect on indirect calls. Virtual functions, objective-c methods, and functions marked as ``always_inline`` cannot be marked as ``not_tail_called``.
For example, it prevents tail-call optimization in the following case:
+
.. code-block: c
+
int __attribute__((not_tail_called)) foo1(int);
int foo2(int a) {
@@ -1635,7 +1637,9 @@ For example, it prevents tail-call optimization in the following case:
}
However, it doesn't prevent tail-call optimization in this case:
+
.. code-block: c
+
int __attribute__((not_tail_called)) foo1(int);
int foo2(int a) {
@@ -1647,7 +1651,9 @@ However, it doesn't prevent tail-call optimization in this case:
}
Marking virtual functions as ``not_tail_called`` is an error:
+
.. code-block: c++
+
class Base {
public:
// not_tail_called on a virtual function is an error.
OpenPOWER on IntegriCloud