diff options
author | Jonathan Coe <jbcoe@me.com> | 2016-04-27 12:48:25 +0000 |
---|---|---|
committer | Jonathan Coe <jbcoe@me.com> | 2016-04-27 12:48:25 +0000 |
commit | 2956535b7c44fb4cf742667ec4b61cf176f9d32d (patch) | |
tree | 2e5cb14efb2deae8228fa30d6b554473b8262969 /clang/test/Index/index-file.cpp | |
parent | 7ac9628648c6ba72114d08c9669f00422f328533 (diff) | |
download | bcm5719-llvm-2956535b7c44fb4cf742667ec4b61cf176f9d32d.tar.gz bcm5719-llvm-2956535b7c44fb4cf742667ec4b61cf176f9d32d.zip |
Expose cxx constructor and method properties through libclang and python bindings.
Summary:
I have exposed the following function through libclang and the clang.cindex python bindings:
clang_CXXConstructor_isConvertingConstructor,
clang_CXXConstructor_isCopyConstructor,
clang_CXXConstructor_isDefaultConstructor,
clang_CXXConstructor_isMoveConstructor,
clang_CXXMethod_isDefaulted
I need (some of) these methods for a C++ code model I am building in Python to drive a code generator.
Reviewers: compnerd, skalinichev
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D15469
llvm-svn: 267706
Diffstat (limited to 'clang/test/Index/index-file.cpp')
-rw-r--r-- | clang/test/Index/index-file.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/Index/index-file.cpp b/clang/test/Index/index-file.cpp index f1ae68a2508..f2dbabbae7b 100644 --- a/clang/test/Index/index-file.cpp +++ b/clang/test/Index/index-file.cpp @@ -27,7 +27,18 @@ template class A<int>; class B { mutable int x_; int y_; + + B() = default; + B(int); + explicit B(double); + B(const B&); + B(B&&); +}; + +class C { + explicit C(const C&); }; + // RUN: c-index-test -index-file %s > %t // RUN: FileCheck %s -input-file=%t @@ -37,3 +48,9 @@ class B { // CHECK: [indexDeclaration]: kind: c++-instance-method | name: meth | {{.*}} | loc: 23:26 // CHECK: [indexDeclaration]: kind: field | name: x_ | USR: c:@S@B@FI@x_ | lang: C++ | cursor: FieldDecl=x_:28:15 (Definition) (mutable) | loc: 28:15 | semantic-container: [B:27:7] | lexical-container: [B:27:7] | isRedecl: 0 | isDef: 1 | isContainer: 0 | isImplicit: 0 // CHECK: [indexDeclaration]: kind: field | name: y_ | USR: c:@S@B@FI@y_ | lang: C++ | cursor: FieldDecl=y_:29:7 (Definition) | loc: 29:7 | semantic-container: [B:27:7] | lexical-container: [B:27:7] | isRedecl: 0 | isDef: 1 | isContainer: 0 | isImplicit: 0 +// CHECK: [indexDeclaration]: kind: constructor | name: B | {{.*}} (default constructor) (defaulted) | loc: 31:3 +// CHECK: [indexDeclaration]: kind: constructor | name: B | {{.*}} (converting constructor) | loc: 32:3 +// CHECK: [indexDeclaration]: kind: constructor | name: B | {{.*}} | loc: 33:12 +// CHECK: [indexDeclaration]: kind: constructor | name: B | {{.*}} (copy constructor) (converting constructor) | loc: 34:3 +// CHECK: [indexDeclaration]: kind: constructor | name: B | {{.*}} (move constructor) (converting constructor) | loc: 35:3 +// CHECK: [indexDeclaration]: kind: constructor | name: C | {{.*}} (copy constructor) | loc: 39:12 |