[LLVMbugs] [Bug 6709] New: Clang instantiates unused function argument

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Mar 25 17:56:35 PDT 2010


           Summary: Clang instantiates unused function argument
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: b.jacques at planet.nl
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com

At least, that is the best explanation I can give. The following program:

#include <boost/scoped_ptr.hpp>

class Forward;

class MyClass {
    void foo (boost::scoped_ptr<Forward> ptr) {}

int main() { }

Fails to compile with:

In file included from scoped.cpp:1:
In file included from /usr/include/boost/scoped_ptr.hpp:14:
In file included from /usr/include/boost/smart_ptr/scoped_ptr.hpp:15:
/usr/include/boost/checked_delete.hpp:32:41: error: invalid application of
'sizeof' to an incomplete type 'Forward'
    typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
In file included from scoped.cpp:1:
In file included from /usr/include/boost/scoped_ptr.hpp:14:
/usr/include/boost/smart_ptr/scoped_ptr.hpp:80:9: note: in instantiation of
function template specialization
      'boost::checked_delete<Forward>' requested here
        boost::checked_delete( px );
scoped.cpp:6:42: note: in instantiation of member function
'boost::scoped_ptr<Forward>::~scoped_ptr' requested here
    void foo (boost::scoped_ptr<Forward> ptr) {}
scoped.cpp:3:7: note: forward declaration of 'Forward'
class Forward;
4 diagnostics generated.

GCC accepts the program.

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