]> granicus.if.org Git - llvm/commitdiff
[TextAPI] Prefix all architecture enums to fix the build on i386.
authorJuergen Ributzka <juergen@ributzka.de>
Thu, 4 Apr 2019 22:56:50 +0000 (22:56 +0000)
committerJuergen Ributzka <juergen@ributzka.de>
Thu, 4 Apr 2019 22:56:50 +0000 (22:56 +0000)
Summary: This changes the Architecture enum to use a prefix (AK_) to prevent the
preprocessor from replacing i386 with 1 when building llvm/clang for i386.

Reviewers: steven_wu, lhames, mstorsjo

Reviewed By: mstorsjo

Subscribers: hiraditya, jkorous, dexonsmith, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60241

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357733 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/TextAPI/MachO/Architecture.h
include/llvm/TextAPI/MachO/ArchitectureSet.h
lib/TextAPI/MachO/Architecture.cpp
lib/TextAPI/MachO/ArchitectureSet.cpp
lib/TextAPI/MachO/TextStubCommon.cpp
unittests/TextAPI/TextStubV1Tests.cpp
unittests/TextAPI/TextStubV2Tests.cpp

index b0f96ee002be505a985e1024f25773ce3d7c11b3..055baeb0c0f0c9cd243284a6433e86d07bc6e0e2 100644 (file)
@@ -20,11 +20,11 @@ namespace llvm {
 namespace MachO {
 
 /// Defines the architecture slices that are supported by Text-based Stub files.
-enum class Architecture : uint8_t {
-#define ARCHINFO(Arch, Type, SubType) Arch,
+enum Architecture : uint8_t {
+#define ARCHINFO(Arch, Type, SubType) AK_##Arch,
 #include "llvm/TextAPI/MachO/Architecture.def"
 #undef ARCHINFO
-  unknown, // this has to go last.
+  AK_unknown, // this has to go last.
 };
 
 /// Convert a CPU Type and Subtype pair to an architecture slice.
index e7fadefb78b86b1847f938fba5fede5708c881a1..aae1f1d4e0990935cc008378b9de3b931f01904b 100644 (file)
@@ -38,7 +38,7 @@ public:
   ArchitectureSet(const std::vector<Architecture> &Archs);
 
   void set(Architecture Arch) {
-    if (Arch == Architecture::unknown)
+    if (Arch == AK_unknown)
       return;
     ArchSet |= 1U << static_cast<int>(Arch);
   }
index e9d3e9e9055d639ffff2423c3c8ae9d88866d889..a66a982fa1532e72f65632357203766233f293a7 100644 (file)
@@ -21,29 +21,29 @@ Architecture getArchitectureFromCpuType(uint32_t CPUType, uint32_t CPUSubType) {
 #define ARCHINFO(Arch, Type, Subtype)                                          \
   if (CPUType == (Type) &&                                                     \
       (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) == (Subtype))                    \
-    return Architecture::Arch;
+    return AK_##Arch;
 #include "llvm/TextAPI/MachO/Architecture.def"
 #undef ARCHINFO
 
-  return Architecture::unknown;
+  return AK_unknown;
 }
 
 Architecture getArchitectureFromName(StringRef Name) {
   return StringSwitch<Architecture>(Name)
-#define ARCHINFO(Arch, Type, Subtype) .Case(#Arch, Architecture::Arch)
+#define ARCHINFO(Arch, Type, Subtype) .Case(#Arch, AK_##Arch)
 #include "llvm/TextAPI/MachO/Architecture.def"
 #undef ARCHINFO
-      .Default(Architecture::unknown);
+      .Default(AK_unknown);
 }
 
 StringRef getArchitectureName(Architecture Arch) {
   switch (Arch) {
 #define ARCHINFO(Arch, Type, Subtype)                                          \
-  case Architecture::Arch:                                                     \
+  case AK_##Arch:                                                              \
     return #Arch;
 #include "llvm/TextAPI/MachO/Architecture.def"
 #undef ARCHINFO
-  case Architecture::unknown:
+  case AK_unknown:
     return "unknown";
   }
 
@@ -55,11 +55,11 @@ StringRef getArchitectureName(Architecture Arch) {
 std::pair<uint32_t, uint32_t> getCPUTypeFromArchitecture(Architecture Arch) {
   switch (Arch) {
 #define ARCHINFO(Arch, Type, Subtype)                                          \
-  case Architecture::Arch:                                                     \
+  case AK_##Arch:                                                              \
     return std::make_pair(Type, Subtype);
 #include "llvm/TextAPI/MachO/Architecture.def"
 #undef ARCHINFO
-  case Architecture::unknown:
+  case AK_unknown:
     return std::make_pair(0, 0);
   }
 
index 882305cd0c20ce960853467945b574fc68b8bab8..c589671199b798ad85175aa19f38625de7314bb6 100644 (file)
@@ -18,7 +18,7 @@ namespace MachO {
 ArchitectureSet::ArchitectureSet(const std::vector<Architecture> &Archs)
     : ArchitectureSet() {
   for (auto Arch : Archs) {
-    if (Arch == Architecture::unknown)
+    if (Arch == AK_unknown)
       continue;
     set(Arch);
   }
@@ -51,7 +51,7 @@ ArchitectureSet::operator std::string() const {
 ArchitectureSet::operator std::vector<Architecture>() const {
   std::vector<Architecture> archs;
   for (auto arch : *this) {
-    if (arch == Architecture::unknown)
+    if (arch == AK_unknown)
       continue;
     archs.emplace_back(arch);
   }
index 805a9000512082d44e0f448c39e7b01d6cf09838..00382cd24573a563e1018407cc0c3e9cc5eff908 100644 (file)
@@ -85,7 +85,7 @@ QuotingType ScalarTraits<PlatformKind>::mustQuote(StringRef) {
 void ScalarBitSetTraits<ArchitectureSet>::bitset(IO &IO,
                                                  ArchitectureSet &Archs) {
 #define ARCHINFO(arch, type, subtype)                                          \
-  IO.bitSetCase(Archs, #arch, 1U << static_cast<int>(Architecture::arch));
+  IO.bitSetCase(Archs, #arch, 1U << static_cast<int>(AK_##arch));
 #include "llvm/TextAPI/MachO/Architecture.def"
 #undef ARCHINFO
 }
index c34656c6877d8df8b568086ed79e52743efbb44c..5ff15b9fb8dfc867b39e7a9e6d64b467b3028d01 100644 (file)
@@ -87,8 +87,7 @@ TEST(TBDv1, ReadFile) {
   EXPECT_TRUE(!!Result);
   auto File = std::move(Result.get());
   EXPECT_EQ(FileType::TBD_V1, File->getFileType());
-  auto Archs = Architecture::armv7 | Architecture::armv7s |
-               Architecture::armv7k | Architecture::arm64;
+  auto Archs = AK_armv7 | AK_armv7s | AK_armv7k | AK_arm64;
   EXPECT_EQ(Archs, File->getArchitectures());
   EXPECT_EQ(PlatformKind::iOS, File->getPlatform());
   EXPECT_EQ(std::string("Test.dylib"), File->getInstallName());
@@ -133,8 +132,7 @@ TEST(TBDv1, ReadFile2) {
   EXPECT_TRUE(!!Result);
   auto File = std::move(Result.get());
   EXPECT_EQ(FileType::TBD_V1, File->getFileType());
-  auto Archs = Architecture::armv7 | Architecture::armv7s |
-               Architecture::armv7k | Architecture::arm64;
+  auto Archs = AK_armv7 | AK_armv7s | AK_armv7k | AK_arm64;
   EXPECT_EQ(Archs, File->getArchitectures());
   EXPECT_EQ(PlatformKind::iOS, File->getPlatform());
   EXPECT_EQ(std::string("Test.dylib"), File->getInstallName());
@@ -178,23 +176,22 @@ TEST(TBDv1, WriteFile) {
   File.setPath("libfoo.dylib");
   File.setInstallName("/usr/lib/libfoo.dylib");
   File.setFileType(FileType::TBD_V1);
-  File.setArchitectures(Architecture::i386 | Architecture::x86_64);
+  File.setArchitectures(AK_i386 | AK_x86_64);
   File.setPlatform(PlatformKind::macOS);
   File.setCurrentVersion(PackedVersion(1, 2, 3));
   File.setSwiftABIVersion(5);
   File.setObjCConstraint(ObjCConstraintType::Retain_Release);
-  File.addAllowableClient("clientA", Architecture::x86_64);
-  File.addReexportedLibrary("/usr/lib/libfoo.dylib", Architecture::x86_64);
-  File.addSymbol(SymbolKind::GlobalSymbol, "_sym1", Architecture::i386);
-  File.addSymbol(SymbolKind::GlobalSymbol, "_sym2", Architecture::i386,
+  File.addAllowableClient("clientA", AK_x86_64);
+  File.addReexportedLibrary("/usr/lib/libfoo.dylib", AK_x86_64);
+  File.addSymbol(SymbolKind::GlobalSymbol, "_sym1", AK_i386);
+  File.addSymbol(SymbolKind::GlobalSymbol, "_sym2", AK_i386,
                  SymbolFlags::WeakDefined);
-  File.addSymbol(SymbolKind::GlobalSymbol, "_sym3", Architecture::i386,
+  File.addSymbol(SymbolKind::GlobalSymbol, "_sym3", AK_i386,
                  SymbolFlags::ThreadLocalValue);
-  File.addSymbol(SymbolKind::ObjectiveCClass, "Class1", Architecture::x86_64);
-  File.addSymbol(SymbolKind::ObjectiveCClassEHType, "Class1",
-                 Architecture::x86_64);
+  File.addSymbol(SymbolKind::ObjectiveCClass, "Class1", AK_x86_64);
+  File.addSymbol(SymbolKind::ObjectiveCClassEHType, "Class1", AK_x86_64);
   File.addSymbol(SymbolKind::ObjectiveCInstanceVariable, "Class1._ivar1",
-                 Architecture::x86_64);
+                 AK_x86_64);
 
   SmallString<4096> Buffer;
   raw_svector_ostream OS(Buffer);
index 1cb8b733910c1e3ce542dd893222a4b227f25f28..f380f7f362d098fadc13f2b68f9ab4c10abda607 100644 (file)
@@ -89,8 +89,7 @@ TEST(TBDv2, ReadFile) {
   EXPECT_TRUE(!!Result);
   auto File = std::move(Result.get());
   EXPECT_EQ(FileType::TBD_V2, File->getFileType());
-  auto Archs = Architecture::armv7 | Architecture::armv7s |
-               Architecture::armv7k | Architecture::arm64;
+  auto Archs = AK_armv7 | AK_armv7s | AK_armv7k | AK_arm64;
   EXPECT_EQ(Archs, File->getArchitectures());
   EXPECT_EQ(PlatformKind::iOS, File->getPlatform());
   EXPECT_EQ(std::string("Test.dylib"), File->getInstallName());
@@ -157,8 +156,7 @@ TEST(TBDv2, ReadFile2) {
   EXPECT_TRUE(!!Result);
   auto File = std::move(Result.get());
   EXPECT_EQ(FileType::TBD_V2, File->getFileType());
-  auto Archs = Architecture::armv7 | Architecture::armv7s |
-               Architecture::armv7k | Architecture::arm64;
+  auto Archs = AK_armv7 | AK_armv7s | AK_armv7k | AK_arm64;
   EXPECT_EQ(Archs, File->getArchitectures());
   EXPECT_EQ(PlatformKind::iOS, File->getPlatform());
   EXPECT_EQ(std::string("Test.dylib"), File->getInstallName());
@@ -201,25 +199,24 @@ TEST(TBDv2, WriteFile) {
   File.setPath("libfoo.dylib");
   File.setInstallName("/usr/lib/libfoo.dylib");
   File.setFileType(FileType::TBD_V2);
-  File.setArchitectures(Architecture::i386 | Architecture::x86_64);
+  File.setArchitectures(AK_i386 | AK_x86_64);
   File.setPlatform(PlatformKind::macOS);
   File.setCurrentVersion(PackedVersion(1, 2, 3));
   File.setTwoLevelNamespace();
   File.setApplicationExtensionSafe();
   File.setSwiftABIVersion(5);
   File.setObjCConstraint(ObjCConstraintType::Retain_Release);
-  File.addAllowableClient("clientA", Architecture::x86_64);
-  File.addReexportedLibrary("/usr/lib/libfoo.dylib", Architecture::x86_64);
-  File.addSymbol(SymbolKind::GlobalSymbol, "_sym1", Architecture::i386);
-  File.addSymbol(SymbolKind::GlobalSymbol, "_sym2", Architecture::i386,
+  File.addAllowableClient("clientA", AK_x86_64);
+  File.addReexportedLibrary("/usr/lib/libfoo.dylib", AK_x86_64);
+  File.addSymbol(SymbolKind::GlobalSymbol, "_sym1", AK_i386);
+  File.addSymbol(SymbolKind::GlobalSymbol, "_sym2", AK_i386,
                  SymbolFlags::WeakDefined);
-  File.addSymbol(SymbolKind::GlobalSymbol, "_sym3", Architecture::i386,
+  File.addSymbol(SymbolKind::GlobalSymbol, "_sym3", AK_i386,
                  SymbolFlags::ThreadLocalValue);
-  File.addSymbol(SymbolKind::ObjectiveCClass, "Class1", Architecture::x86_64);
-  File.addSymbol(SymbolKind::ObjectiveCClassEHType, "Class1",
-                 Architecture::x86_64);
+  File.addSymbol(SymbolKind::ObjectiveCClass, "Class1", AK_x86_64);
+  File.addSymbol(SymbolKind::ObjectiveCClassEHType, "Class1", AK_x86_64);
   File.addSymbol(SymbolKind::ObjectiveCInstanceVariable, "Class1._ivar1",
-                 Architecture::x86_64);
+                 AK_x86_64);
 
   SmallString<4096> Buffer;
   raw_svector_ostream OS(Buffer);