check for correct usage of the byval attribute
[oota-llvm.git] / test / C++Frontend / 2007-04-10-PackedUnion.cpp
1 // RUN: %llvmgxx -S %s -o /dev/null
2 extern "C" {
3
4 #pragma pack(push, 2)
5   typedef struct ABC* abc;
6
7   struct ABCS {
8     float red;
9     float green;
10     float blue;
11     float alpha;
12   };
13
14   typedef void (*XYZ)();
15 #pragma pack(pop)
16 }
17
18
19 union ABCU {
20   ABCS color;
21   XYZ bg;
22 };
23
24 struct AData {
25   ABCU data;
26 };
27
28 class L {
29  public:
30   L() {}
31   L(const L& other);
32
33  private:
34   AData fdata;
35 };
36
37
38 L::L(const L& other)
39 {
40   fdata = other.fdata;
41 }