diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2014-02-18 15:20:02 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2014-02-18 15:20:02 +0000 |
commit | 31ad0a00d166f6a2811548d7e4269165b08a048a (patch) | |
tree | 3487c5eb2cda5a96c0b0d99ff5d6211b56195338 | |
parent | e4f0f4ab79d50a62509bc832b10d30b372e4a1bd (diff) | |
download | clang-31ad0a00d166f6a2811548d7e4269165b08a048a.tar.gz clang-31ad0a00d166f6a2811548d7e4269165b08a048a.tar.bz2 clang-31ad0a00d166f6a2811548d7e4269165b08a048a.tar.xz |
libclang: fix a bug in processing invalid arguments, introduced in r201249
Recommit r201346, reverted in r201373.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201578 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/Unit/lit.cfg | 24 | ||||
-rw-r--r-- | test/Unit/lit.site.cfg.in | 1 | ||||
-rw-r--r-- | tools/libclang/CIndex.cpp | 17 | ||||
-rw-r--r-- | unittests/CMakeLists.txt | 3 | ||||
-rw-r--r-- | unittests/Makefile | 2 |
5 files changed, 28 insertions, 19 deletions
diff --git a/test/Unit/lit.cfg b/test/Unit/lit.cfg index f39fded3ac..01b54c799d 100644 --- a/test/Unit/lit.cfg +++ b/test/Unit/lit.cfg @@ -3,6 +3,7 @@ # Configuration file for the 'lit' test runner. import os +import platform import lit.formats import lit.util @@ -85,10 +86,19 @@ if config.test_exec_root is None: lit_config.load_config(config, site_cfg) raise SystemExit -# If necessary, point the dynamic loader at libLLVM.so. -if config.enable_shared: - shlibpath = config.environment.get(config.shlibpath_var,'') - if shlibpath: - shlibpath = os.pathsep + shlibpath - shlibpath = config.shlibdir + shlibpath - config.environment[config.shlibpath_var] = shlibpath +shlibpath_var = '' +if platform.system() == 'Linux': + shlibpath_var = 'LD_LIBRARY_PATH' +elif platform.system() == 'Darwin': + shlibpath_var = 'DYLD_LIBRARY_PATH' +elif platform.system() == 'Windows': + shlibpath_var = 'PATH' + +# Point the dynamic loader at dynamic libraries in 'lib'. +llvm_libs_dir = getattr(config, 'llvm_libs_dir', None) +if not llvm_libs_dir: + lit_config.fatal('No LLVM libs dir set!') +shlibpath = os.path.pathsep.join((llvm_libs_dir, + config.environment.get(shlibpath_var,''))) +config.environment[shlibpath_var] = shlibpath + diff --git a/test/Unit/lit.site.cfg.in b/test/Unit/lit.site.cfg.in index a255cdce0d..37e8cb011e 100644 --- a/test/Unit/lit.site.cfg.in +++ b/test/Unit/lit.site.cfg.in @@ -10,7 +10,6 @@ config.llvm_build_mode = "@LLVM_BUILD_MODE@" config.clang_obj_root = "@CLANG_BINARY_DIR@" config.enable_shared = @ENABLE_SHARED@ config.shlibdir = "@SHLIBDIR@" -config.shlibpath_var = "@SHLIBPATH_VAR@" config.target_triple = "@TARGET_TRIPLE@" # Support substitution of the tools_dir, libs_dirs, and build_mode with user diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index a74feabf06..e862889f26 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -2686,6 +2686,11 @@ static void clang_parseTranslationUnit_Impl(void *UserData) { unsigned options = PTUI->options; CXTranslationUnit *out_TU = PTUI->out_TU; + // Set up the initial return values. + if (out_TU) + *out_TU = NULL; + PTUI->result = CXError_Failure; + // Check arguments. if (!CIdx || !out_TU || (unsaved_files == NULL && num_unsaved_files != 0)) { @@ -2693,10 +2698,6 @@ static void clang_parseTranslationUnit_Impl(void *UserData) { return; } - // Set up the initial return values. - *out_TU = NULL; - PTUI->result = CXError_Failure; - CIndexer *CXXIdx = static_cast<CIndexer *>(CIdx); if (CXXIdx->isOptEnabled(CXGlobalOpt_ThreadBackgroundPriorityForIndexing)) @@ -2826,12 +2827,8 @@ clang_parseTranslationUnit(CXIndex CIdx, CIdx, source_filename, command_line_args, num_command_line_args, unsaved_files, num_unsaved_files, options, &TU); (void)Result; - - // FIXME: This probably papers over a problem. If the result is not success, - // no TU should be set. - if (Result != CXError_Success) - return 0; - + assert((TU && Result == CXError_Success) || + (!TU && Result != CXError_Success)); return TU; } diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index f00008e040..cc1322699e 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -22,3 +22,6 @@ if(CLANG_ENABLE_REWRITER) add_subdirectory(Format) add_subdirectory(Sema) endif() +if(NOT WIN32) # FIXME:Investigating. + add_subdirectory(libclang) +endif() diff --git a/unittests/Makefile b/unittests/Makefile index e4fbe584da..9b95a6eda2 100644 --- a/unittests/Makefile +++ b/unittests/Makefile @@ -14,7 +14,7 @@ ifndef CLANG_LEVEL IS_UNITTEST_LEVEL := 1 CLANG_LEVEL := .. -PARALLEL_DIRS = Basic Lex Driver +PARALLEL_DIRS = Basic Lex Driver libclang include $(CLANG_LEVEL)/../..//Makefile.config |