Commit e0734f62 by Richard Guenther Committed by Richard Biener

tree-ssa-operands.c (add_vars_for_offset): Fix exit test of loop adding SFTs as virtual operands.

2007-10-30  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (add_vars_for_offset): Fix exit test
	of loop adding SFTs as virtual operands.

	* gcc.c-torture/execute/20071030-1.c: New testcase copied from
	gcc.target/i386/loop-3.c.

From-SVN: r129770
parent ebb82e27
2007-10-30 Richard Guenther <rguenther@suse.de>
* tree-ssa-operands.c (add_vars_for_offset): Fix exit test
of loop adding SFTs as virtual operands.
2007-10-30 Richard Guenther <rguenther@suse.de>
* Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
2007-10-30 Richard Guenther <rguenther@suse.de>
* gcc.c-torture/execute/20071030-1.c: New testcase copied from
gcc.target/i386/loop-3.c.
2007-10-30 Revital Eres <eres@il.ibm.com>
* testsuite/gcc.dg/vect/pr33866.c: Require vect_long.
/* PR target/11044 */
/* Originator: Tim McGrath <misty-@charter.net> */
/* Testcase contributed by Eric Botcazou <ebotcazou@libertysurf.fr> */
/* Testcase copied from gcc.target/i386/loop-3.c */
extern void *memset (void *, int, __SIZE_TYPE__);
extern void abort (void);
typedef struct
{
unsigned char colormod;
} entity_state_t;
typedef struct
{
int num_entities;
entity_state_t *entities;
} packet_entities_t;
typedef struct
{
double senttime;
float ping_time;
packet_entities_t entities;
} client_frame_t;
typedef enum
{
cs_free,
cs_server,
cs_zombie,
cs_connected,
cs_spawned
} sv_client_state_t;
typedef struct client_s
{
sv_client_state_t state;
int ping;
client_frame_t frames[64];
} client_t;
int CalcPing (client_t *cl)
{
float ping;
int count, i;
register client_frame_t *frame;
if (cl->state == cs_server)
return cl->ping;
ping = 0;
count = 0;
for (frame = cl->frames, i = 0; i < 64; i++, frame++) {
if (frame->ping_time > 0) {
ping += frame->ping_time;
count++;
}
}
if (!count)
return 9999;
ping /= count;
return ping * 1000;
}
int main(void)
{
client_t cl;
memset(&cl, 0, sizeof(cl));
cl.frames[0].ping_time = 1.0f;
if (CalcPing(&cl) != 1000)
abort();
return 0;
}
......@@ -1409,7 +1409,8 @@ add_vars_for_offset (tree var,
for (; VEC_iterate (tree, sv, i, subvar); ++i)
{
if (size <= SFT_OFFSET (subvar) - offset)
if (SFT_OFFSET (subvar) > offset
&& size <= SFT_OFFSET (subvar) - offset)
break;
if (is_def)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment