Skip to content
This repository has been archived by the owner on Apr 23, 2020. It is now read-only.

Commit

Permalink
check-llvm: Ask llvm-config about assertion mode, instead of llc.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
chapuni committed Dec 3, 2013
1 parent e0c0a71 commit 0427957
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 6 deletions.
1 change: 1 addition & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 7 additions & 6 deletions test/lit.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
7 changes: 7 additions & 0 deletions tools/llvm-config/llvm-config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -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") {
Expand Down

0 comments on commit 0427957

Please sign in to comment.