aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Driver
diff options
context:
space:
mode:
authorMichael Platings <michael.platings@arm.com>2023-05-24 15:20:01 +0100
committerMichael Platings <michael.platings@arm.com>2023-06-07 05:53:04 +0100
commit47b431d6617d5029e30370ec988e5087f65e2d6b (patch)
tree65d452770de5e3da46ba3a41db8f75f9a7fd182c /clang/unittests/Driver
parentcb9f1aaddac0ce6bf9386309e33e104ba3f9359c (diff)
downloadllvm-47b431d6617d5029e30370ec988e5087f65e2d6b.zip
llvm-47b431d6617d5029e30370ec988e5087f65e2d6b.tar.gz
llvm-47b431d6617d5029e30370ec988e5087f65e2d6b.tar.bz2
[NFC][Driver] Change MultilibBuilder interface
Decouple the interface of the MultilibBuilder flag method from how flags are stored internally. Likewise change the addMultilibFlag function. Currently a multilib flag like "-fexceptions" means a multilib is *incompatible* with the -fexceptions command line option, which is counter-intuitive. This change is a step towards changing this scheme. Differential Revision: https://reviews.llvm.org/D151437
Diffstat (limited to 'clang/unittests/Driver')
-rw-r--r--clang/unittests/Driver/MultilibBuilderTest.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/clang/unittests/Driver/MultilibBuilderTest.cpp b/clang/unittests/Driver/MultilibBuilderTest.cpp
index 45ef499..d88011c 100644
--- a/clang/unittests/Driver/MultilibBuilderTest.cpp
+++ b/clang/unittests/Driver/MultilibBuilderTest.cpp
@@ -27,20 +27,22 @@ TEST(MultilibBuilderTest, MultilibValidity) {
ASSERT_TRUE(MultilibBuilder().isValid()) << "Empty multilib is not valid";
- ASSERT_TRUE(MultilibBuilder().flag("+foo").isValid())
+ ASSERT_TRUE(MultilibBuilder().flag(true, "-foo").isValid())
<< "Single indicative flag is not valid";
- ASSERT_TRUE(MultilibBuilder().flag("-foo").isValid())
+ ASSERT_TRUE(MultilibBuilder().flag(false, "-foo").isValid())
<< "Single contraindicative flag is not valid";
- ASSERT_FALSE(MultilibBuilder().flag("+foo").flag("-foo").isValid())
+ ASSERT_FALSE(
+ MultilibBuilder().flag(true, "-foo").flag(false, "-foo").isValid())
<< "Conflicting flags should invalidate the Multilib";
- ASSERT_TRUE(MultilibBuilder().flag("+foo").flag("+foo").isValid())
+ ASSERT_TRUE(MultilibBuilder().flag(true, "-foo").flag(true, "-foo").isValid())
<< "Multilib should be valid even if it has the same flag "
"twice";
- ASSERT_TRUE(MultilibBuilder().flag("+foo").flag("-foobar").isValid())
+ ASSERT_TRUE(
+ MultilibBuilder().flag(true, "-foo").flag(false, "-foobar").isValid())
<< "Seemingly conflicting prefixes shouldn't actually conflict";
}
@@ -52,7 +54,8 @@ TEST(MultilibBuilderTest, Construction1) {
}
TEST(MultilibBuilderTest, Construction3) {
- MultilibBuilder M = MultilibBuilder().flag("+f1").flag("+f2").flag("-f3");
+ MultilibBuilder M =
+ MultilibBuilder().flag(true, "-f1").flag(true, "-f2").flag(false, "-f3");
for (const std::string &A : M.flags()) {
ASSERT_TRUE(llvm::StringSwitch<bool>(A)
.Cases("+f1", "+f2", "-f3", true)
@@ -63,7 +66,7 @@ TEST(MultilibBuilderTest, Construction3) {
TEST(MultilibBuilderTest, SetConstruction1) {
// Single maybe
MultilibSet MS = MultilibSetBuilder()
- .Maybe(MultilibBuilder("64").flag("+m64"))
+ .Maybe(MultilibBuilder("64").flag(true, "-m64"))
.makeMultilibSet();
ASSERT_TRUE(MS.size() == 2);
for (MultilibSet::const_iterator I = MS.begin(), E = MS.end(); I != E; ++I) {
@@ -79,8 +82,8 @@ TEST(MultilibBuilderTest, SetConstruction1) {
TEST(MultilibBuilderTest, SetConstruction2) {
// Double maybe
MultilibSet MS = MultilibSetBuilder()
- .Maybe(MultilibBuilder("sof").flag("+sof"))
- .Maybe(MultilibBuilder("el").flag("+EL"))
+ .Maybe(MultilibBuilder("sof").flag(true, "-sof"))
+ .Maybe(MultilibBuilder("el").flag(true, "-EL"))
.makeMultilibSet();
ASSERT_TRUE(MS.size() == 4);
for (MultilibSet::const_iterator I = MS.begin(), E = MS.end(); I != E; ++I) {
@@ -154,7 +157,7 @@ TEST(MultilibBuilderTest, SetFilterObject) {
TEST(MultilibBuilderTest, SetSelection1) {
MultilibSet MS1 = MultilibSetBuilder()
- .Maybe(MultilibBuilder("64").flag("+m64"))
+ .Maybe(MultilibBuilder("64").flag(true, "-m64"))
.makeMultilibSet();
Multilib::flags_list FlagM64 = {"+m64"};
@@ -174,8 +177,8 @@ TEST(MultilibBuilderTest, SetSelection1) {
TEST(MultilibBuilderTest, SetSelection2) {
MultilibSet MS2 = MultilibSetBuilder()
- .Maybe(MultilibBuilder("el").flag("+EL"))
- .Maybe(MultilibBuilder("sf").flag("+SF"))
+ .Maybe(MultilibBuilder("el").flag(true, "-EL"))
+ .Maybe(MultilibBuilder("sf").flag(true, "-SF"))
.makeMultilibSet();
for (unsigned I = 0; I < 4; ++I) {