Patchwork [bootstrap/45321] Unbreak ARM bootstrap

login
register
mail settings
Submitter Ramana Radhakrishnan
Date Aug. 31, 2010, 12:22 p.m.
Message ID <1283257379.9521.8.camel@e102325-lin.cambridge.arm.com>
Download mbox | patch
Permalink /patch/63238/
State New
Headers show

Comments

Ramana Radhakrishnan - Aug. 31, 2010, 12:22 p.m.
Hi, 

This patch attached to the bug report thanks to Mikael fixes bootstrap for ARM thanks to the changes to use stdarg_p and whether const trees are used or not.

Bootstrap fixed on ARM and moves further to the next set of errors with PR45444 which I believe Mikael has a patch in the works for.

Also bootstrapped and tested on x86_64. Ok to commit to trunk?

cheers
Ramana


	Mikael Pettersson  <mikpe@it.uu.se> 

	PR bootstrap/45321
	* gcc/tree.c (stdarg_p): Make fntype parameter const.
	* gcc/tree.h (stdarg_p): Likewise.
	(function_args_iterator): Remove unused fntype field.
	(function_args_iter_init): Do not initialize fntype
	field.  Make fntype parameter const.
Mark Mitchell - Aug. 31, 2010, 2:55 p.m.
On 8/31/2010 5:22 AM, Ramana Radhakrishnan wrote:

> 	Mikael Pettersson  <mikpe@it.uu.se> 
> 
> 	PR bootstrap/45321
> 	* gcc/tree.c (stdarg_p): Make fntype parameter const.
> 	* gcc/tree.h (stdarg_p): Likewise.
> 	(function_args_iterator): Remove unused fntype field.
> 	(function_args_iter_init): Do not initialize fntype
> 	field.  Make fntype parameter const.

OK.

Patch

Index: gcc/tree.c
===================================================================
--- gcc/tree.c	(revision 163581)
+++ gcc/tree.c	(working copy)
@@ -10508,7 +10508,7 @@ 
 /* Return true if TYPE has a variable argument list.  */
 
 bool
-stdarg_p (tree fntype)
+stdarg_p (const_tree fntype)
 {
   function_args_iterator args_iter;
   tree n = NULL_TREE, t;
Index: gcc/tree.h
===================================================================
--- gcc/tree.h	(revision 163581)
+++ gcc/tree.h	(working copy)
@@ -4767,16 +4767,14 @@ 
 
 /* Iterator for going through the function arguments.  */
 typedef struct {
-  tree fntype;			/* function type declaration */
   tree next;			/* TREE_LIST pointing to the next argument */
 } function_args_iterator;
 
 /* Initialize the iterator I with arguments from function FNDECL  */
 
 static inline void
-function_args_iter_init (function_args_iterator *i, tree fntype)
+function_args_iter_init (function_args_iterator *i, const_tree fntype)
 {
-  i->fntype = fntype;
   i->next = TYPE_ARG_TYPES (fntype);
 }
 
@@ -4848,7 +4846,7 @@ 
 extern tree *call_expr_argp (tree, int);
 extern tree create_artificial_label (location_t);
 extern const char *get_name (tree);
-extern bool stdarg_p (tree);
+extern bool stdarg_p (const_tree);
 extern bool prototype_p (tree);
 extern bool is_typedef_decl (tree x);
 extern bool typedef_variant_p (tree);