summaryrefslogtreecommitdiffstats
path: root/clang/tools/c-index-test
diff options
context:
space:
mode:
authorEli Bendersky <eliben@google.com>2014-07-31 18:04:56 +0000
committerEli Bendersky <eliben@google.com>2014-07-31 18:04:56 +0000
commit44a206f8299ff128d39177028dca0735dded6328 (patch)
treeffadd2ac6aee2c4280bb5550d10a8600c333df6f /clang/tools/c-index-test
parenta1db7df243610bd5433c2147ecad9de76a1f7da4 (diff)
downloadbcm5719-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.c15
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);
OpenPOWER on IntegriCloud