From 4ba675006b5a8edfc48b6a9bd3dcf54a70cc08f2 Mon Sep 17 00:00:00 2001 From: Roman Divacky Date: Tue, 13 Jul 2010 17:21:42 +0000 Subject: Update clang to r108243. --- tools/c-index-test/c-index-test.c | 47 ++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 13 deletions(-) (limited to 'tools/c-index-test/c-index-test.c') diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c index 4268cec1b231f..4ed24b15c9d3e 100644 --- a/tools/c-index-test/c-index-test.c +++ b/tools/c-index-test/c-index-test.c @@ -455,16 +455,29 @@ static enum CXChildVisitResult PrintTypeKind(CXCursor cursor, CXCursor p, if (!clang_isInvalid(clang_getCursorKind(cursor))) { CXType T = clang_getCursorType(cursor); - CXType CT = clang_getCanonicalType(T); CXString S = clang_getTypeKindSpelling(T.kind); PrintCursor(cursor); printf(" typekind=%s", clang_getCString(S)); - if (!clang_equalTypes(T, CT)) { - CXString CS = clang_getTypeKindSpelling(CT.kind); - printf(" [canonical=%s]", clang_getCString(CS)); - clang_disposeString(CS); - } clang_disposeString(S); + /* Print the canonical type if it is different. */ + { + CXType CT = clang_getCanonicalType(T); + if (!clang_equalTypes(T, CT)) { + CXString CS = clang_getTypeKindSpelling(CT.kind); + printf(" [canonical=%s]", clang_getCString(CS)); + clang_disposeString(CS); + } + } + /* Print the return type if it exists. */ + { + CXType RT = clang_getCursorResultType(cursor); + if (RT.kind != CXType_Invalid) { + CXString RS = clang_getTypeKindSpelling(RT.kind); + printf(" [result=%s]", clang_getCString(RS)); + clang_disposeString(RS); + } + } + printf("\n"); } return CXChildVisit_Recurse; @@ -786,7 +799,7 @@ void print_completion_result(CXCompletionResult *completion_result, clang_getCompletionPriority(completion_result->CompletionString)); } -int perform_code_completion(int argc, const char **argv) { +int perform_code_completion(int argc, const char **argv, int timing_only) { const char *input = argv[1]; char *filename = 0; unsigned line; @@ -797,7 +810,11 @@ int perform_code_completion(int argc, const char **argv) { int num_unsaved_files = 0; CXCodeCompleteResults *results = 0; - input += strlen("-code-completion-at="); + if (timing_only) + input += strlen("-code-completion-timing="); + else + input += strlen("-code-completion-at="); + if ((errorCode = parse_file_line_column(input, &filename, &line, &column, 0, 0))) return errorCode; @@ -814,8 +831,9 @@ int perform_code_completion(int argc, const char **argv) { if (results) { unsigned i, n = results->NumResults; - for (i = 0; i != n; ++i) - print_completion_result(results->Results + i, stdout); + if (!timing_only) + for (i = 0; i != n; ++i) + print_completion_result(results->Results + i, stdout); n = clang_codeCompleteGetNumDiagnostics(results); for (i = 0; i != n; ++i) { CXDiagnostic diag = clang_codeCompleteGetDiagnostic(results, i); @@ -1191,6 +1209,7 @@ static CXCursorVisitor GetVisitor(const char *s) { static void print_usage(void) { fprintf(stderr, "usage: c-index-test -code-completion-at= \n" + " c-index-test -code-completion-timing= \n" " c-index-test -cursor-at= \n" " c-index-test -test-file-scan " "[FileCheck prefix]\n" @@ -1198,9 +1217,9 @@ static void print_usage(void) { "[FileCheck prefix]\n" " c-index-test -test-load-tu-usrs " "[FileCheck prefix]\n" - " c-index-test -test-load-source {}*\n" - " c-index-test -test-load-source-usrs {}*\n"); + " c-index-test -test-load-source {}*\n"); fprintf(stderr, + " c-index-test -test-load-source-usrs {}*\n" " c-index-test -test-annotate-tokens= {}*\n" " c-index-test -test-inclusion-stack-source {}*\n" " c-index-test -test-inclusion-stack-tu \n" @@ -1222,7 +1241,9 @@ static void print_usage(void) { int main(int argc, const char **argv) { clang_enableStackTraces(); if (argc > 2 && strstr(argv[1], "-code-completion-at=") == argv[1]) - return perform_code_completion(argc, argv); + return perform_code_completion(argc, argv, 0); + if (argc > 2 && strstr(argv[1], "-code-completion-timing=") == argv[1]) + return perform_code_completion(argc, argv, 1); if (argc > 2 && strstr(argv[1], "-cursor-at=") == argv[1]) return inspect_cursor_at(argc, argv); else if (argc >= 4 && strncmp(argv[1], "-test-load-tu", 13) == 0) { -- cgit v1.2.3