diff options
| author | Meador Inge <meadori@codesourcery.com> | 2015-03-12 21:55:50 +0000 |
|---|---|---|
| committer | Meador Inge <meadori@codesourcery.com> | 2015-03-12 21:55:50 +0000 |
| commit | 748a71b8de2f632f813dc328b94570a2916094e7 (patch) | |
| tree | 1a05c530414f6fb0e205a0cb1bd05bb9a0567c91 /lld/test/LinkerScript | |
| parent | 0a6da5de552103ceadfd19e90522de983afafbb4 (diff) | |
| download | bcm5719-llvm-748a71b8de2f632f813dc328b94570a2916094e7.tar.gz bcm5719-llvm-748a71b8de2f632f813dc328b94570a2916094e7.zip | |
LinkerScript: Add parsing of the EXTERN command
This patch implements parsing of the GNU ld EXTERN command [1].
Evaluation will be added at a later point in time.
[1] https://sourceware.org/binutils/docs/ld/Miscellaneous-Commands.html#Miscellaneous-Commands
llvm-svn: 232110
Diffstat (limited to 'lld/test/LinkerScript')
| -rw-r--r-- | lld/test/LinkerScript/extern-bad-symbol.test | 22 | ||||
| -rw-r--r-- | lld/test/LinkerScript/extern-empty.test | 19 | ||||
| -rw-r--r-- | lld/test/LinkerScript/extern-valid.test | 29 |
3 files changed, 70 insertions, 0 deletions
diff --git a/lld/test/LinkerScript/extern-bad-symbol.test b/lld/test/LinkerScript/extern-bad-symbol.test new file mode 100644 index 00000000000..279a7cc2056 --- /dev/null +++ b/lld/test/LinkerScript/extern-bad-symbol.test @@ -0,0 +1,22 @@ +/* + RUN: linker-script-test %s 2> %t | FileCheck %s + RUN: FileCheck -input-file %t -check-prefix=CHECK-ERR %s +*/ + + +EXTERN(a b 3) +/* +CHECK-ERR: [[@LINE-2]]:12: error: expected symbol in EXTERN. +CHECK-ERR-NEXT: {{^EXTERN\(a b 3\)}} +CHECK-ERR-NEXT: {{^ \^}} +*/ + +/* +CHECK: kw_extern: EXTERN +CHECK: l_paren: ( +CHECK: identifier: a +CHECK: identifier: b +CHECK: number: 3 +CHECK: r_paren: ) +CHECK: eof: +*/ diff --git a/lld/test/LinkerScript/extern-empty.test b/lld/test/LinkerScript/extern-empty.test new file mode 100644 index 00000000000..a5e1ece084d --- /dev/null +++ b/lld/test/LinkerScript/extern-empty.test @@ -0,0 +1,19 @@ +/* + RUN: linker-script-test %s 2> %t | FileCheck %s + RUN: FileCheck -input-file %t -check-prefix=CHECK-ERR %s +*/ + + +EXTERN() +/* +CHECK-ERR: [[@LINE-2]]:8: error: expected one or more symbols in EXTERN. +CHECK-ERR-NEXT: {{^EXTERN()}} +CHECK-ERR-NEXT: {{^ \^}} +*/ + +/* +CHECK: kw_extern: EXTERN +CHECK: l_paren: ( +CHECK: r_paren: ) +CHECK: eof: +*/ diff --git a/lld/test/LinkerScript/extern-valid.test b/lld/test/LinkerScript/extern-valid.test new file mode 100644 index 00000000000..764b4668a34 --- /dev/null +++ b/lld/test/LinkerScript/extern-valid.test @@ -0,0 +1,29 @@ +/* + RUN: linker-script-test %s | FileCheck %s +*/ + +EXTERN(a) +EXTERN(a b) +EXTERN(_foo _bar _baz) + +/* +CHECK: kw_extern: EXTERN +CHECK: l_paren: ( +CHECK: identifier: a +CHECK: r_paren: ) +CHECK: kw_extern: EXTERN +CHECK: l_paren: ( +CHECK: identifier: a +CHECK: identifier: b +CHECK: r_paren: ) +CHECK: kw_extern: EXTERN +CHECK: l_paren: ( +CHECK: identifier: _foo +CHECK: identifier: _bar +CHECK: identifier: _baz +CHECK: r_paren: ) +CHECK: eof: +CHECK: EXTERN(a) +CHECK: EXTERN(a b) +CHECK: EXTERN(_foo _bar _baz) +*/ |

