8138890: C1: Ambiguous operator delete
authormdoerr
Fri, 09 Oct 2015 20:58:25 +0200
changeset 33462 5f04d430d53d
parent 33456 376b324df89d
child 33463 c193ee6faeb5
8138890: C1: Ambiguous operator delete Summary: xlC on AIX rejects to compile LIRGenerator and RangeCheckEliminator::Verification Reviewed-by: simonis, goetz, twisti
hotspot/src/share/vm/c1/c1_LIRGenerator.hpp
hotspot/src/share/vm/c1/c1_RangeCheckElimination.hpp
--- 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;