summaryrefslogtreecommitdiff
path: root/test/C++Frontend
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2007-04-10 21:43:01 +0000
committerDevang Patel <dpatel@apple.com>2007-04-10 21:43:01 +0000
commit773fd3855310f91aef4ef974ce57ed409d26341d (patch)
treefa02a555462d2f3cfed097640bf5a35351a68d39 /test/C++Frontend
parentbae3bd7c19d1bbd408f568d5a29b7a96897c3637 (diff)
downloadllvm-773fd3855310f91aef4ef974ce57ed409d26341d.tar.gz
llvm-773fd3855310f91aef4ef974ce57ed409d26341d.tar.bz2
llvm-773fd3855310f91aef4ef974ce57ed409d26341d.tar.xz
New test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35868 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/C++Frontend')
-rw-r--r--test/C++Frontend/2007-04-10-PackedUnion.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/C++Frontend/2007-04-10-PackedUnion.cpp b/test/C++Frontend/2007-04-10-PackedUnion.cpp
new file mode 100644
index 0000000000..b4b8894ae2
--- /dev/null
+++ b/test/C++Frontend/2007-04-10-PackedUnion.cpp
@@ -0,0 +1,41 @@
+// RUN: %llvmgxx -S %s -o /dev/null
+extern "C" {
+
+#pragma pack(push, 2)
+ typedef struct ABC* abc;
+
+ struct ABCS {
+ float red;
+ float green;
+ float blue;
+ float alpha;
+ };
+
+ typedef void (*XYZ)();
+#pragma pack(pop)
+}
+
+
+union ABCU {
+ ABCS color;
+ XYZ bg;
+};
+
+struct AData {
+ ABCU data;
+};
+
+class L {
+ public:
+ L() {}
+ L(const L& other);
+
+ private:
+ AData fdata;
+};
+
+
+L::L(const L& other)
+{
+ fdata = other.fdata;
+}