From 023b21895fde8058b6d025db0de99e8249690b08 Mon Sep 17 00:00:00 2001 From: Dale Johannesen Date: Mon, 22 Jun 2009 04:47:32 +0000 Subject: [PATCH] Testcase for (llvm-gcc) 73873. Usually std::pair is 16 bytes on darwin-powerpc, but not always. See testcase for full weirdness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73874 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp diff --git a/test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp b/test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp new file mode 100644 index 00000000000..eef0e86e2ae --- /dev/null +++ b/test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp @@ -0,0 +1,32 @@ +// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep baz | grep global | grep {struct.bar} +// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep ccc | grep global | grep {struct.CC} +// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep quux | grep global | grep {struct.bar} +// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep foo | grep global | grep {struct.SRCFilter::FilterEntry} +// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep {struct.bar} | grep {1 x i32} +// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep {struct.CC} | grep {struct.bar} +// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep {struct.bar} | grep {1 x i32} +// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep {struct.SRCFilter::FilterEntry} | not grep {1 x i32} +// XFAIL: * +// XTARGET: powerpc-apple-darwin + +template struct payre { + _T1 first; + _T2 second; + payre() : first(), second() { } +}; +struct KBFP { + double mCutoffFrequency; +}; +class SRCFilter { + struct FilterEntry: public payre{}; + static FilterEntry foo; +}; +SRCFilter::FilterEntry SRCFilter::foo; // 12 bytes +payre baz; // 16 bytes +class CC { // 16 bytes + public: payre x; +}; +class CC ccc; + +struct bar { KBFP x; float* y;}; // 16 bytes +struct bar quux; -- 2.11.0