Bug 35437 - [4.2 regression] ICE with struct containing incomplete type
Summary: [4.2 regression] ICE with struct containing incomplete type
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: c (show other bugs)
Version: 4.4.0
: P4 normal
Target Milestone: 4.3.3
Assignee: Simon Martin
URL:
Keywords: error-recovery, ice-on-invalid-code, monitored
Depends on:
Blocks:
 
Reported: 2008-03-03 21:00 UTC by Volker Reichelt
Modified: 2009-03-31 15:23 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work: 4.3.3 4.4.0
Known to fail: 4.2.5 4.3.2
Last reconfirmed: 2008-09-28 16:43:13


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Volker Reichelt 2008-03-03 21:00:48 UTC
The following invalid code snippet triggers an ICE since GCC 4.0.0:

===========================
struct A
{
  int i;
  struct A a;
};

void foo()
{
  struct A b = { 0 };
}
===========================

bug.c:4: error: field 'a' has incomplete type
bug.c: In function 'foo':
bug.c:9: internal compiler error: in count_type_elements, at expr.c:5001
Please submit a full bug report, [etc.]
Comment 1 Joseph S. Myers 2008-07-04 22:37:27 UTC
Closing 4.1 branch.
Comment 2 Simon Martin 2008-09-28 16:43:13 UTC
Patch submitted here:
  http://gcc.gnu.org/ml/gcc-patches/2008-09/msg01900.html
Comment 3 Simon Martin 2008-10-07 20:58:14 UTC
Subject: Bug 35437

Author: simartin
Date: Tue Oct  7 20:56:53 2008
New Revision: 140953

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140953
Log:
gcc/

2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
        
        PR c/35437
        * expr.c (count_type_elements): Handle ERROR_MARK.

gcc/testsuite/

2008-01-07  Simon Martin  <simartin@users.sourceforge.net>

        PR c/35437
        * gcc.dg/struct-parse-2.c: New test.
        * g++.dg/parse/struct-4.C: New test.

Added:
    trunk/gcc/testsuite/g++.dg/parse/struct-4.C
    trunk/gcc/testsuite/gcc.dg/struct-parse-2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/expr.c
    trunk/gcc/testsuite/ChangeLog

Comment 4 Simon Martin 2008-10-08 04:18:54 UTC
Subject: Bug 35437

Author: simartin
Date: Wed Oct  8 04:17:27 2008
New Revision: 140961

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140961
Log:
gcc/

2008-10-08  Simon Martin  <simartin@users.sourceforge.net>

        PR c/35437
        * expr.c (count_type_elements): Handle ERROR_MARK.

gcc/testsuite/

2008-10-08  Simon Martin  <simartin@users.sourceforge.net>

        PR c/35437
        * gcc.dg/struct-parse-2.c: New test.
        * g++.dg/parse/struct-4.C: New test.

Added:
    branches/gcc-4_3-branch/gcc/testsuite/g++.dg/parse/struct-4.C
    branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/struct-parse-2.c
Modified:
    branches/gcc-4_3-branch/gcc/ChangeLog
    branches/gcc-4_3-branch/gcc/expr.c
    branches/gcc-4_3-branch/gcc/testsuite/ChangeLog

Comment 5 Simon Martin 2008-10-08 04:29:08 UTC
Fixed on 4.3 and 4.4.
Comment 6 Joseph S. Myers 2009-03-31 15:23:39 UTC
Closing 4.2 branch, fixed for 4.3.3 and 4.4.