diff options
author | Eric Christopher <echristo@apple.com> | 2011-08-19 21:24:37 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2011-08-19 21:24:37 +0000 |
commit | 8a8d6d829b84e2321e5f68392401e0cdf1942fee (patch) | |
tree | 8436f14b27ceda6b5fc5fcb10632b3eb74e4fe47 | |
parent | dcf3c0f648edac4d4da1b05840e21ed23b9ca37e (diff) |
Migrate 2009-12-23-MissingSext.cpp from test/FrontendC++ and modify
for sext -> and difference.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138088 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/CodeGenCXX/2009-12-23-MissingSext.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/CodeGenCXX/2009-12-23-MissingSext.cpp b/test/CodeGenCXX/2009-12-23-MissingSext.cpp new file mode 100644 index 0000000000..e6ff7b3952 --- /dev/null +++ b/test/CodeGenCXX/2009-12-23-MissingSext.cpp @@ -0,0 +1,16 @@ +// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s +// The store of p.y into the temporary was not +// getting extended to 32 bits, so uninitialized +// bits of the temporary were used. 7366161. +struct foo { + char x:8; + signed int y:24; +}; +int bar(struct foo p, int x) { +// CHECK: bar +// CHECK: and {{.*}} 16777215 +// CHECK: and {{.*}} 16777215 + x = (p.y > x ? x : p.y); + return x; +// CHECK: ret +} |