ef8225444452a1486bd721f3285301fe84643b00 |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for rebase to r212749. This also fixes a small issue with arm_neon.h not being generated always. Includes a cherry-pick of: r213450 - fixes mac-specific header issue r213126 - removes a default -Bsymbolic on Android Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
651f13cea278ec967336033dd032faef0e9fc2ec |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
6c1dc7870f457803a9b256ed868da82532be820b |
|
18-Nov-2013 |
Samuel Benzaquen <sbenza@google.com> |
Add partial support for the hasDeclaration() matcher in the dynamic layer. Summary: Add partial support for the hasDeclaration() matcher in the dynamic layer. This matcher has some special logic to allow any type that has a getDecl() method. We do not support this right now. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D1889 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
3f0e0402d8cd40b428f975f1a3607dbbd94d2ca6 |
|
06-Nov-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Introduce BoundNodes::getMap. The purpose of this function is to allow clients of the dynamic AST matcher to enumerate each binding. Differential Revision: http://llvm-reviews.chandlerc.com/D2095 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
b7488d77414b000ce2506b520a6b29f845fb3950 |
|
29-Oct-2013 |
Samuel Benzaquen <sbenza@google.com> |
Resubmit "Refactor DynTypedMatcher into a value type class, just like Matcher<T>." Summary: This resubmits r193100, plus a fix for a breakage with MSVC. Reviewers: klimek, rnk CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D2005 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
c30bf45115860b8de8628295f0d9cd86998841de |
|
22-Oct-2013 |
Reid Kleckner <reid@kleckner.net> |
Revert "Refactor DynTypedMatcher into a value type class, just like Matcher<T>." This reverts commit r193100. It was failing to compile with MSVC 2012 while instantiating llvm::Optional<DynTypedMatcher>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
341b5df7f859e640c2ea2f35c0fff553ec55ada4 |
|
21-Oct-2013 |
Samuel Benzaquen <sbenza@google.com> |
Refactor DynTypedMatcher into a value type class, just like Matcher<T>. Summary: Refactor DynTypedMatcher into a value type class, just like Matcher<T>. This simplifies its usage and removes the virtual hierarchy from Matcher<T>. It also enables planned changes to replace MatcherInteface<T>. Too many instantiaions of this class hierarchy has been causing Registry.cpp.o to bloat in size and number of symbols. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D1661 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
7156ffff6de12d8a14b0597f1ca5053115cf5773 |
|
03-Sep-2013 |
Samuel Benzaquen <sbenza@google.com> |
Remove DynCastMatcher, since it is pretty much the same as Matcher<T>::WrappedMatcher. Summary: Remove DynCastMatcher, since it is pretty much the same as Matcher<T>::WrappedMatcher. This reduces the number of template instantiations and number of symbols in the object file. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D1560 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
4e899d9b0b5aa31b0a3704374d245fc345c19fa8 |
|
30-Aug-2013 |
Samuel Benzaquen <sbenza@google.com> |
Reduce the number of symbols by changing how templates are instantiated per function bound in the registry. Summary: Reduce the number of symbols by changing how templates are instantiated per function bound in the registry. This change reduces the number of sections in Registry.cpp.o by a little over 10%. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D1557 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
d36e46350b50907425bba0db1b3ddfb46cc1637f |
|
27-Aug-2013 |
Samuel Benzaquen <sbenza@google.com> |
Rewrite eachOf/allOf/anyOf to use a variadic operator. Summary: Rewrite eachOf/allOf/anyOf to use a variadic operator, instead of hand-written calls to Polymorphic matchers. This simplifies their definition and future changes to add them to the dynamic registry. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D1427 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
ee0da9520fe94f701240e9e1c97773ee412be102 |
|
16-Aug-2013 |
Samuel Benzaquen <sbenza@google.com> |
Refactor ArgumentAdaptativeMatcher matchers to remove the template from their declaration. Summary: Refactor ArgumentAdaptativeMatcher matchers to remove the template from their declaration. This facilitates dynamic registration. Change the registry code to use the regular overload resolution mechanism for adaptative matchers. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D1402 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
6de440e1989ee7932c942dcba85e862c31bf4604 |
|
24-Jul-2013 |
Samuel Benzaquen <sbenza@google.com> |
Add support for Adaptative matchers on the dynamic registry. Summary: Add support for Adaptative matchers on the dynamic registry. Each adaptative matcher is created with a function template. We instantiate the function N times, one for each possible From type and apply the techniques used on argument overloaded and polymorphic matchers to add them to the registry. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D1201 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
3f84bb341bfb1312842b09db71d76bc3898ba247 |
|
15-Jul-2013 |
Samuel Benzaquen <sbenza@google.com> |
Add support for type traversal matchers. Summary: Fixup the type traversal macros/matchers to specify the supported types. Make the marshallers a little more generic to support any variadic function. Update the doc script. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D1023 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
ef7eb024397a6a9d1455b31bc7b10288a817ac3b |
|
21-Jun-2013 |
Samuel Benzaquen <sbenza@google.com> |
Add support for polymorphic matchers. Use runtime type checking to determine the right polymorphic overload to use. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
76c2f92c4b4ab7e02857661a05e53ba4b501d87a |
|
20-Jun-2013 |
Samuel Benzaquen <sbenza@google.com> |
Enhancements for the DynTypedMatcher system. - Added conversion routines and checks in Matcher<T> that take a DynTypedMatcher. - Added type information on the error messages for the marshallers. - Allows future work on Polymorphic/overloaded matchers. We should be able to disambiguate at runtime and choose the appropriate overload. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
cf52ca6bb6dd76a1bd967bc422287fafafa1e45a |
|
20-Jun-2013 |
Manuel Klimek <klimek@google.com> |
Adds the equalsBoundNode matcher. Most of the tests contributed by Edwin Vane. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
054d049174eb1ec8e93a4a0831c0d8caac00cb3a |
|
19-Jun-2013 |
Manuel Klimek <klimek@google.com> |
Completely revamp node binding for AST matchers. This is in preparation for the backwards references to bound nodes, which will expose a lot more about how matches occur. Main changes: - instead of building the tree of bound nodes, we build a "set" of bound nodes and explode all possible match combinations while running through the matchers; this will allow us to also implement matchers that filter down the current set of matches, like "equalsBoundNode" - take the set of bound nodes at the start of the match into consideration when doing memoization; as part of that, reevaluated that memoization gives us benefits that are large enough (it still does - the effect on common match patterns is up to an order of magnitude) - reset the bound nodes when a node does not match, thus never leaking information from partial sub-matcher matches for failing matchers Effects: - we can now correctly "explode" combinatorial matches, for example: allOf(forEachDescendant(...bind("a")), forEachDescendant(...bind("b"))) will now trigger matches for all combinations of matching "a" and "b"s. - we now never expose bound nodes from partial matches in matchers that did not match in the end - this fixes a long-standing issue FIXMEs: - rename BoundNodesTreeBuilder to BoundNodesBuilder or BoundNodesSetBuilder, as we don't build a tree any more; this is out of scope for this change, though - we're seeing some performance regressions (around 10%), but I expect some performance tuning will get that back, and it's easily worth the increase in expressiveness for now git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
4f37d925927dfdd0c770702ffb22de38fc2007dc |
|
03-Jun-2013 |
Samuel Benzaquen <sbenza@google.com> |
Add support for .bind("foo") expressions on the dynamic matchers. Summary: Add support on the parser, registry, and DynTypedMatcher for binding IDs dynamically. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D911 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
f7f295f321fd434e1e542844a71f538a56f2f8fb |
|
14-May-2013 |
Manuel Klimek <klimek@google.com> |
First revision of the dynamic ASTMatcher library. This library supports all the features of the compile-time based ASTMatcher library, but allows the user to specify and construct the matchers at runtime. It contains the following modules: - A variant type, to be used by the matcher factory. - A registry, where the matchers are indexed by name and have a factory method with a generic signature. - A simple matcher expression parser, that can be used to convert a matcher expression string into actual matchers that can be used with the AST at runtime. Many features where omitted from this first revision to simplify this code review. The main ideas are still represented in this change and it already has support working use cases. Things that are missing: - Support for polymorphic matchers. These requires supporting code in the registry, the marshallers and the variant type. - Support for numbers, char and bool arguments to the matchers. This requires supporting code in the parser and the variant type. - A command line program putting everything together and providing an already functional tool. Patch by Samuel Benzaquen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
6a19a97e57c8678adb0505a07c97d7ccadc8fe4e |
|
06-Mar-2013 |
Edwin Vane <edwin.vane@intel.com> |
New ASTMatchers and enhancement to hasOverloadedOperatorName Added two new narrowing matchers: * hasMethod: aplies a matcher to a CXXRecordDecl's methods until a match is made or there are no more methods. * hasCanonicalType: applies a matcher to a QualType's canonicalType. Enhanced hasOverloadedOperatorName to work on CXXMethodDecl as well as CXXOperatorCallExpr. Updated tests and docs. Reviewers: klimek, gribozavr git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
ff9a01000ff74a994aa3da26ea2ec732c97291b7 |
|
28-Feb-2013 |
Manuel Klimek <klimek@google.com> |
First step towards adding a parent map to the ASTContext. This does not yet implement the LimitNode approach discussed. The impact of this is an O(n) in the number of nodes in the AST reduction of complexity for certain kinds of matchers (as otherwise the parent map gets recreated for every new MatchFinder). See FIXMEs in the comments for the direction of future work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
3abf77872ca6c520903f9174cf6cd89a50df2714 |
|
25-Feb-2013 |
Edwin Vane <edwin.vane@intel.com> |
Adding hasDeclaration overload for TemplateSpecializationType TemplateSpecializationType doesn't quite have getDecl(). Need to go through TemplateName to get a TemplateDecl. Added test cases for the hasDeclaration() overload for TemplateSpecializationType. Also introduced the type matcher templateSpecializationType() used by the new hasDeclaration() test case. Updated LibASTMatchersReference. Reviewers: klimek git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
b45083d08377a8b9528401fdafd7210e78895dbe |
|
25-Feb-2013 |
Edwin Vane <edwin.vane@intel.com> |
Support in hasDeclaration for types with getDecl() Re-introducing r175532. The has_getDecl metafunction didn't compile with Visual Studio. This revision uses approaches has_getDecl from a different angle that isn't a problem for Visual Studio. Added dedicated tests for the metafunction. Reviewers: klimek git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176024 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
1b354b868c1aa227619d81e299fe6e384e1999b7 |
|
25-Feb-2013 |
Edwin Vane <edwin.vane@intel.com> |
Reverting r176019. Corrupt patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
0b6f23a23c55b7024e7a0edca1fecf9bd4c380a1 |
|
25-Feb-2013 |
Edwin Vane <edwin.vane@intel.com> |
Support in hasDeclaration for types with getDecl() Re-introducing r175532. The has_getDecl metafunction didn't compile with Visual Studio. This revision approaches has_getDecl from a different angle that isn't a problem for Visual Studio. Added dedicated tests for the metafunction. Reviewers: klimek git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
c9088966de61c4958efbb7b635dad78d779ac6e6 |
|
22-Feb-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Removing has_getDecl (added in r175532). It cause a build break for MSVC, and was not yet being used in the codebase. If we start using std::enable_if, we can look into resurrecting the idea in a more portable fashion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
523806028d812a7f29636c59a8bc0e7e3d3fd9ae |
|
19-Feb-2013 |
Edwin Vane <edwin.vane@intel.com> |
Support in hasDeclaration for types with getDecl() Using a new metafunction for detecting the presence of the member 'getDecl' in a type T, added support to hasDeclaration for any such type T. This allows hasDecl() to be replaced and enables several other subclasses of clang::Type to use hasDeclaration. Updated unittests and LibASTMatchersReference.html. Reviewers: klimek git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
415514d5fbc2761b7f2938aa9112b079249820d6 |
|
06-Feb-2013 |
Manuel Klimek <klimek@google.com> |
Cleanup of ASTMatcher macros and adding support for overloaded matchers. This is in preparation for adding other overloaded matchers. This change alone is a net win in LOC. I went through all matchers and looked whether we could now encode them as macro, or simplify them with the matcher atoms that were not available before. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
7387673f83b8b37f660422947c9990778ba88193 |
|
04-Feb-2013 |
Manuel Klimek <klimek@google.com> |
Add an eachOf matcher. eachOf gives closure on the forEach and forEachDescendant matchers. Before, it was impossible to implement a findAll matcher, as matching the node or any of its descendants was not expressible (since anyOf only triggers the first match). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
cfa88f893915ceb8ae4ce2f17c46c24a4d67502f |
|
12-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Remove useless 'llvm::' qualifier from names like StringRef and others that are brought into 'clang' namespace by clang/Basic/LLVM.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
189f2e421d06526ea8b4a3dcd9f4a072e10a859c |
|
03-Dec-2012 |
Daniel Jasper <djasper@google.com> |
Make hasDeclaration work for enums. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
7f2d4804510799a1a19d72b2b089e48370ab8686 |
|
30-Nov-2012 |
Manuel Klimek <klimek@google.com> |
Allow matchers to access the ASTContext. Patch by Edwin Vane. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
11c98771ba5d7fb1ec5707f9e1c77a6cf65bbc59 |
|
11-Nov-2012 |
Daniel Jasper <djasper@google.com> |
Fix binding of nodes in case of forEach..() matchers. When recursively visiting the generated matches, the aggregated bindings need to be copied during the recursion. Otherwise, we they might not be properly overwritten (which is shown by the test), or there might be bound nodes present that were bound on a different matching branch. Review: http://llvm-reviews.chandlerc.com/D112 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
d1ce3c178b9c648687591b190e0d252124fc2459 |
|
30-Oct-2012 |
Daniel Jasper <djasper@google.com> |
Implement descendant matchers for NestedNamespecifiers This implements has(), hasDescendant(), forEach() and forEachDescendant() for NestedNameSpecifier and NestedNameSpecifierLoc matchers. Review: http://llvm-reviews.chandlerc.com/D86 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
a267cf6f87dc695143d65fc61ec1744564f55932 |
|
29-Oct-2012 |
Daniel Jasper <djasper@google.com> |
Implement has(), hasDescendant(), forEach() and forEachDescendant() for Types, QualTypes and TypeLocs. Review: http://llvm-reviews.chandlerc.com/D83 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
c711af2ddbbb1d46223cc9379d32a203fb5bc7f4 |
|
23-Oct-2012 |
Daniel Jasper <djasper@google.com> |
Make hasDeclaration() matcher work inside the memberExpr() matcher. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
c99a3ad8c2bf29da45a0c64b88d58bfbd2f78ef2 |
|
22-Oct-2012 |
Daniel Jasper <djasper@google.com> |
Implement hasParent()-matcher. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
ce62007526cdf718faed10df5e9fc7c3cd160cde |
|
17-Oct-2012 |
Daniel Jasper <djasper@google.com> |
First version of matchers for Types and TypeLocs. Review: http://llvm-reviews.chandlerc.com/D47 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
b54b7646b2d00a85d80e40adf7c49553f150c736 |
|
20-Sep-2012 |
Daniel Jasper <djasper@google.com> |
Add some matchers for basic AST nodes. Patch by Gábor Horváth. Review: http://llvm-reviews.chandlerc.com/D45 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
b3278162bd6d34783607d4bfe8814df73e8ef8c1 |
|
20-Sep-2012 |
Daniel Jasper <djasper@google.com> |
Provide better error messages for incorrect matchers. By changing the conversion operator into a conversion constructor, we can enabled based on the template parameters leading to better error messages. E.g.: stmt(decl()) will now create an error message including: note: candidate function not viable: no known conversion from 'clang::ast_matchers::internal::BindableMatcher<clang::Decl>' to 'const clang::ast_matchers::internal::Matcher<clang::Stmt>' for 1st argument git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
f56faa01936b9cf909623d7f06e3c2569ca4a78e |
|
15-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
a7564433191601cb8851196b8dde39392c9c05ee |
|
13-Sep-2012 |
Daniel Jasper <djasper@google.com> |
Create initial support for matching and binding NestedNameSpecifier(Loc)s. Review: http://llvm-reviews.chandlerc.com/D39 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
579b120038ca817e0ce423303ebc1b4e0c6cbbe1 |
|
07-Sep-2012 |
Manuel Klimek <klimek@google.com> |
Implements hasAncestor. Implements the hasAncestor matcher. This builds on the previous patch that introduced DynTypedNode to build up a parent map for an additional degree of freedom in the AST traversal. The map is only built once we hit an hasAncestor matcher, in order to not slow down matching for cases where this is not needed. We could implement some speed-ups for special cases, like building up the parent map as we go and only building up the full map if we break out of the already visited part of the tree, but that is probably not going to be worth it, and would make the code significantly more complex. Major TODOs are: - implement hasParent - implement type traversal - implement memoization in hasAncestor git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
a78d0d6203a990b88c9c3e4c4f2a277001e8bd46 |
|
05-Sep-2012 |
Manuel Klimek <klimek@google.com> |
Introduces DynTypedMatcher as a new concept that replaces the UntypedBaseMatcher and TypedMatcher. Due to DynTypedNode the basic dynamically typed matcher interface can now be simplified. Also switches the traversal interfaces to use DynTypedNode; this is in preperation for the hasAncestor implementation, and also allows us to need fewer changes when we want to add new nodes to traverse, thus making the code a little more decoupled. Main design concerns: I went back towards the original design of getNodeAs to return a pointer, and switched DynTypedNode::get to always return a pointer (in case of value types like QualType the pointer points into the storage of DynTypedNode, thus allowing us to treat all the nodes the same from the point of view of a user of the DynTypedNodes. Adding the QualType implementation for DynTypedNode was needed for the recursive traversal interface changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
66341c596f93d0c6475d839db94072b8ebd1cf5b |
|
30-Aug-2012 |
Manuel Klimek <klimek@google.com> |
Fixes a bug for binding memoized match results. Intorduces an abstraction for DynTypedNode which makes is impossible to create in ways that introduced the bug; also hides the implementation details of the template magic away from the user and prepares the code for adding QualType and TypeLoc bindings, as well as using DynTypedNode instead of overloads for child and ancestor matching. getNodeAs<T> was changed towards a non-pointer type, as we'll want QualType and TypeLoc nodes to be returned by value (the alternative would be to create new storage which is prohibitively costly if we want to use it for child / ancestor matching). DynTypedNode is moved into a new header ASTTypeTraits.h, as it is completely independent of the rest of the matcher infrastructure - if the need comes up, we can move it to a more common place. The interface for users before the introduction of the common storage change remains the same, minus the introduced bug, for which a regression test was added. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
ec2a396c6f11b4017e30f1865f7b62c5a42425b8 |
|
29-Aug-2012 |
Manuel Klimek <klimek@google.com> |
Modifes BoundNodes to store void* and allow casting them into the correct types when pulling them out in the result callback in a type safe way. This is also the base change for multiple things that will allow handling things more generally and thus supporting more of the AST, especially handling Type nodes. Patch contributed by Michael Diamond. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
8456ae602783b615019a42f7d5c6f0e71639b11b |
|
17-Aug-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
AST Matchers: introduce functionTemplate(), classTemplate() and isExplicitTemplateSpecialization() matchers which do what their name says. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
9f17408d50c1d76c5eab435e4ceb924cc10757ab |
|
24-Jul-2012 |
Manuel Klimek <klimek@google.com> |
Introduces a new concept for binding results to matchers as per Chandler's request: - introduces a new matcher base type BindableMatcher that provides the bind() call - makes all dynamic-cast matcher creation functions return BindableMatchers; the special case about dynamic-cast matchers is that the node they match on and the node their child matchers match on are the same node, just casted to a different type; thus, there is no ambiguity on what bind() matches on; additionally, those are the matchers that we name with nouns in the matcher language, so it's easy for users to intuitively know which matchers are bindable To make this change possible, we got rid of a non-orthogonal implementation of thisPointerType, which had an implicit dynamic-cast matcher from CallExpr to CXXMemberCallExpr; as alternative, we now provide a memberCall dynamic-cast matcher and thisPointerType is a predicate on CXXMemberCallExpr. Last, the ArgumentAdaptingMatcher is actually not required for the implementation of makeDynCastAllOfComposite - this simplification makes it more obvious where the bind() call can be used based on the matcher creation function types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
20b802d186dfc5db9b4a9ce83e9f31fa5aa4efcc |
|
17-Jul-2012 |
Daniel Jasper <djasper@google.com> |
Make the isDerivedFrom matcher more generic. It now accepts an arbitrary inner matcher but is fully backwards compatible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
2db5abb43b7a7fce4771063f6a5de561780c1335 |
|
11-Jul-2012 |
Daniel Jasper <djasper@google.com> |
Move CompileAssert into namespace clang::ast_matchers:: to avoid naming collisions until it is properly integrated in llvm/Support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
e0e6b9e79a0c4edae92abd3928263875c78e23aa |
|
10-Jul-2012 |
Daniel Jasper <djasper@google.com> |
Add more matchers and do cleanups. Reviewers: klimek Differential Revision: http://ec2-50-18-127-156.us-west-1.compute.amazonaws.com/D2 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|
4da216637fa1ad4bdfd31bc265edb57ca35c2c12 |
|
06-Jul-2012 |
Manuel Klimek <klimek@google.com> |
Adds the AST Matcher library, which provides a in-C++ DSL to express matches on interesting parts of the AST, and callback mechanisms to act on them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
|