aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2011-11-25 13:35:13 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>2011-11-25 13:35:13 +0000
commit0c1e7e423a9072db79fb1ce5d99d4355ae3ed258 (patch)
treeb137ccbe21de5a50b1ef9d25894e931b998042b3
parentb5e3577030b315d4f6adda285c3d01b0b845263e (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/builtins.c2
-rw-r--r--gcc/tree.h1
-rw-r--r--gcc/varasm.c4
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)
diff --git a/gcc/tree.h b/gcc/tree.h
index a76b0bc..fa4adac 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -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;