PR# 3500 PANIC after complex rescue/retry

Problem Report Summary
Submitter:
Category: Compiler
Priority: Medium
Date: 2003/08/06
Class: Bug
Severity: Serious
Number: 3500
Release: 5.4.0403
Confidential: No
Status: Open
Responsible:
Environment: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461)
Synopsis: PANIC after complex rescue/retry

Description
Manu,
  I was trying to reproduce the code 16 error (Resumption attempt failed).  Instead I got a PANIC.  Since the code shown below is a lot like my code which generates the code 16 this may (or may not) be related.  This is a completely reproducible problem.
          Randy

======================================================

test.exe: PANIC: unexpected harmful signal ...

test.exe: system execution failed.
Following is the set of recorded exceptions.
NB: The raised panic may have induced completely inconsistent information:

-------------------------------------------------------------------------------
Class / Object      Routine                Nature of exception           Effect
-------------------------------------------------------------------------------
ROOT_CLASS          user_initialization @4 unexpected harmful signal:
<0000000000BD0048>                         Eiffel run-time panic.        Panic
-------------------------------------------------------------------------------
ROOT_CLASS          user_initialization @4
<0000000000BD0048>                         Routine failure.              Panic
-------------------------------------------------------------------------------
ROOT_CLASS          make @1
<0000000000BD0048>                         Routine failure.              Panic
-------------------------------------------------------------------------------
ROOT_CLASS          root's creation
<0000000000BD0048>                         Routine failure.              Bye
-------------------------------------------------------------------------------

Press Return to finish the execution...

======================================================

class ROOT_CLASS

inherit
	EXCEPTIONS

creation
	make

feature

	make is
	do
		user_initialization
	end

	user_initialization is
	do
		-- Melt this routine to get a slightly different error.
		if update_windows_in_progress
		then
			request_update_windows := True
		else
			update_windows_in_progress := True
			xyzzy
--			xyzzy
		end
	rescue
		update_windows_in_progress := False
		request_update_windows := False
		retry
	end

	xyzzy is
	do
		user_initialization
--		user_initialization
		if request_update_windows
		then
			raise("test")
		end
	rescue
		foo
	end

	foo is
	local
		l_retry: BOOLEAN
	do
		if not l_retry
		then
			raise("sldk")
		end
	rescue
		l_retry := True
		retry
	end

	request_update_windows: BOOLEAN

	update_windows_in_progress: BOOLEAN

end
To Reproduce

										
Problem Report Interactions
From:    Date:2003/08/06    Download