Skip to content

Commit 875565e

Browse files
committed
[TextAPI] Prefix all architecture enums to fix the build on i386.
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 llvm-svn: 357733
1 parent b250403 commit 875565e

File tree

7 files changed

+37
-43
lines changed

7 files changed

+37
-43
lines changed

llvm/include/llvm/TextAPI/MachO/Architecture.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ namespace llvm {
2020
namespace MachO {
2121

2222
/// Defines the architecture slices that are supported by Text-based Stub files.
23-
enum class Architecture : uint8_t {
24-
#define ARCHINFO(Arch, Type, SubType) Arch,
23+
enum Architecture : uint8_t {
24+
#define ARCHINFO(Arch, Type, SubType) AK_##Arch,
2525
#include "llvm/TextAPI/MachO/Architecture.def"
2626
#undef ARCHINFO
27-
unknown, // this has to go last.
27+
AK_unknown, // this has to go last.
2828
};
2929

3030
/// Convert a CPU Type and Subtype pair to an architecture slice.

llvm/include/llvm/TextAPI/MachO/ArchitectureSet.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class ArchitectureSet {
3838
ArchitectureSet(const std::vector<Architecture> &Archs);
3939

4040
void set(Architecture Arch) {
41-
if (Arch == Architecture::unknown)
41+
if (Arch == AK_unknown)
4242
return;
4343
ArchSet |= 1U << static_cast<int>(Arch);
4444
}

llvm/lib/TextAPI/MachO/Architecture.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,29 +21,29 @@ Architecture getArchitectureFromCpuType(uint32_t CPUType, uint32_t CPUSubType) {
2121
#define ARCHINFO(Arch, Type, Subtype) \
2222
if (CPUType == (Type) && \
2323
(CPUSubType & ~MachO::CPU_SUBTYPE_MASK) == (Subtype)) \
24-
return Architecture::Arch;
24+
return AK_##Arch;
2525
#include "llvm/TextAPI/MachO/Architecture.def"
2626
#undef ARCHINFO
2727

28-
return Architecture::unknown;
28+
return AK_unknown;
2929
}
3030

3131
Architecture getArchitectureFromName(StringRef Name) {
3232
return StringSwitch<Architecture>(Name)
33-
#define ARCHINFO(Arch, Type, Subtype) .Case(#Arch, Architecture::Arch)
33+
#define ARCHINFO(Arch, Type, Subtype) .Case(#Arch, AK_##Arch)
3434
#include "llvm/TextAPI/MachO/Architecture.def"
3535
#undef ARCHINFO
36-
.Default(Architecture::unknown);
36+
.Default(AK_unknown);
3737
}
3838

3939
StringRef getArchitectureName(Architecture Arch) {
4040
switch (Arch) {
4141
#define ARCHINFO(Arch, Type, Subtype) \
42-
case Architecture::Arch: \
42+
case AK_##Arch: \
4343
return #Arch;
4444
#include "llvm/TextAPI/MachO/Architecture.def"
4545
#undef ARCHINFO
46-
case Architecture::unknown:
46+
case AK_unknown:
4747
return "unknown";
4848
}
4949

@@ -55,11 +55,11 @@ StringRef getArchitectureName(Architecture Arch) {
5555
std::pair<uint32_t, uint32_t> getCPUTypeFromArchitecture(Architecture Arch) {
5656
switch (Arch) {
5757
#define ARCHINFO(Arch, Type, Subtype) \
58-
case Architecture::Arch: \
58+
case AK_##Arch: \
5959
return std::make_pair(Type, Subtype);
6060
#include "llvm/TextAPI/MachO/Architecture.def"
6161
#undef ARCHINFO
62-
case Architecture::unknown:
62+
case AK_unknown:
6363
return std::make_pair(0, 0);
6464
}
6565

llvm/lib/TextAPI/MachO/ArchitectureSet.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace MachO {
1818
ArchitectureSet::ArchitectureSet(const std::vector<Architecture> &Archs)
1919
: ArchitectureSet() {
2020
for (auto Arch : Archs) {
21-
if (Arch == Architecture::unknown)
21+
if (Arch == AK_unknown)
2222
continue;
2323
set(Arch);
2424
}
@@ -51,7 +51,7 @@ ArchitectureSet::operator std::string() const {
5151
ArchitectureSet::operator std::vector<Architecture>() const {
5252
std::vector<Architecture> archs;
5353
for (auto arch : *this) {
54-
if (arch == Architecture::unknown)
54+
if (arch == AK_unknown)
5555
continue;
5656
archs.emplace_back(arch);
5757
}

llvm/lib/TextAPI/MachO/TextStubCommon.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ QuotingType ScalarTraits<PlatformKind>::mustQuote(StringRef) {
8585
void ScalarBitSetTraits<ArchitectureSet>::bitset(IO &IO,
8686
ArchitectureSet &Archs) {
8787
#define ARCHINFO(arch, type, subtype) \
88-
IO.bitSetCase(Archs, #arch, 1U << static_cast<int>(Architecture::arch));
88+
IO.bitSetCase(Archs, #arch, 1U << static_cast<int>(AK_##arch));
8989
#include "llvm/TextAPI/MachO/Architecture.def"
9090
#undef ARCHINFO
9191
}

llvm/unittests/TextAPI/TextStubV1Tests.cpp

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,7 @@ TEST(TBDv1, ReadFile) {
8787
EXPECT_TRUE(!!Result);
8888
auto File = std::move(Result.get());
8989
EXPECT_EQ(FileType::TBD_V1, File->getFileType());
90-
auto Archs = Architecture::armv7 | Architecture::armv7s |
91-
Architecture::armv7k | Architecture::arm64;
90+
auto Archs = AK_armv7 | AK_armv7s | AK_armv7k | AK_arm64;
9291
EXPECT_EQ(Archs, File->getArchitectures());
9392
EXPECT_EQ(PlatformKind::iOS, File->getPlatform());
9493
EXPECT_EQ(std::string("Test.dylib"), File->getInstallName());
@@ -133,8 +132,7 @@ TEST(TBDv1, ReadFile2) {
133132
EXPECT_TRUE(!!Result);
134133
auto File = std::move(Result.get());
135134
EXPECT_EQ(FileType::TBD_V1, File->getFileType());
136-
auto Archs = Architecture::armv7 | Architecture::armv7s |
137-
Architecture::armv7k | Architecture::arm64;
135+
auto Archs = AK_armv7 | AK_armv7s | AK_armv7k | AK_arm64;
138136
EXPECT_EQ(Archs, File->getArchitectures());
139137
EXPECT_EQ(PlatformKind::iOS, File->getPlatform());
140138
EXPECT_EQ(std::string("Test.dylib"), File->getInstallName());
@@ -178,23 +176,22 @@ TEST(TBDv1, WriteFile) {
178176
File.setPath("libfoo.dylib");
179177
File.setInstallName("/usr/lib/libfoo.dylib");
180178
File.setFileType(FileType::TBD_V1);
181-
File.setArchitectures(Architecture::i386 | Architecture::x86_64);
179+
File.setArchitectures(AK_i386 | AK_x86_64);
182180
File.setPlatform(PlatformKind::macOS);
183181
File.setCurrentVersion(PackedVersion(1, 2, 3));
184182
File.setSwiftABIVersion(5);
185183
File.setObjCConstraint(ObjCConstraintType::Retain_Release);
186-
File.addAllowableClient("clientA", Architecture::x86_64);
187-
File.addReexportedLibrary("/usr/lib/libfoo.dylib", Architecture::x86_64);
188-
File.addSymbol(SymbolKind::GlobalSymbol, "_sym1", Architecture::i386);
189-
File.addSymbol(SymbolKind::GlobalSymbol, "_sym2", Architecture::i386,
184+
File.addAllowableClient("clientA", AK_x86_64);
185+
File.addReexportedLibrary("/usr/lib/libfoo.dylib", AK_x86_64);
186+
File.addSymbol(SymbolKind::GlobalSymbol, "_sym1", AK_i386);
187+
File.addSymbol(SymbolKind::GlobalSymbol, "_sym2", AK_i386,
190188
SymbolFlags::WeakDefined);
191-
File.addSymbol(SymbolKind::GlobalSymbol, "_sym3", Architecture::i386,
189+
File.addSymbol(SymbolKind::GlobalSymbol, "_sym3", AK_i386,
192190
SymbolFlags::ThreadLocalValue);
193-
File.addSymbol(SymbolKind::ObjectiveCClass, "Class1", Architecture::x86_64);
194-
File.addSymbol(SymbolKind::ObjectiveCClassEHType, "Class1",
195-
Architecture::x86_64);
191+
File.addSymbol(SymbolKind::ObjectiveCClass, "Class1", AK_x86_64);
192+
File.addSymbol(SymbolKind::ObjectiveCClassEHType, "Class1", AK_x86_64);
196193
File.addSymbol(SymbolKind::ObjectiveCInstanceVariable, "Class1._ivar1",
197-
Architecture::x86_64);
194+
AK_x86_64);
198195

199196
SmallString<4096> Buffer;
200197
raw_svector_ostream OS(Buffer);

llvm/unittests/TextAPI/TextStubV2Tests.cpp

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,7 @@ TEST(TBDv2, ReadFile) {
8989
EXPECT_TRUE(!!Result);
9090
auto File = std::move(Result.get());
9191
EXPECT_EQ(FileType::TBD_V2, File->getFileType());
92-
auto Archs = Architecture::armv7 | Architecture::armv7s |
93-
Architecture::armv7k | Architecture::arm64;
92+
auto Archs = AK_armv7 | AK_armv7s | AK_armv7k | AK_arm64;
9493
EXPECT_EQ(Archs, File->getArchitectures());
9594
EXPECT_EQ(PlatformKind::iOS, File->getPlatform());
9695
EXPECT_EQ(std::string("Test.dylib"), File->getInstallName());
@@ -157,8 +156,7 @@ TEST(TBDv2, ReadFile2) {
157156
EXPECT_TRUE(!!Result);
158157
auto File = std::move(Result.get());
159158
EXPECT_EQ(FileType::TBD_V2, File->getFileType());
160-
auto Archs = Architecture::armv7 | Architecture::armv7s |
161-
Architecture::armv7k | Architecture::arm64;
159+
auto Archs = AK_armv7 | AK_armv7s | AK_armv7k | AK_arm64;
162160
EXPECT_EQ(Archs, File->getArchitectures());
163161
EXPECT_EQ(PlatformKind::iOS, File->getPlatform());
164162
EXPECT_EQ(std::string("Test.dylib"), File->getInstallName());
@@ -201,25 +199,24 @@ TEST(TBDv2, WriteFile) {
201199
File.setPath("libfoo.dylib");
202200
File.setInstallName("/usr/lib/libfoo.dylib");
203201
File.setFileType(FileType::TBD_V2);
204-
File.setArchitectures(Architecture::i386 | Architecture::x86_64);
202+
File.setArchitectures(AK_i386 | AK_x86_64);
205203
File.setPlatform(PlatformKind::macOS);
206204
File.setCurrentVersion(PackedVersion(1, 2, 3));
207205
File.setTwoLevelNamespace();
208206
File.setApplicationExtensionSafe();
209207
File.setSwiftABIVersion(5);
210208
File.setObjCConstraint(ObjCConstraintType::Retain_Release);
211-
File.addAllowableClient("clientA", Architecture::x86_64);
212-
File.addReexportedLibrary("/usr/lib/libfoo.dylib", Architecture::x86_64);
213-
File.addSymbol(SymbolKind::GlobalSymbol, "_sym1", Architecture::i386);
214-
File.addSymbol(SymbolKind::GlobalSymbol, "_sym2", Architecture::i386,
209+
File.addAllowableClient("clientA", AK_x86_64);
210+
File.addReexportedLibrary("/usr/lib/libfoo.dylib", AK_x86_64);
211+
File.addSymbol(SymbolKind::GlobalSymbol, "_sym1", AK_i386);
212+
File.addSymbol(SymbolKind::GlobalSymbol, "_sym2", AK_i386,
215213
SymbolFlags::WeakDefined);
216-
File.addSymbol(SymbolKind::GlobalSymbol, "_sym3", Architecture::i386,
214+
File.addSymbol(SymbolKind::GlobalSymbol, "_sym3", AK_i386,
217215
SymbolFlags::ThreadLocalValue);
218-
File.addSymbol(SymbolKind::ObjectiveCClass, "Class1", Architecture::x86_64);
219-
File.addSymbol(SymbolKind::ObjectiveCClassEHType, "Class1",
220-
Architecture::x86_64);
216+
File.addSymbol(SymbolKind::ObjectiveCClass, "Class1", AK_x86_64);
217+
File.addSymbol(SymbolKind::ObjectiveCClassEHType, "Class1", AK_x86_64);
221218
File.addSymbol(SymbolKind::ObjectiveCInstanceVariable, "Class1._ivar1",
222-
Architecture::x86_64);
219+
AK_x86_64);
223220

224221
SmallString<4096> Buffer;
225222
raw_svector_ostream OS(Buffer);

0 commit comments

Comments
 (0)