aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/reference-init.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-01-29 19:14:02 +0000
committerDouglas Gregor <dgregor@apple.com>2010-01-29 19:14:02 +0000
commitde4b1d86bf48bc2a84bddf6b188f6da53eaea845 (patch)
tree6c5cb7ef32409ea17f41d85dee262d676e078e5a /test/CodeGenCXX/reference-init.cpp
parent3faa486935d4c57e89edf2f1883c4ba715a1b2ec (diff)
Fix reference binding of const lvalue references to bit-fields, which
requires a temporary. Previously, we were building an initialization sequence that bound to the bit-field as if it were a real lvalue. Note that we previously (and still) diagnose binding of non-const references to bit-fields, as we should. There's no real way to test that this code is correct, since reference binding does not *currently* have any representation in the AST. This fix should make it easier for that to happen, so I've verified this fix with... Added InitializationSequence::dump(), to print an initialization sequence for debugging purposes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94826 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/reference-init.cpp')
-rw-r--r--test/CodeGenCXX/reference-init.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/test/CodeGenCXX/reference-init.cpp b/test/CodeGenCXX/reference-init.cpp
index 61ae2daffd..9469c84eb5 100644
--- a/test/CodeGenCXX/reference-init.cpp
+++ b/test/CodeGenCXX/reference-init.cpp
@@ -19,3 +19,6 @@ namespace PR5911 {
struct Foo { int foo; };
Foo& ignoreSetMutex = *(new Foo);
+// Binding to a bit-field that requires a temporary.
+struct { int bitfield : 3; } s = { 3 };
+const int &s2 = s.bitfield;