summaryrefslogtreecommitdiffstats
path: root/test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2009-06-22 08:08:12 +0000
committered <ed@FreeBSD.org>2009-06-22 08:08:12 +0000
commita4c19d68f13cf0a83bc0da53bd6d547fcaf635fe (patch)
tree86c1bc482baa6c81fc70b8d715153bfa93377186 /test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp
parentdb89e312d968c258aba3c79c1c398f5fb19267a3 (diff)
downloadFreeBSD-src-a4c19d68f13cf0a83bc0da53bd6d547fcaf635fe.zip
FreeBSD-src-a4c19d68f13cf0a83bc0da53bd6d547fcaf635fe.tar.gz
Update LLVM sources to r73879.
Diffstat (limited to 'test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp')
-rw-r--r--test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp b/test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp
new file mode 100644
index 0000000..eef0e86
--- /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<class _T1, class _T2> struct payre {
+ _T1 first;
+ _T2 second;
+ payre() : first(), second() { }
+};
+struct KBFP {
+ double mCutoffFrequency;
+};
+class SRCFilter {
+ struct FilterEntry: public payre<KBFP, float*>{};
+ static FilterEntry foo;
+};
+SRCFilter::FilterEntry SRCFilter::foo; // 12 bytes
+payre<KBFP, float*> baz; // 16 bytes
+class CC { // 16 bytes
+ public: payre<KBFP, float*> x;
+};
+class CC ccc;
+
+struct bar { KBFP x; float* y;}; // 16 bytes
+struct bar quux;
OpenPOWER on IntegriCloud