This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, ppc]: Fix PR target/25477; builtin functions should use $LDBL128 suffix on darwin when appropriate
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 26 Feb 2008 18:43:00 +0100
- Subject: [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