re PR c/35739 (ICE with _Decimal128 and va_list)
PR c/35739 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE reg type. * gcc.dg/dfp/pr35739.c: New test. From-SVN: r134351
This commit is contained in:
parent
3d5e00a036
commit
12e19e0588
@ -1,5 +1,9 @@
|
||||
2008-04-16 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c/35739
|
||||
* tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
|
||||
reg type.
|
||||
|
||||
PR tree-optimization/35899
|
||||
* tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
|
||||
rather than TREE_OPERAND.
|
||||
|
@ -1,5 +1,8 @@
|
||||
2008-04-16 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c/35739
|
||||
* gcc.dg/dfp/pr35739.c: New test.
|
||||
|
||||
PR tree-optimization/35899
|
||||
* gcc.dg/pr35899.c: New test.
|
||||
|
||||
|
16
gcc/testsuite/gcc.dg/dfp/pr35739.c
Normal file
16
gcc/testsuite/gcc.dg/dfp/pr35739.c
Normal file
@ -0,0 +1,16 @@
|
||||
/* PR c/35739 */
|
||||
/* { dg-do compile { target *-*-linux* } } */
|
||||
/* { dg-options "-O -fpreprocessed -fmudflap" } */
|
||||
|
||||
_Decimal128
|
||||
foo (int n, ...)
|
||||
{
|
||||
int i;
|
||||
_Decimal128 j = 0;
|
||||
__builtin_va_list ap;
|
||||
__builtin_va_start (ap, n);
|
||||
for (i = 0; i < n; i++)
|
||||
j += __builtin_va_arg (ap, _Decimal128);
|
||||
__builtin_va_end (ap);
|
||||
return j;
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/* Language independent return value optimizations
|
||||
Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
@ -115,6 +115,11 @@ tree_nrv (void)
|
||||
if (!aggregate_value_p (result, current_function_decl))
|
||||
return 0;
|
||||
|
||||
/* If a GIMPLE type is returned in memory, finalize_nrv_r might create
|
||||
non-GIMPLE. */
|
||||
if (is_gimple_reg_type (result_type))
|
||||
return 0;
|
||||
|
||||
/* Look through each block for assignments to the RESULT_DECL. */
|
||||
FOR_EACH_BB (bb)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user