diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2013-06-07 01:48:56 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2013-06-07 01:48:56 +0000 |
commit | c9817fdf1667262d9217d22bf5392ba95b948281 (patch) | |
tree | 89f7dc6f19406db3c67845c860ec122c6ddb3711 /clang/test | |
parent | 8d6151fd296f7f86a8fe6fddc1dcb2c474cb3e11 (diff) | |
download | bcm5719-llvm-c9817fdf1667262d9217d22bf5392ba95b948281.tar.gz bcm5719-llvm-c9817fdf1667262d9217d22bf5392ba95b948281.zip |
When we're synthesizing copy/move-assignment, we can't form a reference to an
invalid field; make sure we don't try. Fixes <rdar://problem/14084171>.
llvm-svn: 183479
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/SemaCXX/member-init.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/member-init.cpp b/clang/test/SemaCXX/member-init.cpp index 19e8e7597e8..6e4fd5df5a0 100644 --- a/clang/test/SemaCXX/member-init.cpp +++ b/clang/test/SemaCXX/member-init.cpp @@ -89,3 +89,14 @@ namespace PR14838 { const function &r; // expected-note {{reference member declared here}} } af; } + +namespace rdar14084171 { + struct Point { // expected-note 3 {{candidate constructor}} + double x; + double y; + }; + struct Sprite { + Point location = Point(0,0); // expected-error {{no matching constructor for initialization of 'rdar14084171::Point'}} + }; + void f(Sprite& x) { x = x; } +} |