[ELF] - Linkerscript - fix handling of OUTPUT_ARCH command.

OUTPUT_ARCH command can contain architecture values separated with ":", like:
OUTPUT_ARCH(i386:x86-64)

We did not support that, because got 3 lexer tokens here after recent changes.

This trivial patch fixes the issue, now whole expression inside 
OUTPUT_ARCH is just ignored.

Differential revision: https://reviews.llvm.org/D29640

llvm-svn: 294432
This commit is contained in:
George Rimar 2017-02-08 09:59:06 +00:00
parent f7132c83f1
commit 4e01c3e8cd
2 changed files with 4 additions and 9 deletions

View File

@ -1247,10 +1247,10 @@ void ScriptParser::readOutput() {
}
void ScriptParser::readOutputArch() {
// Error checking only for now.
// OUTPUT_ARCH is ignored for now.
expect("(");
while (!Error && !consume(")"))
skip();
expect(")");
}
void ScriptParser::readOutputFormat() {

View File

@ -1,9 +1,4 @@
# REQUIRES: x86
# RUN: echo "OUTPUT_ARCH(x)" > %t.script
# RUN: echo "OUTPUT_ARCH(All data written here is ignored)" > %t.script
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %t1
# RUN: ld.lld -shared -o %t2 %t1 %t.script
# RUN: llvm-readobj %t2 > /dev/null
# RUN: echo "OUTPUT_ARCH(x, y)" > %t.script
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %t1
# RUN: not ld.lld -shared -o %t2 %t1 %t.script