diff options
author | Doug Kwan <dougkwan@google.com> | 2010-08-28 08:05:04 +0000 |
---|---|---|
committer | Doug Kwan <dougkwan@google.com> | 2010-08-28 08:05:04 +0000 |
commit | a464928644b6811cfa7a7de2652d3eb00fe75f6d (patch) | |
tree | 297c6e9987fd140ff1627afa5c020b26d22f23b4 /gold/testsuite/dyn_weak_ref_1.c | |
parent | 89a2ee5a089604df716321acbc40137ef408afe8 (diff) | |
download | fsf-binutils-gdb-a464928644b6811cfa7a7de2652d3eb00fe75f6d.zip fsf-binutils-gdb-a464928644b6811cfa7a7de2652d3eb00fe75f6d.tar.gz fsf-binutils-gdb-a464928644b6811cfa7a7de2652d3eb00fe75f6d.tar.bz2 |
2010-08-27 Doug Kwan <dougkwan@google.com>
* gold/resolve.cc (Symbol_table::should_override): Let a weak
reference override an existing dynamic weak reference.
* testsuite/Makefile.am: Add new test dyn_weak_ref.
* testsuite/Makefile.in: Regenerate.
* testsuite/dyn_weak_ref.sh: New file.
* testsuite/dyn_weak_ref_1.c: Ditto.
* testsuite/dyn_weak_ref_2.c: Ditto.
Diffstat (limited to 'gold/testsuite/dyn_weak_ref_1.c')
-rw-r--r-- | gold/testsuite/dyn_weak_ref_1.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gold/testsuite/dyn_weak_ref_1.c b/gold/testsuite/dyn_weak_ref_1.c new file mode 100644 index 0000000..fdd78dd --- /dev/null +++ b/gold/testsuite/dyn_weak_ref_1.c @@ -0,0 +1,39 @@ +// dyn_weak_ref_1.c -- test that a weak ref remains weak in output when +// there is a DSO with the same weak ref. + +// Copyright 2010 Free Software Foundation, Inc. +// Written by Doug Kwan <dougkwan@google.com>. + +// This file is part of gold. + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, +// MA 02110-1301, USA. + +// We test that we correctly deal with a weak reference to from both +// a DSO and a weak reference to the same symbol in an executable. The +// symbol should remains weak. + +// This source is used to build an DSO that references the same weak +// symbol as in a dependent DSO. + +extern void weak_ref (void) __attribute__((weak)); + +void* ptr1 = weak_ref; + +int +main (void) +{ + return 0; +} |