diff options
| author | Malcolm Parsons <malcolm.parsons@gmail.com> | 2016-11-28 11:11:34 +0000 |
|---|---|---|
| committer | Malcolm Parsons <malcolm.parsons@gmail.com> | 2016-11-28 11:11:34 +0000 |
| commit | 57ae857548bdf8928171aebb9508cb0d9e04ccfe (patch) | |
| tree | 0daadc3067bf32d30914fbbbd7936833284b1942 /clang/test | |
| parent | 6bed13c5514df06979eb49e096a6dc69942c8edf (diff) | |
| download | bcm5719-llvm-57ae857548bdf8928171aebb9508cb0d9e04ccfe.tar.gz bcm5719-llvm-57ae857548bdf8928171aebb9508cb0d9e04ccfe.zip | |
[Sema] Set range end of constructors and destructors in template instantiations
Summary:
clang-tidy checks frequently use source ranges of functions.
The source range of constructors and destructors in template instantiations
is currently a single token.
The factory method for constructors and destructors does not allow the
end source location to be specified.
Set end location manually after creating instantiation.
Reviewers: aaron.ballman, rsmith, arphaman
Subscribers: arphaman, cfe-commits
Differential Revision: https://reviews.llvm.org/D26849
llvm-svn: 288025
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Misc/ast-dump-decl.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/Misc/ast-dump-decl.cpp b/clang/test/Misc/ast-dump-decl.cpp index 9e94a308194..1cfcd509efa 100644 --- a/clang/test/Misc/ast-dump-decl.cpp +++ b/clang/test/Misc/ast-dump-decl.cpp @@ -223,6 +223,10 @@ namespace testClassTemplateDecl { class D { }; template<typename T> class TestClassTemplate { + public: + TestClassTemplate(); + ~TestClassTemplate(); + int j(); int i; }; @@ -252,10 +256,18 @@ namespace testClassTemplateDecl { // CHECK-NEXT: TemplateTypeParmDecl // CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate // CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate +// CHECK-NEXT: AccessSpecDecl{{.*}} public +// CHECK-NEXT: CXXConstructorDecl{{.*}} <line:{{.*}}:5, col:23> +// CHECK-NEXT: CXXDestructorDecl{{.*}} <line:{{.*}}:5, col:24> +// CHECK-NEXT: CXXMethodDecl{{.*}} <line:{{.*}}:5, col:11> // CHECK-NEXT: FieldDecl{{.*}} i // CHECK-NEXT: ClassTemplateSpecializationDecl{{.*}} class TestClassTemplate // CHECK-NEXT: TemplateArgument{{.*}}A // CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate +// CHECK-NEXT: AccessSpecDecl{{.*}} public +// CHECK-NEXT: CXXConstructorDecl{{.*}} <line:{{.*}}:5, col:23> +// CHECK-NEXT: CXXDestructorDecl{{.*}} <line:{{.*}}:5, col:24> +// CHECK-NEXT: CXXMethodDecl{{.*}} <line:{{.*}}:5, col:11> // CHECK-NEXT: FieldDecl{{.*}} i // CHECK: ClassTemplateSpecialization{{.*}} 'TestClassTemplate' // CHECK-NEXT: ClassTemplateSpecialization{{.*}} 'TestClassTemplate' @@ -269,11 +281,19 @@ namespace testClassTemplateDecl { // CHECK: ClassTemplateSpecializationDecl{{.*}} class TestClassTemplate // CHECK-NEXT: TemplateArgument{{.*}}C // CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate +// CHECK-NEXT: AccessSpecDecl{{.*}} public +// CHECK-NEXT: CXXConstructorDecl{{.*}} <line:{{.*}}:5, col:23> +// CHECK-NEXT: CXXDestructorDecl{{.*}} <line:{{.*}}:5, col:24> +// CHECK-NEXT: CXXMethodDecl{{.*}} <line:{{.*}}:5, col:11> // CHECK-NEXT: FieldDecl{{.*}} i // CHECK: ClassTemplateSpecializationDecl{{.*}} class TestClassTemplate // CHECK-NEXT: TemplateArgument{{.*}}D // CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate +// CHECK-NEXT: AccessSpecDecl{{.*}} public +// CHECK-NEXT: CXXConstructorDecl{{.*}} <line:{{.*}}:5, col:23> +// CHECK-NEXT: CXXDestructorDecl{{.*}} <line:{{.*}}:5, col:24> +// CHECK-NEXT: CXXMethodDecl{{.*}} <line:{{.*}}:5, col:11> // CHECK-NEXT: FieldDecl{{.*}} i // CHECK: ClassTemplatePartialSpecializationDecl{{.*}} class TestClassTemplatePartial |

