re PR c/43248 (ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at tree-ssa.c:1233)

2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>

        PR c/43248
        * c-decl.c (build_compound_literal): Return early if init is
        an error_mark_node.
2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>

        PR c/43248
        * gcc.dg/compound-literal-1.c: New testcase.

From-SVN: r157233
This commit is contained in:
Andrew Pinski 2010-03-04 11:59:19 -08:00 committed by Andrew Pinski
parent 76f76cd0e5
commit 3e23fb2e8b
4 changed files with 22 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
PR c/43248
* c-decl.c (build_compound_literal): Return early if init is
an error_mark_node.
2010-03-04 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/43164

View File

@ -4462,7 +4462,8 @@ build_compound_literal (location_t loc, tree type, tree init, bool non_const)
tree complit;
tree stmt;
if (type == error_mark_node)
if (type == error_mark_node
|| init == error_mark_node)
return error_mark_node;
decl = build_decl (loc, VAR_DECL, NULL_TREE, type);

View File

@ -1,3 +1,8 @@
2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
PR c/43248
* gcc.dg/compound-literal-1.c: New testcase.
2010-03-04 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/43164

View File

@ -0,0 +1,9 @@
/* { dg-do compile } */
/* PR c/43248 */
int foo(__SIZE_TYPE__ i)
{
i ? : (void *){}; /* { dg-error "" } */
}