From 950bd9d1893bad58788e61f3fb6f966fdbe6fd18 Mon Sep 17 00:00:00 2001 From: Andrew Macleod Date: Fri, 25 Nov 2011 13:35:13 +0000 Subject: 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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@181721 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 8 ++++++++ gcc/builtins.c | 2 +- gcc/tree.h | 1 - gcc/varasm.c | 4 +++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9091465a3b4..a77cf2e3c06 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 c9c02d10550..5ad69ceca92 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 a76b0bc891a..fa4adac5d80 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 2c31af91b9a..a01f49af58f 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; -- cgit v1.2.3