Bug 40033 - [4.5 regression] ICE with invalid statement expression
Summary: [4.5 regression] ICE with invalid statement expression
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: c (show other bugs)
Version: 4.5.0
: P5 normal
Target Milestone: 4.5.0
Assignee: Joseph S. Myers
URL:
Keywords: error-recovery, ice-on-invalid-code, monitored
Depends on:
Blocks:
 
Reported: 2009-05-05 20:48 UTC by Volker Reichelt
Modified: 2009-10-24 00:45 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work: 4.5.0
Known to fail:
Last reconfirmed: 2009-10-23 21:39:49


Attachments
testcase (74 bytes, text/plain)
2009-10-16 21:57 UTC, Dmitry Gorbachev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Volker Reichelt 2009-05-05 20:48:59 UTC
The following invalid testcase triggers an ICE on trunk:

==================
void foo()
{
  ({ 0,; });
}
==================

bug.c: In function 'foo':
bug.c:3: error: expected expression before ';' token
bug.c:3: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p_1, at tree-ssa.c:900
Please submit a full bug report, [etc.]
Comment 1 Dmitry Gorbachev 2009-10-16 21:57:37 UTC
Created attachment 18814 [details]
testcase

A similar problem:

bug.cc: In function 'void f()':
bug.cc:5:20: error: '__cxa_begin_catch' cannot be used as a function
bug.cc:5:20: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at tree-ssa.c:1221
Comment 2 Joseph S. Myers 2009-10-23 21:39:49 UTC
Testing a patch.  The C++ problem mentioned in comment#1 is definitely
unrelated to this bug and needs to be reported as a separate bug.
Comment 3 Joseph S. Myers 2009-10-24 00:44:28 UTC
Subject: Bug 40033

Author: jsm28
Date: Sat Oct 24 00:44:17 2009
New Revision: 153522

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=153522
Log:
	PR c/40033
	* c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
	a C_MAYBE_CONST_EXPR.

testsuite:
	* gcc.dg/noncompile/pr40033-1.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/noncompile/pr40033-1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-typeck.c
    trunk/gcc/testsuite/ChangeLog

Comment 4 Joseph S. Myers 2009-10-24 00:45:42 UTC
Fixed for 4.5.
Comment 5 hjl@gcc.gnu.org 2009-10-30 16:05:31 UTC
Subject: Bug 40033

Author: hjl
Date: Fri Oct 30 16:04:41 2009
New Revision: 153759

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=153759
Log:
2009-10-30  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline:
	2009-10-30  Dodji Seketeli  <dodji@redhat.com>

	PR c++/41863
	* g++.dg/template/sizeof12.C: New test.

	2009-10-29  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/41775
	* g++.dg/torture/pr41775.C: New testcase.

	2009-10-28  Jakub Jelinek  <jakub@redhat.com>

	PR debug/41801
	* g++.dg/ext/sync-3.C: New test.

	2009-10-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/41020
	* g++.dg/lookup/extern-c-redecl5.C: Fix up regexp.

	2009-10-26  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/41345
	* gcc.dg/pr41345.c: New test.

	2009-10-26  Dodji Seketeli  <dodji@redhat.com>

	PR c++/41785
	* g++.dg/cpp0x/variadic96.C: New test.

	2009-10-26  Dodji Seketeli  <dodji@redhat.com>

	PR c++/41020
	* g++.dg/lookup/extern-c-redecl2.C: New test.
	* g++.dg/lookup/extern-c-redecl3.C: Likewise.
	* g++.dg/lookup/extern-c-redecl4.C: Likewise.
	* g++.dg/lookup/extern-c-redecl5.C: Likewise.

	2009-10-23  Joseph Myers  <joseph@codesourcery.com>

	PR c/40033
	* gcc.dg/noncompile/pr40033-1.c: New test.

	2009-10-23  Joseph Myers  <joseph@codesourcery.com>

	PR c/41673
	* gcc.dg/Wstrict-aliasing-bogus-vla-1.c: New test.

	2009-10-21  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/41497
	* gcc.dg/tree-ssa/pr41497.c: New.

Added:
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/variadic96.C
      - copied unchanged from r153757, trunk/gcc/testsuite/g++.dg/cpp0x/variadic96.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/ext/sync-3.C
      - copied unchanged from r153757, trunk/gcc/testsuite/g++.dg/ext/sync-3.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/lookup/extern-c-redecl2.C
      - copied unchanged from r153757, trunk/gcc/testsuite/g++.dg/lookup/extern-c-redecl2.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/lookup/extern-c-redecl3.C
      - copied unchanged from r153757, trunk/gcc/testsuite/g++.dg/lookup/extern-c-redecl3.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/lookup/extern-c-redecl4.C
      - copied unchanged from r153757, trunk/gcc/testsuite/g++.dg/lookup/extern-c-redecl4.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C
      - copied unchanged from r153757, trunk/gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/sizeof12.C
      - copied unchanged from r153757, trunk/gcc/testsuite/g++.dg/template/sizeof12.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/torture/pr41775.C
      - copied unchanged from r153757, trunk/gcc/testsuite/g++.dg/torture/pr41775.C
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-vla-1.c
      - copied unchanged from r153758, trunk/gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-vla-1.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/noncompile/pr40033-1.c
      - copied unchanged from r153758, trunk/gcc/testsuite/gcc.dg/noncompile/pr40033-1.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41345.c
      - copied unchanged from r153757, trunk/gcc/testsuite/gcc.dg/pr41345.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/tree-ssa/pr41497.c
      - copied unchanged from r153758, trunk/gcc/testsuite/gcc.dg/tree-ssa/pr41497.c
Modified:
    branches/gcc-4_4-branch/gcc/testsuite/ChangeLog