summaryrefslogtreecommitdiffstats
path: root/lld/test/LinkerScript
diff options
context:
space:
mode:
authorMeador Inge <meadori@codesourcery.com>2015-03-12 21:55:50 +0000
committerMeador Inge <meadori@codesourcery.com>2015-03-12 21:55:50 +0000
commit748a71b8de2f632f813dc328b94570a2916094e7 (patch)
tree1a05c530414f6fb0e205a0cb1bd05bb9a0567c91 /lld/test/LinkerScript
parent0a6da5de552103ceadfd19e90522de983afafbb4 (diff)
downloadbcm5719-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.test22
-rw-r--r--lld/test/LinkerScript/extern-empty.test19
-rw-r--r--lld/test/LinkerScript/extern-valid.test29
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)
+*/
OpenPOWER on IntegriCloud