tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
* tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result. * gcc.dg/guality/nrv-1.c: New test. From-SVN: r161849
This commit is contained in:
parent
0a8c9a1379
commit
938650d8fd
gcc
@ -1,3 +1,7 @@
|
||||
2010-07-05 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
|
||||
|
||||
2010-07-05 Anatoly Sokolov <aesok@post.ru>
|
||||
|
||||
* double-int.h (fit_double_type): Remove declaration.
|
||||
@ -34,7 +38,6 @@
|
||||
2010-07-05 Sandra Loosemore <sandra@codesourcery.com>
|
||||
|
||||
PR middle-end/42505
|
||||
|
||||
* tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
|
||||
comments about cost model.
|
||||
(try_add_cand_for): Add second strategy for choosing initial set
|
||||
|
@ -1,7 +1,10 @@
|
||||
2010-07-05 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* gcc.dg/guality/nrv-1.c: New test.
|
||||
|
||||
2010-07-05 Sandra Loosemore <sandra@codesourcery.com>
|
||||
|
||||
PR middle-end/42505
|
||||
|
||||
* gcc.target/arm/pr42505.c: New test case.
|
||||
|
||||
2010-07-05 Jakub Jelinek <jakub@redhat.com>
|
||||
|
29
gcc/testsuite/gcc.dg/guality/nrv-1.c
Normal file
29
gcc/testsuite/gcc.dg/guality/nrv-1.c
Normal file
@ -0,0 +1,29 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-g -fno-tree-sra" } */
|
||||
|
||||
void abort (void);
|
||||
|
||||
struct A
|
||||
{
|
||||
int i[100];
|
||||
};
|
||||
|
||||
struct A a1, a3;
|
||||
|
||||
__attribute__((noinline)) struct A
|
||||
f ()
|
||||
{
|
||||
struct A a2;
|
||||
a2.i[0] = 42;
|
||||
if (a3.i[0] != 0)
|
||||
abort ();
|
||||
a2.i[4] = 7; /* { dg-final { gdb-test 20 "a2.i\[0\]" "42" } } */
|
||||
return a2;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
a1 = f ();
|
||||
return 0;
|
||||
}
|
@ -259,6 +259,9 @@ tree_nrv (void)
|
||||
}
|
||||
}
|
||||
|
||||
SET_DECL_VALUE_EXPR (found, result);
|
||||
DECL_HAS_VALUE_EXPR_P (found) = 1;
|
||||
|
||||
/* FOUND is no longer used. Ensure it gets removed. */
|
||||
var_ann (found)->used = 0;
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user