mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-25 12:05:06 +08:00
[multiple changes]
2006-08-25 Fariborz Jahanian <fjahanian@apple.com> PR c/28418 * c-gimplify.c (gimplify_compound_literal_expr): Don't add variable again if DECL_SEEN_IN_BIND_EXPR_P. 2006-08-25 Joseph S. Myers <joseph@codesourcery.com> * gcc.c-torture/compile/compound-literal-1.c: New test. From-SVN: r116436
This commit is contained in:
parent
d8890adf28
commit
a942cc86f8
@ -1,3 +1,9 @@
|
||||
2006-08-25 Fariborz Jahanian <fjahanian@apple.com>
|
||||
|
||||
PR c/28418
|
||||
* c-gimplify.c (gimplify_compound_literal_expr): Don't add
|
||||
variable again if DECL_SEEN_IN_BIND_EXPR_P.
|
||||
|
||||
2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
|
||||
|
||||
PR c/28299
|
||||
|
@ -187,7 +187,7 @@ gimplify_compound_literal_expr (tree *expr_p, tree *pre_p)
|
||||
/* This decl isn't mentioned in the enclosing block, so add it to the
|
||||
list of temps. FIXME it seems a bit of a kludge to say that
|
||||
anonymous artificial vars aren't pushed, but everything else is. */
|
||||
if (DECL_NAME (decl) == NULL_TREE)
|
||||
if (DECL_NAME (decl) == NULL_TREE && !DECL_SEEN_IN_BIND_EXPR_P (decl))
|
||||
gimple_add_tmp_var (decl);
|
||||
|
||||
gimplify_and_add (decl_s, pre_p);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
|
||||
|
||||
PR c/28418
|
||||
* gcc.c-torture/compile/compound-literal-1.c: New test.
|
||||
|
||||
2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
|
||||
|
||||
PR c/28299
|
||||
|
9
gcc/testsuite/gcc.c-torture/compile/compound-literal-1.c
Normal file
9
gcc/testsuite/gcc.c-torture/compile/compound-literal-1.c
Normal file
@ -0,0 +1,9 @@
|
||||
/* ICE incrementing compound literal: bug 28418 from Volker Reichelt
|
||||
<reichelt@gcc.gnu.org>. */
|
||||
|
||||
struct A { int i; };
|
||||
|
||||
void foo()
|
||||
{
|
||||
((struct A) { 0 }).i += 1;
|
||||
}
|
Loading…
Reference in New Issue
Block a user