delorie.com/archives/browse.cgi | search |
Message-Id: | <199810081402.QAA36748@ieva06.lanet.lv> |
From: | "Andris Pavenis" <pavenis AT lanet DOT lv> |
To: | djgpp-workers AT delorie DOT com |
Date: | Thu, 8 Oct 1998 16:07:43 +0300 |
MIME-Version: | 1.0 |
Subject: | problems with exceptions in egcs-1.1 (DJGPP) |
CC: | egcs AT cygnus DOT com |
X-mailer: | Pegasus Mail for Win32 (v3.01b) |
Reply-To: | djgpp-workers AT delorie DOT com |
Hi! Looks that there is problems with exceptions in DJGPP port of egcs-1.1. The following example works Ok when compiled with DJGPP port of gcc-2.8.1 and also with egcs-1.1 under Linux. It fails with both egcs-1.1 release and pgcc-1.1 release under DJGPP as last to exceptions are not catched. It is when throw(<type>) is not included in prototype of procedure. ------------------------------------------------------------------------------------- #include <iostream> class xx {}; void x1 (void) throw (xx) { xx a; throw(a); } void x2 (void) { xx a; throw(a); } void x3 (void) { int i=1; throw(i); } int main (void) { try { x1(); } catch (xx w) { cout << "catched from x1()\n"; } cout << "----------------\n"; try { x1(); } catch (xx w) { cout << "catched from x1() once more\n"; } cout << "----------------\n"; try { x3(); } catch (int i) { cout << "catched from x3()\n"; } cout << "----------------\n"; try { x2(); } catch (xx w) { cout << "catched from x2()\n"; } cout << "----------------\n"; return 0; } --------------------------------------------------------------------------- Andris
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |