aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hieta <tobias@hieta.se>2022-11-08 09:23:10 +0100
committerTobias Hieta <tobias@hieta.se>2022-11-08 10:05:59 +0100
commitaa99b607b5cf8ef1260f5661dcbf077f26ee797c (patch)
tree5d0439a1ade73d407b57594f0e27d8c8a633d14a
parentaa9647e2d0b29caa3b31154246dd4d9c6a4e0c2f (diff)
downloadllvm-aa99b607b5cf8ef1260f5661dcbf077f26ee797c.zip
llvm-aa99b607b5cf8ef1260f5661dcbf077f26ee797c.tar.gz
llvm-aa99b607b5cf8ef1260f5661dcbf077f26ee797c.tar.bz2
[clang][pdb] Don't include -fmessage-length in PDB buildinfo
As discussed in https://reviews.llvm.org/D136474 -fmessage-length creates problems with reproduciability in the PDB files. This patch just drops that argument when writing the PDB file. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D137322
-rw-r--r--clang/test/CodeGen/debug-info-codeview-buildinfo.c9
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp3
2 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/CodeGen/debug-info-codeview-buildinfo.c b/clang/test/CodeGen/debug-info-codeview-buildinfo.c
index 71c0e7b..e1c6f36 100644
--- a/clang/test/CodeGen/debug-info-codeview-buildinfo.c
+++ b/clang/test/CodeGen/debug-info-codeview-buildinfo.c
@@ -8,6 +8,10 @@
// RUN: %clang_cl -gno-codeview-command-line --target=i686-windows-msvc /c /Z7 /Fo%t.obj -- %s
// RUN: llvm-pdbutil dump --types %t.obj | FileCheck %s --check-prefix DISABLE
+// -fmessage-length shouldn't be included in the command line since it breaks reproducibility
+// RUN: %clang_cl -gcodeview-command-line --target=i686-windows-msvc -Xclang -fmessage-length=100 /c /Z7 /Fo%t.obj -- %s
+// RUN: llvm-pdbutil dump --types %t.obj | FileCheck %s --check-prefix MESSAGELEN
+
int main(void) { return 42; }
// CHECK: Types (.debug$T)
@@ -36,3 +40,8 @@ int main(void) { return 42; }
// DISABLE-NEXT: 0x{{.+}}: `{{.*}}`
// DISABLE-NEXT: 0x{{.+}}: ``
// DISABLE-NEXT: <no type>: ``
+
+// MESSAGELEN: Types (.debug$T)
+// MESSAGELEN: ============================================================
+// MESSAGELEN: 0x{{.+}} | LF_BUILDINFO [size = {{.+}}]
+// MESSAGELEN-NOT: -fmessage-length
diff --git a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
index a6f1fbc..3bb0df4 100644
--- a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
@@ -908,6 +908,9 @@ static std::string flattenCommandLine(ArrayRef<std::string> Args,
}
if (Arg.startswith("-object-file-name") || Arg == MainFilename)
continue;
+ // Skip fmessage-length for reproduciability.
+ if (Arg.startswith("-fmessage-length"))
+ continue;
if (PrintedOneArg)
OS << " ";
llvm::sys::printArg(OS, Arg, /*Quote=*/true);