diff options
author | Michael Platings <michael.platings@arm.com> | 2023-05-24 15:20:01 +0100 |
---|---|---|
committer | Michael Platings <michael.platings@arm.com> | 2023-06-07 05:53:04 +0100 |
commit | 47b431d6617d5029e30370ec988e5087f65e2d6b (patch) | |
tree | 65d452770de5e3da46ba3a41db8f75f9a7fd182c /clang/unittests/Driver | |
parent | cb9f1aaddac0ce6bf9386309e33e104ba3f9359c (diff) | |
download | llvm-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.cpp | 27 |
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) { |