c++/6794: [3.2 regression] ICE with __attribute__ ((__noreturn__))

Christian Ehrhardt ehrhardt@mathematik.uni-ulm.de
Thu Dec 12 03:06:00 GMT 2002


The following reply was made to PR c++/6794; it has been noted by GNATS.

From: "Christian Ehrhardt" <ehrhardt@mathematik.uni-ulm.de>
To: jakub@gcc.gnu.org, gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org,
  R.Standish@unsw.edu.au, gcc-bugs@gcc.gnu.org
Cc:  
Subject: Re: c++/6794: [3.2 regression] ICE with __attribute__ ((__noreturn__))
Date: Thu, 12 Dec 2002 11:59:17 +0100

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6794
 
 Hi,
 
 this is a 3.2 regression that is fixed in 3.3 most likely by this change:
 --------------------------------------------------------------------------
 revision 1.336
 date: 2002/10/15 22:03:53;  author: jason;  state: Exp;  lines: +22 -4
         * call.c (call_builtin_trap): New fn.
         (convert_arg_to_ellipsis): Use it.  Downgrade error to warning.
         (build_call): Don't set current_function_returns_abnormally outside
         a function.
 --------------------------------------------------------------------------
 The interesting bit is the build_call change because the testcase
 crashes in this piece of code (current_function_returns_abnormally is
 a macro that unconditionally deref cfun):
 
   if (decl && TREE_THIS_VOLATILE (decl))
     current_function_returns_abnormally = 1;
 
 Since revison 1.336 this code reads
 
   if (decl && TREE_THIS_VOLATILE (decl) && cfun)
     current_function_returns_abnormally = 1;
 
 
     regards   Christian
 
 
 -- 
 THAT'S ALL FOLKS!



More information about the Gcc-prs mailing list