From 0e313bd4795c005f23c43f127039fd948c3e0bd9 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Fri, 23 Apr 2010 03:41:35 +0000 Subject: [PATCH] Add another 'catch all' access diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102169 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/DiagnosticSemaKinds.td | 16 ++++++++-------- lib/Sema/SemaAccess.cpp | 5 +++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index 3510ff1261..32feee09a8 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -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; diff --git a/lib/Sema/SemaAccess.cpp b/lib/Sema/SemaAccess.cpp index 14a693f5b6..30c53ed75a 100644 --- a/lib/Sema/SemaAccess.cpp +++ b/lib/Sema/SemaAccess.cpp @@ -1152,8 +1152,9 @@ Sema::AccessResult Sema::CheckConstructorAccess(SourceLocation UseLoc, case InitializedEntity::EK_Member: { const FieldDecl *Field = cast(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; } -- 2.40.0