This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, ppc]: Fix PR target/25477; builtin functions should use $LDBL128 suffix on darwin when appropriate


Hello!

Attached patch is an addendum to FX's patch to add $LDBL128 suffix to long-double functions and finally fixes PR target/25477.


2008-02-26 Uros Bizjak <ubizjak@gmail.com>


   PR target/25477
   * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
   (BUILT_IN_NEXTTOWARD): Remove.
   (BUILT_IN_NEXTTOWARDF): Ditto.
   * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
   alloca/strcpy/strcat.  Fix whitespace.

Patch was bootstrapped and regression tested on ppc-apple-darwin9 by Jack Howarth [1] (Thanks!). OK for mainline?

[1] http://gcc.gnu.org/ml/gcc-bugs/2008-02/msg02759.html


Index: config/darwin-ppc-ldouble-patch.def
===================================================================
--- config/darwin-ppc-ldouble-patch.def	(revision 132619)
+++ config/darwin-ppc-ldouble-patch.def	(working copy)
@@ -59,10 +59,9 @@ PATCH_BUILTIN (BUILT_IN_LOGL)
 PATCH_BUILTIN (BUILT_IN_LRINTL)
 PATCH_BUILTIN (BUILT_IN_LROUNDL)
 PATCH_BUILTIN (BUILT_IN_MODFL)
+PATCH_BUILTIN (BUILT_IN_NANL)
 PATCH_BUILTIN (BUILT_IN_NEARBYINTL)
 PATCH_BUILTIN (BUILT_IN_NEXTAFTERL)
-PATCH_BUILTIN (BUILT_IN_NEXTTOWARD)
-PATCH_BUILTIN (BUILT_IN_NEXTTOWARDF)
 PATCH_BUILTIN (BUILT_IN_NEXTTOWARDL)
 PATCH_BUILTIN (BUILT_IN_POWL)
 PATCH_BUILTIN (BUILT_IN_REMAINDERL)
@@ -78,6 +77,7 @@ PATCH_BUILTIN (BUILT_IN_TANHL)
 PATCH_BUILTIN (BUILT_IN_TANL)
 PATCH_BUILTIN (BUILT_IN_TGAMMAL)
 PATCH_BUILTIN (BUILT_IN_TRUNCL)
+
 PATCH_BUILTIN_NO64 (BUILT_IN_VFPRINTF)
 PATCH_BUILTIN_NO64 (BUILT_IN_VFSCANF)
 PATCH_BUILTIN_NO64 (BUILT_IN_VPRINTF)
Index: config/darwin.c
===================================================================
--- config/darwin.c	(revision 132619)
+++ config/darwin.c	(working copy)
@@ -1748,18 +1748,23 @@ darwin_patch_builtin (int fncode)
     return;
 
   sym = DECL_ASSEMBLER_NAME (fn);
-  newname = alloca (IDENTIFIER_LENGTH (sym) + 10);
-  strcpy (newname, "_");
-  strcat (newname, IDENTIFIER_POINTER (sym));
-  strcat (newname, "$LDBL128");
+  newname = ACONCAT (("_", IDENTIFIER_POINTER (sym), "$LDBL128", NULL));
+
+#if 1
   set_user_assembler_name (fn, newname);
-  /*sym = get_identifier (newname);
-  SET_DECL_ASSEMBLER_NAME (fn, sym);*/
+#else
+  sym = get_identifier (newname);
+  SET_DECL_ASSEMBLER_NAME (fn, sym);
+#endif
 
   fn = implicit_built_in_decls[fncode];
+
   if (fn)
+#if 1
     set_user_assembler_name (fn, newname);
-    /*SET_DECL_ASSEMBLER_NAME (fn, sym);*/
+#else
+    SET_DECL_ASSEMBLER_NAME (fn, sym);
+#endif
 }
 
 void

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]