From: Andrew MacLeod Date: Fri, 25 Nov 2011 13:35:13 +0000 (+0000) Subject: re PR other/51011 (FAIL: gcc.dg/atomic-generic.c (test for excess errors)) X-Git-Tag: releases/gcc-4.7.0~1959 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0c1e7e423a9072db79fb1ce5d99d4355ae3ed258;p=thirdparty%2Fgcc.git re PR other/51011 (FAIL: gcc.dg/atomic-generic.c (test for excess errors)) 2011-11-24 Andrew MacLeod 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9091465a3b4d..a77cf2e3c06e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2011-11-24 Andrew MacLeod + + 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 PR target/50566 diff --git a/gcc/builtins.c b/gcc/builtins.c index c9c02d105503..5ad69ceca92e 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 a76b0bc891a3..fa4adac5d80c 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 2c31af91b9aa..a01f49af58fc 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;