Introduce a new C API function, clang_parseTranslationUnit(), which
will eventually replace
clang_createTranslationUnitFromSourceFile(). The only addition in
clang_parseTranslationUnit() is a set of flags that can control how
the translation unit is loaded. More interesting flags will be coming.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109027 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index efc61a0..47c6d3c 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -1157,6 +1157,19 @@
const char **command_line_args,
unsigned num_unsaved_files,
struct CXUnsavedFile *unsaved_files) {
+ return clang_parseTranslationUnit(CIdx, source_filename,
+ command_line_args, num_command_line_args,
+ unsaved_files, num_unsaved_files,
+ CXTranslationUnit_DetailedPreprocessingRecord);
+}
+
+CXTranslationUnit clang_parseTranslationUnit(CXIndex CIdx,
+ const char *source_filename,
+ const char **command_line_args,
+ int num_command_line_args,
+ struct CXUnsavedFile *unsaved_files,
+ unsigned num_unsaved_files,
+ unsigned options) {
if (!CIdx)
return 0;
@@ -1195,8 +1208,11 @@
Args.insert(Args.end(), command_line_args,
command_line_args + num_command_line_args);
- Args.push_back("-Xclang");
- Args.push_back("-detailed-preprocessing-record");
+
+ if (options & CXTranslationUnit_DetailedPreprocessingRecord) {
+ Args.push_back("-Xclang");
+ Args.push_back("-detailed-preprocessing-record");
+ }
unsigned NumErrors = Diags->getNumErrors();
#ifdef USE_CRASHTRACER