re PR tree-optimization/45109 (ICE: in get_constraint_for_component_ref, at tree-ssa-structalias.c:2932)
2010-08-08 Richard Guenther <rguenther@suse.de> PR tree-optimization/45109 * tree-ssa-structalias.c (get_constraint_for_component_ref): Explicitly strip handled components and indirect references. * gcc.c-torture/compile/pr45109.c: New testcase. From-SVN: r163010
This commit is contained in:
parent
2c02e37e62
commit
4a21760510
|
@ -1,3 +1,9 @@
|
|||
2010-08-08 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/45109
|
||||
* tree-ssa-structalias.c (get_constraint_for_component_ref):
|
||||
Explicitly strip handled components and indirect references.
|
||||
|
||||
2010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||
|
||||
PR boehm-gc/34544
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2010-08-08 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/45109
|
||||
* gcc.c-torture/compile/pr45109.c: New testcase.
|
||||
|
||||
2010-08-08 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* g++.old-deja/g++.jason/thunk3.C: Skip for targets with
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
struct o_fsm_t;
|
||||
struct o_fsm_event_t;
|
||||
|
||||
typedef void (*fn_t) (struct o_fsm_t *,
|
||||
struct o_fsm_event_t const *);
|
||||
|
||||
struct o_fsm_state_t {
|
||||
fn_t dispatch;
|
||||
};
|
||||
|
||||
struct o_fsm_t {
|
||||
fn_t dispatch;
|
||||
};
|
||||
|
||||
extern struct o_fsm_state_t o_fsm_tran(struct o_fsm_t *fsm,
|
||||
struct o_fsm_state_t next_state);
|
||||
static void plist_parser_state_start(struct o_fsm_t *fsm,
|
||||
struct o_fsm_event_t const *fsm_event);
|
||||
|
||||
struct o_fsm_state_t o_fsm_state(fn_t dispatch_fcn)
|
||||
{
|
||||
return *(struct o_fsm_state_t *)&dispatch_fcn;
|
||||
}
|
||||
|
||||
typedef struct _o_plist_parser_t {
|
||||
struct o_fsm_t fsm;
|
||||
} o_plist_parser_t;
|
||||
|
||||
static void plist_parser_state_start(struct o_fsm_t *fsm,
|
||||
struct o_fsm_event_t const *fsm_event)
|
||||
{
|
||||
}
|
||||
|
||||
void o_plist_deserialize_xml(int fin)
|
||||
{
|
||||
o_plist_parser_t parser;
|
||||
o_fsm_tran(&parser.fsm, o_fsm_state(plist_parser_state_start));
|
||||
}
|
|
@ -2928,7 +2928,8 @@ get_constraint_for_component_ref (tree t, VEC(ce_s, heap) **results,
|
|||
/* Some people like to do cute things like take the address of
|
||||
&0->a.b */
|
||||
forzero = t;
|
||||
while (!SSA_VAR_P (forzero) && !CONSTANT_CLASS_P (forzero))
|
||||
while (handled_component_p (forzero)
|
||||
|| INDIRECT_REF_P (forzero))
|
||||
forzero = TREE_OPERAND (forzero, 0);
|
||||
|
||||
if (CONSTANT_CLASS_P (forzero) && integer_zerop (forzero))
|
||||
|
|
Loading…
Reference in New Issue