Example code:

/////////////////////////////////////
class E
{
};    

class Test
{
    public:

    __fastcall bool ernie(bool b) throw(E)
    {
    }

    __fastcall // <- remove this to make it work
    bool bert(bool b);
};    

bool Test::bert(bool b)
{
}
/////////////////////////////////////

Even though I didn't define which exceptions "bert" will throw, GCC seems to
take the throw definition from the other function "ernie":

declaration of `bool Test::bert(bool)' throws different exceptions 
than previous declaration `bool Test::bert(bool) throw (E)' 

This bug is related to GCC 3.3.1 (mingw special 20030804-1) and also to the
other version that I use (GCC 4.3.2-tdm-2 mingw32, which is an experimental
build for Windows).


-- 
           Summary: __fastcall confuses a function's throw() specification
           Product: gcc
           Version: 4.3.2
            Status: UNCONFIRMED
          Severity: trivial
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: AndiDog at web dot de


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

Reply via email to