summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/test/CodeGenCXX/microsoft-abi-alignment-fail.cpp10
-rw-r--r--clang/test/Layout/ms-x86-size-alignment-fail.cpp2
2 files changed, 11 insertions, 1 deletions
diff --git a/clang/test/CodeGenCXX/microsoft-abi-alignment-fail.cpp b/clang/test/CodeGenCXX/microsoft-abi-alignment-fail.cpp
new file mode 100644
index 00000000000..7407efed2f9
--- /dev/null
+++ b/clang/test/CodeGenCXX/microsoft-abi-alignment-fail.cpp
@@ -0,0 +1,10 @@
+// RUN: %clang_cc1 -fno-rtti -emit-llvm -cxx-abi microsoft -triple=i686-pc-win32 -o - %s 2>/dev/null | FileCheck %s
+// RUN: %clang_cc1 -fno-rtti -emit-llvm -cxx-abi microsoft -triple=x86_64-pc-win32 -o - %s 2>/dev/null | FileCheck %s -check-prefix CHECK-X64
+
+struct B { char a; };
+struct A : virtual B {} a;
+
+// The <> indicate that the pointer is packed, which is required to support
+// microsoft layout in 32 bit mode, but not 64 bit mode.
+// CHECK: %struct.A = type <{ i32*, %struct.B }>
+// CHECK-X64: %struct.A = type { i32*, %struct.B }
diff --git a/clang/test/Layout/ms-x86-size-alignment-fail.cpp b/clang/test/Layout/ms-x86-size-alignment-fail.cpp
index 5ff440fb9b1..f998ee12c8d 100644
--- a/clang/test/Layout/ms-x86-size-alignment-fail.cpp
+++ b/clang/test/Layout/ms-x86-size-alignment-fail.cpp
@@ -8,7 +8,7 @@ extern "C" int printf(const char *fmt, ...);
struct B0 { char a; B0() : a(0xB0) {} };
struct __declspec(align(1)) B1 {};
-struct A : virtual B0 {} b;
+struct A : virtual B0 {};
// CHECK: *** Dumping AST Record Layout
// CHECK: 0 | struct A
OpenPOWER on IntegriCloud