aboutsummaryrefslogtreecommitdiff
path: root/clang/docs
diff options
context:
space:
mode:
authorClement Courbet <courbet@google.com>2018-11-22 14:00:56 +0000
committerClement Courbet <courbet@google.com>2018-11-22 14:00:56 +0000
commitc022c51f89cd6bc5df9d06ea3e4dacf225429347 (patch)
tree00fd7d7e25a71c3857b8fc9c8ffb5a5836102360 /clang/docs
parent509f7d7c30ab76a046382cea731537ab061b889d (diff)
[ASTMatchers] Add hasSideEffect() matcher.
Summary: Exposes Expr::HasSideEffects. Reviewers: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D54830 llvm-svn: 347462
Diffstat (limited to 'clang/docs')
-rw-r--r--clang/docs/LibASTMatchersReference.html18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/docs/LibASTMatchersReference.html b/clang/docs/LibASTMatchersReference.html
index b547f7ece62d..ce651c282eb7 100644
--- a/clang/docs/LibASTMatchersReference.html
+++ b/clang/docs/LibASTMatchersReference.html
@@ -2817,6 +2817,24 @@ enum class Y {};
</pre></td></tr>
+<tr><td>Matcher&lt;<a href="https://clang.llvm.org/doxygen/classclang_1_1Expr.html">Expr</a>&gt;</td><td class="name" onclick="toggle('hasSideEffects0')"><a name="hasSideEffects0Anchor">hasSideEffects</a></td><td></td></tr>
+<tr><td colspan="4" class="doc" id="hasSideEffects0"><pre>Matches expressions with potential side effects other than producing
+a value, such as a calling a function, throwing an exception, or reading a
+volatile variable.
+
+Given
+ void f(int&amp; a, int b, volatile int c) {
+ call();
+ a = 0;
+ a;
+ b;
+ c;
+ }
+expr(hasSideEffects())
+ matches 'call()', 'a = 0', 'c', but not '0', 'a', 'b'.
+</pre></td></tr>
+
+
<tr><td>Matcher&lt;<a href="https://clang.llvm.org/doxygen/classclang_1_1Expr.html">Expr</a>&gt;</td><td class="name" onclick="toggle('isInstantiationDependent0')"><a name="isInstantiationDependent0Anchor">isInstantiationDependent</a></td><td></td></tr>
<tr><td colspan="4" class="doc" id="isInstantiationDependent0"><pre>Matches expressions that are instantiation-dependent even if it is
neither type- nor value-dependent.