diff options
author | Rui Ueyama <ruiu@google.com> | 2019-11-13 13:43:25 +0900 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2019-11-14 13:13:07 +0900 |
commit | 000ff301e74b216c23ee60344977b2b6692ac70c (patch) | |
tree | 81f9f0a789e86ac0e90908c3378fe07ed2fa0bdd | |
parent | f95ed69641d5431a3789e7ea5d4f7837eaae18f3 (diff) | |
download | bcm5719-llvm-000ff301e74b216c23ee60344977b2b6692ac70c.tar.gz bcm5719-llvm-000ff301e74b216c23ee60344977b2b6692ac70c.zip |
Warn on /align if used without /driver
/align is not supposed to be used without /driver, so it makes sense
to warn if only /align is passed. MSVC link.exe warns on this too.
Differential Revision: https://reviews.llvm.org/D70163
-rw-r--r-- | lld/COFF/Driver.cpp | 2 | ||||
-rw-r--r-- | lld/test/COFF/align.s | 13 |
2 files changed, 15 insertions, 0 deletions
diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp index 05d60428d26..d33e8684149 100644 --- a/lld/COFF/Driver.cpp +++ b/lld/COFF/Driver.cpp @@ -1479,6 +1479,8 @@ void LinkerDriver::link(ArrayRef<const char *> argsArr) { parseNumbers(arg->getValue(), &config->align); if (!isPowerOf2_64(config->align)) error("/align: not a power of two: " + StringRef(arg->getValue())); + if (!args.hasArg(OPT_driver)) + warn("/align specified without /driver; image may not run"); } // Handle /aligncomm diff --git a/lld/test/COFF/align.s b/lld/test/COFF/align.s index 67ca349e003..ca005b5e42e 100644 --- a/lld/test/COFF/align.s +++ b/lld/test/COFF/align.s @@ -4,6 +4,19 @@ # CHECK: SectionAlignment: 32 +# RUN: lld-link /out:%t.exe /entry:main /align:32 %t.obj 2>&1 \ +# RUN: | FileCheck -check-prefix=WARN1 %s + +# WARN1: /align specified without /driver; image may not run + +# RUN: lld-link /out:%t.exe /entry:main /align:32 %t.obj /driver 2>&1 \ +# RUN: | FileCheck -check-prefix=WARN2 --allow-empty %s + +# RUN: lld-link /out:%t.exe /entry:main %t.obj /driver 2>&1 \ +# RUN: | FileCheck -check-prefix=WARN2 --allow-empty %s + +# WARN2-NOT: /align specified without /driver; image may not run + --- !COFF header: Machine: IMAGE_FILE_MACHINE_AMD64 |