Commit bd91d743 by Olga Golovanevsky

[multiple changes]

2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>

	* ipa-struct-reorg.c (is_safe_cond_expr, 
	create_new_stmts_for_cond_expr): Use integer_zerop function,
	that recognize not only zero-pointer, but zero-integer too.
	
2008-01-24  Olga Golovanevsky  <olga@il.ibm.com>

        * gcc.dg/struct/wo_prof_malloc_size_var.c: UnXFAIL.

From-SVN: r131817
parent 6ba2cd59
2008-01-25 Golovanevsky Olga <olga@il.ibm.com>
* ipa-struct-reorg.c (is_safe_cond_expr,
create_new_stmts_for_cond_expr): Use integer_zerop function,
that recognize not only zero-pointer, but zero-integer too.
2008-01-25 Ben Elliston <bje@au.ibm.com> 2008-01-25 Ben Elliston <bje@au.ibm.com>
PR other/22232 PR other/22232
......
...@@ -1251,12 +1251,15 @@ create_new_stmts_for_cond_expr (tree stmt) ...@@ -1251,12 +1251,15 @@ create_new_stmts_for_cond_expr (tree stmt)
s0 = (str0 != length) ? true : false; s0 = (str0 != length) ? true : false;
s1 = (str1 != length) ? true : false; s1 = (str1 != length) ? true : false;
gcc_assert ((!s0 && s1) || (!s1 && s0)); gcc_assert (s0 || s1);
/* For now we allow only comparison with 0 or NULL. */
gcc_assert (integer_zerop (arg0) || integer_zerop (arg1));
str = s0 ? VEC_index (structure, structures, str0): str = integer_zerop (arg0) ?
VEC_index (structure, structures, str1); VEC_index (structure, structures, str1):
arg = s0 ? arg0 : arg1; VEC_index (structure, structures, str0);
pos = s0 ? 0 : 1; arg = integer_zerop (arg0) ? arg1 : arg0;
pos = integer_zerop (arg0) ? 1 : 0;
for (i = 0; VEC_iterate (tree, str->new_types, i, type); i++) for (i = 0; VEC_iterate (tree, str->new_types, i, type); i++)
{ {
...@@ -2388,8 +2391,12 @@ is_safe_cond_expr (tree cond_stmt) ...@@ -2388,8 +2391,12 @@ is_safe_cond_expr (tree cond_stmt)
s0 = (str0 != length) ? true : false; s0 = (str0 != length) ? true : false;
s1 = (str1 != length) ? true : false; s1 = (str1 != length) ? true : false;
if (!s0 && !s1)
return false;
if (!((!s0 && s1) || (!s1 && s0))) /* For now we allow only comparison with 0 or NULL. */
if (!integer_zerop (arg0) && !integer_zerop (arg1))
return false; return false;
return true; return true;
......
2008-01-25 Olga Golovanevsky <olga@il.ibm.com>
* gcc.dg/struct/wo_prof_malloc_size_var.c: UnXFAIL.
2008-01-24 Daniel Franke <franke.daniel@gmail.com> 2008-01-24 Daniel Franke <franke.daniel@gmail.com>
PR fortran/34202 PR fortran/34202
...@@ -32,6 +32,5 @@ main () ...@@ -32,6 +32,5 @@ main ()
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
/* Currently the condition `if (p == 0)` is incorrectly reported as unsafe. */ /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" } } */
/* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
/* { dg-final { cleanup-ipa-dump "*" } } */ /* { dg-final { cleanup-ipa-dump "*" } } */
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