summaryrefslogtreecommitdiffstats
path: root/clang/tools/c-index-test/c-index-test.c
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-08-09 20:45:32 +0000
committerDouglas Gregor <dgregor@apple.com>2010-08-09 20:45:32 +0000
commit028d3e4d0fc16abb55ab566f909d9a30951a7325 (patch)
treec85eeda07ad4838b7aa3a010200930713d1a6038 /clang/tools/c-index-test/c-index-test.c
parentf4804c696d55bb048d976637d953d83bebfeee9d (diff)
downloadbcm5719-llvm-028d3e4d0fc16abb55ab566f909d9a30951a7325.tar.gz
bcm5719-llvm-028d3e4d0fc16abb55ab566f909d9a30951a7325.zip
Use precompiled preambles for in-process code completion.
llvm-svn: 110596
Diffstat (limited to 'clang/tools/c-index-test/c-index-test.c')
-rw-r--r--clang/tools/c-index-test/c-index-test.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c
index 1530aa86977..db897b3a500 100644
--- a/clang/tools/c-index-test/c-index-test.c
+++ b/clang/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);
OpenPOWER on IntegriCloud