diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-10-17 23:52:50 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-10-17 23:52:50 +0000 |
commit | ebd5b4a3aa5ad157f9e9b307c536d9404a9bf6ad (patch) | |
tree | 05631ee21ba2dcbae72687c333f9c041c54d6b26 /clang/lib/Parse/ParseInit.cpp | |
parent | cfae9d53a50ec5b2bcff54cd5c5cd55b4d1909b9 (diff) | |
download | bcm5719-llvm-ebd5b4a3aa5ad157f9e9b307c536d9404a9bf6ad.tar.gz bcm5719-llvm-ebd5b4a3aa5ad157f9e9b307c536d9404a9bf6ad.zip |
Avoid std::string concatenation.
llvm-svn: 84378
Diffstat (limited to 'clang/lib/Parse/ParseInit.cpp')
-rw-r--r-- | clang/lib/Parse/ParseInit.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/clang/lib/Parse/ParseInit.cpp b/clang/lib/Parse/ParseInit.cpp index 6ab23fd42dd..71e9dee5613 100644 --- a/clang/lib/Parse/ParseInit.cpp +++ b/clang/lib/Parse/ParseInit.cpp @@ -15,6 +15,7 @@ #include "clang/Parse/Parser.h" #include "clang/Parse/ParseDiagnostic.h" #include "llvm/ADT/SmallString.h" +#include "llvm/Support/raw_ostream.h" using namespace clang; @@ -65,9 +66,9 @@ Parser::OwningExprResult Parser::ParseInitializerWithPotentialDesignator() { if (Tok.is(tok::identifier)) { const IdentifierInfo *FieldName = Tok.getIdentifierInfo(); - std::string NewSyntax("."); - NewSyntax += FieldName->getName(); - NewSyntax += " = "; + llvm::SmallString<256> NewSyntax; + llvm::raw_svector_ostream(NewSyntax) << '.' << FieldName->getNameStr() + << " = "; SourceLocation NameLoc = ConsumeToken(); // Eat the identifier. @@ -77,7 +78,7 @@ Parser::OwningExprResult Parser::ParseInitializerWithPotentialDesignator() { Diag(Tok, diag::ext_gnu_old_style_field_designator) << CodeModificationHint::CreateReplacement(SourceRange(NameLoc, ColonLoc), - NewSyntax); + NewSyntax.str()); Designation D; D.AddDesignator(Designator::getField(FieldName, SourceLocation(), NameLoc)); |