diff options
author | Eli Bendersky <eliben@google.com> | 2014-07-31 18:04:56 +0000 |
---|---|---|
committer | Eli Bendersky <eliben@google.com> | 2014-07-31 18:04:56 +0000 |
commit | 44a206f8299ff128d39177028dca0735dded6328 (patch) | |
tree | ffadd2ac6aee2c4280bb5550d10a8600c333df6f /clang/tools/c-index-test | |
parent | a1db7df243610bd5433c2147ecad9de76a1f7da4 (diff) | |
download | bcm5719-llvm-44a206f8299ff128d39177028dca0735dded6328.tar.gz bcm5719-llvm-44a206f8299ff128d39177028dca0735dded6328.zip |
Exposes a C API to name mangling for a given cursor.
Inspired by https://gist.github.com/tritao/2766291, and was previously discussed
on cfe-dev: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-June/037577.html
Adding testing capability via c-index-test.
llvm-svn: 214410
Diffstat (limited to 'clang/tools/c-index-test')
-rw-r--r-- | clang/tools/c-index-test/c-index-test.c | 15 |
1 files changed, 15 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 07be22a5e94..b1d4a4d883d 100644 --- a/clang/tools/c-index-test/c-index-test.c +++ b/clang/tools/c-index-test/c-index-test.c @@ -1363,6 +1363,19 @@ static enum CXChildVisitResult PrintTypeSize(CXCursor cursor, CXCursor p, } /******************************************************************************/ +/* Mangling testing. */ +/******************************************************************************/ + +static enum CXChildVisitResult PrintMangledName(CXCursor cursor, CXCursor p, + CXClientData d) { + CXString MangledName; + PrintCursor(cursor, NULL); + MangledName = clang_Cursor_getMangling(cursor); + printf(" [mangled=%s]\n", clang_getCString(MangledName)); + return CXChildVisit_Continue; +} + +/******************************************************************************/ /* Bitwidth testing. */ /******************************************************************************/ @@ -4081,6 +4094,8 @@ int cindextest_main(int argc, const char **argv) { else if (argc > 2 && strcmp(argv[1], "-test-print-bitwidth") == 0) return perform_test_load_source(argc - 2, argv + 2, "all", PrintBitWidth, 0); + else if (argc > 2 && strcmp(argv[1], "-test-print-mangle") == 0) + return perform_test_load_tu(argv[2], "all", NULL, PrintMangledName, NULL); else if (argc > 1 && strcmp(argv[1], "-print-usr") == 0) { if (argc > 2) return print_usrs(argv + 2, argv + argc); |