[LLVMbugs] [Bug 14488] New: Wrong private constructor selected during compilation

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Dec 3 07:33:58 PST 2012


             Bug #: 14488
           Summary: Wrong private constructor selected during compilation
           Product: clang
           Version: trunk
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: release blocker
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: dummymail000 at gmail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

The following code using construction with = sign also has problems (valid

#include <iostream>

struct QBasicAtomicInteger
    QBasicAtomicInteger(int value)
        std::cout << "This is a constructor from int" << std::endl;

    QBasicAtomicInteger(const QBasicAtomicInteger &)
        std::cout << "This is a copy constructor" << std::endl;

struct QMetaTypeIdQObject
    static int qt_metatype_id()
        static QBasicAtomicInteger metatype_id = 0;
        return 0;

int main()

    return 0;

error: calling a private constructor of class 'QBasicAtomicInteger'

Using a non-assignment constructor doesn't raise the issue. If the
copy-constructor is turned public, what is executed in the end is the int
constructor anyway.

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