diff options
author | Bill Wendling <isanbard@gmail.com> | 2009-04-09 23:51:31 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2009-04-09 23:51:31 +0000 |
commit | f34be827ac3bb257939e31575fcfc9ef27b94306 (patch) | |
tree | 05d52f8774cc4fbc61ee547bf93b003dc4f5abcb /lib/CodeGen/AsmPrinter/AsmPrinter.cpp | |
parent | 923838533a005154c3a30271aa3186a633102a9c (diff) |
StringMap<DIE*>::iterator::first() returns a pointer to the first character of
the key. This will cause it to create a new std::string, which isn't
wanted. Instead, pass back the "const char*". Modify the EmitString() method to
take a "const char*".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68741 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter/AsmPrinter.cpp')
-rw-r--r-- | lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 8fc1b8b019..5ceac3bb4f 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -727,13 +727,17 @@ static void printStringChar(raw_ostream &O, unsigned char C) { /// Special characters are emitted properly. /// \literal (Eg. '\t') \endliteral void AsmPrinter::EmitString(const std::string &String) const { + EmitString(String.c_str(), String.size()); +} + +void AsmPrinter::EmitString(const char *String, unsigned Size) const { const char* AscizDirective = TAI->getAscizDirective(); if (AscizDirective) O << AscizDirective; else O << TAI->getAsciiDirective(); O << '\"'; - for (unsigned i = 0, N = String.size(); i < N; ++i) + for (unsigned i = 0; i < Size; ++i) printStringChar(O, String[i]); if (AscizDirective) O << '\"'; |