public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/15745] New: exception specification incorrectly changes the type of the exception thrown
@ 2004-05-31 22:08 wsf at fultondesigns dot co dot uk
  2004-05-31 22:26 ` [Bug c++/15745] " pinskia at gcc dot gnu dot org
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: wsf at fultondesigns dot co dot uk @ 2004-05-31 22:08 UTC (permalink / raw)
  To: gcc-bugs

$ cat gccexceptionbug.cxx

#include <iostream>
using namespace std;

typedef int IntArray[10];

void test_array() throw (IntArray) {
//void test_array() {
    static IntArray arr;
    for (int i=0; i<10; i++) {
        arr[i] = i;
    }
    throw arr;
}

int main ()
{
    cout << "Start" << endl;

    try {
        test_array();
    } catch (IntArray) {
        cout << "Caught!" << endl;
    }

    cout << "Finish" << endl;

    return 0;
}


$ g++-3.4.0 -v -save-temps gccexceptionbug.cxx -o gccexceptionbug
Reading specs from /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/specs
Configured with: ../configure --prefix=/usr --libdir=/usr/lib
--with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info
--enable-shared --enable-threads=posix --disable-checking --enable-long-long
--enable-__cxa_atexit --enable-clocale=gnu --disable-libunwind-exceptions
--enable-languages=c,c++,java --program-suffix=-3.4.0
--host=i586-mandrake-linux-gnu --with-system-zlib
Thread model: posix
gcc version 3.4.0 (Mandrake Linux 10.0 3.4.0-1mdk)
 /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/cc1plus -E -quiet -v -D_GNU_SOURCE
gccexceptionbug.cxx -mtune=pentium -o gccexceptionbug.ii
ignoring nonexistent directory
"/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/../../../../i586-mandrake-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/../../../../include/c++/3.4.0
 /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/../../../../include/c++/3.4.0/i586-mandrake-linux-gnu
 /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/../../../../include/c++/3.4.0/backward
 /usr/local/include
 /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/include
 /usr/include
End of search list.
 /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/cc1plus -fpreprocessed
gccexceptionbug.ii -quiet -dumpbase gccexceptionbug.cxx -mtune=pentium -auxbase
gccexceptionbug -version -o gccexceptionbug.s
GNU C++ version 3.4.0 (Mandrake Linux 10.0 3.4.0-1mdk) (i586-mandrake-linux-gnu)
        compiled by GNU C version 3.4.0 (Mandrake Linux 10.0 3.4.0-1mdk).
GGC heuristics: --param ggc-min-expand=47 --param ggc-min-heapsize=32000
 as -V -Qy -o gccexceptionbug.o gccexceptionbug.s
GNU assembler version 2.14.90.0.5 (i586-mandrake-linux-gnu) using BFD version
2.14.90.0.5 20030722
 /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/collect2 --eh-frame-hdr -m elf_i386
-dynamic-linker /lib/ld-linux.so.2 -o gccexceptionbug
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/../../../crt1.o
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/../../../crti.o
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/crtbegin.o
-L/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0
-L/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0
-L/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/../../.. gccexceptionbug.o -lstdc++
-lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/crtend.o
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.0/../../../crtn.o
$
$ ./gccexceptionbug
Start
terminate called after throwing an instance of 'int*'
Aborted
$


Note that if  the exception specification in the definition of test_array() is
removed, the exception is caught. (Replace with the commented out line). The
same behaviour was observed in gcc version 3.3.1 (cygming special).

-- 
           Summary: exception specification incorrectly changes the type of
                    the exception thrown
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: wsf at fultondesigns dot co dot uk
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i586-mandrake-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15745


^ permalink raw reply	[flat|nested] 7+ messages in thread
[parent not found: <bug-15745-8173@http.gcc.gnu.org/bugzilla/>]

end of thread, other threads:[~2008-11-18 18:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-31 22:08 [Bug c++/15745] New: exception specification incorrectly changes the type of the exception thrown wsf at fultondesigns dot co dot uk
2004-05-31 22:26 ` [Bug c++/15745] " pinskia at gcc dot gnu dot org
2004-06-01 15:28 ` bangerth at dealii dot org
2004-06-26 20:22 ` pinskia at gcc dot gnu dot org
     [not found] <bug-15745-8173@http.gcc.gnu.org/bugzilla/>
2007-09-06  3:34 ` jason at gcc dot gnu dot org
2007-10-01 20:53 ` jason at gcc dot gnu dot org
2008-11-18 18:52 ` jason at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).