diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2013-05-16 10:29:42 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2013-05-16 10:29:42 +0000 |
commit | e3753785835fdb4c96f901c7d158a38b1c5c2f78 (patch) | |
tree | 99797a98eef64aa5f2258997fd4fc31a3d8d6c1f /gcc | |
parent | 43bb4dd14d015211a19ccd8c1802cc7e1361d8b7 (diff) | |
download | gcc-e3753785835fdb4c96f901c7d158a38b1c5c2f78.tar.gz |
varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
gcc/
* varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
gcc/testsuite/
* gcc.dg/visibility-21.c: New.
From-SVN: r198965
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-21.c | 13 | ||||
-rw-r--r-- | gcc/varasm.c | 6 |
4 files changed, 24 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3a0929cd122..d6f6e5a23e0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2013-05-16 Nathan Sidwell <nathan@codesourcery.com> + + * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p. + 2013-05-16 Marc Glisse <marc.glisse@inria.fr> PR middle-end/57286 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6ec937c4ad5..7bacbb58eea 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2013-05-16 Nathan Sidwell <nathan@codesourcery.com> + + * gcc.dg/visibility-21.c: New. + 2013-05-16 Marc Glisse <marc.glisse@inria.fr> PR middle-end/57286 diff --git a/gcc/testsuite/gcc.dg/visibility-21.c b/gcc/testsuite/gcc.dg/visibility-21.c new file mode 100644 index 00000000000..264204e848e --- /dev/null +++ b/gcc/testsuite/gcc.dg/visibility-21.c @@ -0,0 +1,13 @@ +/* Test visibility attribute on function definition. */ +/* { dg-do compile } */ +/* { dg-options "-O2 -fsection-anchors" } */ +/* { dg-require-visibility "" } */ +/* { dg-require-weak "" } */ +/* { dg-final { scan-assembler-not "ANCHOR" } } */ + +int __attribute__((weak, visibility("hidden"))) weak_hidden[3]; + +int *f_weak_hidden () +{ + return weak_hidden; +} diff --git a/gcc/varasm.c b/gcc/varasm.c index 6fb49cfa2d2..5f62677b2cc 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -6580,9 +6580,9 @@ default_use_anchors_for_symbol_p (const_rtx symbol) decl = SYMBOL_REF_DECL (symbol); if (decl && DECL_P (decl)) { - /* Don't use section anchors for decls that might be defined by - other modules. */ - if (!targetm.binds_local_p (decl)) + /* Don't use section anchors for decls that might be defined or + usurped by other modules. */ + if (TREE_PUBLIC (decl) && !decl_binds_to_current_def_p (decl)) return false; /* Don't use section anchors for decls that will be placed in a |