summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2015-09-16 16:26:29 +0000
committerReid Kleckner <rnk@google.com>2015-09-16 16:26:29 +0000
commit85dfb68e5004dd407c5a8cace921c5679ac56a77 (patch)
treec0783fc45b02fce5821f6f2d2de16bb92f26494a
parent815adacd227c35f3d2341fb23907179f5ff7de75 (diff)
downloadbcm5719-llvm-85dfb68e5004dd407c5a8cace921c5679ac56a77.tar.gz
bcm5719-llvm-85dfb68e5004dd407c5a8cace921c5679ac56a77.zip
Add assembler fatal error for undefined assembler labels in COFF writer
llvm-svn: 247814
-rw-r--r--llvm/lib/MC/WinCOFFObjectWriter.cpp5
-rw-r--r--llvm/test/MC/COFF/label-undefined.s4
2 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/MC/WinCOFFObjectWriter.cpp b/llvm/lib/MC/WinCOFFObjectWriter.cpp
index 6c696738b48..f251942161d 100644
--- a/llvm/lib/MC/WinCOFFObjectWriter.cpp
+++ b/llvm/lib/MC/WinCOFFObjectWriter.cpp
@@ -710,6 +710,11 @@ void WinCOFFObjectWriter::recordRelocation(
Asm.getContext().reportFatalError(Fixup.getLoc(),
Twine("symbol '") + A.getName() +
"' can not be undefined");
+ if (A.isTemporary() && A.isUndefined()) {
+ Asm.getContext().reportFatalError(Fixup.getLoc(),
+ Twine("assembler label '") + A.getName() +
+ "' can not be undefined");
+ }
MCSection *Section = Fragment->getParent();
diff --git a/llvm/test/MC/COFF/label-undefined.s b/llvm/test/MC/COFF/label-undefined.s
new file mode 100644
index 00000000000..e5cfd3ca5a3
--- /dev/null
+++ b/llvm/test/MC/COFF/label-undefined.s
@@ -0,0 +1,4 @@
+// RUN: not llvm-mc -filetype=obj -triple i386-pc-win32 %s 2>&1 | FileCheck %s
+// CHECK: assembler label 'Lundefined' can not be undefined
+ .text
+ movl Lundefined, %eax
OpenPOWER on IntegriCloud