# HG changeset patch # User mdoerr # Date 1444417105 -7200 # Node ID a76aebcf6e5e602a2b3e1a7b9c0cb1b519ea99cc # Parent daf8acf3afdab4da6795138194cf064ff5910c7e 8138890: C1: Ambiguous operator delete Summary: xlC on AIX rejects to compile LIRGenerator and RangeCheckEliminator::Verification Reviewed-by: simonis, goetz, twisti diff --git a/src/share/vm/c1/c1_LIRGenerator.hpp b/src/share/vm/c1/c1_LIRGenerator.hpp --- a/src/share/vm/c1/c1_LIRGenerator.hpp +++ b/src/share/vm/c1/c1_LIRGenerator.hpp @@ -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; diff --git a/src/share/vm/c1/c1_RangeCheckElimination.hpp b/src/share/vm/c1/c1_RangeCheckElimination.hpp --- a/src/share/vm/c1/c1_RangeCheckElimination.hpp +++ b/src/share/vm/c1/c1_RangeCheckElimination.hpp @@ -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;