[LLVMbugs] [Bug 9869] New: Operator.h incompatibility with GCC 4.6 in C++0x mode

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sat May 7 12:38:59 PDT 2011


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

           Summary: Operator.h incompatibility with GCC 4.6 in C++0x mode
           Product: new-bugs
           Version: 2.9
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: foutrelis at gmail.com
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=6557)
 --> (http://llvm.org/bugs/attachment.cgi?id=6557)
Simple test case

After upgrading to LLVM 2.9 and GCC 4.6 (on Arch Linux), Lightspark can no
longer be built. The problem seems to originate in Operator.h, when the
compilation uses -std=c++0x.

I have also tested LLVM 2.9 + GCC 4.5 as well as LLVM 2.8 + GCC 4.6. Both work
fine for compiling Lightspark. It's just the LLVM 2.9 + GCC 4.6 combination
that has this problem.

The errors I'm seeing all look like this:

/usr/include/llvm/Operator.h:188:7: error: deleted function ‘virtual
llvm::AddOperator::~AddOperator()’
/usr/include/llvm/Operator.h:171:3: error: overriding non-deleted function
‘llvm::ConcreteOperator<SuperClass, Opc>::~ConcreteOperator() [with SuperClass
= llvm::OverflowingBinaryOperator, unsigned int Opc = 8u]’
/usr/include/llvm/Operator.h:188:7: error: ‘virtual
llvm::AddOperator::~AddOperator()’ is implicitly deleted because the default
definition would be ill-formed:
/usr/include/llvm/Operator.h:171:3: error: ‘llvm::ConcreteOperator<SuperClass,
Opc>::~ConcreteOperator() [with SuperClass = llvm::OverflowingBinaryOperator,
unsigned int Opc = 8u]’ is private
/usr/include/llvm/Operator.h:188:7: error: within this context

The errors reference the deconstructors of other operators as well.

The complete list is:

llvm::AddOperator::~AddOperator()
llvm::SubOperator::~SubOperator()
llvm::MulOperator::~MulOperator()
llvm::ShlOperator::~ShlOperator()
llvm::SDivOperator::~SDivOperator()
llvm::UDivOperator::~UDivOperator()
llvm::AShrOperator::~AShrOperator()
llvm::LShrOperator::~LShrOperator()
llvm::GEPOperator::~GEPOperator()

You should be able to reproduce this issue with the attached test.cpp by
running 'g++ test.cpp -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
-std=c++0x'.

Let me know if I need to provide further information.

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