summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
diff options
context:
space:
mode:
authorTaewook Oh <twoh@fb.com>2017-08-10 18:17:11 +0000
committerTaewook Oh <twoh@fb.com>2017-08-10 18:17:11 +0000
commitf5040b9685a760e584c576e9185295e54635d51e (patch)
treef0a433df9b8d512f04e883798cdd3f7d14c12038 /llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
parent2f529412e133d429f8e3b45397f435b7e164c501 (diff)
downloadbcm5719-llvm-f5040b9685a760e584c576e9185295e54635d51e.tar.gz
bcm5719-llvm-f5040b9685a760e584c576e9185295e54635d51e.zip
Make .file directive to have basename only
Summary: Currently LLVM puts directory along with the filename in .file directive, but this behavior doesn't match gcc. There's a no clear description about which one is right (https://sourceware.org/binutils/docs/as/File.html#File), but one document (https://sourceware.org/gdb/current/onlinedocs/stabs/ELF-Linker-Relocation.html) suggests that STT_FILE symbol in elf file is expected to have basename only, which should have a same sting file .file directive according to (https://docs.oracle.com/cd/E26502_01/html/E28388/eoiyg.html). This also affects badly on the build system that uses hashing, as the directory info could be differnt from developer to developer even when they're working on same file. Reviewers: pcc, mehdi_amini Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D36018 llvm-svn: 310642
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index 1ea82f84a54..5e002e70929 100644
--- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -87,6 +87,7 @@
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/MathExtras.h"
+#include "llvm/Support/Path.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/Timer.h"
#include "llvm/Support/raw_ostream.h"
@@ -272,7 +273,8 @@ bool AsmPrinter::doInitialization(Module &M) {
// don't, this at least helps the user find where a global came from.
if (MAI->hasSingleParameterDotFile()) {
// .file "foo.c"
- OutStreamer->EmitFileDirective(M.getSourceFileName());
+ OutStreamer->EmitFileDirective(
+ llvm::sys::path::filename(M.getSourceFileName()));
}
GCModuleInfo *MI = getAnalysisIfAvailable<GCModuleInfo>();
OpenPOWER on IntegriCloud