Remove and simplify unused checking code.

This is already handled by CheckCallingConvAttr.

llvm-svn: 161865
This commit is contained in:
Benjamin Kramer 2012-08-14 13:24:39 +00:00
parent bf2bfa5aa4
commit 25885f4657
1 changed files with 7 additions and 16 deletions

View File

@ -3523,25 +3523,16 @@ static void handleCallConvAttr(Sema &S, Decl *D, const AttributeList &Attr) {
D->addAttr(::new (S.Context) PascalAttr(Attr.getRange(), S.Context)); D->addAttr(::new (S.Context) PascalAttr(Attr.getRange(), S.Context));
return; return;
case AttributeList::AT_Pcs: { case AttributeList::AT_Pcs: {
Expr *Arg = Attr.getArg(0);
StringLiteral *Str = dyn_cast<StringLiteral>(Arg);
if (!Str || !Str->isAscii()) {
S.Diag(Attr.getLoc(), diag::err_attribute_argument_n_not_string)
<< "pcs" << 1;
Attr.setInvalid();
return;
}
StringRef StrRef = Str->getString();
PcsAttr::PCSType PCS; PcsAttr::PCSType PCS;
if (StrRef == "aapcs") switch (CC) {
case CC_AAPCS:
PCS = PcsAttr::AAPCS; PCS = PcsAttr::AAPCS;
else if (StrRef == "aapcs-vfp") break;
case CC_AAPCS_VFP:
PCS = PcsAttr::AAPCS_VFP; PCS = PcsAttr::AAPCS_VFP;
else { break;
S.Diag(Attr.getLoc(), diag::err_invalid_pcs); default:
Attr.setInvalid(); llvm_unreachable("unexpected calling convention in pcs attribute");
return;
} }
D->addAttr(::new (S.Context) PcsAttr(Attr.getRange(), S.Context, PCS)); D->addAttr(::new (S.Context) PcsAttr(Attr.getRange(), S.Context, PCS));