summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/microsoft-cxx0x.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2012-01-23 03:19:29 +0000
committerNico Weber <nicolasweber@gmx.de>2012-01-23 03:19:29 +0000
commit94e746d5e502d13e39b71cd09d87daf93b441985 (patch)
treedfe9bf47f7983f2b80d2370d2bd227dff286c02a /clang/test/SemaCXX/microsoft-cxx0x.cpp
parent844f945963d1456461000b7d5f4f63108fa04b03 (diff)
downloadbcm5719-llvm-94e746d5e502d13e39b71cd09d87daf93b441985.tar.gz
bcm5719-llvm-94e746d5e502d13e39b71cd09d87daf93b441985.zip
In ms mode, a move assignment operator shouldn't mark a copy ctor as deleted.
MSVC2010's pair class has a move assignment operator but no explicit copy constructor, which makes it unusable without this change. For symmetry, let move copy constructors not mark the default assignment operator as deleted either. Both changes match cl.exe's behavior. Fixes pr11826. Also update the standard excerpt to point to the right paragraph. llvm-svn: 148675
Diffstat (limited to 'clang/test/SemaCXX/microsoft-cxx0x.cpp')
-rw-r--r--clang/test/SemaCXX/microsoft-cxx0x.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/microsoft-cxx0x.cpp b/clang/test/SemaCXX/microsoft-cxx0x.cpp
index 82966d8a447..a0dbb75e079 100644
--- a/clang/test/SemaCXX/microsoft-cxx0x.cpp
+++ b/clang/test/SemaCXX/microsoft-cxx0x.cpp
@@ -7,4 +7,25 @@ struct A {
int b = 3;
A var = { b }; // expected-warning {{ cannot be narrowed }} expected-note {{override}}
+namespace PR11826 {
+ struct pair {
+ pair(int v) { }
+ void operator=(pair&& rhs) { }
+ };
+ void f() {
+ pair p0(3);
+ pair p = p0;
+ }
+}
+namespace PR11826_for_symmetry {
+ struct pair {
+ pair(int v) { }
+ pair(pair&& rhs) { }
+ };
+ void f() {
+ pair p0(3);
+ pair p(4);
+ p = p0;
+ }
+}
OpenPOWER on IntegriCloud