diff options
-rw-r--r-- | llvm/test/CMakeLists.txt | 1 | ||||
-rw-r--r-- | llvm/test/lit.cfg | 13 | ||||
-rw-r--r-- | llvm/tools/llvm-config/llvm-config.cpp | 7 |
3 files changed, 15 insertions, 6 deletions
diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt index d6f7dab1287..373b1eec7c2 100644 --- a/llvm/test/CMakeLists.txt +++ b/llvm/test/CMakeLists.txt @@ -15,6 +15,7 @@ endif() # Set the depends list as a variable so that it can grow conditionally. # NOTE: Sync the substitutions in test/lit.cfg when adding to this list. set(LLVM_TEST_DEPENDS + llvm-config UnitTests BugpointPasses LLVMHello diff --git a/llvm/test/lit.cfg b/llvm/test/lit.cfg index df1f4a10196..251dbe0966c 100644 --- a/llvm/test/lit.cfg +++ b/llvm/test/lit.cfg @@ -305,18 +305,19 @@ if config.have_zlib == "1": if config.host_triple == config.target_triple: config.available_features.add("native") -# llc knows whether he is compiled with -DNDEBUG. +# Ask llvm-config about assertion mode. import subprocess try: - llc_cmd = subprocess.Popen([os.path.join(llvm_tools_dir, 'llc'), '-version'], - stdout = subprocess.PIPE) + llvm_config_cmd = subprocess.Popen( + [os.path.join(llvm_tools_dir, 'llvm-config'), '--assertion-mode'], + stdout = subprocess.PIPE) except OSError: - print("Could not find llc in " + llvm_tools_dir) + print("Could not find llvm-config in " + llvm_tools_dir) exit(42) -if re.search(r'with assertions', llc_cmd.stdout.read().decode('ascii')): +if re.search(r'ON', llvm_config_cmd.stdout.read().decode('ascii')): config.available_features.add('asserts') -llc_cmd.wait() +llvm_config_cmd.wait() if 'darwin' == sys.platform: try: diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp index fc47bdee36f..f7b643e6f21 100644 --- a/llvm/tools/llvm-config/llvm-config.cpp +++ b/llvm/tools/llvm-config/llvm-config.cpp @@ -154,6 +154,7 @@ Options:\n\ --targets-built List of all targets currently built.\n\ --host-target Target triple used to configure LLVM.\n\ --build-mode Print build mode of LLVM tree (e.g. Debug or Release).\n\ + --assertion-mode Print assertion mode of LLVM tree (ON or OFF).\n\ Typical components:\n\ all All LLVM libraries (default).\n\ engine Either a native JIT or a bitcode interpreter.\n"; @@ -306,6 +307,12 @@ int main(int argc, char **argv) { build_mode = CMAKE_CFG_INTDIR; #endif OS << build_mode << '\n'; + } else if (Arg == "--assertion-mode") { +#if defined(NDEBUG) + OS << "OFF\n"; +#else + OS << "ON\n"; +#endif } else if (Arg == "--obj-root") { OS << LLVM_OBJ_ROOT << '\n'; } else if (Arg == "--src-root") { |