From: Dan Gohman Date: Mon, 24 Sep 2007 20:58:13 +0000 (+0000) Subject: Add a routine for emitting .file directives, for setting up X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=189f80dc253664627253b2d2cb07d0714feb12ba;p=oota-llvm.git Add a routine for emitting .file directives, for setting up file numbers to use with .loc directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42272 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h index 4a312a79a28..0ca7cfcbb8c 100644 --- a/include/llvm/CodeGen/AsmPrinter.h +++ b/include/llvm/CodeGen/AsmPrinter.h @@ -248,6 +248,9 @@ namespace llvm { /// @verbatim (Eg. '\t') @endverbatim void EmitString(const std::string &String) const; + /// EmitFile - Emit a .file directive. + void EmitFile(unsigned Number, const std::string &Name) const; + //===------------------------------------------------------------------===// /// EmitAlignment - Emit an alignment directive to the specified power of diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp index 6622bcdee66..521386b19fa 100644 --- a/lib/CodeGen/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter.cpp @@ -618,6 +618,17 @@ void AsmPrinter::EmitString(const std::string &String) const { } +/// EmitFile - Emit a .file directive. +void AsmPrinter::EmitFile(unsigned Number, const std::string &Name) const { + O << "\t.file\t" << Number << " \""; + for (unsigned i = 0, N = Name.size(); i < N; ++i) { + unsigned char C = Name[i]; + printStringChar(O, C); + } + O << "\""; +} + + //===----------------------------------------------------------------------===// // EmitAlignment - Emit an alignment directive to the specified power of