Malcolm Parsons
a3220ce6a3
Tracking exception specification source locations
...
Summary:
We do not currently track the source locations for exception specifications such
that their source range can be queried through the AST. This leads to trying to
write more complex code to determine the source range for uses like FixItHints
(see D18575 for an example). In addition to use within tools like clang-tidy, I
think this information may become more important to track as exception
specifications become more integrated into the type system.
Patch by Don Hinton.
Reviewers: rsmith
Subscribers: malcolm.parsons, sbarzowski, alexfh, hintonda, cfe-commits
Differential Revision: https://reviews.llvm.org/D20428
llvm-svn: 291771
2017-01-12 16:11:28 +00:00
Malcolm Parsons
57c09c8e23
[Sema] Store a SourceRange for multi-token builtin types
...
Summary:
clang-tidy's modernize-use-auto check uses the SourceRange of a
TypeLoc when replacing the type with auto.
This was producing the wrong result for multi-token builtin types
like long long:
-long long *ll = new long long();
+auto long *ll = new long long();
Reviewers: alexfh, hokein, rsmith, Prazek, aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25363
llvm-svn: 284885
2016-10-21 21:13:56 +00:00
Aaron Ballman
580ccaf827
Properly track the end location of an exception specification.
...
Patch by Adrian Zgorzałek
llvm-svn: 257521
2016-01-12 21:04:22 +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
Yunzhong Gao
eba323ab44
Fix a few line endings. NFC.
...
llvm-svn: 236301
2015-05-01 02:04:32 +00:00
Alexander Kornienko
34eb20725d
Use 'override/final' instead of 'virtual' for overridden methods
...
Summary:
The patch is generated using clang-tidy misc-use-override check.
This command was used:
tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py \
-checks='-*,misc-use-override' -header-filter='llvm|clang' -j=32 -fix
Reviewers: dblaikie
Reviewed By: dblaikie
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D8926
llvm-svn: 234678
2015-04-11 02:00:23 +00:00
Aaron Ballman
f4cb2be05a
Track the source location of the dot or arrow operator in a MemberExpr.
...
Patch by Joe Ranieri!
llvm-svn: 233085
2015-03-24 15:07:53 +00:00
Eli Bendersky
5f4d76efd3
Record correct source range for defaulted/deleted members.
...
Fixes https://llvm.org/bugs/show_bug.cgi?id=20744
struct A {
A() = default;
};
Previously the source range of the declaration of A ended at the ')'. It should
include the '= default' part as well. The same for '= delete'.
Note: this will break one of the clang-tidy fixers, which is going to be
addessed in a follow-up patch.
Differential Revision: http://reviews.llvm.org/D8465
llvm-svn: 233028
2015-03-23 21:43:28 +00:00
Fariborz Jahanian
a1db7df243
Obective-C. Patch to fix the incorrect ObjcMessageExpr argument source ranges,
...
when arguments are structures or classes. PR16392.
patch by Karlis Senko
llvm-svn: 214409
2014-07-31 17:39:50 +00:00
Nikola Smiljanic
4fc91538e9
Fix FriendDecl source location and range for class templates and function declarations that don't start with 'friend' keyword. Add more unittests.
...
llvm-svn: 213220
2014-07-17 01:59:34 +00:00
Nikola Smiljanic
357af64d78
Add first set of tests for FriendDecl source range and location.
...
llvm-svn: 210306
2014-06-06 04:40:35 +00:00
Peter Collingbourne
b8d17e7a3b
Correctly set brace range for CXXConstructExprs formed by list initialization.
...
Differential Revision: http://llvm-reviews.chandlerc.com/D2711
llvm-svn: 201926
2014-02-22 02:59:41 +00:00
Chandler Carruth
5553d0d4ca
Sort all the #include lines with LLVM's utils/sort_includes.py which
...
encodes the canonical rules for LLVM's style. I noticed this had drifted
quite a bit when cleaning up LLVM, so wanted to clean up Clang as well.
llvm-svn: 198686
2014-01-07 11:51:46 +00:00
Enea Zaffanella
76e98feb57
Fix missing source location in CXXTemporaryObjectExpr nodes.
...
For clarity, renamed (get/set)ParenRange as (get/set)ParenOrBraceRange
in CXXConstructExpr nodes.
Added testcase.
llvm-svn: 190239
2013-09-07 05:49:53 +00:00
Enea Zaffanella
25723ce6fc
Fix source range of implicitly instantiated friend declaration.
...
llvm-svn: 186702
2013-07-19 18:02:36 +00:00
Enea Zaffanella
c70b2519d5
Fixed source range of C++03 access declarations.
...
llvm-svn: 186522
2013-07-17 17:28:56 +00:00
Enea Zaffanella
4c409494d8
Fixed testcase failing under MS by adding "-fno-delayed-template-parsing",
...
as suggested by Takumi. To this end, added a MatchVerifier::match()
overload accepting a vector of invocation arguments.
llvm-svn: 185827
2013-07-08 14:50:30 +00:00
NAKAMURA Takumi
58c821a0d9
AST/SourceLocationTest.cpp: Appease MS hosts to suppress CXXUnresolvedConstructExpr.SourceRange, for now.
...
FIXME: It could pass if MS-compatible mode were disabled with Args.push_back("-fno-delayed-template-parsing").
llvm-svn: 185795
2013-07-08 06:38:46 +00:00
Enea Zaffanella
8421a06314
Fixed source range for functional cast and unresolved construct expr nodes.
...
Added testcases.
llvm-svn: 185773
2013-07-07 06:41:54 +00:00
Enea Zaffanella
a90af72e8f
Fixed source location info for UnaryTransformTypeLoc nodes.
...
llvm-svn: 185765
2013-07-06 18:54:58 +00:00
Eli Friedman
2dcbdc0606
Fix source range of CXXNewExpr with parentheses around the type. PR15569.
...
llvm-svn: 184139
2013-06-17 22:35:10 +00:00
Eli Friedman
7152fbe57e
Re-commit r183466 with a fix to make the TypeLoc casting machinery work
...
correctly in the presence of qualified types.
(I had to change the unittest because it was trying to cast a
QualifiedTypeLoc to TemplateSpecializationTypeLoc.)
llvm-svn: 183563
2013-06-07 20:31:48 +00:00
Manuel Klimek
8122830a67
Adds a test that verifies angle bracket locations.
...
Regression test to make sure TemplateSpecializationTypeLocs have the
correct locations for angle brackets.
llvm-svn: 183514
2013-06-07 11:27:57 +00:00
Tanya Lattner
713eef4f7c
Add an error to check that all program scope variables are in the constant address space in OpenCL.
...
llvm-svn: 178906
2013-04-05 20:14:50 +00:00
Richard Smith
9ca910111c
PR15095: Use more correct source locations for the InitListExpr we fake up for
...
vector initialization. Patch by John Stratton!
llvm-svn: 174339
2013-02-05 05:55:57 +00:00
Manuel Klimek
aa58b97235
Move commonly useful code for AST testing into MatchVerfier.h.
...
llvm-svn: 174057
2013-01-31 13:10:40 +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
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