diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2011-11-25 13:35:13 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 2011-11-25 13:35:13 +0000 |
commit | 0c1e7e423a9072db79fb1ce5d99d4355ae3ed258 (patch) | |
tree | b137ccbe21de5a50b1ef9d25894e931b998042b3 | |
parent | b5e3577030b315d4f6adda285c3d01b0b845263e (diff) | |
download | gcc-0c1e7e423a9072db79fb1ce5d99d4355ae3ed258.zip gcc-0c1e7e423a9072db79fb1ce5d99d4355ae3ed258.tar.gz gcc-0c1e7e423a9072db79fb1ce5d99d4355ae3ed258.tar.bz2 |
re PR other/51011 (FAIL: gcc.dg/atomic-generic.c (test for excess errors))
2011-11-24 Andrew MacLeod <amacleod@redhat.com>
PR other/51011
* tree.h (is_builtin_name): No longer external.
* builtins.c (is_builtin_name): Make static.
* varasm.c (incorporeal_function_p): __sync and __atomic external calls
are not incorporeal and may need asm label processing.
From-SVN: r181721
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/builtins.c | 2 | ||||
-rw-r--r-- | gcc/tree.h | 1 | ||||
-rw-r--r-- | gcc/varasm.c | 4 |
4 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9091465..a77cf2e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2011-11-24 Andrew MacLeod <amacleod@redhat.com> + + PR other/51011 + * tree.h (is_builtin_name): No longer external. + * builtins.c (is_builtin_name): Make static. + * varasm.c (incorporeal_function_p): __sync and __atomic external calls + are not incorporeal and may need asm label processing. + 2011-11-25 Georg-Johann Lay <avr@gjlay.de> PR target/50566 diff --git a/gcc/builtins.c b/gcc/builtins.c index c9c02d1..5ad69ce 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -227,7 +227,7 @@ static void expand_builtin_sync_synchronize (void); /* Return true if NAME starts with __builtin_ or __sync_. */ -bool +static bool is_builtin_name (const char *name) { if (strncmp (name, "__builtin_", 10) == 0) @@ -5460,7 +5460,6 @@ extern tree build_va_arg_indirect_ref (tree); extern tree build_string_literal (int, const char *); extern bool validate_arglist (const_tree, ...); extern rtx builtin_memset_read_str (void *, HOST_WIDE_INT, enum machine_mode); -extern bool is_builtin_name (const char *); extern bool is_builtin_fn (tree); extern unsigned int get_object_alignment_1 (tree, unsigned HOST_WIDE_INT *); extern unsigned int get_object_alignment (tree); diff --git a/gcc/varasm.c b/gcc/varasm.c index 2c31af9..a01f49a 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -2109,7 +2109,9 @@ incorporeal_function_p (tree decl) return true; name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)); - if (is_builtin_name (name)) + /* Atomic or sync builtins which have survived this far will be + resolved externally and therefore are not incorporeal. */ + if (strncmp (name, "__builtin_", 10) == 0) return true; } return false; |