A simple testcase ICEs now:
struct sentry
{
  operator bool() const { }
};
void ignore(int __n)
{
  sentry __cerb;
  if (__cerb)
    try
    {
      while (true) ;
    }
}

--- CUT ---
t2.cc: In function 'void ignore(int)':
t2.cc:13: error: expected 'catch' before '}' token
t2.cc:13: error: expected '(' before '}' token
t2.cc:13: error: expected type-specifier before '}' token
t2.cc:13: error: expected ')' before '}' token
t2.cc:13: error: expected '{' before '}' token
t2.cc:8: internal compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

I reduced this while looking into PR 37500.


-- 
           Summary: [4.4 Regression] ICE after forgetting a catch after a
                    try
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code, error-recovery
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pinskia at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37505

Reply via email to