Skip to content

Commit f8a2c15

Browse files
committed
[android] Fix c_layout test for platforms which default to unsigned chars.
ARMv7 seems to default to unsigned chars, so the checks should look more like other platforms that prefer unsigned chars (like PowerPC64). Seems that iOS prefers to have a common signedness with other Darwin platforms and have signed chars. Introduce a new check prefix which include the SDK name (the OS is quite wildly in the case of Linux and Android), and differentiate the ARMv7 using the SDK. I'm confident about the Android tests. I only find three other ARMv7 platfoms: iOS, which keeps the previous tests; and Linux and Windows, which should also follow the unsigned char version.
1 parent a62c87f commit f8a2c15

File tree

1 file changed

+28
-16
lines changed

1 file changed

+28
-16
lines changed

test/IRGen/c_layout.sil

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -I %S/Inputs/abi %s -emit-ir | %FileCheck %s --check-prefix=CHECK-%target-cpu -check-prefix CHECK-%target-abi-%target-cpu
1+
// RUN: %target-swift-frontend -I %S/Inputs/abi %s -emit-ir | %FileCheck %s --check-prefix=CHECK-%target-cpu -check-prefix CHECK-%target-abi-%target-cpu -check-prefix CHECK-%target-sdk-name-%target-cpu
22

33
sil_stage canonical
44
import c_layout
@@ -173,21 +173,33 @@ bb0:
173173
// CHECK-i386-LABEL: declare{{( dllimport)?}} i32 @ints(i32)
174174
// CHECK-i386-LABEL: declare{{( dllimport)?}} i32 @unsigneds(i32)
175175

176-
// CHECK-armv7-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @testIntegerExtension
177-
// CHECK-armv7: call signext i8 @chareth(i8 signext
178-
// CHECK-armv7: call signext i8 @signedChareth(i8 signext
179-
// CHECK-armv7: call zeroext i8 @unsignedChareth(i8 zeroext
180-
// CHECK-armv7: call signext i16 @eatMyShorts(i16 signext
181-
// CHECK-armv7: call zeroext i16 @eatMyUnsignedShorts(i16 zeroext
182-
// CHECK-armv7: call i32 @ints(i32 %5)
183-
// CHECK-armv7: call i32 @unsigneds(i32 %6)
184-
// CHECK-armv7-LABEL: declare{{( dllimport)?}} signext i8 @chareth(i8 signext)
185-
// CHECK-armv7-LABEL: declare{{( dllimport)?}} signext i8 @signedChareth(i8 signext)
186-
// CHECK-armv7-LABEL: declare{{( dllimport)?}} zeroext i8 @unsignedChareth(i8 zeroext)
187-
// CHECK-armv7-LABEL: declare{{( dllimport)?}} signext i16 @eatMyShorts(i16 signext)
188-
// CHECK-armv7-LABEL: declare{{( dllimport)?}} zeroext i16 @eatMyUnsignedShorts(i16 zeroext)
189-
// CHECK-armv7-LABEL: declare{{( dllimport)?}} i32 @ints(i32)
190-
// CHECK-armv7-LABEL: declare{{( dllimport)?}} i32 @unsigneds(i32)
176+
// CHECK-armv7-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @testIntegerExtension
177+
// CHECK-ios-armv7: call signext i8 @chareth(i8 signext
178+
// CHECK-ios-armv7: call signext i8 @signedChareth(i8 signext
179+
// CHECK-android-armv7: call zeroext i8 @chareth(i8 zeroext
180+
// CHECK-android-armv7: call zeroext i8 @signedChareth(i8 zeroext
181+
// CHECK-linux-armv7: call zeroext i8 @chareth(i8 zeroext
182+
// CHECK-linux-armv7: call zeroext i8 @signedChareth(i8 zeroext
183+
// CHECK-windows-armv7: call zeroext i8 @chareth(i8 zeroext
184+
// CHECK-windows-armv7: call zeroext i8 @signedChareth(i8 zeroext
185+
// CHECK-armv7: call zeroext i8 @unsignedChareth(i8 zeroext
186+
// CHECK-armv7: call signext i16 @eatMyShorts(i16 signext
187+
// CHECK-armv7: call zeroext i16 @eatMyUnsignedShorts(i16 zeroext
188+
// CHECK-armv7: call i32 @ints(i32 %5)
189+
// CHECK-armv7: call i32 @unsigneds(i32 %6)
190+
// CHECK-ios-armv7-LABEL: declare{{( dllimport)?}} signext i8 @chareth(i8 signext)
191+
// CHECK-ios-armv7-LABEL: declare{{( dllimport)?}} signext i8 @signedChareth(i8 signext)
192+
// CHECK-android-armv7-LABEL: declare{{( dllimport)?}} zeroext i8 @chareth(i8 zeroext)
193+
// CHECK-android-armv7-LABEL: declare{{( dllimport)?}} zeroext i8 @signedChareth(i8 zeroext)
194+
// CHECK-linux-armv7-LABEL: declare{{( dllimport)?}} zeroext i8 @chareth(i8 zeroext)
195+
// CHECK-linux-armv7-LABEL: declare{{( dllimport)?}} zeroext i8 @signedChareth(i8 zeroext)
196+
// CHECK-windows-armv7-LABEL: declare{{( dllimport)?}} zeroext i8 @chareth(i8 zeroext)
197+
// CHECK-windows-armv7-LABEL: declare{{( dllimport)?}} zeroext i8 @signedChareth(i8 zeroext)
198+
// CHECK-armv7-LABEL: declare{{( dllimport)?}} zeroext i8 @unsignedChareth(i8 zeroext)
199+
// CHECK-armv7-LABEL: declare{{( dllimport)?}} signext i16 @eatMyShorts(i16 signext)
200+
// CHECK-armv7-LABEL: declare{{( dllimport)?}} zeroext i16 @eatMyUnsignedShorts(i16 zeroext)
201+
// CHECK-armv7-LABEL: declare{{( dllimport)?}} i32 @ints(i32)
202+
// CHECK-armv7-LABEL: declare{{( dllimport)?}} i32 @unsigneds(i32)
191203

192204
// CHECK-armv7s-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @testIntegerExtension
193205
// CHECK-armv7s: call signext i8 @chareth(i8 signext

0 commit comments

Comments
 (0)