[Bug c++/13944] New: exception in constructor of a class to be thrown is not caught

debian-gcc at lists dot debian dot org gcc-bugzilla@gcc.gnu.org
Sat Jan 31 12:02:00 GMT 2004


[forwarded from http://bugs.debian.org/228099]

Running the following code compiled with 'g++ 3.3.3 testex.cc' results in a
SIGABRT. The bug submitter sees no reason why this should happen. With g++ 3.2.3
it works, i.e. the exception 1 in A() is caught by the try-block.


# 1 "testex.cc"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "testex.cc"
class A
{
    public:
        A() {throw(1);}
};

int main(int argc, char *argv)
{
    try
    {
        throw A();
    }
    catch(...)
    {
    }
}

gcc-3.4 (CVS 20040113) and 3.5 (CVS 20040113 tree-ssa) are more verbose:

$ g++-3.4 bug-228099.cc && ./a.out 
terminate called after throwing an instance of 'i'
Aborted

$ g++-3.5 bug-228099.cc && ./a.out 
terminate called without an active exception
Aborted

-- 
           Summary: exception in constructor of a class to be thrown is not
                    caught
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: debian-gcc at lists dot debian dot org
                CC: gcc-bugs at gcc dot gnu dot org


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



More information about the Gcc-bugs mailing list