From: Jan Hubicka Date: Mon, 5 Sep 2011 07:39:36 +0000 (+0200) Subject: ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that parameter is... X-Git-Tag: releases/gcc-4.7.0~3970 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c5ceeb87632560467c6e4350a0fa5742ea338ae6;p=thirdparty%2Fgcc.git ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that parameter is SSA name. * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that parameter is SSA name. From-SVN: r178524 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b106227f2c48..d82f1e7e092d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-09-04 Jan Hubicka + + * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that + parameter is SSA name. + 2011-09-04 Richard Guenther Revert diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index b56c66944e53..63737535008a 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -1187,6 +1187,8 @@ set_cond_stmt_execution_predicate (struct ipa_node_params *info, || gimple_call_num_args (set_stmt) != 1) return; op2 = gimple_call_arg (set_stmt, 0); + if (TREE_CODE (op2) != SSA_NAME) + return; if (!SSA_NAME_IS_DEFAULT_DEF (op2)) return; index = ipa_get_param_decl_index (info, SSA_NAME_VAR (op2)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1b465cecaff8..21628f8b250b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2011-09-04 Jan Hubicka + + * gcc.c-torture/compile/20110902.c: new testcase. + 2011-09-04 Jason Merrill PR c++/49267 diff --git a/gcc/testsuite/gcc.c-torture/compile/20110902.c b/gcc/testsuite/gcc.c-torture/compile/20110902.c new file mode 100644 index 000000000000..1556e4a36735 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20110902.c @@ -0,0 +1,14 @@ +static inline __attribute__((always_inline)) int f (unsigned int n, unsigned int size) +{ + return (__builtin_constant_p (size != 0 && n > ~0 / size) + ? !!(size != 0 && n > ~0 / size) + : ({ static unsigned int count[2] = { 0, 0 }; + int r = !!(size != 0 && n > ~0 / size); + count[r]++; + r; })); +} + +int g (unsigned int size) +{ + return f (size / 4096, 4); +}