re PR debug/29558 (ICE in set_variable_part, at var-tracking.c:2140)
PR debug/29558 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P in memory. From-SVN: r122131
This commit is contained in:
parent
9a6f71b45c
commit
80a3af5be7
|
@ -1,3 +1,9 @@
|
|||
2007-02-19 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR debug/29558
|
||||
* var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
|
||||
in memory.
|
||||
|
||||
2007-02-19 Andreas Krebbel <krebbel1@de.ibm.com>
|
||||
|
||||
* config/s390/s390.c (s390_call_saved_register_used,
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
/* { dg-do compile } */
|
||||
|
||||
void stpi_unpack_16_1(int length, unsigned char *out, unsigned char bit)
|
||||
{
|
||||
unsigned char tempin;
|
||||
unsigned char temp[16];
|
||||
for (bit = 128; length > 0; length--) {
|
||||
if (tempin & 128)
|
||||
temp[0] |= bit;
|
||||
else
|
||||
{
|
||||
*out++ = temp[1];
|
||||
*out++ = temp[2];
|
||||
*out++ = temp[3];
|
||||
*out++ = temp[4];
|
||||
*out++ = temp[5];
|
||||
*out++ = temp[6];
|
||||
*out++ = temp[7];
|
||||
*out++ = temp[9];
|
||||
*out++ = temp[10];
|
||||
*out++ = temp[11];
|
||||
*out++ = temp[12];
|
||||
*out++ = temp[13];
|
||||
*out++ = temp[14];
|
||||
*out++ = temp[15];
|
||||
__builtin_memset (temp, 0, 16);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1529,7 +1529,8 @@ track_expr_p (tree expr)
|
|||
if (MEM_P (decl_rtl))
|
||||
{
|
||||
/* Do not track structures and arrays. */
|
||||
if (GET_MODE (decl_rtl) == BLKmode)
|
||||
if (GET_MODE (decl_rtl) == BLKmode
|
||||
|| AGGREGATE_TYPE_P (TREE_TYPE (realdecl)))
|
||||
return 0;
|
||||
if (MEM_SIZE (decl_rtl)
|
||||
&& INTVAL (MEM_SIZE (decl_rtl)) > MAX_VAR_PARTS)
|
||||
|
|
Loading…
Reference in New Issue