[llvm-branch-commits] [llvm-branch] r68743 - in /llvm/branches/Apple/Dib: include/llvm/CodeGen/AsmPrinter.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp lib/CodeGen/AsmPrinter/DwarfWriter.cpp
Bill Wendling
isanbard at gmail.com
Thu Apr 9 16:53:46 PDT 2009
Author: void
Date: Thu Apr 9 18:53:46 2009
New Revision: 68743
URL: http://llvm.org/viewvc/llvm-project?rev=68743&view=rev
Log:
--- Merging (from foreign repository) r68741 into '.':
U include/llvm/CodeGen/AsmPrinter.h
U lib/CodeGen/AsmPrinter/DwarfWriter.cpp
U lib/CodeGen/AsmPrinter/AsmPrinter.cpp
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*".
Modified:
llvm/branches/Apple/Dib/include/llvm/CodeGen/AsmPrinter.h
llvm/branches/Apple/Dib/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/branches/Apple/Dib/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
Modified: llvm/branches/Apple/Dib/include/llvm/CodeGen/AsmPrinter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Dib/include/llvm/CodeGen/AsmPrinter.h?rev=68743&r1=68742&r2=68743&view=diff
==============================================================================
--- llvm/branches/Apple/Dib/include/llvm/CodeGen/AsmPrinter.h (original)
+++ llvm/branches/Apple/Dib/include/llvm/CodeGen/AsmPrinter.h Thu Apr 9 18:53:46 2009
@@ -285,7 +285,8 @@
/// Special characters are emitted properly.
/// @verbatim (Eg. '\t') @endverbatim
void EmitString(const std::string &String) const;
-
+ void EmitString(const char *String, unsigned Size) const;
+
/// EmitFile - Emit a .file directive.
void EmitFile(unsigned Number, const std::string &Name) const;
Modified: llvm/branches/Apple/Dib/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Dib/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=68743&r1=68742&r2=68743&view=diff
==============================================================================
--- llvm/branches/Apple/Dib/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
+++ llvm/branches/Apple/Dib/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Thu Apr 9 18:53:46 2009
@@ -727,13 +727,17 @@
/// 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) {
unsigned char C = String[i];
printStringChar(O, C);
}
Modified: llvm/branches/Apple/Dib/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Dib/lib/CodeGen/AsmPrinter/DwarfWriter.cpp?rev=68743&r1=68742&r2=68743&view=diff
==============================================================================
--- llvm/branches/Apple/Dib/lib/CodeGen/AsmPrinter/DwarfWriter.cpp (original)
+++ llvm/branches/Apple/Dib/lib/CodeGen/AsmPrinter/DwarfWriter.cpp Thu Apr 9 18:53:46 2009
@@ -2662,13 +2662,13 @@
Asm->EOL("Compilation Unit Length");
StringMap<DIE*> &Globals = Unit->getGlobals();
- for (StringMap<DIE*>::iterator
+ for (StringMap<DIE*>::const_iterator
GI = Globals.begin(), GE = Globals.end(); GI != GE; ++GI) {
- const std::string &Name = GI->first();
+ const char *Name = GI->getKeyData();
DIE * Entity = GI->second;
Asm->EmitInt32(Entity->getOffset()); Asm->EOL("DIE offset");
- Asm->EmitString(Name); Asm->EOL("External Name");
+ Asm->EmitString(Name, strlen(Name)); Asm->EOL("External Name");
}
Asm->EmitInt32(0); Asm->EOL("End Mark");
More information about the llvm-branch-commits
mailing list