Felix Berger
cc9df3b9cc
Add isAnyPointer() matchers. Register missing matchers.
...
Summary:
The isAnyPointer() matcher is useful for http://reviews.llvm.org/D15623 .
Reviewers: alexfh, klimek
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D15819
llvm-svn: 260872
2016-02-15 04:00:39 +00:00
Aaron Ballman
880a65bba5
Registering the gnuNullExpr AST matcher as a dynamic matcher so that it is available from clang-query.
...
llvm-svn: 260222
2016-02-09 14:04:49 +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
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
433485f003
Register the isCopyAssignmentOperator AST matcher so that it can be used dynamically.
...
Path by Jonathan Coe.
llvm-svn: 258341
2016-01-20 20:47:58 +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
Manuel Klimek
ce28f9ebd3
Add forEachArgumentWithParam AST matcher.
...
The new matcher allows users to provide a matcher for both the argument
of a CallExpr/CxxConstructExpr a well as the ParmVarDecl of the
argument.
Patch by Felix Berger.
Differential Revision: http://reviews.llvm.org/D13845
llvm-svn: 258042
2016-01-18 11:20:09 +00:00
Samuel Benzaquen
bd3232af03
[ASTMatchers] Add booleanType() matcher.
...
llvm-svn: 256278
2015-12-22 20:06:40 +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
Aaron Ballman
8e7f00b0eb
Re-committing r253473 after hopefully fixing the bot breakage. There was a copy-pasta issue that my local testing did not catch.
...
llvm-svn: 253481
2015-11-18 17:56:55 +00:00
Aaron Ballman
81d17f2f7e
Reverting r253473 while I investigate build bot failures.
...
llvm-svn: 253475
2015-11-18 17:16:01 +00:00
Aaron Ballman
34e0bd40e4
Adding AST matchers for VarDecl storage durations. Can now determine whether a VarDecl has automatic, static, or thread storage duration. This also updates the documentation for matchers, which appear to be missing some previous additions.
...
llvm-svn: 253473
2015-11-18 17:05:39 +00:00
Matthias Gehre
2cf7e803bb
Add decayedType and hasDecayedType AST matchers
...
Summary: Add decayedType and hasDecayedType AST matchers
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D13639
llvm-svn: 250114
2015-10-12 21:46:07 +00:00
Aaron Ballman
3fd6c110be
Adding a narrowing AST matcher for FunctionDecl::isVariadic(), plus tests and documentation.
...
llvm-svn: 249321
2015-10-05 14:41:27 +00:00
Craig Topper
e335f25949
SourceRanges are small and trivially copyable, don't them by reference.
...
llvm-svn: 249259
2015-10-04 04:53:55 +00:00
Aaron Ballman
512fb64765
Rename AST node matchers to match the AST node names directly. Part of this rename also splits recordDecl() (which used to match CXXRecordDecl) into recordDecl() (that matches RecordDecl) and cxxRecordDecl (that matches CXXRecordDecl). Also adds isStruct(), isUnion(), and isClass() narrowing matchers for RecordDecl objects.
...
llvm-svn: 247885
2015-09-17 13:30:52 +00:00
Aaron Ballman
b85be665b0
Fixed HasDeclarationMatcher to properly convert all types into decls where possible. Added objcObjectPointerType(), objcInterfaceDecl(), templateTypeParmType(), injectedClassNameType(), and unresolvedUsingTypenameDecl(). Updated documentation for pointerType() to call out that it does not match ObjCObjectPointerType types. Changed pointsTo() to handle ObjCObjectPointerType as well as PointerType.
...
While this may seem like a lot of unrelated changes, they all relate back to fixing HasDeclarationMatcher.
This now allows us to write a matcher like:
varDecl(hasType(namedDecl(hasName("Foo"))))
that matches code using typedefs, objc interfaces, template type parameters, injected class names, or unresolved using typenames.
llvm-svn: 247404
2015-09-11 11:51:24 +00:00
Aaron Ballman
6c79f352b8
Adding an AST matcher for namespaceAliasDecl.
...
llvm-svn: 246322
2015-08-28 19:39:21 +00:00
Samuel Benzaquen
f8ec454f7d
[ASTMatchers] Add type matcher for SubstTemplateTypeParmType.
...
llvm-svn: 246037
2015-08-26 16:15:59 +00:00
Aaron Ballman
11825f2592
Add AST narrowing matchers for inline and anonymous namespaces. Since the inline keyword can also be specified on a FunctionDecl, this is a polymorphic matcher.
...
llvm-svn: 245337
2015-08-18 19:55:20 +00:00
Aaron Ballman
7596bcf726
Switching from an explicit loop to DeleteContainerSeconds; NFC.
...
llvm-svn: 244802
2015-08-12 20:05:18 +00:00
Aaron Ballman
001f168e94
RangRangify some more for loops; NFC.
...
llvm-svn: 244792
2015-08-12 19:00:39 +00:00
Aaron Ballman
6f6d0b6c5a
Add a polymorphic AST matcher for testing whether a constructor or a conversion declaration is marked as explicit or not.
...
llvm-svn: 244666
2015-08-11 21:09:52 +00:00
Aaron Ballman
ed455d4062
Add an AST matcher to match member intializers of a CXXCtorInitializer.
...
llvm-svn: 244662
2015-08-11 20:42:00 +00:00
Aaron Ballman
1ca258e6a8
Add AST matchers for narrowing constructors that are default, copy, or move constructors, as well as functionality to determine whether a ctor initializer is a base initializer.
...
llvm-svn: 244036
2015-08-05 12:11:30 +00:00
Aaron Ballman
41143bb573
Add an AST matcher, isFinal(), for testing whether a method or class declaration are marked final.
...
llvm-svn: 243107
2015-07-24 12:35:41 +00:00
Aaron Ballman
3991846c33
Add the ability to AST match a variable declaration that is an exception variable.
...
llvm-svn: 242303
2015-07-15 17:11:21 +00:00
Aaron Ballman
9b869aa4a1
Implement an AST matcher for C++ exception catch handlers that can catch any exception type (...).
...
llvm-svn: 241256
2015-07-02 12:53:22 +00:00
David Majnemer
8423df927e
Move a test from static-assert.cpp to DeclPrinterTest
...
It's better not to rely on the diagnostics engine to pretty print the
argument to decltype. Instead, exercise the functionality in
DeclPrinterTest.
llvm-svn: 239197
2015-06-05 22:40:53 +00:00
Samuel Benzaquen
025f6b1981
Add conversionDecl matcher for node CXXConversionDecl.
...
llvm-svn: 235348
2015-04-20 20:58:50 +00:00
Manuel Klimek
bfa4357271
Add support for a few Objective-C matchers.
...
Add some matchers for Objective-C selectors and messages to
ASTMatchers.h. Minor mods to ASTMatchersTest.h to allow test files with
".m" extension in addition to ".cpp". New tests added to
ASTMatchersTest.c.
Patch by Dean Sutherland.
llvm-svn: 232051
2015-03-12 15:48:15 +00:00
Aaron Ballman
e9f931f974
Reverting r232034, as it broke one of the bots with link errors. Details at: http://bb.pgr.jp/builders/ninja-clang-x64-mingw64-RA/builds/6352/steps/build/logs/stdio
...
llvm-svn: 232038
2015-03-12 14:14:48 +00:00
Aaron Ballman
12865302b7
Added some matchers for objective c selectors and messages to ASTMatchers.h. Minor mods to ASTMatchersTest.h to allow test files with ".m" extension in addition to ".cpp". New tests added to ASTMatchersTest.c.
...
Patch by Dean Sutherland, reviewed by Manuel Klimek. From http://reviews.llvm.org/D7710
llvm-svn: 232034
2015-03-12 13:21:19 +00:00
Samuel Benzaquen
ef621f43ff
Add translationUnitDecl matcher.
...
Summary: Add translationUnitDecl matcher.
Reviewers: alexfh
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D7512
llvm-svn: 228694
2015-02-10 14:46:45 +00:00
Samuel Benzaquen
b405c08bdb
Add voidType() matcher.
...
Summary: Add voidType() matcher.
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D6656
llvm-svn: 224250
2014-12-15 15:09:22 +00:00
Manuel Klimek
d3aa1f4a63
Re-apply r222646 (was reverted in r222667). Adding 4 ASTMatchers: typedefDecl, isInMainFile, isInSystemFile, isInFileMatchingName
...
Change to original: ifndef out tests in Windows due to /-separated
paths.
Summary:
Often one is only interested in matches within the main-file or matches
that are not within a system-header, for which this patch adds
isInMainFile and isInSystemFile. They take no arguments and narrow down
the matches.
The isInFileMatchingName is mainly thought for interactive
clang-query-sessions, to make a matcher more specific without restarting
the session with the files you are interested in for that moment. It
takes a string that will be used as regular-expression to match the
filename of where the matched node is expanded.
Patch by Hendrik von Prince.
llvm-svn: 222765
2014-11-25 17:01:06 +00:00
Aaron Ballman
6265102c17
Reverting r222646; the tests do not pass on Windows. Also reverts r222664, which was required for r222646 to compile with Visual Studio 2012.
...
llvm-svn: 222667
2014-11-24 17:39:44 +00:00
Manuel Klimek
da50ff8e4a
Adding 4 ASTMatchers: typedefDecl, isInMainFile, isInSystemFile, isInFileMatchingName
...
Summary:
Often one is only interested in matches within the main-file or matches
that are not within a system-header, for which this patch adds
isInMainFile and isInSystemFile. They take no arguments and narrow down
the matches.
The isInFileMatchingName is mainly thought for interactive
clang-query-sessions, to make a matcher more specific without restarting
the session with the files you are interested in for that moment. It
takes a string that will be used as regular-expression to match the
filename of where the matched node is expanded.
Patch by Hendrik von Prince.
llvm-svn: 222646
2014-11-24 09:10:56 +00:00
Samuel Benzaquen
c640ef5634
Add valueDecl() matcher.
...
Summary: Add valueDecl() matcher.
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D6005
llvm-svn: 220776
2014-10-28 13:33:58 +00:00
Samuel Benzaquen
b63c251894
Fix completion logic to allow for heterogeneous argument types in matcher overloads.
...
Summary:
There was an assumption that there were no matchers that were overloaded
on matchers and other types of arguments.
This assumption was broken recently with the addition of new matcher
overloads.
Fixes http://llvm.org/PR21226
Reviewers: pcc
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D5711
llvm-svn: 219450
2014-10-09 22:08:52 +00:00
Manuel Klimek
7735e40a87
Implement various matchers around template argument handling.
...
llvm-svn: 219408
2014-10-09 13:06:22 +00:00
Benjamin Kramer
7ab8476c15
ASTMatchers: Add a matcher to detect whether a decl or stmt is inside a template instantiation.
...
This is hoisted from clang-tidy where it's used everywhere. The implementation
is not particularly efficient right now, but there is no easy fix for that.
Differential Revision: http://reviews.llvm.org/D5085
llvm-svn: 217029
2014-09-03 12:08:14 +00:00
Manuel Klimek
3fe8a38110
Add hasAttr matcher for declarations.
...
Delete special-case CUDA attribute matchers.
Patch by Jacques Pienaar.
llvm-svn: 216379
2014-08-25 11:23:50 +00:00
Samuel Benzaquen
e1e749322f
Add missing matchers to the dynamic registry.
...
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D4910
llvm-svn: 215757
2014-08-15 19:13:27 +00:00
Samuel Benzaquen
8e7f99647d
Add isDeleted() matcher for FunctionDecl nodes.
...
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D4911
llvm-svn: 215714
2014-08-15 14:20:59 +00:00