From d732928074294839feebc3b8f00fbf5922d271ba Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Tue, 23 Jul 2013 17:35:26 +0000 Subject: [PATCH] Going back to using getName for consistency. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186966 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaDeclAttr.cpp | 9 ++------- test/SemaObjC/method-sentinel-attr.m | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/lib/Sema/SemaDeclAttr.cpp b/lib/Sema/SemaDeclAttr.cpp index 09d61e7b37..7a4a0caf94 100644 --- a/lib/Sema/SemaDeclAttr.cpp +++ b/lib/Sema/SemaDeclAttr.cpp @@ -2580,11 +2580,6 @@ static void handleSentinelAttr(Sema &S, Decl *D, const AttributeList &Attr) { return; } - // Normalize the attribute name, __foo__ becomes foo. - StringRef AttrName = Attr.getName()->getName(); - if (AttrName.startswith("__") && AttrName.endswith("__")) - AttrName = AttrName.substr(2, AttrName.size() - 4); - unsigned sentinel = 0; if (Attr.getNumArgs() > 0) { Expr *E = Attr.getArg(0); @@ -2592,7 +2587,7 @@ static void handleSentinelAttr(Sema &S, Decl *D, const AttributeList &Attr) { if (E->isTypeDependent() || E->isValueDependent() || !E->isIntegerConstantExpr(Idx, S.Context)) { S.Diag(Attr.getLoc(), diag::err_attribute_argument_n_type) - << "'" + AttrName.str() + "'" << 1 << ArgumentIntegerConstant + << Attr.getName() << 1 << ArgumentIntegerConstant << E->getSourceRange(); return; } @@ -2613,7 +2608,7 @@ static void handleSentinelAttr(Sema &S, Decl *D, const AttributeList &Attr) { if (E->isTypeDependent() || E->isValueDependent() || !E->isIntegerConstantExpr(Idx, S.Context)) { S.Diag(Attr.getLoc(), diag::err_attribute_argument_n_type) - << "'" + AttrName.str() + "'" << 2 << ArgumentIntegerConstant + << Attr.getName() << 2 << ArgumentIntegerConstant << E->getSourceRange(); return; } diff --git a/test/SemaObjC/method-sentinel-attr.m b/test/SemaObjC/method-sentinel-attr.m index 274e936606..d230be5805 100644 --- a/test/SemaObjC/method-sentinel-attr.m +++ b/test/SemaObjC/method-sentinel-attr.m @@ -10,7 +10,7 @@ - (void) foo5 : (int)x, ... __attribute__ ((__sentinel__(1))); // expected-note {{method has been explicitly marked sentinel here}} - (void) foo6 : (int)x, ... __attribute__ ((__sentinel__(5))); // expected-note {{method has been explicitly marked sentinel here}} - (void) foo7 : (int)x, ... __attribute__ ((__sentinel__(0))); // expected-note {{method has been explicitly marked sentinel here}} -- (void) foo8 : (int)x, ... __attribute__ ((__sentinel__("a"))); // expected-error {{'sentinel' attribute requires parameter 1 to be an integer constant}} +- (void) foo8 : (int)x, ... __attribute__ ((__sentinel__("a"))); // expected-error {{'__sentinel__' attribute requires parameter 1 to be an integer constant}} - (void) foo9 : (int)x, ... __attribute__ ((__sentinel__(-1))); // expected-error {{'sentinel' parameter 1 less than zero}} - (void) foo10 : (int)x, ... __attribute__ ((__sentinel__(1,1))); - (void) foo11 : (int)x, ... __attribute__ ((__sentinel__(1,1,3))); // expected-error {{attribute takes no more than 2 arguments}} -- 2.40.0