[Clang] Partially fix m68k alignments (#144740)
As the data layout a few lines further up specifies, the int, long and pointer alignment should be 16 instead of the default of 32. The long long alignment is also incorrect, but that would require a change to the data layout as well. Comparison with GCC, which consistently uses 2 byte alignment: https://gcc.godbolt.org/z/K3x6a7dEf At least based on some spot checks, the changes to bit field layout also make use match GCC now. This was found by https://github.com/llvm/llvm-project/pull/144720.
This commit is contained in:
parent
c5e4546a01
commit
7e830f7671
@ -56,6 +56,7 @@ M68kTargetInfo::M68kTargetInfo(const llvm::Triple &Triple,
|
||||
SizeType = UnsignedInt;
|
||||
PtrDiffType = SignedInt;
|
||||
IntPtrType = SignedInt;
|
||||
IntAlign = LongAlign = PointerAlign = 16;
|
||||
}
|
||||
|
||||
bool M68kTargetInfo::setCPU(const std::string &Name) {
|
||||
|
@ -18,7 +18,7 @@
|
||||
// RUN: %clang_cc1 -triple=hexagon-elf %s -emit-llvm -o /dev/null -fdump-record-layouts-simple | FileCheck --check-prefixes CHECK,LAYOUT-T %s
|
||||
|
||||
// Big endian
|
||||
// RUN: %clang_cc1 -triple=m68k-elf %s -emit-llvm -o /dev/null -fdump-record-layouts-simple | FileCheck --check-prefixes CHECK,LAYOUT-T %s
|
||||
// RUN: %clang_cc1 -triple=m68k-elf %s -emit-llvm -o /dev/null -fdump-record-layouts-simple | FileCheck --check-prefixes CHECK,LAYOUT-M68K %s
|
||||
// RUN: %clang_cc1 -triple=mips-elf %s -emit-llvm -o /dev/null -fdump-record-layouts-simple | FileCheck --check-prefixes CHECK,LAYOUT-T %s
|
||||
|
||||
// And now a few with -fno-bitfield-type-align. Precisely how this behaves is
|
||||
@ -45,6 +45,7 @@ struct P1 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P1 =
|
||||
// LAYOUT-T-SAME: type { i8, i8, [2 x i8] }
|
||||
// LAYOUT-ARM64-T-SAME: type { i8, i8 }
|
||||
// LAYOUT-M68K-SAME: type { i8, i8 }
|
||||
// LAYOUT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-DWN32-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
@ -60,6 +61,9 @@ struct P1 {
|
||||
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:1
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:1
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
@ -75,6 +79,7 @@ struct P2 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P2 =
|
||||
// LAYOUT-T-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-ARM64-T-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-M68K-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-DWN32-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
@ -90,6 +95,9 @@ struct P2 {
|
||||
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
@ -105,6 +113,7 @@ struct P3 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P3 =
|
||||
// LAYOUT-T-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
// LAYOUT-ARM64-T-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
// LAYOUT-M68K-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-DWN32-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
@ -120,6 +129,9 @@ struct P3 {
|
||||
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
@ -134,6 +146,7 @@ struct P4 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P4 =
|
||||
// LAYOUT-T-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
// LAYOUT-ARM64-T-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
// LAYOUT-M68K-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-DWN32-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
@ -149,6 +162,9 @@ struct P4 {
|
||||
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
@ -162,6 +178,7 @@ struct P5 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P5 =
|
||||
// LAYOUT-T-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
// LAYOUT-ARM64-T-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
// LAYOUT-M68K-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-DWN32-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
@ -177,6 +194,9 @@ struct P5 {
|
||||
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
@ -192,6 +212,7 @@ struct P6 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P6 =
|
||||
// LAYOUT-T-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
// LAYOUT-ARM64-T-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
// LAYOUT-M68K-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-DWN32-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
@ -207,6 +228,9 @@ struct P6 {
|
||||
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
@ -220,6 +244,7 @@ struct P7 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P7 =
|
||||
// LAYOUT-T-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-ARM64-T-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-M68K-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-DWN32-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
@ -235,6 +260,9 @@ struct P7 {
|
||||
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
@ -250,6 +278,7 @@ struct __attribute__ ((aligned (2))) P7_align {
|
||||
// CHECK-LABEL: LLVMType:%struct.P7_align =
|
||||
// LAYOUT-T-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-ARM64-T-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-M68K-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i8, i8 }
|
||||
// LAYOUT-DWN32-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
@ -265,6 +294,9 @@ struct __attribute__ ((aligned (2))) P7_align {
|
||||
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
@ -278,6 +310,7 @@ struct P8 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P8 =
|
||||
// LAYOUT-T-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-ARM64-T-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-M68K-SAME: type { i8, i8, i8, i8 }
|
||||
// LAYOUT-NT-SAME: type { i16 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i16 }
|
||||
// LAYOUT-DWN32-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
@ -293,6 +326,9 @@ struct P8 {
|
||||
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:2
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
@ -306,6 +342,7 @@ struct P9 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P9 =
|
||||
// LAYOUT-T-SAME: type { i8, i8, [2 x i8] }
|
||||
// LAYOUT-ARM64-T-SAME: type { i8, i8 }
|
||||
// LAYOUT-M68K-SAME: type { i8, i8 }
|
||||
// LAYOUT-NT-SAME: type { i16 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i16 }
|
||||
// LAYOUT-DWN32-SAME: type { i8, [3 x i8], i8, [3 x i8] }
|
||||
@ -321,6 +358,9 @@ struct P9 {
|
||||
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:1
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:1
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:8 StorageOffset:4
|
||||
@ -335,6 +375,7 @@ struct __attribute__((aligned(4))) P10 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P10 =
|
||||
// LAYOUT-T-SAME: type { i32 }
|
||||
// LAYOUT-ARM64-T-SAME: type { i32 }
|
||||
// LAYOUT-M68K-SAME: type { i32 }
|
||||
// LAYOUT-NT-SAME: type { i32 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i32 }
|
||||
// LAYOUT-DWN32-SAME: type { i32 }
|
||||
@ -354,6 +395,10 @@ struct __attribute__((aligned(4))) P10 {
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
@ -369,6 +414,7 @@ struct __attribute__((aligned(4))) P11 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P11 =
|
||||
// LAYOUT-T-SAME: type { i32 }
|
||||
// LAYOUT-ARM64-T-SAME: type { i32 }
|
||||
// LAYOUT-M68K-SAME: type { i32 }
|
||||
// LAYOUT-NT-SAME: type { i32 }
|
||||
// LAYOUT-STRICT-NT-SAME: type { i32 }
|
||||
// LAYOUT-DWN32-SAME: type { i32 }
|
||||
@ -388,6 +434,10 @@ struct __attribute__((aligned(4))) P11 {
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-ARM64-T-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:10 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
//
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:10 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:7 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
// Big endian
|
||||
// RUN: %clang_cc1 -triple=lanai-elf %s -emit-llvm -o /dev/null -fdump-record-layouts-simple | FileCheck --check-prefixes CHECK,LAYOUT %s
|
||||
// RUN: %clang_cc1 -triple=m68k-elf %s -emit-llvm -o /dev/null -fdump-record-layouts-simple | FileCheck --check-prefixes CHECK,LAYOUT %s
|
||||
// RUN: %clang_cc1 -triple=m68k-elf %s -emit-llvm -o /dev/null -fdump-record-layouts-simple | FileCheck --check-prefixes CHECK,LAYOUT-M68K %s
|
||||
// RUN: %clang_cc1 -triple=mips-elf %s -emit-llvm -o /dev/null -fdump-record-layouts-simple | FileCheck --check-prefixes CHECK,LAYOUT %s
|
||||
// RUN: %clang_cc1 -triple=mips64-elf %s -emit-llvm -o /dev/null -fdump-record-layouts-simple | FileCheck --check-prefixes CHECK,LAYOUT %s
|
||||
// RUN: %clang_cc1 -triple=sparc-elf %s -emit-llvm -o /dev/null -fdump-record-layouts-simple | FileCheck --check-prefixes CHECK,LAYOUT %s
|
||||
@ -51,6 +51,7 @@ struct P1 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P1 =
|
||||
// LAYOUT-SAME: type { i16, i16 }
|
||||
// LAYOUT-DWN32-SAME: type { i16, i16 }
|
||||
// LAYOUT-DWN32-M68K: type { i16, i16 }
|
||||
// CHECK-NEXT: NonVirtualBaseLLVMType:%struct.P1 =
|
||||
// CHECK: BitFields:[
|
||||
// LAYOUT-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:16 StorageOffset:0
|
||||
@ -58,6 +59,9 @@ struct P1 {
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:16 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:16 StorageOffset:2
|
||||
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:16 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:16 StorageOffset:2
|
||||
// CHECK-NEXT: ]>
|
||||
|
||||
struct P2 {
|
||||
@ -68,6 +72,7 @@ struct P2 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P2 =
|
||||
// LAYOUT-SAME: type { i16, i16 }
|
||||
// LAYOUT-DWN32-SAME: type { i16, i16 }
|
||||
// LAYOUT-M68K-SAME: type { i16, i16 }
|
||||
// CHECK-NEXT: NonVirtualBaseLLVMType:%struct.P2 =
|
||||
// CHECK: BitFields:[
|
||||
// LAYOUT-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:15 IsSigned:0 StorageSize:16 StorageOffset:0
|
||||
@ -75,6 +80,9 @@ struct P2 {
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:15 IsSigned:0 StorageSize:16 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:15 IsSigned:0 StorageSize:16 StorageOffset:2
|
||||
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:15 IsSigned:0 StorageSize:16 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:15 IsSigned:0 StorageSize:16 StorageOffset:2
|
||||
// CHECK-NEXT: ]>
|
||||
|
||||
struct P3 {
|
||||
@ -85,6 +93,7 @@ struct P3 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P3 =
|
||||
// LAYOUT-SAME: type { i16, [2 x i8], i16, [2 x i8] }
|
||||
// LAYOUT-DWN32-SAME: type <{ i16, i8, i16 }>
|
||||
// LAYOUT-M68K-SAME: type <{ i16, i8, i16, i8 }>
|
||||
// CHECK-NEXT: NonVirtualBaseLLVMType:%struct.P3 =
|
||||
// CHECK: BitFields:[
|
||||
// LAYOUT-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:16 StorageOffset:0
|
||||
@ -92,6 +101,9 @@ struct P3 {
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:16 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:16 StorageOffset:3
|
||||
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:16 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:16 StorageOffset:3
|
||||
// CHECK-NEXT: ]>
|
||||
|
||||
struct P4 {
|
||||
@ -121,6 +133,7 @@ struct P6 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P6 =
|
||||
// LAYOUT-SAME: type { i32, i32 }
|
||||
// LAYOUT-DWN32-SAME: type { i32, i32 }
|
||||
// LAYOUT-M68K-SAME: type { i32, i32 }
|
||||
// CHECK-NEXT: NonVirtualBaseLLVMType:%struct.P6 =
|
||||
// CHECK: BitFields:[
|
||||
// LAYOUT-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
@ -128,6 +141,9 @@ struct P6 {
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// CHECK-NEXT: ]>
|
||||
|
||||
struct P7 {
|
||||
@ -139,6 +155,7 @@ struct P7 {
|
||||
// CHECK-LABEL: LLVMType:%struct.P7 =
|
||||
// LAYOUT-SAME: type { i32, i32 }
|
||||
// LAYOUT-DWN32-SAME: type { i32, i32 }
|
||||
// LAYOUT-M68K-SAME: type { i32, i32 }
|
||||
// CHECK-NEXT: NonVirtualBaseLLVMType:%struct.P7 =
|
||||
// CHECK: BitFields:[
|
||||
// LAYOUT-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
@ -146,4 +163,7 @@ struct P7 {
|
||||
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-DWN32-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:16 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// LAYOUT-M68K-NEXT: <CGBitFieldInfo Offset:{{[0-9]+}} Size:8 IsSigned:0 StorageSize:32 StorageOffset:0
|
||||
// CHECK-NEXT: ]>
|
||||
|
Loading…
x
Reference in New Issue
Block a user