[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