]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
builtins.c (is_builtin_name): New.
authorRafael Avila de Espindola <espindola@google.com>
Thu, 2 Apr 2009 12:03:48 +0000 (12:03 +0000)
committerRafael Espindola <espindola@gcc.gnu.org>
Thu, 2 Apr 2009 12:03:48 +0000 (12:03 +0000)
2009-04-02  Rafael Avila de Espindola  <espindola@google.com>

* builtins.c (is_builtin_name): New.
(called_as_built_in): Use is_builtin_name.
* tree.h (is_builtin_name): New.
* varasm.c (incorporeal_function_p): Use is_builtin_name

From-SVN: r145444

gcc/ChangeLog
gcc/builtins.c
gcc/tree.h
gcc/varasm.c

index 2afe2bb83b17a4ed3556d17789fca66ecccb0817..af401e7804f725775918ff94598e507d410b72b0 100644 (file)
@@ -1,3 +1,10 @@
+2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
+
+       * builtins.c (is_builtin_name): New.
+       (called_as_built_in): Use is_builtin_name.
+       * tree.h (is_builtin_name): New.
+       * varasm.c (incorporeal_function_p): Use is_builtin_name
+
 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
 
        * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
index e22c5f58964dd20bcb8581938e4888c584330af9..9f0f4ac4fba1cd53384ed1b06be7ac034eb49740 100644 (file)
@@ -241,13 +241,9 @@ static tree do_mpfr_bessel_n (tree, tree, tree,
 static tree do_mpfr_remquo (tree, tree, tree);
 static tree do_mpfr_lgamma_r (tree, tree, tree);
 
-/* Return true if NODE should be considered for inline expansion regardless
-   of the optimization level.  This means whenever a function is invoked with
-   its "internal" name, which normally contains the prefix "__builtin".  */
-
-static bool called_as_built_in (tree node)
+bool
+is_builtin_name (const char *name)
 {
-  const char *name = IDENTIFIER_POINTER (DECL_NAME (node));
   if (strncmp (name, "__builtin_", 10) == 0)
     return true;
   if (strncmp (name, "__sync_", 7) == 0)
@@ -255,6 +251,20 @@ static bool called_as_built_in (tree node)
   return false;
 }
 
+/* Return true if NODE should be considered for inline expansion regardless
+   of the optimization level.  This means whenever a function is invoked with
+   its "internal" name, which normally contains the prefix "__builtin".  */
+
+static bool
+called_as_built_in (tree node)
+{
+  /* Note that we must use DECL_NAME, not DECL_ASSEMBLER_NAME_SET_P since
+     we want the name used to call the function, not the name it
+     will have. */
+  const char *name = IDENTIFIER_POINTER (DECL_NAME (node));
+  return is_builtin_name (name);
+}
+
 /* Return the alignment in bits of EXP, an object.
    Don't return more than MAX_ALIGN no matter what, ALIGN is the inital
    guessed alignment e.g. from type alignment.  */
index 4e67c6aeaddb00bc1312ae65be1a484b04155318..1f262f622e52ed6d47dfdc5b09b07283a9d85fc4 100644 (file)
@@ -4896,6 +4896,7 @@ 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 int get_pointer_alignment (tree, unsigned int);
+extern bool is_builtin_name(const char*);
 extern int get_object_alignment (tree, unsigned int, unsigned int);
 extern tree fold_call_stmt (gimple, bool);
 extern tree gimple_fold_builtin_snprintf_chk (gimple, tree, enum built_in_function);
index 16d87824aff4144bf3024331b5341b8ddfad55c8..4e414442e54776bf4dae12ae6c165572116fa8cd 100644 (file)
@@ -2256,7 +2256,7 @@ incorporeal_function_p (tree decl)
        return true;
 
       name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
-      if (strncmp (name, "__builtin_", strlen ("__builtin_")) == 0)
+      if (is_builtin_name (name))
        return true;
     }
   return false;