diff options
author | Anders Carlsson <andersca@mac.com> | 2010-01-30 22:25:16 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2010-01-30 22:25:16 +0000 |
commit | ff93dbd887e40588ed55d135037bb9287488b285 (patch) | |
tree | 3a88704be716f039310968c0050eeadd20c0c2a1 /lib/Sema | |
parent | 807b06157a1a5c050520fc194d32f16d22d423a8 (diff) |
Use IdentifierInfo * instead of std::string for the AsmStmt names.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94925 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema')
-rw-r--r-- | lib/Sema/Sema.h | 2 | ||||
-rw-r--r-- | lib/Sema/SemaStmt.cpp | 14 | ||||
-rw-r--r-- | lib/Sema/TreeTransform.h | 8 |
3 files changed, 16 insertions, 8 deletions
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h index b6f477f648..86dbff3037 100644 --- a/lib/Sema/Sema.h +++ b/lib/Sema/Sema.h @@ -1478,7 +1478,7 @@ public: bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, - const std::string *Names, + IdentifierInfo **Names, MultiExprArg Constraints, MultiExprArg Exprs, ExprArg AsmString, diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp index 1662360052..fc0fc4f9b2 100644 --- a/lib/Sema/SemaStmt.cpp +++ b/lib/Sema/SemaStmt.cpp @@ -1170,7 +1170,7 @@ Sema::OwningStmtResult Sema::ActOnAsmStmt(SourceLocation AsmLoc, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, - const std::string *Names, + IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg exprs, ExprArg asmString, @@ -1197,7 +1197,11 @@ Sema::OwningStmtResult Sema::ActOnAsmStmt(SourceLocation AsmLoc, return StmtError(Diag(Literal->getLocStart(),diag::err_asm_wide_character) << Literal->getSourceRange()); - TargetInfo::ConstraintInfo Info(Literal->getString(), Names[i]); + llvm::StringRef OutputName; + if (Names[i]) + OutputName = Names[i]->getName(); + + TargetInfo::ConstraintInfo Info(Literal->getString(), OutputName); if (!Context.Target.validateOutputConstraint(Info)) return StmtError(Diag(Literal->getLocStart(), diag::err_asm_invalid_output_constraint) @@ -1222,7 +1226,11 @@ Sema::OwningStmtResult Sema::ActOnAsmStmt(SourceLocation AsmLoc, return StmtError(Diag(Literal->getLocStart(),diag::err_asm_wide_character) << Literal->getSourceRange()); - TargetInfo::ConstraintInfo Info(Literal->getString(), Names[i]); + llvm::StringRef InputName; + if (Names[i]) + InputName = Names[i]->getName(); + + TargetInfo::ConstraintInfo Info(Literal->getString(), InputName); if (!Context.Target.validateInputConstraint(OutputConstraintInfos.data(), NumOutputs, Info)) { return StmtError(Diag(Literal->getLocStart(), diff --git a/lib/Sema/TreeTransform.h b/lib/Sema/TreeTransform.h index 90b5365f04..b23a69860b 100644 --- a/lib/Sema/TreeTransform.h +++ b/lib/Sema/TreeTransform.h @@ -785,7 +785,7 @@ public: bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, - const std::string *Names, + IdentifierInfo **Names, MultiExprArg Constraints, MultiExprArg Exprs, ExprArg AsmString, @@ -3352,7 +3352,7 @@ TreeTransform<Derived>::TransformAsmStmt(AsmStmt *S) { ASTOwningVector<&ActionBase::DeleteExpr> Constraints(getSema()); ASTOwningVector<&ActionBase::DeleteExpr> Exprs(getSema()); - llvm::SmallVector<std::string, 4> Names; + llvm::SmallVector<IdentifierInfo *, 4> Names; OwningExprResult AsmString(SemaRef); ASTOwningVector<&ActionBase::DeleteExpr> Clobbers(getSema()); @@ -3361,7 +3361,7 @@ TreeTransform<Derived>::TransformAsmStmt(AsmStmt *S) { // Go through the outputs. for (unsigned I = 0, E = S->getNumOutputs(); I != E; ++I) { - Names.push_back(S->getOutputName(I)); + Names.push_back(S->getOutputIdentifier(I)); // No need to transform the constraint literal. Constraints.push_back(S->getOutputConstraintLiteral(I)->Retain()); @@ -3379,7 +3379,7 @@ TreeTransform<Derived>::TransformAsmStmt(AsmStmt *S) { // Go through the inputs. for (unsigned I = 0, E = S->getNumInputs(); I != E; ++I) { - Names.push_back(S->getInputName(I)); + Names.push_back(S->getInputIdentifier(I)); // No need to transform the constraint literal. Constraints.push_back(S->getInputConstraintLiteral(I)->Retain()); |