[LLVMbugs] [Bug 7990] New: calling non-const method from a const method produces embarrassing diagnostic

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Aug 25 11:31:00 PDT 2010


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

           Summary: calling non-const method from a const method produces
                    embarrassing diagnostic
           Product: clang
           Version: unspecified
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: clattner at apple.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


I got this today:

/Volumes/Projects/cvs/llvm/include/llvm/Target/TargetLowering.h:227:14: error:
cannot initialize
      object parameter of type 'llvm::TargetLowering::ValueTypeActionImpl' with
an expression of
      type 'llvm::TargetLowering::ValueTypeActionImpl const'


As is super obvious from the message, the caller is marked const, but the
callee is not.  wtf.

Here's a testcase:


struct foo {
  void bar();
  void bonk() const { 
    bar();
  }
};

GCC produces:

t.cc: In member function ‘void foo::bonk() const’:
t.cc:6: error: passing ‘const foo’ as ‘this’ argument of ‘void foo::bar()’
discards qualifiers

which is better, but it would even be better to special case this and produce a
really amazing diagnostic for this common error.

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