* ld-scripts/defined2.d, ld-scripts/defined2.t: New test.
authorHans-Peter Nilsson <hp@axis.com>
Wed, 8 Oct 2003 12:35:18 +0000 (12:35 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Wed, 8 Oct 2003 12:35:18 +0000 (12:35 +0000)
* ld-scripts/defined.exp: Run defined2.

ld/testsuite/ChangeLog
ld/testsuite/ld-scripts/defined.exp
ld/testsuite/ld-scripts/defined2.d [new file with mode: 0644]
ld/testsuite/ld-scripts/defined2.t [new file with mode: 0644]

index ab46874b40d02e8008c3255a3cbb537c935f5de6..f00cf6af1eb9f6412507790c3548db93cdec79ef 100644 (file)
@@ -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
index 075bf568ac6966466453a880de45e4b590b79710..277ba37628c00059ef2aeea0a16ddae6390836ef 100644 (file)
@@ -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 (file)
index 0000000..6bb0682
--- /dev/null
@@ -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 (file)
index 0000000..50ddad0
--- /dev/null
@@ -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);