Manuel Klimek
c844a46e77
Implements multiple parents in the parent map.
...
Previously we would match the last visited parent, which in the
case of template instantiations was the last instantiated template.
llvm-svn: 169508
2012-12-06 14:42:48 +00:00
Daniel Jasper
26333c3b6b
Improve clang-format's handling of unary operators.
...
llvm-svn: 169500
2012-12-06 13:16:39 +00:00
Daniel Jasper
e9de260418
"<<" alignment for clang-format.
...
Also, small fix for handling the first token correctly.
Review: http://llvm-reviews.chandlerc.com/D177
llvm-svn: 169488
2012-12-06 09:56:08 +00:00
Fariborz Jahanian
de872af437
In DeclPrint add printing of '= default'
...
in constructors.
llvm-svn: 169440
2012-12-05 22:53:06 +00:00
Fariborz Jahanian
69c403c5c9
In DeclPrint add printing of 'explicit'
...
constructors.
llvm-svn: 169435
2012-12-05 22:19:06 +00:00
Fariborz Jahanian
ae638b3f91
fix comment.
...
llvm-svn: 169413
2012-12-05 20:10:11 +00:00
Fariborz Jahanian
14ef4790d1
Testing C++ declarations embedded in
...
<declaration> tag of Comment XML.
Added DeclPrint support for constructors
and fix tests accordingly.
This is wip. // rdar://12378714
llvm-svn: 169412
2012-12-05 19:54:11 +00:00
Alexander Kornienko
37d6c94e28
Clang-format: parse for and while loops
...
Summary: Adds support for formatting for and while loops.
Reviewers: djasper, klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D174
llvm-svn: 169387
2012-12-05 15:06:06 +00:00
Daniel Jasper
aa1c920db8
Indentation fixes for clang-format.
...
- Fix behavior of memoization together with optimization
- Correctly attribute the PenaltyIndentLevel (breaking directly after "(" did
not count towards the inner level)
- Recognize more tokens as assignments
Review: http://llvm-reviews.chandlerc.com/D172
llvm-svn: 169384
2012-12-05 14:57:28 +00:00
Daniel Jasper
426702dcd0
Small tweaks to automatic formatting.
...
Recognize '!=' as a binary operator and assume that there are no
type definitions on the RHS of an assignment.
llvm-svn: 169363
2012-12-05 07:51:39 +00:00
Alexander Kornienko
870f9eb9cc
Error recovery part 2
...
Summary: Adds recovery for structural errors in clang-format.
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, silvas
Differential Revision: http://llvm-reviews.chandlerc.com/D164
llvm-svn: 169286
2012-12-04 17:27:50 +00:00
Alexander Kornienko
0ea8e107fc
Clang-format error recovery part 1
...
Reviewers: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D163
llvm-svn: 169278
2012-12-04 15:40:36 +00:00
Alexander Kornienko
b7076a2308
Enum formatting implementation
...
Reviewers: djasper, klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D161
llvm-svn: 169272
2012-12-04 14:46:19 +00:00
Manuel Klimek
6137942d09
Fix spelling I ran over while proof-reading tests.
...
llvm-svn: 169271
2012-12-04 14:42:08 +00:00
Manuel Klimek
5472a52c20
Fixes crash in isDerivedFrom for recursive templates.
...
llvm-svn: 169262
2012-12-04 13:40:29 +00:00
Daniel Jasper
8b5297117b
Small fixes to unary operator recognition and handling of include
...
directives.
llvm-svn: 169261
2012-12-04 13:02:32 +00:00
Daniel Jasper
9f501295bd
Add parameterCountIs() matcher.
...
llvm-svn: 169257
2012-12-04 11:54:27 +00:00
Daniel Jasper
9b155475a8
Replace workarounds with correct fixes.
...
Also fix header guard.
http://llvm-reviews.chandlerc.com/D159
llvm-svn: 169254
2012-12-04 10:50:12 +00:00
Chandler Carruth
fa0b3bb7ec
Really sort the #include lines in unittests/...
...
I forgot to re-sort after fixing main module headers.
llvm-svn: 169244
2012-12-04 09:53:37 +00:00
Chandler Carruth
320d9666ee
Sort the #include lines for unittests/...
...
I've tried to place sensible headers at the top as main-module headers.
llvm-svn: 169243
2012-12-04 09:45:34 +00:00
NAKAMURA Takumi
1f58e8e194
ASTTests, ASTMatchersTests: Move clangEdit before clangAst in USEDLIB.
...
llvm-svn: 169236
2012-12-04 08:20:41 +00:00
NAKAMURA Takumi
b25f3f7dcb
Untabify (in USEDLIBS, Makefile(s)).
...
llvm-svn: 169235
2012-12-04 08:20:35 +00:00
NAKAMURA Takumi
0e0c3aa560
clang/Lex: [CMake] Update CMakefiles since r169229.
...
llvm-svn: 169233
2012-12-04 07:40:33 +00:00
Argyrios Kyrtzidis
f3d587ea7c
Refactor recording the preprocessor conditional directive regions out of
...
PreprocessingRecord and into its own class, PPConditionalDirectiveRecord.
Decoupling allows a client to use the functionality of PPConditionalDirectiveRecord
without needing a PreprocessingRecord.
llvm-svn: 169229
2012-12-04 07:27:05 +00:00
Argyrios Kyrtzidis
251ad5e06b
Introduce CompilationDatabase::getAllCompileCommands() that returns all
...
compile commands of the database and expose it via the libclang API.
llvm-svn: 169226
2012-12-04 07:26:44 +00:00
Daniel Jasper
f793511579
Initial version of formatting library.
...
This formatting library will be used by a stand-alone clang-format tool
and can also be used when writing other refactorings.
Manuel's original design document:
https://docs.google.com/a/google.com/document/d/1gpckL2U_6QuU9YW2L1ABsc4Fcogn5UngKk7fE5dDOoA/edit
The library can already successfully format itself.
Review: http://llvm-reviews.chandlerc.com/D80
llvm-svn: 169137
2012-12-03 18:12:45 +00:00
Daniel Jasper
856194d00c
Make hasDeclaration work for enums.
...
llvm-svn: 169129
2012-12-03 15:43:25 +00:00
Benjamin Kramer
e5015e57c2
Update unit tests not to rely on transitive includes.
...
llvm-svn: 169096
2012-12-01 17:22:05 +00:00
Douglas Gregor
8c05893746
Fix unit tests for ModuleLoader change in r168961.
...
llvm-svn: 168962
2012-11-30 00:01:57 +00:00
Richard Smith
f41d237bf6
Remove out-of-date comment.
...
llvm-svn: 168957
2012-11-29 23:09:57 +00:00
NAKAMURA Takumi
c2b2b75bd5
ASTTests/StmtPrinterTest/StmtPrinter.TestMSIntegerLiteral: Remove i128 stuff. Conditioning-out in macro argument was not accepted on MS cl.exe.
...
llvm-svn: 168867
2012-11-29 10:22:40 +00:00
NAKAMURA Takumi
b2df62570e
ASTTests/StmtPrinterTest/StmtPrinter.TestMSIntegerLiteral: Suppress i128 according to r168856, for now.
...
I think "i128", that I conditioned out, could be completely removed.
MS Compiler doesn't accept i128. We can assume no one would use i128.
llvm-svn: 168865
2012-11-29 09:57:11 +00:00
Richard Smith
9219d1b764
Allow an ASTConsumer to selectively skip function bodies while parsing. Patch
...
by Olivier Goffart!
llvm-svn: 168726
2012-11-27 21:31:01 +00:00
Daniel Jasper
94a56856d2
Fix partial-match-bind-behavior with forEachDescendant() matchers.
...
The problem is that a partial match of an (explicit or implicit) allOf matcher
binds results, i.e.
recordDecl(decl().bind("x"), hasName("A"))
can very well bind a record that is not named "A". With this fix, the common
cases of stumbling over this bug are fixed by the BoundNodesMap overwriting the
results of a partial match. An error can still be created with a weird
combination of anyOf and allOf (see inactive test). We need to decide whether
this is worth fixing, as the fix will have performance impact.
Review: http://llvm-reviews.chandlerc.com/D124
llvm-svn: 168177
2012-11-16 18:39:22 +00:00
NAKAMURA Takumi
fe40a35075
clang/unittests: Fixup corresponding to Doug's r168136.
...
llvm-svn: 168137
2012-11-16 04:40:11 +00:00
Daniel Jasper
0f9f019ff8
Do not use data recursion in ASTMatchFinder.
...
The matchers rely on the complete AST being traversed as shown by the new test cases.
llvm-svn: 168022
2012-11-15 03:29:05 +00:00
Daniel Jasper
33806cdefc
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
llvm-svn: 167695
2012-11-11 22:14:55 +00:00
David Blaikie
3a0de21233
Fix a source range regression in C++ new expressions with call initializers.
...
Introduced in r167507, discovered in review by Abramo Bagnara.
llvm-svn: 167597
2012-11-08 22:53:48 +00:00
Abramo Bagnara
341ab737e9
Fixed converted ConstantArrayTypeLoc range. Added a missing testcase for ConstructorDecl source range.
...
llvm-svn: 167583
2012-11-08 14:44:42 +00:00
Abramo Bagnara
9b836fb019
Fixed range of implicit MemberExpr.
...
llvm-svn: 167581
2012-11-08 13:52:58 +00:00
David Blaikie
b9db60fbce
Test for source location range of new expressions fixed in r167507.
...
Patch by Philip Craig.
llvm-svn: 167538
2012-11-07 17:17:07 +00:00
Manuel Klimek
e6de22d3dc
Add unit tests for source locations of AST nodes.
...
Patch by Philip Craig.
llvm-svn: 167470
2012-11-06 17:31:40 +00:00
Benjamin Kramer
f9db130715
Escape trigraphs in unittest.
...
llvm-svn: 167359
2012-11-03 20:58:26 +00:00
Manuel Klimek
bd0e2b7111
Insert interception point onStartOfTranslationUnit.
...
Often users of the ASTMatchers want to add tasks that are done once per
translation unit, for example, cleaning up caches. Combined with the
interception point for the end of source file one can add to the factory
creation, this covers the cases we've seen users need.
llvm-svn: 167271
2012-11-02 01:31:03 +00:00
Argyrios Kyrtzidis
2edbc86809
Make the FilenameRange of the InclusionDirective callback more accurate,
...
preserve the macro location of the range end if the filename came from a macro.
Patch by Kim Gräsman!
llvm-svn: 167239
2012-11-01 17:52:58 +00:00
Daniel Jasper
6fc3433b15
Implement descendant matchers for NestedNamespecifiers
...
This implements has(), hasDescendant(), forEach() and
forEachDescendant() for NestedNameSpecifier and NestedNameSpecifierLoc
matchers.
Review: http://llvm-reviews.chandlerc.com/D86
llvm-svn: 167017
2012-10-30 15:42:00 +00:00
Daniel Jasper
e9aa6878c9
Fix ASTMatchersTests to not create an overloaded-virtual warning.
...
llvm-svn: 166921
2012-10-29 10:48:25 +00:00
Daniel Jasper
d29d5fa3f2
Implement has(), hasDescendant(), forEach() and forEachDescendant() for
...
Types, QualTypes and TypeLocs.
Review: http://llvm-reviews.chandlerc.com/D83
llvm-svn: 166917
2012-10-29 10:14:44 +00:00
NAKAMURA Takumi
95fd41aeac
unittests/ToolingTest.cpp: Suppress newFrontendActionFactory.InjectsEndOfSourceFileCallback on Win32 for now. Investigating.
...
llvm-svn: 166674
2012-10-25 09:38:41 +00:00
Manuel Klimek
8246d87db0
Adds the possibility to inject a callback that's called after each translation unit is processed.
...
This is important when one wants to deduplicate results during one run over a translation unit by pointer identity of AST nodes.
llvm-svn: 166671
2012-10-25 08:49:11 +00:00