From 042795734d3697fc3a6318460544b44a060d179f Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Tue, 3 Dec 2013 23:22:25 +0000 Subject: [PATCH] check-llvm: Ask llvm-config about assertion mode, instead of llc. Add --assertion-mode to llvm-config. It emits ON or OFF according to NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196329 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CMakeLists.txt | 1 + test/lit.cfg | 13 +++++++------ tools/llvm-config/llvm-config.cpp | 7 +++++++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index d6f7dab1287..373b1eec7c2 100644 --- a/test/CMakeLists.txt +++ b/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/test/lit.cfg b/test/lit.cfg index df1f4a10196..251dbe0966c 100644 --- a/test/lit.cfg +++ b/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/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp index fc47bdee36f..f7b643e6f21 100644 --- a/tools/llvm-config/llvm-config.cpp +++ b/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") { -- 2.34.1