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, Darwin, x86] fix 53283


As described in the PR thread, Darwin was already using the TARGET_FOLD_BUILTIN hook to process CFstrings.

The patch fixes the breakage by calling a SUBTARGET_FOLD_BUILTIN where defined (following similar patterns for other items that require sub-target handling).

OK for trunk?
Iain

gcc:

	PR target/53283
	* config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN
	if defined.
	* config/darwin.h: Rename TARGET_FOLD_BUILTIN to
	SUBTARGET_FOLD_BUILTIN.
	* config/rs6000/darwin.h: Map TARGET_FOLD_BUILTIN onto
	SUBTARGET_FOLD_BUILTIN.

Index: gcc/config/i386/i386.c
===================================================================
--- gcc/config/i386/i386.c	(revision 188918)
+++ gcc/config/i386/i386.c	(working copy)
@@ -28030,6 +28030,10 @@ ix86_fold_builtin (tree fndecl, int n_args,
 	}
     }
 
+#ifdef SUBTARGET_FOLD_BUILTIN
+  return SUBTARGET_FOLD_BUILTIN (fndecl, n_args, args, ignore);
+#endif
+
   return NULL_TREE;
 }
 
Index: gcc/config/rs6000/darwin.h
===================================================================
--- gcc/config/rs6000/darwin.h	(revision 188918)
+++ gcc/config/rs6000/darwin.h	(working copy)
@@ -422,3 +422,7 @@ do {									\
   rs6000_builtin_decls[(unsigned) (RS6000_BUILTIN_CFSTRING)]		\
     = darwin_init_cfstring_builtins ((unsigned) (RS6000_BUILTIN_CFSTRING)); \
 } while(0)
+
+/* So far, there is no rs6000_fold_builtin, if one is introduced, then
+   this will need to be modified similar to the x86 case.  */
+#define TARGET_FOLD_BUILTIN SUBTARGET_FOLD_BUILTIN
Index: gcc/config/darwin.h
===================================================================
--- gcc/config/darwin.h	(revision 188918)
+++ gcc/config/darwin.h	(working copy)
@@ -912,7 +909,7 @@ void add_framework_path (char *);
 #define TARGET_KEXTABI flag_apple_kext
 
 /* We have target-specific builtins.  */
-#define TARGET_FOLD_BUILTIN darwin_fold_builtin
+#define SUBTARGET_FOLD_BUILTIN darwin_fold_builtin
 
 #define TARGET_N_FORMAT_TYPES 1
 #define TARGET_FORMAT_TYPES darwin_additional_format_types


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