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]: Add -Wcast-qual to the bootstrap warning flags [take 2]


This is my second attempt to activate -Wcast-qual during bootstrap.
This version incorporates feedback from the previous thread here:
http://gcc.gnu.org/ml/gcc-patches/2007-09/msg01799.html

Differences from before are:

1.  Fix whitespace problems pointed out by Andrew.
2.  Change asprintf usage in m68k.c as requested by Jakub.
3.  The fortran bits were approved and installed so they are not
included in this version.

Tested on sparc-sun-solaris2.10, no regressions.  I also built cc1
cross-targetted to m68k-unknown-linux-gnu to ensure there were no
typos in the m68k.c change.

Okay for mainline?

		Thanks,
		--Kaveh


2007-09-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.ac (ACX_PROG_CC_WARNING_OPTS): Add -Wcast-qual.
	* configure: Regenerate.

gcc:
	* builtins.c (builtin_memcpy_read_str, builtin_memset_gen_str,
	builtin_strncpy_read_str, builtin_memset_read_str,
	builtin_memset_gen_str): Constify.
	(expand_builtin_memcpy, expand_builtin_mempcpy_args,
	expand_builtin_strncpy): Don't cast away const-ness.
	* config/m68k/m68k.c (m68k_handle_option): Avoid -Wcast-qual
	warning.  Check for error from asprintf.
	* cselib.c (entry_and_rtx_equal_p, rtx_equal_for_cselib_p):
	Constify.
	* cselib.h (rtx_equal_for_cselib_p): Likewise.
	* expr.c (struct store_by_pieces, clear_by_pieces_1,
	can_store_by_pieces, store_by_pieces): Constify.
	(store_expr): Don't cast away const-ness.
	* expr.h (builtin_strncpy_read_str, can_store_by_pieces,
	store_by_pieces): Constify.
	* gengtype.c (read_input_list, adjust_field_type,
	process_gc_options): Avoid -Wcast-qual warning.
	* ggc-common.c (ggc_mark_roots): Likewise.
	* stringpool.c (gt_pch_n_S): Likewise.
	* system.h: Remove #pragma GCC diagnostic warning "-Wcast-qual"
	* tree-parloops.c (name_to_copy_elt_eq, name_to_copy_elt_hash):
	Constify.
	* tree-ssa-phiopt.c (name_to_bb_hash, name_to_bb_eq): Likewise.
	* tree.h (builtin_memset_read_str): Likewise.

diff -rup orig/egcc-SVN20070927/gcc/builtins.c egcc-SVN20070927/gcc/builtins.c
--- orig/egcc-SVN20070927/gcc/builtins.c	2007-09-27 20:51:38.000000000 -0400
+++ egcc-SVN20070927/gcc/builtins.c	2007-09-27 21:23:54.275439393 -0400
@@ -109,7 +109,7 @@ static rtx expand_builtin_memchr (tree,
 static rtx expand_builtin_memcmp (tree, rtx, enum machine_mode);
 static rtx expand_builtin_strcmp (tree, rtx, enum machine_mode);
 static rtx expand_builtin_strncmp (tree, rtx, enum machine_mode);
-static rtx builtin_memcpy_read_str (void *, HOST_WIDE_INT, enum machine_mode);
+static rtx builtin_memcpy_read_str (const void *, HOST_WIDE_INT, enum machine_mode);
 static rtx expand_builtin_strcat (tree, tree, rtx, enum machine_mode);
 static rtx expand_builtin_strncat (tree, rtx, enum machine_mode);
 static rtx expand_builtin_strspn (tree, rtx, enum machine_mode);
@@ -126,7 +126,7 @@ static rtx expand_builtin_strcpy (tree,
 static rtx expand_builtin_strcpy_args (tree, tree, tree, rtx, enum machine_mode);
 static rtx expand_builtin_stpcpy (tree, rtx, enum machine_mode);
 static rtx expand_builtin_strncpy (tree, rtx, enum machine_mode);
-static rtx builtin_memset_gen_str (void *, HOST_WIDE_INT, enum machine_mode);
+static rtx builtin_memset_gen_str (const void *, HOST_WIDE_INT, enum machine_mode);
 static rtx expand_builtin_memset (tree, rtx, enum machine_mode);
 static rtx expand_builtin_memset_args (tree, tree, tree, rtx, enum machine_mode, tree);
 static rtx expand_builtin_bzero (tree);
@@ -3255,7 +3255,7 @@ expand_builtin_strpbrk (tree exp, rtx ta
    constant.  */

 static rtx
-builtin_memcpy_read_str (void *data, HOST_WIDE_INT offset,
+builtin_memcpy_read_str (const void *data, HOST_WIDE_INT offset,
 			 enum machine_mode mode)
 {
   const char *str = (const char *) data;
@@ -3331,11 +3331,11 @@ expand_builtin_memcpy (tree exp, rtx tar
 	  && GET_CODE (len_rtx) == CONST_INT
 	  && (unsigned HOST_WIDE_INT) INTVAL (len_rtx) <= strlen (src_str) + 1
 	  && can_store_by_pieces (INTVAL (len_rtx), builtin_memcpy_read_str,
-				  (void *) src_str, dest_align, false))
+				  src_str, dest_align, false))
 	{
 	  dest_mem = store_by_pieces (dest_mem, INTVAL (len_rtx),
 				      builtin_memcpy_read_str,
-				      (void *) src_str, dest_align, false, 0);
+				      src_str, dest_align, false, 0);
 	  dest_mem = force_operand (XEXP (dest_mem, 0), NULL_RTX);
 	  dest_mem = convert_memory_address (ptr_mode, dest_mem);
 	  return dest_mem;
@@ -3444,13 +3444,13 @@ expand_builtin_mempcpy_args (tree dest,
 	  && GET_CODE (len_rtx) == CONST_INT
 	  && (unsigned HOST_WIDE_INT) INTVAL (len_rtx) <= strlen (src_str) + 1
 	  && can_store_by_pieces (INTVAL (len_rtx), builtin_memcpy_read_str,
-				  (void *) src_str, dest_align, false))
+				  src_str, dest_align, false))
 	{
 	  dest_mem = get_memory_rtx (dest, len);
 	  set_mem_align (dest_mem, dest_align);
 	  dest_mem = store_by_pieces (dest_mem, INTVAL (len_rtx),
 				      builtin_memcpy_read_str,
-				      (void *) src_str, dest_align,
+				      src_str, dest_align,
 				      false, endp);
 	  dest_mem = force_operand (XEXP (dest_mem, 0), NULL_RTX);
 	  dest_mem = convert_memory_address (ptr_mode, dest_mem);
@@ -3735,7 +3735,7 @@ expand_builtin_stpcpy (tree exp, rtx tar
    constant.  */

 rtx
-builtin_strncpy_read_str (void *data, HOST_WIDE_INT offset,
+builtin_strncpy_read_str (const void *data, HOST_WIDE_INT offset,
 			  enum machine_mode mode)
 {
   const char *str = (const char *) data;
@@ -3793,13 +3793,13 @@ expand_builtin_strncpy (tree exp, rtx ta
 	  if (!p || dest_align == 0 || !host_integerp (len, 1)
 	      || !can_store_by_pieces (tree_low_cst (len, 1),
 				       builtin_strncpy_read_str,
-				       (void *) p, dest_align, false))
+				       p, dest_align, false))
 	    return NULL_RTX;

 	  dest_mem = get_memory_rtx (dest, len);
 	  store_by_pieces (dest_mem, tree_low_cst (len, 1),
 			   builtin_strncpy_read_str,
-			   (void *) p, dest_align, false, 0);
+			   p, dest_align, false, 0);
 	  dest_mem = force_operand (XEXP (dest_mem, 0), NULL_RTX);
 	  dest_mem = convert_memory_address (ptr_mode, dest_mem);
 	  return dest_mem;
@@ -3813,7 +3813,7 @@ expand_builtin_strncpy (tree exp, rtx ta
    constant.  */

 rtx
-builtin_memset_read_str (void *data, HOST_WIDE_INT offset ATTRIBUTE_UNUSED,
+builtin_memset_read_str (const void *data, HOST_WIDE_INT offset ATTRIBUTE_UNUSED,
 			 enum machine_mode mode)
 {
   const char *c = (const char *) data;
@@ -3830,22 +3830,23 @@ builtin_memset_read_str (void *data, HOS
    4 bytes wide, return the RTL for 0x01010101*data.  */

 static rtx
-builtin_memset_gen_str (void *data, HOST_WIDE_INT offset ATTRIBUTE_UNUSED,
+builtin_memset_gen_str (const void *data, HOST_WIDE_INT offset ATTRIBUTE_UNUSED,
 			enum machine_mode mode)
 {
+  rtx x = CONST_CAST_RTX ((const_rtx)data);
   rtx target, coeff;
   size_t size;
   char *p;

   size = GET_MODE_SIZE (mode);
   if (size == 1)
-    return (rtx) data;
+    return x;

   p = alloca (size);
   memset (p, 1, size);
   coeff = c_readstr (p, mode);

-  target = convert_to_mode (mode, (rtx) data, 1);
+  target = convert_to_mode (mode, x, 1);
   target = expand_mult (mode, target, coeff, NULL_RTX, 1);
   return force_reg (mode, target);
 }
diff -rup orig/egcc-SVN20070927/gcc/config/m68k/m68k.c egcc-SVN20070927/gcc/config/m68k/m68k.c
--- orig/egcc-SVN20070927/gcc/config/m68k/m68k.c	2007-09-24 23:02:46.000000000 -0400
+++ egcc-SVN20070927/gcc/config/m68k/m68k.c	2007-09-27 22:12:18.086877938 -0400
@@ -456,7 +456,14 @@ m68k_handle_option (size_t code, const c
 	error ("-mshared-library-id=%s is not between 0 and %d",
 	       arg, MAX_LIBRARY_ID);
       else
-	asprintf ((char **) &m68k_library_id_string, "%d", (value * -4) - 4);
+        {
+	  char *tmp;
+	  const int n = asprintf (&tmp, "%d", (value * -4) - 4);
+
+	  if (!tmp || n < 0)
+	    fatal_error ("out of memory");
+	  m68k_library_id_string = tmp;
+	}
       return true;

     default:
diff -rup orig/egcc-SVN20070927/gcc/configure egcc-SVN20070927/gcc/configure
--- orig/egcc-SVN20070927/gcc/configure	2007-09-23 23:06:54.000000000 -0400
+++ egcc-SVN20070927/gcc/configure	2007-09-27 21:24:00.788795724 -0400
@@ -6119,7 +6119,7 @@ fi
 loose_warn=
 save_CFLAGS="$CFLAGS"
 for option in -W -Wall -Wwrite-strings -Wstrict-prototypes \
-			  -Wmissing-prototypes; do
+			  -Wmissing-prototypes -Wcast-qual; do
   as_acx_Woption=`echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`

   echo "$as_me:$LINENO: checking whether $CC supports $option" >&5
diff -rup orig/egcc-SVN20070927/gcc/configure.ac egcc-SVN20070927/gcc/configure.ac
--- orig/egcc-SVN20070927/gcc/configure.ac	2007-09-23 23:03:15.000000000 -0400
+++ egcc-SVN20070927/gcc/configure.ac	2007-09-27 21:23:54.309992657 -0400
@@ -320,7 +320,7 @@ AC_CHECK_TYPES([__int64], [AC_CHECK_SIZE
 # So, we only use -pedantic if we can disable those warnings.

 ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \
-			  -Wmissing-prototypes], [loose_warn])
+			  -Wmissing-prototypes -Wcast-qual], [loose_warn])
 ACX_PROG_CC_WARNING_OPTS([-Wc++-compat], [cxx_compat_warn])
 ACX_PROG_CC_WARNING_OPTS([-Wold-style-definition \
                           -Wmissing-format-attribute], [strict_warn])
diff -rup orig/egcc-SVN20070927/gcc/cselib.c egcc-SVN20070927/gcc/cselib.c
--- orig/egcc-SVN20070927/gcc/cselib.c	2007-08-23 12:12:27.000000000 -0400
+++ egcc-SVN20070927/gcc/cselib.c	2007-09-27 21:23:54.312526773 -0400
@@ -234,8 +234,8 @@ entry_and_rtx_equal_p (const void *entry
 {
   struct elt_loc_list *l;
   const cselib_val *const v = (const cselib_val *) entry;
-  rtx x = (rtx) x_arg;
-  enum machine_mode mode = GET_MODE (x);
+  const_rtx x = (const_rtx) x_arg;
+  const enum machine_mode mode = GET_MODE (x);

   gcc_assert (GET_CODE (x) != CONST_INT && GET_CODE (x) != CONST_FIXED
 	      && (mode != VOIDmode || GET_CODE (x) != CONST_DOUBLE));
@@ -401,7 +401,7 @@ cselib_reg_set_mode (const_rtx x)
    our gathered information into account.  */

 int
-rtx_equal_for_cselib_p (rtx x, rtx y)
+rtx_equal_for_cselib_p (const_rtx x, const_rtx y)
 {
   enum rtx_code code;
   const char *fmt;
@@ -409,7 +409,7 @@ rtx_equal_for_cselib_p (rtx x, rtx y)

   if (REG_P (x) || MEM_P (x))
     {
-      cselib_val *e = cselib_lookup (x, GET_MODE (x), 0);
+      cselib_val *e = cselib_lookup (CONST_CAST_RTX (x), GET_MODE (x), 0);

       if (e)
 	x = e->val_rtx;
@@ -417,7 +417,7 @@ rtx_equal_for_cselib_p (rtx x, rtx y)

   if (REG_P (y) || MEM_P (y))
     {
-      cselib_val *e = cselib_lookup (y, GET_MODE (y), 0);
+      cselib_val *e = cselib_lookup (CONST_CAST_RTX (y), GET_MODE (y), 0);

       if (e)
 	y = e->val_rtx;
diff -rup orig/egcc-SVN20070927/gcc/cselib.h egcc-SVN20070927/gcc/cselib.h
--- orig/egcc-SVN20070927/gcc/cselib.h	2007-07-30 12:38:02.000000000 -0400
+++ egcc-SVN20070927/gcc/cselib.h	2007-09-27 21:23:54.313348091 -0400
@@ -66,7 +66,7 @@ extern void cselib_clear_table (void);
 extern void cselib_finish (void);
 extern void cselib_process_insn (rtx);
 extern enum machine_mode cselib_reg_set_mode (const_rtx);
-extern int rtx_equal_for_cselib_p (rtx, rtx);
+extern int rtx_equal_for_cselib_p (const_rtx, const_rtx);
 extern int references_value_p (const_rtx, int);
 extern rtx cselib_expand_value_rtx (rtx, bitmap, int);
 extern rtx cselib_subst_to_values (rtx);
diff -rup orig/egcc-SVN20070927/gcc/expr.c egcc-SVN20070927/gcc/expr.c
--- orig/egcc-SVN20070927/gcc/expr.c	2007-09-27 20:51:39.000000000 -0400
+++ egcc-SVN20070927/gcc/expr.c	2007-09-27 21:23:54.324562605 -0400
@@ -115,8 +115,8 @@ struct store_by_pieces
   int explicit_inc_to;
   unsigned HOST_WIDE_INT len;
   HOST_WIDE_INT offset;
-  rtx (*constfun) (void *, HOST_WIDE_INT, enum machine_mode);
-  void *constfundata;
+  rtx (*constfun) (const void *, HOST_WIDE_INT, enum machine_mode);
+  const void *constfundata;
   int reverse;
 };

@@ -129,7 +129,7 @@ static bool block_move_libcall_safe_for_
 static bool emit_block_move_via_movmem (rtx, rtx, rtx, unsigned, unsigned, HOST_WIDE_INT);
 static tree emit_block_move_libcall_fn (int);
 static void emit_block_move_via_loop (rtx, rtx, rtx, unsigned);
-static rtx clear_by_pieces_1 (void *, HOST_WIDE_INT, enum machine_mode);
+static rtx clear_by_pieces_1 (const void *, HOST_WIDE_INT, enum machine_mode);
 static void clear_by_pieces (rtx, unsigned HOST_WIDE_INT, unsigned int);
 static void store_by_pieces_1 (struct store_by_pieces *, unsigned int);
 static void store_by_pieces_2 (rtx (*) (rtx, ...), enum machine_mode,
@@ -2222,8 +2222,8 @@ use_group_regs (rtx *call_fusage, rtx re

 int
 can_store_by_pieces (unsigned HOST_WIDE_INT len,
-		     rtx (*constfun) (void *, HOST_WIDE_INT, enum machine_mode),
-		     void *constfundata, unsigned int align, bool memsetp)
+		     rtx (*constfun) (const void *, HOST_WIDE_INT, enum machine_mode),
+		     const void *constfundata, unsigned int align, bool memsetp)
 {
   unsigned HOST_WIDE_INT l;
   unsigned int max_size;
@@ -2321,8 +2321,8 @@ can_store_by_pieces (unsigned HOST_WIDE_

 rtx
 store_by_pieces (rtx to, unsigned HOST_WIDE_INT len,
-		 rtx (*constfun) (void *, HOST_WIDE_INT, enum machine_mode),
-		 void *constfundata, unsigned int align, bool memsetp, int endp)
+		 rtx (*constfun) (const void *, HOST_WIDE_INT, enum machine_mode),
+		 const void *constfundata, unsigned int align, bool memsetp, int endp)
 {
   struct store_by_pieces data;

@@ -2392,7 +2392,7 @@ clear_by_pieces (rtx to, unsigned HOST_W
    Return const0_rtx unconditionally.  */

 static rtx
-clear_by_pieces_1 (void *data ATTRIBUTE_UNUSED,
+clear_by_pieces_1 (const void *data ATTRIBUTE_UNUSED,
 		   HOST_WIDE_INT offset ATTRIBUTE_UNUSED,
 		   enum machine_mode mode ATTRIBUTE_UNUSED)
 {
@@ -4529,7 +4529,7 @@ store_expr (tree exp, rtx target, int ca
 	}
       str_copy_len = MIN (str_copy_len, exp_len);
       if (!can_store_by_pieces (str_copy_len, builtin_strncpy_read_str,
-				(void *) TREE_STRING_POINTER (exp),
+				TREE_STRING_POINTER (exp),
 				MEM_ALIGN (target), false))
 	goto normal_expr;

@@ -4537,7 +4537,7 @@ store_expr (tree exp, rtx target, int ca

       dest_mem = store_by_pieces (dest_mem,
 				  str_copy_len, builtin_strncpy_read_str,
-				  (void *) TREE_STRING_POINTER (exp),
+				  TREE_STRING_POINTER (exp),
 				  MEM_ALIGN (target), false,
 				  exp_len > str_copy_len ? 1 : 0);
       if (exp_len > str_copy_len)
diff -rup orig/egcc-SVN20070927/gcc/expr.h egcc-SVN20070927/gcc/expr.h
--- orig/egcc-SVN20070927/gcc/expr.h	2007-08-27 23:03:15.000000000 -0400
+++ egcc-SVN20070927/gcc/expr.h	2007-09-27 21:23:54.326843589 -0400
@@ -348,7 +348,7 @@ extern void expand_builtin_setjmp_setup
 extern void expand_builtin_setjmp_receiver (rtx);
 extern rtx expand_builtin_saveregs (void);
 extern void expand_builtin_trap (void);
-extern rtx builtin_strncpy_read_str (void *, HOST_WIDE_INT, enum machine_mode);
+extern rtx builtin_strncpy_read_str (const void *, HOST_WIDE_INT, enum machine_mode);

 /* Functions from expr.c:  */

@@ -455,9 +455,9 @@ extern int can_move_by_pieces (unsigned
    MEMSETP is true if this is a real memset/bzero, not a copy
    of a const string.  */
 extern int can_store_by_pieces (unsigned HOST_WIDE_INT,
-				rtx (*) (void *, HOST_WIDE_INT,
+				rtx (*) (const void *, HOST_WIDE_INT,
 					 enum machine_mode),
-				void *, unsigned int, bool);
+				const void *, unsigned int, bool);

 /* Generate several move instructions to store LEN bytes generated by
    CONSTFUN to block TO.  (A MEM rtx with BLKmode).  CONSTFUNDATA is a
@@ -466,8 +466,8 @@ extern int can_store_by_pieces (unsigned
    MEMSETP is true if this is a real memset/bzero, not a copy.
    Returns TO + LEN.  */
 extern rtx store_by_pieces (rtx, unsigned HOST_WIDE_INT,
-			    rtx (*) (void *, HOST_WIDE_INT, enum machine_mode),
-			    void *, unsigned int, bool, int);
+			    rtx (*) (const void *, HOST_WIDE_INT, enum machine_mode),
+			    const void *, unsigned int, bool, int);

 /* Emit insns to set X from Y.  */
 extern rtx emit_move_insn (rtx, rtx);
diff -rup orig/egcc-SVN20070927/gcc/gengtype.c egcc-SVN20070927/gcc/gengtype.c
--- orig/egcc-SVN20070927/gcc/gengtype.c	2007-08-06 20:02:28.000000000 -0400
+++ egcc-SVN20070927/gcc/gengtype.c	2007-09-27 21:23:54.330859853 -0400
@@ -433,7 +433,7 @@ read_input_list (const char *listname)
 				     : lang_dir_names[langno - 1]);

 		    bmap |= curlangs;
-		    set_lang_bitmap ((char *)gt_files[i], bmap);
+		    set_lang_bitmap (CONST_CAST (char *, gt_files[i]), bmap);
 		    here = committed;
 		    goto next_line;
 		  }
@@ -1271,9 +1271,9 @@ adjust_field_type (type_p t, options_p o
 	if (params[num] != NULL)
 	  error_at_line (&lexer_line, "duplicate `%s' option", opt->name);
 	if (! ISDIGIT (opt->name[5]))
-	  params[num] = create_pointer ((type_p) opt->info);
+	  params[num] = create_pointer ((type_p)CONST_CAST (char *, opt->info));
 	else
-	  params[num] = (type_p) opt->info;
+	  params[num] = (type_p)CONST_CAST (char *, opt->info);
       }
     else if (strcmp (opt->name, "special") == 0)
       {
@@ -1322,7 +1322,8 @@ process_gc_options (options_p opt, enum
   options_p o;
   for (o = opt; o; o = o->next)
     if (strcmp (o->name, "ptr_alias") == 0 && level == GC_POINTED_TO)
-      set_gc_used_type ((type_p) o->info, GC_POINTED_TO, NULL);
+      set_gc_used_type ((type_p)CONST_CAST (char *, o->info),
+			GC_POINTED_TO, NULL);
     else if (strcmp (o->name, "maybe_undef") == 0)
       *maybe_undef = 1;
     else if (strcmp (o->name, "use_params") == 0)
diff -rup orig/egcc-SVN20070927/gcc/ggc-common.c egcc-SVN20070927/gcc/ggc-common.c
--- orig/egcc-SVN20070927/gcc/ggc-common.c	2007-08-25 11:25:45.000000000 -0400
+++ egcc-SVN20070927/gcc/ggc-common.c	2007-09-27 21:23:54.332525370 -0400
@@ -125,7 +125,8 @@ ggc_mark_roots (void)
       if (*cti->base)
 	{
 	  ggc_set_mark (*cti->base);
-	  htab_traverse_noresize (*cti->base, ggc_htab_delete, (void *) cti);
+	  htab_traverse_noresize (*cti->base, ggc_htab_delete,
+				  CONST_CAST (struct ggc_cache_tab *, cti));
 	  ggc_set_mark ((*cti->base)->entries);
 	}
 }
diff -rup orig/egcc-SVN20070927/gcc/stringpool.c egcc-SVN20070927/gcc/stringpool.c
--- orig/egcc-SVN20070927/gcc/stringpool.c	2007-07-26 23:03:59.000000000 -0400
+++ egcc-SVN20070927/gcc/stringpool.c	2007-09-27 21:23:54.333389889 -0400
@@ -197,8 +197,8 @@ gt_pch_p_S (void *obj ATTRIBUTE_UNUSED,
 void
 gt_pch_n_S (const void *x)
 {
-  gt_pch_note_object ((void *)x, (void *)x, &gt_pch_p_S,
-		      gt_types_enum_last);
+  gt_pch_note_object (CONST_CAST (void *, x), CONST_CAST (void *, x),
+		      &gt_pch_p_S, gt_types_enum_last);
 }

 /* Handle saving and restoring the string pool for PCH.  */
diff -rup orig/egcc-SVN20070927/gcc/system.h egcc-SVN20070927/gcc/system.h
--- orig/egcc-SVN20070927/gcc/system.h	2007-09-03 13:22:09.000000000 -0400
+++ egcc-SVN20070927/gcc/system.h	2007-09-27 21:23:54.334776112 -0400
@@ -793,9 +793,4 @@ extern void fancy_abort (const char *, i
 #define CONST_CAST_RTX(X) CONST_CAST(struct rtx_def *, (X))
 #define CONST_CAST_BB(X) CONST_CAST(struct basic_block_def *, (X))

-/* Activate -Wcast-qual as a warning (not an error/-Werror).  */
-#if GCC_VERSION >= 4003
-#pragma GCC diagnostic warning "-Wcast-qual"
-#endif
-
 #endif /* ! GCC_SYSTEM_H */
diff -rup orig/egcc-SVN20070927/gcc/tree-parloops.c egcc-SVN20070927/gcc/tree-parloops.c
--- orig/egcc-SVN20070927/gcc/tree-parloops.c	2007-09-15 23:02:52.000000000 -0400
+++ egcc-SVN20070927/gcc/tree-parloops.c	2007-09-27 21:23:54.336582755 -0400
@@ -80,8 +80,10 @@ struct name_to_copy_elt
 static int
 name_to_copy_elt_eq (const void *aa, const void *bb)
 {
-  struct name_to_copy_elt *a = (struct name_to_copy_elt *) aa;
-  struct name_to_copy_elt *b = (struct name_to_copy_elt *) bb;
+  const struct name_to_copy_elt *const a
+    = (const struct name_to_copy_elt *) aa;
+  const struct name_to_copy_elt *const b
+    = (const struct name_to_copy_elt *) bb;

   return a->version == b->version;
 }
@@ -89,7 +91,8 @@ name_to_copy_elt_eq (const void *aa, con
 static hashval_t
 name_to_copy_elt_hash (const void *aa)
 {
-  struct name_to_copy_elt *a = (struct name_to_copy_elt *) aa;
+  const struct name_to_copy_elt *const a
+    = (const struct name_to_copy_elt *) aa;

   return (hashval_t) a->version;
 }
diff -rup orig/egcc-SVN20070927/gcc/tree-ssa-phiopt.c egcc-SVN20070927/gcc/tree-ssa-phiopt.c
--- orig/egcc-SVN20070927/gcc/tree-ssa-phiopt.c	2007-09-10 23:06:02.000000000 -0400
+++ egcc-SVN20070927/gcc/tree-ssa-phiopt.c	2007-09-27 21:23:54.338444041 -0400
@@ -1101,7 +1101,7 @@ static struct pointer_set_t *nontrap_set
 static hashval_t
 name_to_bb_hash (const void *p)
 {
-  tree n = ((struct name_to_bb *)p)->ssa_name;
+  const_tree const n = ((const struct name_to_bb *)p)->ssa_name;
   return htab_hash_pointer (n);
 }

@@ -1110,8 +1110,8 @@ name_to_bb_hash (const void *p)
 static int
 name_to_bb_eq (const void *p1, const void *p2)
 {
-  tree n1 = ((struct name_to_bb *)p1)->ssa_name;
-  tree n2 = ((struct name_to_bb *)p2)->ssa_name;
+  const_tree const n1 = ((const struct name_to_bb *)p1)->ssa_name;
+  const_tree const n2 = ((const struct name_to_bb *)p2)->ssa_name;

   return n1 == n2;
 }
diff -rup orig/egcc-SVN20070927/gcc/tree.h egcc-SVN20070927/gcc/tree.h
--- orig/egcc-SVN20070927/gcc/tree.h	2007-09-23 23:03:09.000000000 -0400
+++ egcc-SVN20070927/gcc/tree.h	2007-09-27 21:23:54.344853535 -0400
@@ -4849,7 +4849,7 @@ extern tree std_gimplify_va_arg_expr (tr
 extern tree build_va_arg_indirect_ref (tree);
 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 rtx builtin_memset_read_str (const void *, HOST_WIDE_INT, enum machine_mode);
 extern int get_pointer_alignment (tree, unsigned int);

 /* In convert.c */


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