aboutsummaryrefslogtreecommitdiff
path: root/clang/test/CodeGenCXX/lambda-expressions.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-10-20 01:38:33 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-10-20 01:38:33 +0000
commit5a1104bd3a6ebee8cec6199c704e2403b0eee2b9 (patch)
tree658427c4239d6abbf369803da6fec654c547bdb3 /clang/test/CodeGenCXX/lambda-expressions.cpp
parent3017a06c8f2c8f2c33b16548754a38c1ba3bd300 (diff)
downloadllvm-5a1104bd3a6ebee8cec6199c704e2403b0eee2b9.zip
llvm-5a1104bd3a6ebee8cec6199c704e2403b0eee2b9.tar.gz
llvm-5a1104bd3a6ebee8cec6199c704e2403b0eee2b9.tar.bz2
DR1472: A reference isn't odr-used if it has preceding initialization,
initialized by a reference constant expression. Our odr-use modeling still needs work here: we don't yet implement the 'set of potential results of an expression' DR. llvm-svn: 166361
Diffstat (limited to 'clang/test/CodeGenCXX/lambda-expressions.cpp')
-rw-r--r--clang/test/CodeGenCXX/lambda-expressions.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/lambda-expressions.cpp b/clang/test/CodeGenCXX/lambda-expressions.cpp
index e872cc4..cee4f17 100644
--- a/clang/test/CodeGenCXX/lambda-expressions.cpp
+++ b/clang/test/CodeGenCXX/lambda-expressions.cpp
@@ -71,6 +71,15 @@ void f() {
int (*fp)(int, int) = [](int x, int y){ return x + y; };
}
+static int k;
+int g() {
+ int &r = k;
+ // CHECK: define internal i32 @"_ZZ1gvENK3$_6clEv"(
+ // CHECK-NOT: }
+ // CHECK: load i32* @_ZL1k,
+ return [] { return r; } ();
+};
+
// CHECK: define internal i32 @"_ZZ1fvEN3$_58__invokeEii"
// CHECK: store i32
// CHECK-NEXT: store i32