diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-08-09 20:45:32 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-08-09 20:45:32 +0000 |
commit | df95a13ec73d2cdaea79555cb412d767f4963120 (patch) | |
tree | 0a4ce9f2fe7d41a48249fcc3ae97342c66b443e6 /tools/c-index-test/c-index-test.c | |
parent | a277e7764bbe2752f900bf595654f9ad433f3961 (diff) |
Use precompiled preambles for in-process code completion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110596 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/c-index-test/c-index-test.c')
-rw-r--r-- | tools/c-index-test/c-index-test.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c index 1530aa8697..db897b3a50 100644 --- a/tools/c-index-test/c-index-test.c +++ b/tools/c-index-test/c-index-test.c @@ -874,7 +874,8 @@ int perform_code_completion(int argc, const char **argv, int timing_only) { struct CXUnsavedFile *unsaved_files = 0; int num_unsaved_files = 0; CXCodeCompleteResults *results = 0; - + CXTranslationUnit *TU = 0; + if (timing_only) input += strlen("-code-completion-timing="); else @@ -889,15 +890,20 @@ int perform_code_completion(int argc, const char **argv, int timing_only) { CIdx = clang_createIndex(0, 1); if (getenv("CINDEXTEST_EDITING")) { - CXTranslationUnit *TU = clang_parseTranslationUnit(CIdx, 0, - argv + num_unsaved_files + 2, - argc - num_unsaved_files - 2, - unsaved_files, - num_unsaved_files, - getDefaultParsingOptions()); - results = clang_codeCompleteAt(TU, filename, line, column, - unsaved_files, num_unsaved_files, - clang_defaultCodeCompleteOptions()); + TU = clang_parseTranslationUnit(CIdx, 0, + argv + num_unsaved_files + 2, + argc - num_unsaved_files - 2, + unsaved_files, + num_unsaved_files, + getDefaultParsingOptions()); + unsigned I, Repeats = 5; + for (I = 0; I != Repeats; ++I) { + results = clang_codeCompleteAt(TU, filename, line, column, + unsaved_files, num_unsaved_files, + clang_defaultCodeCompleteOptions()); + if (I != Repeats-1) + clang_disposeCodeCompleteResults(results); + } } else results = clang_codeComplete(CIdx, argv[argc - 1], argc - num_unsaved_files - 3, @@ -918,7 +924,7 @@ int perform_code_completion(int argc, const char **argv, int timing_only) { } clang_disposeCodeCompleteResults(results); } - + clang_disposeTranslationUnit(TU); clang_disposeIndex(CIdx); free(filename); |