aboutsummaryrefslogtreecommitdiff
path: root/clang/tools/c-index-test/c-index-test.c
diff options
context:
space:
mode:
authorDaniel Grumberg <dgrumberg@apple.com>2023-03-28 18:00:13 +0100
committerDaniel Grumberg <dgrumberg@apple.com>2023-03-29 10:51:13 +0100
commit79116475124112051625b1a0665e35c861bb13fd (patch)
tree3eec4277f6acd68a2a1bc6f2dc72e81aa665ee42 /clang/tools/c-index-test/c-index-test.c
parent55916de2d37742fe334c0726ccf9e584bdaed09f (diff)
downloadllvm-79116475124112051625b1a0665e35c861bb13fd.zip
llvm-79116475124112051625b1a0665e35c861bb13fd.tar.gz
llvm-79116475124112051625b1a0665e35c861bb13fd.tar.bz2
Revert "Revert ExtractAPI from https://reviews.llvm.org/D146656"
This reverts commit 158a431227a876306fe5838936413dd51588d0c6.
Diffstat (limited to 'clang/tools/c-index-test/c-index-test.c')
-rw-r--r--clang/tools/c-index-test/c-index-test.c20
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 448435e..f116111 100644
--- a/clang/tools/c-index-test/c-index-test.c
+++ b/clang/tools/c-index-test/c-index-test.c
@@ -3,6 +3,7 @@
#include "clang-c/BuildSystem.h"
#include "clang-c/CXCompilationDatabase.h"
#include "clang-c/CXErrorCode.h"
+#include "clang-c/CXSourceLocation.h"
#include "clang-c/CXString.h"
#include "clang-c/Documentation.h"
#include "clang-c/Index.h"
@@ -4881,6 +4882,21 @@ dispose_index:
return result;
}
+static void inspect_single_symbol_sgf_cursor(CXCursor Cursor) {
+ CXSourceLocation CursorLoc;
+ CXString SGFData;
+ const char *SGF;
+ unsigned line, column;
+ CursorLoc = clang_getCursorLocation(Cursor);
+ clang_getSpellingLocation(CursorLoc, 0, &line, &column, 0);
+ printf("%d:%d: ", line, column);
+
+ SGFData = clang_getSymbolGraphForCursor(Cursor);
+ SGF = clang_getCString(SGFData);
+ if (SGF)
+ printf("%s\n", SGF);
+}
+
/******************************************************************************/
/* Command line processing. */
/******************************************************************************/
@@ -4940,6 +4956,7 @@ static void print_usage(void) {
" c-index-test -print-usr-file <file>\n");
fprintf(stderr,
" c-index-test -single-symbol-sgfs <symbol filter> {<args>*}\n"
+ " c-index-test -single-symbol-sgf-at=<site> {<args>*}\n"
" c-index-test -single-symbol-sgf-for=<usr> {<args>}*\n");
fprintf(stderr,
" c-index-test -write-pch <file> <compiler arguments>\n"
@@ -5076,6 +5093,9 @@ int cindextest_main(int argc, const char **argv) {
else if (argc > 3 && strcmp(argv[1], "-single-symbol-sgfs") == 0)
return perform_test_load_source(argc - 3, argv + 3, argv[2],
PrintSingleSymbolSGFs, NULL);
+ else if (argc > 2 && strstr(argv[1], "-single-symbol-sgf-at=") == argv[1])
+ return inspect_cursor_at(
+ argc, argv, "-single-symbol-sgf-at=", inspect_single_symbol_sgf_cursor);
else if (argc > 2 && strstr(argv[1], "-single-symbol-sgf-for=") == argv[1])
return perform_test_single_symbol_sgf(argv[1], argc - 2, argv + 2);