]> granicus.if.org Git - clang/commitdiff
Use getDeclName in DefineImplicitOverloadedAssign as well.
authorAnders Carlsson <andersca@mac.com>
Thu, 9 Jul 2009 17:47:25 +0000 (17:47 +0000)
committerAnders Carlsson <andersca@mac.com>
Thu, 9 Jul 2009 17:47:25 +0000 (17:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75152 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaDeclCXX.cpp
test/SemaCXX/default-assignment-operator.cpp

index 5b22bb76fb285f84514ee11005f50d1d8e18caa1..e27b822337afb9309f6f95be9a49801ec4abc594 100644 (file)
@@ -2093,15 +2093,15 @@ void Sema::DefineImplicitOverloadedAssign(SourceLocation CurrentLocation,
     }
     else if (FieldType->isReferenceType()) {
       Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) 
-      << Context.getTagDeclType(ClassDecl) << 0 << (*Field)->getNameAsCString();
-      Diag((*Field)->getLocation(), diag::note_declared_at);
+      << Context.getTagDeclType(ClassDecl) << 0 << Field->getDeclName();
+      Diag(Field->getLocation(), diag::note_declared_at);
       Diag(CurrentLocation, diag::note_first_required_here);
       err = true;
     }
     else if (FieldType.isConstQualified()) {
       Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) 
-      << Context.getTagDeclType(ClassDecl) << 1 << (*Field)->getNameAsCString();
-      Diag((*Field)->getLocation(), diag::note_declared_at);
+      << Context.getTagDeclType(ClassDecl) << 1 << Field->getDeclName();
+      Diag(Field->getLocation(), diag::note_declared_at);
       Diag(CurrentLocation, diag::note_first_required_here);
       err = true;
     }
index 090ba3c3ca80116dc4472b80e00023fa9ed9bb62..64ea49837b77aaeb180d5eec4b54bb3c158c119e 100644 (file)
@@ -72,3 +72,19 @@ void i()
        d1 = d2;
 }
 
+// Test5
+
+class E1 { // expected-error{{cannot define the implicit default assignment operator for 'class E1', because non-static const member 'a' can't use default assignment operator}}
+public:
+  const int a; // expected-note{{declared at}}
+  E1() : a(0) {}  
+
+};
+
+E1 e1, e2;
+
+void j()
+{
+  e1 = e2; // expected-note{{synthesized method is first required here}}
+}
+