[patch] Fialure with -fstack-protector

Kaz Kojima kkojima@rr.iij4u.or.jp
Thu Jul 28 00:27:00 GMT 2005


Hi,

I've noticed that some tests started to fail at

make check RUNTESTFLAGS=--target_board=unix/-fstack-protector

on i686-pc-linux-gnu.  I've got same failures on
sh4-unknown-linux-gnu and powerpc-apple-darwin7.9.0 with
-fstack-protector.  The first failure is

FAIL: gcc.c-torture/compile/20030224-1.c  -O3 -fomit-frame-pointer -funroll-loops  (test for excess errors)

with

gcc/gcc/testsuite/gcc.c-torture/compile/20030224-1.c: In function 'zzz':
gcc/gcc/testsuite/gcc.c-torture/compile/20030224-1.c:17: internal compiler error: in df_uses_record, at df.c:1062

and gdb says that the ICE occurs when df_uses_record processes
(set (scratch:SI) (const_int 0 [0x0])).
It seems that df_uses_record doesn't handle the case that
SCRATCH is the destination of SET.  The patch below is to
handle this case.  It's tested with bootstrap and the toplevel
"make -k check" without regressions on i686-pc-linux-gnu.

Regards,
	kaz
--
2005-07-27  Kaz Kojima  <kkojima@gcc.gnu.org>

	* df.c (df_uses_record): Handle SCRATCH.

--- ORIG/gcc/gcc/df.c	2005-06-26 12:57:25.000000000 +0900
+++ LOCAL/gcc/gcc/df.c	2005-07-25 09:32:47.000000000 +0900
@@ -1034,6 +1034,7 @@ df_uses_record (struct df *df, rtx *loc,
 	      /* Fall through.  */
 	    case REG:
 	    case PARALLEL:
+	    case SCRATCH:
 	    case PC:
 	    case CC0:
 		break;



More information about the Gcc-patches mailing list