This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
gcc3.2.3 exception handling : impacted by gcc optimizaton level?
- From: "lin q" <linq936 at hotmail dot com>
- To: gcc-help at gcc dot gnu dot org
- Date: Thu, 19 May 2005 20:25:38 -0600
- Subject: gcc3.2.3 exception handling : impacted by gcc optimizaton level?
- Bcc:
Hi,
I am using gcc3.2.3 on Red Hat Linux. I just find a strange thing of
exception handling:if I compile the code in debug level, then the exception
can be caught; if I compile it in optimized level , then the exception can
not be caught.
The compile option for debug is
-c -DUNIX -fexceptions -g3 -DDEBUG -DLIN
The compile option for optimize is
-c -DUNIX -fexceptions -O3 -DNDEBUG -DLIN
Basically here is the code,
====== On the Top =====================
try{
... some function calls ...
}
catch (...){
printf("Caught...\n");
return 1;
}
====== Deep in the code ================
if (...some condition...){
printf("To throw...\n");
throw 1;
}
When I run in debug mode, I can see
To throw...
Caught...
But in optimized mode, I can only see
To throw...
Aborted.
then software crashes.
Is this a known problem?
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/