aboutsummaryrefslogtreecommitdiff
path: root/gold/testsuite/pr14265.t
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2012-08-14 08:31:57 +0000
committerNick Clifton <nickc@redhat.com>2012-08-14 08:31:57 +0000
commitb9b2ae8bbf911b7762fe41ecbb5dbc64a8e2b5a7 (patch)
tree53b5d6d4c8f3c498a9c9ebfb42d572a2553bfd4f /gold/testsuite/pr14265.t
parent921b53228fa18e00beca6b19b3aa43c23903b900 (diff)
downloadgdb-b9b2ae8bbf911b7762fe41ecbb5dbc64a8e2b5a7.zip
gdb-b9b2ae8bbf911b7762fe41ecbb5dbc64a8e2b5a7.tar.gz
gdb-b9b2ae8bbf911b7762fe41ecbb5dbc64a8e2b5a7.tar.bz2
PR ld/14265
* script-sections.cc (Sections_element::output_section_name): Add keep return parameter. (Output_section_element::match_name): Add keep return parameter. Return the value of the keep_ member. * script-sections.h (class Output_section): Update output_section_name prototype. * layout.cc (Layout::keep_input_section): New public member function. (Layout::choose_output_section): Pass keep parameter to output_section_name. * layout.h (class Layout): Add keep_input_section. * object.cc (Sized_relobj_file::do_layout): Check for kept input sections. * testsuite/Makefile.am: Add a test. * testsuite/Makefile.in: Regenerate. * testsuite/pr14265.c: Source file for the test. * testsuite/pr14265.t: Linker script for the test. * testsuite/pr14265.sh: Shell script for the test. * ld-gc/gc.exp: Add a new test. * ld-gc/pr14265.c: Source file for the new test. * ld-gc/pr14265.t: Linker script for the new test. * ld-gc/pr14265.d: Expected symbol dump.
Diffstat (limited to 'gold/testsuite/pr14265.t')
-rw-r--r--gold/testsuite/pr14265.t23
1 files changed, 23 insertions, 0 deletions
diff --git a/gold/testsuite/pr14265.t b/gold/testsuite/pr14265.t
new file mode 100644
index 0000000..eec56e7
--- /dev/null
+++ b/gold/testsuite/pr14265.t
@@ -0,0 +1,23 @@
+SECTIONS
+{
+ .text : { *(.text) }
+
+ __foo0_start = .;
+ .foo0 : { *(.foo0.*) }
+ __foo0_end = .;
+
+ __foo1_start = .;
+ .foo1 : { KEEP(*(.foo1.*)) }
+ __foo1_end = .;
+
+ .foo2 : {
+ __foo2_start = .;
+ KEEP(*(.foo2.*))
+ __foo2_end = .;
+ }
+}
+
+
+ASSERT (__foo1_start < __foo1_end, "foo1 not KEPT");
+ASSERT ((__foo1_end - __foo1_start) == (__foo2_end - __foo2_start),"foo2 not KEPT");
+