diff options
author | Ted Kremenek <kremenek@apple.com> | 2010-08-27 21:34:58 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2010-08-27 21:34:58 +0000 |
commit | ae9e2215133d89d28a03b79ff70da85868a50129 (patch) | |
tree | e62d30baa1085d437a77d7f8fd9a3e983a1d351a /clang/tools/c-index-test/c-index-test.c | |
parent | 2c2c5f3789a969fac1166a57164ab3cec5b9fcfa (diff) | |
download | llvm-ae9e2215133d89d28a03b79ff70da85868a50129.zip llvm-ae9e2215133d89d28a03b79ff70da85868a50129.tar.gz llvm-ae9e2215133d89d28a03b79ff70da85868a50129.tar.bz2 |
Implement CXCursor support for walking C++ base specifiers. This includes adding the API hooks clang_isVirtualBase() and clang_getCXXAccessSpecifier() to query properties of the base specifier.
Implements <rdar://problem/8274883>.
llvm-svn: 112296
Diffstat (limited to 'clang/tools/c-index-test/c-index-test.c')
-rw-r--r-- | clang/tools/c-index-test/c-index-test.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c index 67e0c77..cdf0cd0 100644 --- a/clang/tools/c-index-test/c-index-test.c +++ b/clang/tools/c-index-test/c-index-test.c @@ -204,6 +204,26 @@ static void PrintCursor(CXCursor Cursor) { printf(" [IBOutletCollection=%s]", clang_getCString(S)); clang_disposeString(S); } + + if (Cursor.kind == CXCursor_CXXBaseSpecifier) { + enum CX_CXXAccessSpecifier access = clang_getCXXAccessSpecifier(Cursor); + unsigned isVirtual = clang_isVirtualBase(Cursor); + const char *accessStr = 0; + + switch (access) { + case CX_CXXInvalidAccessSpecifier: + accessStr = "invalid"; break; + case CX_CXXPublic: + accessStr = "public"; break; + case CX_CXXProtected: + accessStr = "protected"; break; + case CX_CXXPrivate: + accessStr = "private"; break; + } + + printf(" [access=%s isVirtual=%s]", accessStr, + isVirtual ? "true" : "false"); + } } } |