* ipa-pure-const.c (local_pure_const): Do noreturn discovery
after calling analyze_function, not before.
* gcc.dg/pr46233.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166324
138bc75d-0d04-0410-961f-
82ee72b054a4
2010-11-04 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/46233
+ * ipa-pure-const.c (local_pure_const): Do noreturn discovery
+ after calling analyze_function, not before.
+
PR target/46234
* config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
instead of build_va_arg_indirect_ref.
&& skip)
return 0;
- /* First do NORETURN discovery. */
+ l = analyze_function (node, false);
+
+ /* Do NORETURN discovery. */
if (!skip && !TREE_THIS_VOLATILE (current_function_decl)
&& EDGE_COUNT (EXIT_BLOCK_PTR->preds) == 0)
{
changed = true;
}
- l = analyze_function (node, false);
switch (l->pure_const_state)
{
+2010-11-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/46233
+ * gcc.dg/pr46233.c: New test.
+
2010-11-04 Iain Sandoe <iains@gcc.gnu.org>
* objc.dg/property/property-2.m: Deleted.
--- /dev/null
+/* PR tree-optimization/46233 */
+/* { dg-do compile } */
+/* { dg-options "-O -fno-tree-dce" } */
+
+int
+foo ()
+{
+ int i = 0;
+ while (1)
+ i += foo ();
+}