diff options
author | Ed Schouten <ed@FreeBSD.org> | 2009-06-02 17:52:33 +0000 |
---|---|---|
committer | Ed Schouten <ed@FreeBSD.org> | 2009-06-02 17:52:33 +0000 |
commit | 009b1c42aa6266385f2c37e227516b24077e6dd7 (patch) | |
tree | 64ba909838c23261cace781ece27d106134ea451 /test/FrontendC++/2007-04-10-PackedUnion.cpp |
Diffstat (limited to 'test/FrontendC++/2007-04-10-PackedUnion.cpp')
-rw-r--r-- | test/FrontendC++/2007-04-10-PackedUnion.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/FrontendC++/2007-04-10-PackedUnion.cpp b/test/FrontendC++/2007-04-10-PackedUnion.cpp new file mode 100644 index 0000000000000..b4b8894ae2cf9 --- /dev/null +++ b/test/FrontendC++/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; +} |