summaryrefslogtreecommitdiffstats
path: root/clang/test/lit.cfg
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2014-01-14 19:35:09 +0000
committerHans Wennborg <hans@hanshq.net>2014-01-14 19:35:09 +0000
commitc9bd88e6811fb622cde644a82eac41c0b02c00ee (patch)
tree7c0c927099d178393a45099bde9b8520e5c81b20 /clang/test/lit.cfg
parent87994450657e8b6294393db707945adbe9cb200e (diff)
downloadbcm5719-llvm-c9bd88e6811fb622cde644a82eac41c0b02c00ee.tar.gz
bcm5719-llvm-c9bd88e6811fb622cde644a82eac41c0b02c00ee.zip
Remove the -cxx-abi command-line flag.
This makes the C++ ABI depend entirely on the target: MS ABI for -win32 triples, Itanium otherwise. It's no longer possible to do weird combinations. To be able to run a test with a specific ABI without constraining it to a specific triple, new substitutions are added to lit: %itanium_abi_triple and %ms_abi_triple can be used to get the current target triple adjusted to the desired ABI. For example, if the test suite is running with the i686-pc-win32 target, %itanium_abi_triple will expand to i686-pc-mingw32. Differential Revision: http://llvm-reviews.chandlerc.com/D2545 llvm-svn: 199250
Diffstat (limited to 'clang/test/lit.cfg')
-rw-r--r--clang/test/lit.cfg21
1 files changed, 21 insertions, 0 deletions
diff --git a/clang/test/lit.cfg b/clang/test/lit.cfg
index ee011c6d2ea..48b2fad1a9b 100644
--- a/clang/test/lit.cfg
+++ b/clang/test/lit.cfg
@@ -228,6 +228,25 @@ def getClangBuiltinIncludeDir(clang):
# Ensure the result is an ascii string, across Python2.5+ - Python3.
return str(dir.decode('ascii'))
+def makeItaniumABITriple(triple):
+ m = re.match(r'(\w+)-(\w+)-(\w+)', triple)
+ if not m:
+ lit_config.fatal("Could not turn '%s' into Itanium ABI triple" % triple)
+ if m.group(3).lower() != 'win32':
+ # All non-win32 triples use the Itanium ABI.
+ return triple
+ return m.group(1) + '-' + m.group(2) + '-mingw32'
+
+def makeMSABITriple(triple):
+ m = re.match(r'(\w+)-(\w+)-(\w+)', triple)
+ if not m:
+ lit_config.fatal("Could not turn '%s' into MS ABI triple" % triple)
+ if m.group(3).lower() == 'win32':
+ # If the OS is win32, we're done.
+ return triple
+ # Otherwise, replace the OS part with Win32.
+ return m.group(1) + '-' + m.group(2) + '-win32'
+
config.substitutions.append( ('%clang_cc1', '%s -cc1 -internal-isystem %s'
% (config.clang,
getClangBuiltinIncludeDir(config.clang))) )
@@ -239,6 +258,8 @@ config.substitutions.append( ('%clangxx', ' ' + config.clang +
' --driver-mode=g++ '))
config.substitutions.append( ('%clang', ' ' + config.clang + ' ') )
config.substitutions.append( ('%test_debuginfo', ' ' + config.llvm_src_root + '/utils/test_debuginfo.pl ') )
+config.substitutions.append( ('%itanium_abi_triple', makeItaniumABITriple(config.target_triple)) )
+config.substitutions.append( ('%ms_abi_triple', makeMSABITriple(config.target_triple)) )
# FIXME: Find nicer way to prohibit this.
config.substitutions.append(
OpenPOWER on IntegriCloud