[LLVMbugs] [Bug 7541] New: Exception-specification diagnostics missing critical information

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Jul 1 07:36:48 PDT 2010


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

           Summary: Exception-specification diagnostics missing critical
                    information
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Keywords: quality-of-implementation
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: dgregor at apple.com
                CC: llvmbugs at cs.uiuc.edu, sebastian.redl at getdesigned.at,
                    dgregor at apple.com


Several of the exception-specification diagnostics provide too little
information to be useful, particularly when we're checking for compatibility
between exception-specifications. For example:


t.cpp:11:39: error: target exception specification is not superset of source
  Y &(Y::*yptr1)(const Y&) throw(A) = &Y::operator=;

and


test/CXX/except/except.spec/p14.cpp:12:8: error: exception specification of
      overriding function is more lax than base version
struct X2 : public X0, public X1 { }; // expected-error 2{{exception ...
       ^
test/CXX/except/except.spec/p14.cpp:7:11: note: overridden virtual function is
      here
  virtual ~X0() throw(A); // expected-note{{overridden virtual function ...
          ^

should say what the actual exception specifications are or, perhaps, which
types are missing (in the "not a superset" diagnostic) or have been added (in
the "more lax" diagnostic).

As a secondary nit, we probably shouldn't use the term "lax". "Permissive",
perhaps?

-- 
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