# REQUIRES: x86
# RUN: rm -rf %t && split-file %s %t && cd %t
# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o 0.o
#--- 1.lds
SECTIONS {
.text + { *(.text) }
.keep : { *(.keep) } /*
comment line 1
comment line 2 */
.temp : { *(.temp) }
}
# RUN: not ld.lld -shared 0.o -T 1.lds 2>&1 | FileCheck %s --check-prefix=CHECK1 --match-full-lines --strict-whitespace
# CHECK1:{{.*}}:2: malformed number: +
# CHECK1-NEXT:>>> .text + { *(.text) }
# CHECK1-NEXT:>>> ^
#--- 2.lds
UNKNOWN_TAG {
.text : { *(.text) }
.keep : { *(.keep) }
.temp : { *(.temp) }
}
# RUN: not ld.lld -shared 0.o -T 2.lds 2>&1 | FileCheck %s --check-prefix=CHECK2 --match-full-lines --strict-whitespace
# CHECK2:{{.*}}:2: unknown directive: UNKNOWN_TAG
# CHECK2-NEXT:>>> UNKNOWN_TAG {
# CHECK2-NEXT:>>> ^
#--- 3.lds
SECTIONS {
.text : { *(.text) }
.keep : { *(.keep) }
boom ^temp : { *(.temp) }
}
#--- 3a.lds
INCLUDE "3.lds"
#--- 3b.lds
foo = 3;
INCLUDE "3a.lds"
# RUN: not ld.lld -shared 0.o -T 3.lds 2>&1 | FileCheck %s --check-prefix=CHECK3 --match-full-lines --strict-whitespace
# RUN: not ld.lld -shared 0.o -T 3a.lds 2>&1 | FileCheck %s --check-prefix=CHECK3 --match-full-lines --strict-whitespace
# RUN: not ld.lld -shared 0.o -T 3b.lds 2>&1 | FileCheck %s --check-prefix=CHECK3 --match-full-lines --strict-whitespace
# CHECK3:{{.*}}3.lds:4: malformed number: ^
# CHECK3-NEXT:>>> boom ^temp : { *(.temp) }
# CHECK3-NEXT:>>> ^