ipa-prop.c (compute_complex_pass_through): If we cannot compute a non-varying offset for IPA_JF_ANCESTOR punt.
2009-08-14 Richard Guenther <rguenther@suse.de> * ipa-prop.c (compute_complex_pass_through): If we cannot compute a non-varying offset for IPA_JF_ANCESTOR punt. * gcc.c-torture/execute/20090814-1.c: New testcase. From-SVN: r150757
This commit is contained in:
parent
065312cfdd
commit
1a15bfdcdc
4 changed files with 36 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2009-08-14 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* ipa-prop.c (compute_complex_pass_through): If we cannot
|
||||
compute a non-varying offset for IPA_JF_ANCESTOR punt.
|
||||
|
||||
2009-08-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
|
||||
|
||||
* c-lex.c (c_lex_with_flags): Increase size of local variable
|
||||
|
|
|
@ -377,7 +377,10 @@ compute_complex_pass_through (struct ipa_node_params *info,
|
|||
type = TREE_TYPE (op1);
|
||||
|
||||
op1 = get_ref_base_and_extent (op1, &offset, &size, &max_size);
|
||||
if (TREE_CODE (op1) != INDIRECT_REF)
|
||||
if (TREE_CODE (op1) != INDIRECT_REF
|
||||
/* If this is a varying address, punt. */
|
||||
|| max_size == -1
|
||||
|| max_size != size)
|
||||
return;
|
||||
op1 = TREE_OPERAND (op1, 0);
|
||||
if (TREE_CODE (op1) != SSA_NAME
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2009-08-14 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* gcc.c-torture/execute/20090814-1.c: New testcase.
|
||||
|
||||
2009-08-14 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* gcc.dg/graphite/graphite_autopar: Move to libgomp testsuite.
|
||||
|
|
23
gcc/testsuite/gcc.c-torture/execute/20090814-1.c
Normal file
23
gcc/testsuite/gcc.c-torture/execute/20090814-1.c
Normal file
|
@ -0,0 +1,23 @@
|
|||
int __attribute__((noinline))
|
||||
bar (int *a)
|
||||
{
|
||||
return *a;
|
||||
}
|
||||
int i;
|
||||
int __attribute__((noinline))
|
||||
foo (int (*a)[2])
|
||||
{
|
||||
return bar (&(*a)[i]);
|
||||
}
|
||||
|
||||
extern void abort (void);
|
||||
int a[2];
|
||||
int main()
|
||||
{
|
||||
a[0] = -1;
|
||||
a[1] = 42;
|
||||
i = 1;
|
||||
if (foo (&a) != 42)
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Reference in a new issue