[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#119633: gcc aborts with exception while using -march=i686 flag



Package: gcc
Version: 2:2.95.4-8
Severity: normal

Hi

I've just discovered that compilation with  i686 leads to some serious problems
of aborting my program (aviplay) instead of throwing exception which should
be trapped in try {} catch block

While compiling avifile (avifile.sf.net) with  -O2 -march=i686
created aviplay binary will abort instead of catching exception
when opening  .asf files (aviplay tries avi format first and throws
exception where it's not avi)
(the same happens also with current g++-3.0.2)

Here is short backtrace of program:

#0  0x407ee911 in kill () from /lib/libc.so.6
#1  0x405aec0e in pthread_kill () from /lib/libpthread.so.0
#2  0x405af0dd in raise () from /lib/libpthread.so.0
#3  0x407efd71 in abort () from /lib/libc.so.6
#4  0x40558118 in __terminate () at renderer.cpp:244
#5  0x40558135 in __terminate () at renderer.cpp:244
#6  0x40558cc7 in __throw () at renderer.cpp:244
#7  0x40535775 in AviMediaReadHandler::checkDword (this=0x82f3718,
    value=1179011410) at AviMediaReadHandler.cpp:254
#8  0x40534eb9 in AviMediaReadHandler::AviMediaReadHandler (this=0x82f3718,
    pszFile=0x80ab5c8 "./wm8_vandread.wmv") at AviMediaReadHandler.cpp:110
#9  0x4053696d in CreateAviMediaReadHandler (
    pszFile=0x80ab5c8 "./wm8_vandread.wmv") at AviMediaReadHandler.cpp:686
#10 0x40537ff8 in AviReadFile::AviReadFile (this=0x82f5340,
    name=0x80ab5c8 "./wm8_vandread.wmv") at AviRead.cpp:49

Here should be caught this exception from checkDword - but it's not!
While compiling with i586 there are no such problem.
That's what I do not understand.

Also interisting part is - it actually works well during the first pass
though this (as might be seen in the startup log of aviplay:

479.980000 MHz Celeron (Mendocino) processor detected
MediaReadHandler: FATAL: Not an AVI file!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Creating seek data, please wait...
Seek data created ( processed 1743 packets )


Another good way is to rename /usr/lib/win32 - so codecs could not be
found and this will again throw an exception.


If you need to know more details just ask 


-- System Information
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux dual 2.4.10-ac12 #1 SMP Thu Oct 11 14:19:33 EDT 2001 i686
Locale: LANG=cs_CZ, LC_CTYPE=cs_CZ

Versions of packages gcc depends on:
ii  cpp                    2:2.95.4-8        The GNU C preprocessor.
ii  cpp-2.95               1:2.95.4-0.011006 The GNU C preprocessor.
ii  gcc-2.95               1:2.95.4-0.011006 The GNU C compiler.




Reply to: