]> granicus.if.org Git - clang/commitdiff
MS ABI: Fix some layout tests
authorDavid Majnemer <david.majnemer@gmail.com>
Mon, 3 Feb 2014 00:29:57 +0000 (00:29 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Mon, 3 Feb 2014 00:29:57 +0000 (00:29 +0000)
Some lines intended to be used for testing x86_64 ABI compatibility were
not firing because lines were annotated with the wrong FileCheck prefix:
X64 vs x64

N.B. Changes beyond just changing x64 to X64 were made, presumably
because other parts of the layout engine have changed.  I've verified
the changes to make sure that MSVC creates a compatible layout.

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

test/Layout/ms-x86-alias-avoidance-padding.cpp
test/Layout/ms-x86-pack-and-align.cpp
test/Layout/ms-x86-primary-bases.cpp

index e0565f78f6da617f7f8ddb4674f165d4c3160130..f95c78b6de6065504a76b49f50b4e6d476f654f4 100644 (file)
@@ -283,20 +283,20 @@ struct JC4 : JC1, JC2 {
 // CHECK-NEXT:   12 |       struct JC0 (base) (empty)
 // CHECK-NEXT:      | [sizeof=12, align=4
 // CHECK-NEXT:      |  nvsize=12, nvalign=4]
-// CHECK-x64: *** Dumping AST Record Layout
-// CHECK-x64: *** Dumping AST Record Layout
-// CHECK-x64: *** Dumping AST Record Layout
-// CHECK-x64: *** Dumping AST Record Layout
-// CHECK-x64-NEXT:    0 | struct JC4
-// CHECK-x64-NEXT:    0 |   struct JC1 (primary base)
-// CHECK-x64-NEXT:    0 |     (JC1 vftable pointer)
-// CHECK-x64-NEXT:    8 |     struct JC0 (base) (empty)
-// CHECK-x64-NEXT:   16 |   struct JC2 (base)
-// CHECK-x64-NEXT:   16 |     struct JC1 (primary base)
-// CHECK-x64-NEXT:   16 |       (JC1 vftable pointer)
-// CHECK-x64-NEXT:   24 |       struct JC0 (base) (empty)
-// CHECK-x64-NEXT:      | [sizeof=24, align=8
-// CHECK-x64-NEXT:      |  nvsize=24, nvalign=8]
+// CHECK-X64: *** Dumping AST Record Layout
+// CHECK-X64: *** Dumping AST Record Layout
+// CHECK-X64: *** Dumping AST Record Layout
+// CHECK-X64: *** Dumping AST Record Layout
+// CHECK-X64-NEXT:    0 | struct JC4
+// CHECK-X64-NEXT:    0 |   struct JC1 (primary base)
+// CHECK-X64-NEXT:    0 |     (JC1 vftable pointer)
+// CHECK-X64-NEXT:    8 |     struct JC0 (base) (empty)
+// CHECK-X64-NEXT:   16 |   struct JC2 (base)
+// CHECK-X64-NEXT:   16 |     struct JC1 (primary base)
+// CHECK-X64-NEXT:   16 |       (JC1 vftable pointer)
+// CHECK-X64-NEXT:   24 |       struct JC0 (base) (empty)
+// CHECK-X64-NEXT:      | [sizeof=24, align=8
+// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]
 
 int a[
 sizeof(AT3) +
index e868766e1e79c51d63044c4d117612465ee693b8..c09c36399468abf550c6761a6b72ee609eb9062e 100644 (file)
@@ -362,14 +362,14 @@ struct KB : KA { __declspec(align(2)) char a; };
 // CHECK-NEXT:    2 |   char a
 // CHECK-NEXT:      | [sizeof=4, align=2
 // CHECK-NEXT:      |  nvsize=3, nvalign=2]
-// CHECK-x64: *** Dumping AST Record Layout
-// CHECK-x64: *** Dumping AST Record Layout
-// CHECK-x64-NEXT:    0 | struct KB
-// CHECK-x64-NEXT:    0 |   struct KA (base)
-// CHECK-x64-NEXT:    0 |     char a
-// CHECK-x64-NEXT:    2 |   char a
-// CHECK-x64-NEXT:      | [sizeof=4, align=2
-// CHECK-x64-NEXT:      |  nvsize=3, nvalign=2]
+// CHECK-X64: *** Dumping AST Record Layout
+// CHECK-X64: *** Dumping AST Record Layout
+// CHECK-X64-NEXT:    0 | struct KB
+// CHECK-X64-NEXT:    0 |   struct KA (base)
+// CHECK-X64-NEXT:    0 |     char a
+// CHECK-X64-NEXT:    2 |   char a
+// CHECK-X64-NEXT:      | [sizeof=4, align=2
+// CHECK-X64-NEXT:      |  nvsize=3, nvalign=2]
 
 int a[
 sizeof(X)+
index 9d7312c596daaeb03594c9407c37f469424c5fa8..bb6b89c6fcb052779118f7a2b06dc257b2026832 100644 (file)
@@ -203,16 +203,16 @@ struct BX : B0X, B1X { int a; BX() : a(0xf000000B) {} virtual void g() { printf(
 // CHECK-NEXT:   12 |   int a
 // CHECK-NEXT:      | [sizeof=16, align=4
 // CHECK-NEXT:      |  nvsize=16, nvalign=4]
-// CHECK-x64: *** Dumping AST Record Layout
-// CHECK-x64-NEXT:    0 | struct BX
-// CHECK-x64-NEXT:   16 |   struct B0X (base)
-// CHECK-x64-NEXT:   16 |     int a
-// CHECK-x64-NEXT:    0 |   struct B1X (primary base)
-// CHECK-x64-NEXT:    0 |     (B1X vftable pointer)
-// CHECK-x64-NEXT:    8 |     int a
-// CHECK-x64-NEXT:   24 |   int a
-// CHECK-x64-NEXT:      | [sizeof=24, align=8
-// CHECK-x64-NEXT:      |  nvsize=24, nvalign=8]
+// CHECK-X64: *** Dumping AST Record Layout
+// CHECK-X64-NEXT:    0 | struct BX
+// CHECK-X64-NEXT:   16 |   struct B0X (base)
+// CHECK-X64-NEXT:   16 |     int a
+// CHECK-X64-NEXT:    0 |   struct B1X (primary base)
+// CHECK-X64-NEXT:    0 |     (B1X vftable pointer)
+// CHECK-X64-NEXT:    8 |     int a
+// CHECK-X64-NEXT:   20 |   int a
+// CHECK-X64-NEXT:      | [sizeof=24, align=8
+// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]
 
 struct CX : B0X, B2X { int a; CX() : a(0xf000000C) {} virtual void g() { printf("C"); } };
 
@@ -233,7 +233,6 @@ struct CX : B0X, B2X { int a; CX() : a(0xf000000C) {} virtual void g() { printf(
 // CHECK-NEXT:      |  nvsize=20, nvalign=4]
 // CHECK-X64: *** Dumping AST Record Layout
 // CHECK-X64: *** Dumping AST Record Layout
-// CHECK-X64: *** Dumping AST Record Layout
 // CHECK-X64-NEXT:    0 | struct CX
 // CHECK-X64-NEXT:    0 |   (CX vftable pointer)
 // CHECK-X64-NEXT:    8 |   struct B0X (base)