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 | 1bf8d9107b77abeefc84ba41bb49e802a2533ff3 (patch) | |
tree | 0e52041b0575c033f0d5666478fdda7912113842 | |
parent | 330fd535f8b1028044b8a56232caf07a90dfe922 (diff) | |
download | bcm5719-llvm-1bf8d9107b77abeefc84ba41bb49e802a2533ff3.tar.gz bcm5719-llvm-1bf8d9107b77abeefc84ba41bb49e802a2533ff3.zip |
libclang: fix a bug in processing invalid arguments, introduced in r201249
Recommit r201346, reverted in r201373.
llvm-svn: 201578
-rw-r--r-- | clang/test/Unit/lit.cfg | 24 | ||||
-rw-r--r-- | clang/test/Unit/lit.site.cfg.in | 1 | ||||
-rw-r--r-- | clang/tools/libclang/CIndex.cpp | 17 | ||||
-rw-r--r-- | clang/unittests/CMakeLists.txt | 3 | ||||
-rw-r--r-- | clang/unittests/Makefile | 2 |
5 files changed, 28 insertions, 19 deletions
diff --git a/clang/test/Unit/lit.cfg b/clang/test/Unit/lit.cfg index f39fded3acc..01b54c799da 100644 --- a/clang/test/Unit/lit.cfg +++ b/clang/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/clang/test/Unit/lit.site.cfg.in b/clang/test/Unit/lit.site.cfg.in index a255cdce0de..37e8cb011eb 100644 --- a/clang/test/Unit/lit.site.cfg.in +++ b/clang/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/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index a74feabf06f..e862889f263 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/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/clang/unittests/CMakeLists.txt b/clang/unittests/CMakeLists.txt index f00008e0407..cc1322699e5 100644 --- a/clang/unittests/CMakeLists.txt +++ b/clang/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/clang/unittests/Makefile b/clang/unittests/Makefile index e4fbe584da1..9b95a6eda20 100644 --- a/clang/unittests/Makefile +++ b/clang/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 |