[LLVMbugs] [Bug 7181] New: Allows looser exception specification in overriding function

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu May 20 12:24:22 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=7181

           Summary: Allows looser exception specification in overriding
                    function
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: schaub-johannes at web.de
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


Clang does not correctly check that overriders' exception specifications are at
most as loose as their base class functions. 

struct eB { };
struct eD : eB { };

struct A {
  virtual void fx() throw(eB*) { }
};

struct B : A {
  virtual void fx() throw(eD const*) { }
};

I expected this code to be rejeced, because "eD const*" is not allowed by A::fx
but allowed by "B::fx".

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list