diff options
author | Peter Szecsi <szepet95@gmail.com> | 2018-03-27 12:11:46 +0000 |
---|---|---|
committer | Peter Szecsi <szepet95@gmail.com> | 2018-03-27 12:11:46 +0000 |
commit | fff11dbc4829bd1752bf5ee824317f38e2ae05b6 (patch) | |
tree | 2378f1c318de067c19d7af9faccc20616ad5ae35 /clang/docs/LibASTMatchersReference.html | |
parent | 06cf6a6490bbb466f340307c111b63a979a5b17e (diff) | |
download | bcm5719-llvm-fff11dbc4829bd1752bf5ee824317f38e2ae05b6.tar.gz bcm5719-llvm-fff11dbc4829bd1752bf5ee824317f38e2ae05b6.zip |
[ASTMatchers] Add isAssignmentOperator matcher
Adding a matcher for BinaryOperator and cxxOperatorCallExpr to be able to
decide whether it is any kind of assignment operator or not. This would be
useful since allows us to easily detect assignments via matchers for static
analysis (Tidy, SA) purposes.
Differential Revision: https://reviews.llvm.org/D44893
llvm-svn: 328618
Diffstat (limited to 'clang/docs/LibASTMatchersReference.html')
-rw-r--r-- | clang/docs/LibASTMatchersReference.html | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/clang/docs/LibASTMatchersReference.html b/clang/docs/LibASTMatchersReference.html index 8775314afc9..9c55e8214d9 100644 --- a/clang/docs/LibASTMatchersReference.html +++ b/clang/docs/LibASTMatchersReference.html @@ -1926,6 +1926,19 @@ Example matches a || b (matcher = binaryOperator(hasOperatorName("||"))) </pre></td></tr> +<tr><td>Matcher<<a href="http://clang.llvm.org/doxygen/classclang_1_1BinaryOperator.html">BinaryOperator</a>></td><td class="name" onclick="toggle('isAssignmentOperator0')"><a name="isAssignmentOperator0Anchor">isAssignmentOperator</a></td></tr> +<tr><td colspan="4" class="doc" id="isAssignmentOperator0"><pre>Matches all kinds of assignment operators. + +Example 1: matches a += b (matcher = binaryOperator(isAssignmentOperator())) + if (a == b) + a += b; + +Example 2: matches s1 = s2 (matcher = cxxOperatorCallExpr(isAssignmentOperator())) + struct S { S& operator=(const S&); }; + void x() { S s1, s2; s1 = s2; }) +</pre></td></tr> + + <tr><td>Matcher<<a href="http://clang.llvm.org/doxygen/classclang_1_1CXXBoolLiteralExpr.html">CXXBoolLiteralExpr</a>></td><td class="name" onclick="toggle('equals5')"><a name="equals5Anchor">equals</a></td><td>bool Value</td></tr> <tr><td colspan="4" class="doc" id="equals5"><pre></pre></td></tr> @@ -2306,6 +2319,19 @@ Usable as: Matcher<<a href="http://clang.llvm.org/doxygen/classclang_1_1CXXOp </pre></td></tr> +<tr><td>Matcher<<a href="http://clang.llvm.org/doxygen/classclang_1_1CXXOperatorCallExpr.html">CXXOperatorCallExpr</a>></td><td class="name" onclick="toggle('isAssignmentOperator1')"><a name="isAssignmentOperator1Anchor">isAssignmentOperator</a></td></tr> +<tr><td colspan="4" class="doc" id="isAssignmentOperator1"><pre>Matches all kinds of assignment operators. + +Example 1: matches a += b (matcher = binaryOperator(isAssignmentOperator())) + if (a == b) + a += b; + +Example 2: matches s1 = s2 (matcher = cxxOperatorCallExpr(isAssignmentOperator())) + struct S { S& operator=(const S&); }; + void x() { S s1, s2; s1 = s2; }) +</pre></td></tr> + + <tr><td>Matcher<<a href="http://clang.llvm.org/doxygen/classclang_1_1CXXRecordDecl.html">CXXRecordDecl</a>></td><td class="name" onclick="toggle('hasDefinition0')"><a name="hasDefinition0Anchor">hasDefinition</a></td><td></td></tr> <tr><td colspan="4" class="doc" id="hasDefinition0"><pre>Matches a class declaration that is defined. |