8138890: C1: Ambiguous operator delete
Summary: xlC on AIX rejects to compile LIRGenerator and RangeCheckEliminator::Verification
Reviewed-by: simonis, goetz, twisti
--- a/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp Wed Oct 21 18:22:47 2015 +0300
+++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp Fri Oct 09 20:58:25 2015 +0200
@@ -153,8 +153,13 @@
// only the classes below belong in the same file
class LIRGenerator: public InstructionVisitor, public BlockClosure {
+ // LIRGenerator should never get instatiated on the heap.
+ private:
+ void* operator new(size_t size) throw();
+ void* operator new[](size_t size) throw();
+ void operator delete(void* p);
+ void operator delete[](void* p);
- private:
Compilation* _compilation;
ciMethod* _method; // method that we are compiling
PhiResolverState _resolver_state;
--- a/hotspot/src/share/vm/c1/c1_RangeCheckElimination.hpp Wed Oct 21 18:22:47 2015 +0300
+++ b/hotspot/src/share/vm/c1/c1_RangeCheckElimination.hpp Fri Oct 09 20:58:25 2015 +0200
@@ -45,8 +45,14 @@
define_stack(IntegerStack, intArray)
define_array(IntegerMap, IntegerStack*)
- class Verification : public _ValueObj /*VALUE_OBJ_CLASS_SPEC*/, public BlockClosure {
+ class Verification : public BlockClosure {
+ // RangeCheckEliminator::Verification should never get instatiated on the heap.
private:
+ void* operator new(size_t size) throw();
+ void* operator new[](size_t size) throw();
+ void operator delete(void* p);
+ void operator delete[](void* p);
+
IR *_ir;
boolArray _used;
BlockBeginList _current;