Sylvestre Ledru
61122c4fd0
Fix a typo in the doc: overriden -> overridden
...
llvm-svn: 279942
2016-08-28 20:22:34 +00:00
Aaron Ballman
75de707d84
Correct the documentation for isSignedInteger() and isUnsignedInteger().
...
Patch by Visoiu Mistrih Francis
llvm-svn: 279055
2016-08-18 12:26:17 +00:00
Aaron Ballman
a086b9fd15
Add an AST matcher for external formal linkage.
...
Patch by Visoiu Mistrih
llvm-svn: 278926
2016-08-17 13:10:42 +00:00
Martin Bohme
8cef2c2f2d
[ASTMatchers] Add matchers canReferToDecl() and hasUnderlyingDecl()
...
Summary: Required for D22220
Reviewers: sbenza, klimek, aaron.ballman, alexfh
Subscribers: alexfh, klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D23004
llvm-svn: 278123
2016-08-09 15:07:52 +00:00
Benjamin Kramer
87e6d99487
Make isExternC work on VarDecls too.
...
llvm-svn: 277712
2016-08-04 10:02:03 +00:00
Haojian Wu
99e39a7af8
Fix a typo in document.
...
llvm-svn: 277174
2016-07-29 17:30:13 +00:00
Haojian Wu
b33b02e9f0
[ASTMatcher] Add templateName matcher.
...
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D22963
llvm-svn: 277155
2016-07-29 15:45:11 +00:00
Haojian Wu
d898b0982a
[ASTMatcher] Add hasTemplateArgument/hasAnyTemplateArgument support in functionDecl.
...
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D22957
llvm-svn: 277142
2016-07-29 13:57:27 +00:00
Clement Courbet
425175934e
[ASTMatchers] isSignedInteger() and isUnsignedInteger()
...
Complementary to isInteger(), these match signed and unsigned integers
respectively.
Review: http://reviews.llvm.org/D21989
llvm-svn: 275157
2016-07-12 06:36:00 +00:00
Aaron Ballman
5c574341f5
Add AST matchers for handling bit-fields and narrowing based on their width.
...
llvm-svn: 274652
2016-07-06 18:25:16 +00:00
Clement Courbet
6ecaec83ba
[ASTMatchers] New forEachOverriden matcher.
...
Matches methods overridden by the given method.
llvm-svn: 274531
2016-07-05 07:49:31 +00:00
Haojian Wu
e775de8171
[ASTMatcher] Add a node matcher for EnumType.
...
Reviewers: aaron.ballman
Subscribers: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D21860
llvm-svn: 274217
2016-06-30 07:50:01 +00:00
Samuel Benzaquen
49385c78bc
[ASTMatchers] Add isLambda() matcher.
...
llvm-svn: 274015
2016-06-28 14:08:56 +00:00
Cong Liu
8a02efb143
IgnoringImplicit matcher.
...
llvm-svn: 273659
2016-06-24 09:38:03 +00:00
Chandler Carruth
b1bcd5dc7b
Revert "[ASTMatchers] New forEachOverriden matcher."
...
This reverts commit r272386. It doesn't compile with MSVC and those bots
have been red the entire day as a consequence.
llvm-svn: 272453
2016-06-11 04:45:38 +00:00
Clement Courbet
8251ebfac6
[ASTMatchers] New forEachOverriden matcher.
...
Matches methods overridden by the given method.
llvm-svn: 272386
2016-06-10 11:54:43 +00:00
Aaron Ballman
230ad97156
Make isNoThrow and hasDynamicExceptionSpec polymorphic so they can be used with both functionDecl and functionPrototype matchers.
...
Patch by Don Hinton.
llvm-svn: 272028
2016-06-07 17:34:45 +00:00
Aaron Ballman
ba8dbbe86f
Adding an AST matcher to ignore parenthesis in *types* (rather than expressions). This is required for traversing certain types (like function pointer types).
...
llvm-svn: 271927
2016-06-06 18:52:17 +00:00
Etienne Bergeron
5500f95a00
[ASTMatchers] Add support of hasCondition for SwitchStmt.
...
Summary:
The switch statement could be added to the hasCondition matcher.
Example:
```
clang-query> match switchStmt(hasCondition(ignoringImpCasts(declRefExpr())))
```
Output:
```
Match #1 :
Binding for "root":
SwitchStmt 0x2f9b528 </usr/local/google/home/etienneb/examples/enum.cc:35:3, line:38:3>
|-<<<NULL>>>
|-ImplicitCastExpr 0x2f9b510 <line:35:11> 'int' <IntegralCast>
| `-ImplicitCastExpr 0x2f9b4f8 <col:11> 'enum Color' <LValueToRValue>
| `-DeclRefExpr 0x2f9b4d0 <col:11> 'enum Color' lvalue Var 0x2f9a118 'C' 'enum Color'
`-CompoundStmt 0x2f9b610 <col:14, line:38:3>
|-CaseStmt 0x2f9b578 <line:36:3, col:22>
| |-ImplicitCastExpr 0x2f9b638 <col:8> 'int' <IntegralCast>
| | `-DeclRefExpr 0x2f9b550 <col:8> 'enum Size' EnumConstant 0x2f99e40 'Small' 'enum Size'
| |-<<<NULL>>>
| `-ReturnStmt 0x2f9b5d0 <col:15, col:22>
| `-IntegerLiteral 0x2f9b5b0 <col:22> 'int' 1
`-DefaultStmt 0x2f9b5f0 <line:37:3, col:12>
`-BreakStmt 0x2f9b5e8 <col:12>
1 match.
```
Reviewers: aaron.ballman, sbenza, klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D20767
llvm-svn: 271208
2016-05-30 15:25:25 +00:00
Haojian Wu
7751c92582
[ASTMatcher] Add a node matcher for UnresolvedLookupExpr.
...
Reviewers: alexfh, aaron.ballman
Subscribers: aaron.ballman, klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D20360
llvm-svn: 269916
2016-05-18 12:53:59 +00:00
Aaron Ballman
abdbbbc51f
Add the hasDynamicExceptionSpec() AST matcher to match function declarations that have a dynamic exception specification.
...
Patch by Don Hinton.
llvm-svn: 269662
2016-05-16 16:49:01 +00:00
Etienne Bergeron
75e52725e4
Add an AST matcher for CastExpr kind
...
Summary:
This AST matcher will match a given CastExpr kind.
It's an narrowing matcher on CastExpr.
Reviewers: klimek, alexfh, sbenza, aaron.ballman
Subscribers: Prazek, jroelofs, aaron.ballman, klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D19871
llvm-svn: 269460
2016-05-13 19:36:55 +00:00
Etienne Bergeron
3588be7fa1
Add an AST matcher for string-literal length
...
Summary:
This patch is adding support for a matcher to check string literal length.
This matcher is used in clang-tidy checkers and is part of this refactoring:
see: http://reviews.llvm.org/D19841
Reviewers: sbenza, klimek, aaron.ballman
Subscribers: alexfh, klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D19876
llvm-svn: 269274
2016-05-12 04:20:04 +00:00
Samuel Benzaquen
a4076ea8a2
Fix the doc extraction script to work with hasAnyName and with equalsNode.
...
The change from llvm::VariadicFunction to internal::VariadicFunction
broke the extraction of hasAnyName().
equalsNode was broken because the argument type is 'const XXXX*' and
the internal space caused a failure on the regex.
llvm-svn: 268548
2016-05-04 20:45:00 +00:00
Gabor Horvath
1b3f8db8b6
[ASTMatchers] New matcher forFunction
...
Summary: Matcher proposed in the review of checker misc-assign-operator (name pending). Its goal is to find the direct enclosing function declaration of a statement and run the inner matcher on it. Two version is attached in this patch (thus it will not compile), to be decided which approach to take. The second one always chooses one single parent while the first one does a depth-first search upwards (thus a height-first search) and returns the first positive match of the inner matcher (thus it always returns zero or one matches, not more). Further questions: is it enough to implement it in-place, or ASTMatchersInternals or maybe ASTMatchFinder should be involved?
Reviewers: sbenza
Subscribers: aaron.ballman, klimek, o.gyorgy, xazax.hun, cfe-commits
Differential Revision: http://reviews.llvm.org/D19357
llvm-svn: 268490
2016-05-04 11:59:39 +00:00
Aaron Ballman
66eb58a756
Add typedefNameDecl() and typeAliasDecl() to the AST matchers; improves hasType() to match on TypedefNameDecl nodes.
...
Patch by Clement Courbet.
llvm-svn: 266331
2016-04-14 16:05:45 +00:00
Alexander Kornienko
7d20a5afdb
Add AST Matchers for CXXConstructorDecl::isDelegatingConstructor and CXXMethodDecl::isUserProvided.
...
Summary: Added two AST matchers: isDelegatingConstructor for CXXConstructorDecl::IsDelegatingConstructor; and isUserProvided corresponding to CXXMethodDecl::isUserProvided.
Reviewers: aaron.ballman, alexfh
Subscribers: klimek, cfe-commits
Patch by Michael Miller!
Differential Revision: http://reviews.llvm.org/D19038
llvm-svn: 266189
2016-04-13 11:13:08 +00:00
Gabor Horvath
1b654f2293
[ASTMatchers] Existing matcher hasAnyArgument fixed
...
Summary: A checker (will be uploaded after this patch) needs to check implicit casts. The checker needs matcher hasAnyArgument but it ignores implicit casts and parenthesized expressions which disables checking of implicit casts for arguments in the checker. However the documentation of the matcher contains a FIXME that this should be removed once separate matchers for ignoring implicit casts and parenthesized expressions are ready. Since these matchers were already there the fix could be executed. Only one Clang checker was affected which was also fixed (ignoreParenImpCasts added) and is separately uploaded. Third party checkers (not in the Clang repository) may be affected by this fix so the fix must be emphasized in the release notes.
Reviewers: klimek, sbenza, alexfh
Subscribers: alexfh, klimek, xazax.hun, cfe-commits
Differential Revision: http://reviews.llvm.org/D18243
llvm-svn: 264855
2016-03-30 11:22:14 +00:00
Alexander Kornienko
976921d4b4
[ASTMatchers] New matcher hasReturnValue added
...
Summary: A checker (will be uploaded after this patch) needs to check implicit casts. Existing generic matcher "has" ignores implicit casts and parenthesized expressions and no specific matcher for matching return value expression preexisted. The patch adds such a matcher (hasReturnValue).
Reviewers: klimek, sbenza
Subscribers: xazax.hun, klimek, cfe-commits
Patch by Ádám Balogh!
Differential Revision: http://reviews.llvm.org/D17986
llvm-svn: 264037
2016-03-22 11:03:03 +00:00
Aaron Ballman
a35b8fcef8
Adding new AST matchers for: addrLabelExpr, atomicExpr, binaryConditionalOperator, designatedInitExpr, designatorCountIs, hasSyntacticForm, implicitValueInitExpr, labelDecl, opaqueValueExpr, parenListExpr, predefinedExpr, requiresZeroInitialization, and stmtExpr.
...
Patch by Aleksei Sidorin.
llvm-svn: 263027
2016-03-09 17:11:51 +00:00
Samuel Benzaquen
922bef4f38
[ASTMatchers] Add matcher hasAnyName.
...
Summary: Add matcher hasAnyName as an optimization over anyOf(hasName(),...)
Reviewers: alexfh
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D17163
llvm-svn: 261574
2016-02-22 21:13:02 +00:00
Aaron Ballman
eb7e5d9074
Add an AST matcher for real floating-point types. e.g., float, double, long double, but not complex.
...
llvm-svn: 261221
2016-02-18 16:36:01 +00:00
Aaron Ballman
232e63d00b
Add a nullPointerConstant() AST matcher to handle variations of null pointer constants in one matcher.
...
llvm-svn: 261008
2016-02-16 21:02:23 +00:00
Aaron Ballman
7e7b7b2def
Reapply r259210 with a fix for RegistryTest.cpp.
...
Patch by Richard Thomson.
llvm-svn: 259359
2016-02-01 14:11:47 +00:00
Hans Wennborg
2b79910d8b
Revert r259210 "Extend hasType narrowing matcher for TypedefDecls, add functionProtoType matcher for FunctionProtoType nodes, extend parameterCountIs to FunctionProtoType nodes."
...
It didn't pass check-clang.
llvm-svn: 259218
2016-01-29 18:24:34 +00:00
Aaron Ballman
fb9d0e354d
Extend hasType narrowing matcher for TypedefDecls, add functionProtoType matcher for FunctionProtoType nodes, extend parameterCountIs to FunctionProtoType nodes.
...
Patch by Richard Thomson
llvm-svn: 259210
2016-01-29 17:03:11 +00:00
Aaron Ballman
a681151ebd
Improving documentation for the isMoveAssignmentOperator AST matcher.
...
Patch by Jonathan Coe.
llvm-svn: 258628
2016-01-23 17:49:18 +00:00
Aaron Ballman
672dde2b3e
Properly encode the < entity; it was missing the semicolon. Regenerating the AST matcher reference after fixing the issue. Thanks to Richard for noticing the issue and bringing it to my attention!
...
llvm-svn: 258579
2016-01-22 23:15:00 +00:00
Aaron Ballman
31bde8762e
Add am AST matcher for isMoveAssignmentOperator.
...
Patch by Jonathan Coe.
llvm-svn: 258573
2016-01-22 22:37:09 +00:00
Nico Weber
a415a1d0d7
Add an isVirtualAsWritten AST matcher.
...
http://reviews.llvm.org/D16394
llvm-svn: 258415
2016-01-21 17:56:24 +00:00
Aaron Ballman
c35724cc72
When dumping documentation for AST matchers, do something more useful with \see doxygen commands. Ideally this would link to the target of \see, but for now it translates \see into "See also: "
...
Regenerate the AST documentation for this new functionality.
llvm-svn: 258401
2016-01-21 15:18:25 +00:00
Aaron Ballman
2b6963fce9
Add AST matcher support for FunctionDecls with the hasBody matcher.
...
Patch by Aleksei Sidorin.
llvm-svn: 258322
2016-01-20 16:26:48 +00:00
Aaron Ballman
e8295d7980
Add AST matcher for paren expressions.
...
Patch by Adrian Zgorzałek.
llvm-svn: 258321
2016-01-20 16:17:39 +00:00
Aaron Ballman
eb85b04c7e
Add an AST matcher for checking whether a function is defaulted.
...
Patch by Jonathan Coe.
llvm-svn: 258072
2016-01-18 20:37:44 +00:00
Aaron Ballman
d7b18b9f2f
Augments r258042; changes the AST matcher tests to use matchesNot and EXPECT_TRUE instead of EXPECT_FALSE. Adds a matcher test to ensure that static member functions are properly handled. Generates the documentation from the matcher.
...
llvm-svn: 258070
2016-01-18 20:28:57 +00:00
Samuel Benzaquen
30747f72eb
[ASTMatchers] Fix typo in booleanType() doc.
...
Fix typo in booleanType() doc and recreate the
LibASTMatchersReference.html reference document.
llvm-svn: 256284
2015-12-22 21:06:36 +00:00
Aaron Ballman
a60bcdab92
Add a narrowing AST matcher that matches on a FunctionDecl with a non-throwing exception specification.
...
llvm-svn: 254516
2015-12-02 15:23:59 +00:00
Aaron Ballman
6290fc9154
Add an AST matcher for narrowing when a type is volatile-qualified.
...
llvm-svn: 253882
2015-11-23 17:09:24 +00:00
Benjamin Kramer
7d0cc23786
Regenerate ASTMatchersReference without CRLF.
...
llvm-svn: 253654
2015-11-20 07:57:46 +00:00
Benjamin Kramer
611d33a5a2
Fix ASTMatcher reference newlines and make the generator script windows-proof.
...
llvm-svn: 253653
2015-11-20 07:46:19 +00:00