summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/pointers-to-data-members.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2010-02-02 03:32:35 +0000
committerAnders Carlsson <andersca@mac.com>2010-02-02 03:32:35 +0000
commit15217531f7104f335edbdf9bf03bd32a46cd493c (patch)
treefbd9e1af1fc0450fab74cac237ff4b30a7697516 /clang/test/CodeGenCXX/pointers-to-data-members.cpp
parent2cfade1671b8de84be3b2416d8c527587e37a10a (diff)
downloadbcm5719-llvm-15217531f7104f335edbdf9bf03bd32a46cd493c.tar.gz
bcm5719-llvm-15217531f7104f335edbdf9bf03bd32a46cd493c.zip
Merge a test into pointers-to-data-members.cpp and convert it to FileCheck.
llvm-svn: 95061
Diffstat (limited to 'clang/test/CodeGenCXX/pointers-to-data-members.cpp')
-rw-r--r--clang/test/CodeGenCXX/pointers-to-data-members.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/pointers-to-data-members.cpp b/clang/test/CodeGenCXX/pointers-to-data-members.cpp
index 567e3f37409..c34bd5b114c 100644
--- a/clang/test/CodeGenCXX/pointers-to-data-members.cpp
+++ b/clang/test/CodeGenCXX/pointers-to-data-members.cpp
@@ -4,6 +4,38 @@ struct A { int a; };
struct B { int b; };
struct C : B, A { };
+// Zero init.
+namespace ZeroInit {
+ // CHECK: @_ZN8ZeroInit1aE = global i64 -1
+ int A::* a;
+
+ // CHECK: @_ZN8ZeroInit2aaE = global [2 x i64] [i64 -1, i64 -1]
+ int A::* aa[2];
+
+ // CHECK: @_ZN8ZeroInit3aaaE = global [2 x [2 x i64]] {{\[}}[2 x i64] [i64 -1, i64 -1], [2 x i64] [i64 -1, i64 -1]]
+ int A::* aaa[2][2];
+
+ // CHECK: @_ZN8ZeroInit1bE = global i64 -1,
+ int A::* b = 0;
+
+ void f() {
+ // CHECK: icmp ne i64 {{.*}}, -1
+ if (a) { }
+
+ // CHECK: icmp ne i64 {{.*}}, -1
+ if (a != 0) { }
+
+ // CHECK: icmp ne i64 -1, {{.*}}
+ if (0 != a) { }
+
+ // CHECK: icmp eq i64 {{.*}}, -1
+ if (a == 0) { }
+
+ // CHECK: icmp eq i64 -1, {{.*}}
+ if (0 == a) { }
+ }
+}
+
// Casts.
namespace Casts {
OpenPOWER on IntegriCloud