Since OPT_UNKNOWN args never have any values and consist only of spelling (and are never aliased), this doesn't make any difference in practice, but it's more consistent with Arg's guidance to use getAsString() for diagnostics, and it matches what clang does. Also tweak two tests to use an unknown option that contains '=' for additional coverage while here. (The new tests pass fine with the old code too though.) llvm-svn: 365200
78 lines
3.0 KiB
Plaintext
78 lines
3.0 KiB
Plaintext
# REQUIRES: x86
|
|
|
|
# RUN: not ld.lld --unknown1 --unkn=own2 -m foo /no/such/file -lnosuchlib \
|
|
# RUN: 2>&1 | FileCheck -check-prefix=UNKNOWN %s
|
|
|
|
# UNKNOWN: unknown argument '--unknown1'
|
|
# UNKNOWN: unknown argument '--unkn=own2'
|
|
# UNKNOWN: unknown emulation: foo
|
|
# UNKNOWN: cannot open /no/such/file
|
|
# UNKNOWN: unable to find library -lnosuchlib
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
|
# RUN: not ld.lld %t -o /no/such/file 2>&1 | FileCheck -check-prefix=MISSING %s
|
|
# MISSING: cannot open output file /no/such/file
|
|
|
|
# RUN: ld.lld --help 2>&1 | FileCheck -check-prefix=HELP %s
|
|
# HELP: USAGE:
|
|
# HELP: : supported targets:{{.*}} elf
|
|
|
|
# RUN: ld.lld --version 2>&1 | FileCheck -check-prefix=VERSION %s
|
|
# RUN: ld.lld -v 2>&1 | FileCheck -check-prefix=VERSION %s
|
|
# RUN: not ld.lld -v xyz 2>&1 | FileCheck -check-prefix=VERSION %s
|
|
# VERSION: LLD {{.*}} (compatible with GNU linkers)
|
|
|
|
# RUN: not ld.lld --versin 2>&1 | FileCheck -check-prefix=SPELLVERSION %s
|
|
# SPELLVERSION: unknown argument '--versin', did you mean '--version'
|
|
|
|
## Attempt to link DSO with -r
|
|
# RUN: ld.lld -shared %t -o %t.so
|
|
# RUN: not ld.lld -r %t.so %t -o %tfail 2>&1 | FileCheck -check-prefix=ERR %s
|
|
# ERR: attempted static link of dynamic object
|
|
|
|
## Attempt to use -r and -shared together
|
|
# RUN: not ld.lld -r -shared %t -o %tfail 2>&1 | FileCheck -check-prefix=ERR2 %s
|
|
# ERR2: -r and -shared may not be used together
|
|
|
|
## Attempt to use -r and --gc-sections together
|
|
# RUN: not ld.lld -r --gc-sections %t -o %tfail 2>&1 | FileCheck -check-prefix=ERR3 %s
|
|
# ERR3: -r and --gc-sections may not be used together
|
|
|
|
## Attempt to use -r and --gdb-index together
|
|
# RUN: not ld.lld -r --gdb-index %t -o %tfail 2>&1 | FileCheck -check-prefix=ERR4 %s
|
|
# ERR4: -r and --gdb-index may not be used together
|
|
|
|
## Attempt to use -r and --icf together
|
|
# RUN: not ld.lld -r --icf=all %t -o %tfail 2>&1 | FileCheck -check-prefix=ERR5 %s
|
|
# ERR5: -r and --icf may not be used together
|
|
|
|
## Attempt to use -r and -pie together
|
|
# RUN: not ld.lld -r -pie %t -o %tfail 2>&1 | FileCheck -check-prefix=ERR6 %s
|
|
# ERR6: -r and -pie may not be used together
|
|
|
|
## Attempt to use -shared and -pie together
|
|
# RUN: not ld.lld -shared -pie %t -o %tfail 2>&1 | FileCheck -check-prefix=ERR7 %s
|
|
# ERR7: -shared and -pie may not be used together
|
|
|
|
## "--output=foo" is equivalent to "-o foo".
|
|
# RUN: not ld.lld %t --output=/no/such/file 2>&1 | FileCheck -check-prefix=ERR8 %s
|
|
# ERR8: cannot open output file /no/such/file
|
|
|
|
## "-output=foo" is equivalent to "-o utput=foo".
|
|
# RUN: not ld.lld %t -output=/no/such/file 2>&1 | FileCheck -check-prefix=ERR9 %s
|
|
# ERR9: cannot open output file utput=/no/such/file
|
|
|
|
# RUN: not ld.lld %t -z foo 2>&1 | FileCheck -check-prefix=ERR10 %s
|
|
# RUN: not ld.lld %t -z foo --version 2>&1 | FileCheck -check-prefix=ERR10 %s
|
|
# ERR10: unknown -z value: foo
|
|
|
|
## Check we report "unknown -z value" error even with -v.
|
|
# RUN: not ld.lld %t -z foo -v 2>&1 | FileCheck -check-prefix=ERR10 %s
|
|
|
|
# RUN: not ld.lld %t -z max-page-size 2>&1 | FileCheck -check-prefix=ERR11 %s
|
|
# ERR11: unknown -z value: max-page-size
|
|
|
|
.globl _start
|
|
_start:
|
|
nop
|