Skip to content

Commit 8a6f1ab

Browse files
authored
[LLD] [COFF] Print a warning when using /dependentloadflag without load config (#117400)
As per request in #113814.
1 parent c54616e commit 8a6f1ab

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

lld/COFF/Writer.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2654,6 +2654,9 @@ void Writer::prepareLoadConfig() {
26542654
if (ctx.config.guardCF != GuardCFLevel::Off)
26552655
Warn(ctx)
26562656
<< "Control Flow Guard is enabled but '_load_config_used' is missing";
2657+
if (ctx.config.dependentLoadFlags)
2658+
Warn(ctx) << "_load_config_used not found, /dependentloadflag will have "
2659+
"no effect";
26572660
return;
26582661
}
26592662

lld/test/COFF/dependentflags.test

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ RUN: not lld-link %S/Inputs/precomp-a.obj %t.ldcfg.obj /out:%t.exe /nodefaultlib
2020
RUN: not lld-link %S/Inputs/precomp-a.obj %t.ldcfg.obj /out:%t.exe /nodefaultlib /force /dependentloadflag:zz 2>&1 | FileCheck %s --check-prefix FAIL
2121
RUN: not lld-link %S/Inputs/precomp-a.obj %t.ldcfg.obj /out:%t.exe /nodefaultlib /force /dependentloadflag:0xf0000 2>&1 | FileCheck %s --check-prefix FAIL-RANGE
2222

23+
// ---- Warn if _load_config_used is missing
24+
RUN: llvm-lib %t.ldcfg.obj /out:%t.lib
25+
RUN: lld-link %S/Inputs/precomp-a.obj /out:%t.exe /nodefaultlib /force /dependentloadflag:0x800 2>&1 | FileCheck %s --check-prefix WARN-NOBASE
26+
RUN: lld-link %S/Inputs/precomp-a.obj %t.lib /out:%t.exe /nodefaultlib /force /dependentloadflag:0x800 2>&1 | FileCheck %s --allow-empty --check-prefix NO-WARN
2327

2428
BASE: DependentLoadFlags: 0x0
2529
FLAGS-800: DependentLoadFlags: 0x800
@@ -29,3 +33,5 @@ FAIL: lld-link: error: /dependentloadflag: invalid argument: zz
2933
FAIL-RANGE: lld-link: error: /dependentloadflag: invalid argument: 0xf0000
3034
FAIL-NOARG: lld-link: error: /dependentloadflag: no argument specified
3135

36+
WARN-NOBASE: lld-link: warning: _load_config_used not found, /dependentloadflag will have no effect
37+
NO-WARN-NOT: lld-link: warning: _load_config_used not found, /dependentloadflag will have no effect

0 commit comments

Comments
 (0)