diff options
-rw-r--r-- | ld/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/defined.exp | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/defined2.d | 18 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/defined2.t | 9 |
4 files changed, 35 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index ab46874..f00cf6a 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-10-08 Hans-Peter Nilsson <hp@bitrange.com> + + * ld-scripts/defined2.d, ld-scripts/defined2.t: New test. + * ld-scripts/defined.exp: Run defined2. + 2003-10-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> * ld-elfvsb/elfvsb.exp: xfail non-pic shared library tests for diff --git a/ld/testsuite/ld-scripts/defined.exp b/ld/testsuite/ld-scripts/defined.exp index 075bf56..277ba37 100644 --- a/ld/testsuite/ld-scripts/defined.exp +++ b/ld/testsuite/ld-scripts/defined.exp @@ -53,3 +53,6 @@ if ![ld_simple_link $ld tmpdir/def "-T $srcdir/$subdir/defined.t tmpdir/def.o"] } } } + +set prms_id 0 +run_dump_test "defined2" diff --git a/ld/testsuite/ld-scripts/defined2.d b/ld/testsuite/ld-scripts/defined2.d new file mode 100644 index 0000000..6bb0682 --- /dev/null +++ b/ld/testsuite/ld-scripts/defined2.d @@ -0,0 +1,18 @@ +#ld: -Tdefined2.t +#nm: -B +#source: phdrs.s + +# Check that arithmetic on DEFINED works. +# Matching both A and T accounts for formats that can't tell a .text +# symbol from an absolute symbol (mmo), but matches whatever section that +# contains an address matching the value. The symbol sym1 is supposed to +# be in the .text section for all targets, though. + +#... +0+1 [AT] defined1 +0+11 A defined2 +0+100 A defined3 +0+1ff A defined4 +#... +0+3 T sym1 +#pass diff --git a/ld/testsuite/ld-scripts/defined2.t b/ld/testsuite/ld-scripts/defined2.t new file mode 100644 index 0000000..50ddad0 --- /dev/null +++ b/ld/testsuite/ld-scripts/defined2.t @@ -0,0 +1,9 @@ +SECTIONS { + .text : { *(.text) sym1 = 3 - DEFINED (x); } + .data : { *(.data) } + .bss : { *(.bss) *(COMMON) } +} +defined1 = !DEFINED (x); +defined2 = DEFINED (defined1) + 16; +defined3 = DEFINED (defined2) * 256; +defined4 = 0x200 - DEFINED (defined3); |