< prev index next >

src/share/vm/compiler/compileBroker.cpp

Print this page

        

@@ -1060,10 +1060,17 @@
         return NULL;
       }
     }
   }
 
+  // Returning a value type as a pointer can break if the compiled
+  // call site knows the value type being returned and expects it in
+  // registers.
+  if (ValueTypeReturnedAsFields && method->is_compiled_lambda_form() && method->is_returning_vt()) {
+    return NULL;
+  }
+
   // lock, make sure that the compilation
   // isn't prohibited in a straightforward way.
   AbstractCompiler* comp = CompileBroker::compiler(comp_level);
   if (comp == NULL || !comp->can_compile_method(method) ||
       compilation_is_prohibited(method, osr_bci, comp_level, directive->ExcludeOption)) {
< prev index next >