From 70f0e46d55be640fd8edae4c00f134a4152f9f8d Mon Sep 17 00:00:00 2001 From: Aaron Ballman <aaron@aaronballman.com> Date: Thu, 26 Dec 2013 15:46:38 +0000 Subject: [PATCH] Parameterizing some MS property-related diagnostics. No functional changes intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198049 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/DiagnosticSemaKinds.td | 12 ++++-------- lib/Sema/SemaPseudoObject.cpp | 14 ++++++++------ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index df10dc2b0c6..76585075497 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -1950,14 +1950,10 @@ def err_anonymous_property: Error< "anonymous property is not supported">; def err_property_is_variably_modified: Error< "property '%0' has a variably modified type">; -def err_no_getter_for_property : Error< - "no getter defined for property '%0'">; -def err_no_setter_for_property : Error< - "no setter defined for property '%0'">; -def error_cannot_find_suitable_getter : Error< - "cannot find suitable getter for property '%0'">; -def error_cannot_find_suitable_setter : Error< - "cannot find suitable setter for property '%0'">; +def err_no_getter_setter_for_property : Error< + "no %select{getter|setter}0 defined for property '%1'">; +def error_cannot_find_suitable_getter_setter : Error< + "cannot find suitable %select{getter|setter}0 for property '%1'">; def err_attribute_aligned_not_power_of_two : Error< "requested alignment is not a power of 2">; diff --git a/lib/Sema/SemaPseudoObject.cpp b/lib/Sema/SemaPseudoObject.cpp index e69ea1647f0..ec5b92b7eb8 100644 --- a/lib/Sema/SemaPseudoObject.cpp +++ b/lib/Sema/SemaPseudoObject.cpp @@ -1393,8 +1393,8 @@ Expr *MSPropertyOpBuilder::rebuildAndCaptureObject(Expr *syntacticBase) { ExprResult MSPropertyOpBuilder::buildGet() { if (!RefExpr->getPropertyDecl()->hasGetter()) { - S.Diag(RefExpr->getMemberLoc(), diag::err_no_getter_for_property) - << RefExpr->getPropertyDecl()->getName(); + S.Diag(RefExpr->getMemberLoc(), diag::err_no_getter_setter_for_property) + << 0 /* getter */ << RefExpr->getPropertyDecl()->getName(); return ExprError(); } @@ -1408,7 +1408,8 @@ ExprResult MSPropertyOpBuilder::buildGet() { RefExpr->isArrow() ? tok::arrow : tok::period, SS, SourceLocation(), GetterName, 0, true); if (GetterExpr.isInvalid()) { - S.Diag(RefExpr->getMemberLoc(), diag::error_cannot_find_suitable_getter) + S.Diag(RefExpr->getMemberLoc(), + diag::error_cannot_find_suitable_getter_setter) << 0 /* getter */ << RefExpr->getPropertyDecl()->getName(); return ExprError(); } @@ -1422,8 +1423,8 @@ ExprResult MSPropertyOpBuilder::buildGet() { ExprResult MSPropertyOpBuilder::buildSet(Expr *op, SourceLocation sl, bool captureSetValueAsResult) { if (!RefExpr->getPropertyDecl()->hasSetter()) { - S.Diag(RefExpr->getMemberLoc(), diag::err_no_setter_for_property) - << RefExpr->getPropertyDecl()->getName(); + S.Diag(RefExpr->getMemberLoc(), diag::err_no_getter_setter_for_property) + << 1 /* setter */ << RefExpr->getPropertyDecl()->getName(); return ExprError(); } @@ -1437,7 +1438,8 @@ ExprResult MSPropertyOpBuilder::buildSet(Expr *op, SourceLocation sl, RefExpr->isArrow() ? tok::arrow : tok::period, SS, SourceLocation(), SetterName, 0, true); if (SetterExpr.isInvalid()) { - S.Diag(RefExpr->getMemberLoc(), diag::error_cannot_find_suitable_setter) + S.Diag(RefExpr->getMemberLoc(), + diag::error_cannot_find_suitable_getter_setter) << 1 /* setter */ << RefExpr->getPropertyDecl()->getName(); return ExprError(); } -- GitLab