Skip to content

Commit c3796b4

Browse files
committed
Parse armv6 and armv7 subarchs
Updates parseSubArch to handle more forms of armv6 and armv7 subarchitectures and adds a simple test for additional coverage.
1 parent 935daac commit c3796b4

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

Sources/SwiftDriver/Utilities/Triple.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -963,19 +963,19 @@ extension Triple {
963963
return .arm(.v6k)
964964
case "v6kz":
965965
return .arm(.v6kz)
966-
case "v6-m":
966+
case "v6m", "v6-m":
967967
return .arm(.v6m)
968968
case "v6t2":
969969
return .arm(.v6t2)
970-
case "v7-a":
970+
case "v7a", "v7-a":
971971
return .arm(.v7)
972972
case "v7k":
973973
return .arm(.v7k)
974-
case "v7-m":
974+
case "v7m", "v7-m":
975975
return .arm(.v7m)
976-
case "v7e-m":
976+
case "v7em", "v7e-m":
977977
return .arm(.v7em)
978-
case "v7-r":
978+
case "v7r", "v7-r":
979979
return .arm(.v7r)
980980
case "v7s":
981981
return .arm(.v7s)

Tests/SwiftDriverTests/TripleTests.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,34 +199,47 @@ final class TripleTests: XCTestCase {
199199

200200
T = Triple("arm-none-none-eabi")
201201
XCTAssertEqual(T.arch, Triple.Arch.arm)
202+
XCTAssertEqual(T.subArch, nil)
202203
XCTAssertEqual(T.vendor, nil)
203204
XCTAssertEqual(T.os, .noneOS)
204205
XCTAssertEqual(T.environment, Triple.Environment.eabi)
205206

206207
T = Triple("arm-none-unknown-eabi")
207208
XCTAssertEqual(T.arch, Triple.Arch.arm)
209+
XCTAssertEqual(T.subArch, nil)
208210
XCTAssertEqual(T.vendor, nil)
209211
XCTAssertEqual(T.os, nil)
210212
XCTAssertEqual(T.environment, Triple.Environment.eabi)
211213

212214
T = Triple("arm-none-linux-musleabi")
213215
XCTAssertEqual(T.arch, Triple.Arch.arm)
216+
XCTAssertEqual(T.subArch, nil)
214217
XCTAssertEqual(T.vendor, nil)
215218
XCTAssertEqual(T.os, Triple.OS.linux)
216219
XCTAssertEqual(T.environment, Triple.Environment.musleabi)
217220

218221
T = Triple("armv6hl-none-linux-gnueabi")
219222
XCTAssertEqual(T.arch, Triple.Arch.arm)
223+
XCTAssertEqual(T.subArch, nil)
220224
XCTAssertEqual(T.os, Triple.OS.linux)
221225
XCTAssertEqual(T.vendor, nil)
222226
XCTAssertEqual(T.environment, Triple.Environment.gnueabi)
223227

224228
T = Triple("armv7hl-none-linux-gnueabi")
225229
XCTAssertEqual(T.arch, Triple.Arch.arm)
230+
XCTAssertEqual(T.subArch, nil)
226231
XCTAssertEqual(T.os, Triple.OS.linux)
227232
XCTAssertEqual(T.vendor, nil)
228233
XCTAssertEqual(T.environment, Triple.Environment.gnueabi)
229234

235+
T = Triple("armv7em-apple-none-macho")
236+
XCTAssertEqual(T.arch, Triple.Arch.arm)
237+
XCTAssertEqual(T.subArch, Triple.SubArch.arm(.v7em))
238+
XCTAssertEqual(T.vendor, .apple)
239+
XCTAssertEqual(T.os, Triple.OS.noneOS)
240+
XCTAssertEqual(T.environment, nil)
241+
XCTAssertEqual(T.objectFormat, Triple.ObjectFormat.macho)
242+
230243
T = Triple("amdil-unknown-unknown")
231244
XCTAssertEqual(T.arch, Triple.Arch.amdil)
232245
XCTAssertEqual(T.vendor, nil)

0 commit comments

Comments
 (0)