diff options
Diffstat (limited to 'gcc')
-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 9091465a3b4..a77cf2e3c06 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 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; |