diff options
author | Michael Wu <mwu.code@gmail.com> | 2018-08-03 05:20:23 +0000 |
---|---|---|
committer | Michael Wu <mwu.code@gmail.com> | 2018-08-03 05:20:23 +0000 |
commit | 40ff105663d9f55185d44844eddcbadf0b45360a (patch) | |
tree | 40fb5bf469866ea8a3f3f94f41a6ad0bcaa6c04c /clang/tools/c-index-test/c-index-test.c | |
parent | 21a8b605a1b3672384c7b14804f0288e1778fa36 (diff) | |
download | llvm-40ff105663d9f55185d44844eddcbadf0b45360a.zip llvm-40ff105663d9f55185d44844eddcbadf0b45360a.tar.gz llvm-40ff105663d9f55185d44844eddcbadf0b45360a.tar.bz2 |
[libclang 6/8] Add support for reading implicit attributes
Summary:
Having access to implicit attributes is sometimes useful so users of libclang don't have to duplicate some of the logic in sema.
This depends on D49081 since it also adds a CXTranslationUnit flag.
Reviewers: yvvan, jbcoe
Reviewed By: yvvan
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D49631
llvm-svn: 338815
Diffstat (limited to 'clang/tools/c-index-test/c-index-test.c')
-rw-r--r-- | clang/tools/c-index-test/c-index-test.c | 22 |
1 files changed, 22 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 336e35b..41dbbe7 100644 --- a/clang/tools/c-index-test/c-index-test.c +++ b/clang/tools/c-index-test/c-index-test.c @@ -86,6 +86,8 @@ static unsigned getDefaultParsingOptions() { options |= CXTranslationUnit_LimitSkipFunctionBodiesToPreamble; if (getenv("CINDEXTEST_INCLUDE_ATTRIBUTED_TYPES")) options |= CXTranslationUnit_IncludeAttributedTypes; + if (getenv("CINDEXTEST_VISIT_IMPLICIT_ATTRIBUTES")) + options |= CXTranslationUnit_VisitImplicitAttributes; return options; } @@ -1783,6 +1785,23 @@ static enum CXChildVisitResult PrintTypeDeclaration(CXCursor cursor, CXCursor p, } /******************************************************************************/ +/* Declaration attributes testing */ +/******************************************************************************/ + +static enum CXChildVisitResult PrintDeclAttributes(CXCursor cursor, CXCursor p, + CXClientData d) { + if (clang_isDeclaration(cursor.kind)) { + printf("\n"); + PrintCursor(cursor, NULL); + return CXChildVisit_Recurse; + } else if (clang_isAttribute(cursor.kind)) { + printf(" "); + PrintCursor(cursor, NULL); + } + return CXChildVisit_Continue; +} + +/******************************************************************************/ /* Target information testing. */ /******************************************************************************/ @@ -4793,6 +4812,9 @@ int cindextest_main(int argc, const char **argv) { else if (argc > 2 && strcmp(argv[1], "-test-print-type-declaration") == 0) return perform_test_load_source(argc - 2, argv + 2, "all", PrintTypeDeclaration, 0); + else if (argc > 2 && strcmp(argv[1], "-test-print-decl-attributes") == 0) + return perform_test_load_source(argc - 2, argv + 2, "all", + PrintDeclAttributes, 0); else if (argc > 2 && strcmp(argv[1], "-test-print-bitwidth") == 0) return perform_test_load_source(argc - 2, argv + 2, "all", PrintBitWidth, 0); |