This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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!


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]