changeset 9217:0fa6910c516d

8140343: SEGV in DirectivesStack::getMatchingDirective Summary: Could not match JVMCI compiler Reviewed-by: kvn
author neliasso
date Fri, 23 Oct 2015 10:57:41 +0200
parents 96bcdd3a6e79
children 1d49bd532a6f b62347567e9b
files src/share/vm/compiler/compilerDirectives.cpp
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/compiler/compilerDirectives.cpp	Wed Oct 28 15:44:28 2015 +0100
+++ b/src/share/vm/compiler/compilerDirectives.cpp	Fri Oct 23 10:57:41 2015 +0200
@@ -487,6 +487,15 @@
     while (dir != NULL) {
       if (dir->is_default_directive() || dir->match(method)) {
         match = dir->get_for(comp);
+        if (match == NULL) {
+          // temporary workaround for compilers without directives.
+          if (dir->is_default_directive()) {
+            // default dir is always enabled
+            // match c1 store - it contains all common flags even if C1 is unavailable
+            match = dir->_c1_store;
+            break;
+          }
+        }
         if (match->EnableOption) {
           // The directiveSet for this compile is also enabled -> success
           break;