This is the mail archive of the gcc-help@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]

gcc3.2.3 exception handling : impacted by gcc optimizaton level?


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/



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