summaryrefslogtreecommitdiff
path: root/lld
diff options
context:
space:
mode:
authorAlvin Wong <alvin@alvinhc.com>2023-04-23 23:52:55 +0800
committerAlvin Wong <alvin@alvinhc.com>2023-04-24 22:06:34 +0800
commit9b15e9840f5073aa38939fbef1cb0c64dcc5f02f (patch)
tree718f52ced34db887ffd11e26625384ed0756242d /lld
parent271a73dae32f5eac2011a2f85351975484496262 (diff)
downloadllvm-9b15e9840f5073aa38939fbef1cb0c64dcc5f02f.tar.gz
[LLD][COFF] Print object file name for unsupported directives
This is a small QoL improvement suggested by FrancescElies in https://github.com/llvm/llvm-project/issues/56300#issuecomment-1172104966. Differential Revision: https://reviews.llvm.org/D149022
Diffstat (limited to 'lld')
-rw-r--r--lld/COFF/Driver.cpp3
-rw-r--r--lld/test/COFF/directives-unsupported.s15
2 files changed, 17 insertions, 1 deletions
diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp
index 8d272c2cc6bf..d326296b1b60 100644
--- a/lld/COFF/Driver.cpp
+++ b/lld/COFF/Driver.cpp
@@ -447,7 +447,8 @@ void LinkerDriver::parseDirectives(InputFile *file) {
case OPT_throwingnew:
break;
default:
- error(arg->getSpelling() + " is not allowed in .drectve");
+ error(arg->getSpelling() + " is not allowed in .drectve (" +
+ toString(file) + ")");
}
}
}
diff --git a/lld/test/COFF/directives-unsupported.s b/lld/test/COFF/directives-unsupported.s
new file mode 100644
index 000000000000..1b8231178df8
--- /dev/null
+++ b/lld/test/COFF/directives-unsupported.s
@@ -0,0 +1,15 @@
+# REQUIRES: x86
+
+# RUN: llvm-mc -triple=x86_64-windows %s -filetype=obj -o %t.obj
+
+# RUN: not lld-link -dll -out:%t.dll -entry:entry %t.obj -subsystem:console 2>&1 | FileCheck %s
+
+# CHECK: warning: ignoring unknown argument: -unknowndirectivename
+# CHECK: error: -unknowndirectivename is not allowed in .drectve ({{.*}}.obj)
+
+ .global entry
+ .text
+entry:
+ ret
+ .section .drectve
+ .ascii " -unknowndirectivename "