summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-08-05 16:45:07 +0000
committerZachary Turner <zturner@google.com>2016-08-05 16:45:07 +0000
commit67cb90ba95b4fa03292eb0348f86b8d6642c1583 (patch)
treee986fa42ddbc4102475bc6c1a080b0998307d919
parent9e4374daa3954d4603b6fd64c741cb080da79e44 (diff)
downloadbcm5719-llvm-67cb90ba95b4fa03292eb0348f86b8d6642c1583.tar.gz
bcm5719-llvm-67cb90ba95b4fa03292eb0348f86b8d6642c1583.zip
Fix TargetParser unit tests for ARM / AArch64.
String pooling is not guaranteed by the standard, so if you're comparing two different string literals for equality, you have to use strcmp. llvm-svn: 277831
-rw-r--r--llvm/unittests/Support/TargetParserTest.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp
index ae96571a3dd..18a0816b19e 100644
--- a/llvm/unittests/Support/TargetParserTest.cpp
+++ b/llvm/unittests/Support/TargetParserTest.cpp
@@ -81,6 +81,13 @@ bool contains(const T (&array)[N], const T element) {
std::end(array);
}
+template <size_t N>
+bool contains(const char *(&array)[N], const char *element) {
+ return std::find_if(std::begin(array), std::end(array), [&](const char *S) {
+ return ::strcmp(S, element) == 0;
+ }) != std::end(array);
+}
+
TEST(TargetParserTest, ARMArchName) {
for (ARM::ArchKind AK = static_cast<ARM::ArchKind>(0);
AK <= ARM::ArchKind::AK_LAST;
@@ -313,10 +320,12 @@ TEST(TargetParserTest, ARMparseCPUArch) {
"cortex-a73", "cyclone", "exynos-m1", "exynos-m2",
"iwmmxt", "xscale", "swift"};
- for (const auto &ARMCPUName : kARMCPUNames)
- EXPECT_TRUE(contains(CPU, ARMCPUName.Name)
- ? (ARM::AK_INVALID != ARM::parseCPUArch(ARMCPUName.Name))
- : (ARM::AK_INVALID == ARM::parseCPUArch(ARMCPUName.Name)));
+ for (const auto &ARMCPUName : kARMCPUNames) {
+ if (contains(CPU, ARMCPUName.Name))
+ EXPECT_NE(ARM::AK_INVALID, ARM::parseCPUArch(ARMCPUName.Name));
+ else
+ EXPECT_EQ(ARM::AK_INVALID, ARM::parseCPUArch(ARMCPUName.Name));
+ }
}
TEST(TargetParserTest, ARMparseArchEndianAndISA) {
OpenPOWER on IntegriCloud