]> granicus.if.org Git - clang/commitdiff
Add another 'catch all' access diagnostic.
authorAnders Carlsson <andersca@mac.com>
Fri, 23 Apr 2010 03:41:35 +0000 (03:41 +0000)
committerAnders Carlsson <andersca@mac.com>
Fri, 23 Apr 2010 03:41:35 +0000 (03:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102169 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaAccess.cpp

index 3510ff12611fa20065cd17a5b2e86b83e5c0a396..32feee09a8f10f5ea4fde18d5f79ca08517283ab 100644 (file)
@@ -453,18 +453,18 @@ def warn_missing_exception_specification : Warning<
 // C++ access checking
 def err_class_redeclared_with_different_access : Error<
   "%0 redeclared with '%1' access">;
-def err_access :
-    Error<"%1 is a %select{private|protected}0 member of %3">,
-    NoSFINAE;
-def err_access_ctor :
-    Error<"calling a %select{private|protected}0 constructor of class %2">,
-    NoSFINAE;
-
+def err_access : Error<
+  "%1 is a %select{private|protected}0 member of %3">, NoSFINAE;
+def err_access_ctor : Error<
+  "calling a %select{private|protected}0 constructor of class %2">, NoSFINAE;
 def err_access_base : Error<
   "%select{base class|inherited virtual base class}0 %1 has %select{private|"
   "protected}3 %select{constructor|copy constructor|copy assignment operator|"
   "destructor}2">, NoSFINAE;
-    
+def err_access_field: Error<
+  "field of type %0 has %select{private|protected}2 %select{constructor|copy "
+  "constructor|copy assignment operator|destructor}1">, NoSFINAE;
+
 def err_access_ctor_field :
     Error<"field of type %1 has %select{private|protected}2 constructor">,
     NoSFINAE;
index 14a693f5b64138ec103eb12d36b504943d24bb98..30c53ed75aea1045550aedb7c8be6a3341d222f2 100644 (file)
@@ -1152,8 +1152,9 @@ Sema::AccessResult Sema::CheckConstructorAccess(SourceLocation UseLoc,
 
   case InitializedEntity::EK_Member: {
     const FieldDecl *Field = cast<FieldDecl>(Entity.getDecl());
-    AccessEntity.setDiag(PDiag(diag::err_access_ctor_field)
-                          << Field->getDeclName() << Field->getType());
+    AccessEntity.setDiag(PDiag(diag::err_access_field)
+                          << Field->getType()
+                          << getSpecialMember(Constructor));
     break;
   }