diff --git a/.hgtags b/.hgtags index f8361fd888808abd67ef44ceafed3f8ac866deae..6f2fd5f6cfa64c91fcc3eada861b0b65862f34a5 100644 --- a/.hgtags +++ b/.hgtags @@ -1131,6 +1131,13 @@ c3618e1cdefdda6c262f082791bfd988e0e9d9c9 jdk8u162-b10 39e2895b795aded8b584626fb019d35f12e9d1e7 jdk8u162-b11 69aec2ca5d905dde1d0f29a89076d02a531808a3 jdk8u162-b12 caac74fe3cfa9a8c859c28c97d1046a58252af27 jdk8u162-b31 +c9b7abadf150328d2187de05b9e8a9cba2486e47 jdk8u162-b32 +e8041f2ec96eb6a41307732e6cf6ed90901438ae jdk8u162-b33 +bf2e8b1e8e8e6bc1f9b9475de54ba0329a6b24b1 jdk8u162-b34 +9b3f207379cf6ecfb8603640269e31ff4e064294 jdk8u162-b35 +d2ebd6530396b0afc700cd1a8eaf1f7a7f9fce8d jdk8u162-b36 +700ad8745f3fdc5ba3702616fc5ed6a6248dfa78 jdk8u162-b37 +405800ccc4c7b81475b01392f2145cc3675d1f86 jdk8u162-b38 a17bab9405474602b18cd62e060a09b17d6413ac jdk8u171-b00 ebfd57cc21e6b7f0c22b17c666b6b28c9340e207 jdk8u171-b01 1acd7c1b80241def8fac90f70b0df16356adad47 jdk8u171-b02 @@ -1149,6 +1156,8 @@ d10254debf7c1342416062bf1ba5258f16a8ce00 jdk8u172-b01 653d9e0cd3f4023675c9eece7f0d563287f1d34f jdk8u172-b02 771d9e1fbe1ae2ec4d5d937ebcbfd18e9c800098 jdk8u172-b03 efd7a4e211e8fddf52053d4b033d8d307f356bc3 jdk8u172-b04 +5587cde50bbc2aa031aefb47eaa36b041f5e7c4b jdk8u181-b00 +8f3131e04030eb35434a27c1a0866fc3651af6d5 jdk8u191-b00 4235fb1dceebde1192498ef388a32e56b1ed5a46 jdk8u172-b05 68b234d5df6f01f3c677a114ecd6878c25f23f3c jdk8u172-b06 a311a45523b19d59f77e76b0441a2085bb5355c8 jdk8u172-b07 @@ -1159,6 +1168,16 @@ dcd3ace969fcde4eedaddba629647656289d4264 jdk8u172-b10 6e2be123a2e1c7671086c767e79ffe8ad5d4f9ca jdk8u181-b01 1d0b6fcff115a57ca02081da84589630ba282789 jdk8u181-b02 1127faef22f14d56cdd6c0c8bded598f492c2611 jdk8u181-b03 +d5a33d109309138a1e9bed43d2a2bda04356dbac jdk8u172-b31 +b62c44a689e4d339b1129bffceee94119c84b1b2 jdk8u172-b32 +e8745ad08d55bb56b2ac5a70ec0a972c38fa6ca2 jdk8u172-b33 +74350ee9c013a39acb6af32049599a26e6dc3911 jdk8u172-b34 +0d1b5f9b3ab040eb9023cde206cd67d4b5a54535 jdk8u172-b35 +1e7855b1ecd3d069bcaaf35259d35f79a7c66987 jdk8u172-b36 +6a9482b43d79e3e017f58a23ec4574dd696e04db jdk8u172-b37 +6e2be123a2e1c7671086c767e79ffe8ad5d4f9ca jdk8u181-b01 +1d0b6fcff115a57ca02081da84589630ba282789 jdk8u181-b02 +1127faef22f14d56cdd6c0c8bded598f492c2611 jdk8u181-b03 c53e56e8904926f4efdde8a0483109ed3c60c064 jdk8u181-b04 cea033df30750958ffc999d647ee43587d4a06b2 jdk8u181-b05 2198f5b865507118b644830293dc9f0ec3b4439e jdk8u181-b06 @@ -1169,6 +1188,10 @@ b46904cf3eaf0ca150aee9f0d8bdf85e2691e74f jdk8u181-b09 e4f39d283b55faf6074308797615298bd1a45a66 jdk8u181-b11 464ed8cea5d6cdbfacc9be7035297af88f57f708 jdk8u181-b12 eed8e846c982d7474dd07fc873ba02f83ad1f847 jdk8u181-b13 +21a3fffc43418f4d75c2091bf03478330b8a9a98 jdk8u191-b01 +5aa3d728164a674d08ad847811be6bdd853e9bf8 jdk8u191-b02 +dd79b482625361458b2b34e7d669ee982eee06a4 jdk8u191-b03 +541c205d7fd15ab840f48aaeeaea3f63209d1687 jdk8u191-b04 c19c5b73704e3d188bedfe52a473b408ca39009f jdk8u182-b00 0341fa6dbb363ee4dc5dbf5bfc4f820523400a72 jdk8u192-b00 5792d995ed26eec0417d96a2423446bbcd6951a9 jdk8u192-b01 diff --git a/src/share/vm/interpreter/linkResolver.cpp b/src/share/vm/interpreter/linkResolver.cpp index e7b6b8c9499f8717ca8055260304f998e34b6467..3a27becd6fd5e4cf220038e0d6f633a8602fb35a 100644 --- a/src/share/vm/interpreter/linkResolver.cpp +++ b/src/share/vm/interpreter/linkResolver.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -779,37 +779,37 @@ void LinkResolver::resolve_field(fieldDescriptor& fd, KlassHandle resolved_klass THROW_MSG(vmSymbols::java_lang_NoSuchFieldError(), field->as_C_string()); } - if (!check_access) - // Access checking may be turned off when calling from within the VM. - return; + // Access checking may be turned off when calling from within the VM. + if (check_access) { - // check access - check_field_accessability(current_klass, resolved_klass, sel_klass, fd, CHECK); + // check access + check_field_accessability(current_klass, resolved_klass, sel_klass, fd, CHECK); - // check for errors - if (is_static != fd.is_static()) { - ResourceMark rm(THREAD); - char msg[200]; - jio_snprintf(msg, sizeof(msg), "Expected %s field %s.%s", is_static ? "static" : "non-static", resolved_klass()->external_name(), fd.name()->as_C_string()); - THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), msg); - } + // check for errors + if (is_static != fd.is_static()) { + ResourceMark rm(THREAD); + char msg[200]; + jio_snprintf(msg, sizeof(msg), "Expected %s field %s.%s", is_static ? "static" : "non-static", resolved_klass()->external_name(), fd.name()->as_C_string()); + THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), msg); + } - // Final fields can only be accessed from its own class. - if (is_put && fd.access_flags().is_final() && sel_klass() != current_klass()) { - THROW(vmSymbols::java_lang_IllegalAccessError()); - } + // Final fields can only be accessed from its own class. + if (is_put && fd.access_flags().is_final() && sel_klass() != current_klass()) { + THROW(vmSymbols::java_lang_IllegalAccessError()); + } - // initialize resolved_klass if necessary - // note 1: the klass which declared the field must be initialized (i.e, sel_klass) - // according to the newest JVM spec (5.5, p.170) - was bug (gri 7/28/99) - // - // note 2: we don't want to force initialization if we are just checking - // if the field access is legal; e.g., during compilation - if (is_static && initialize_class) { - sel_klass->initialize(CHECK); + // initialize resolved_klass if necessary + // note 1: the klass which declared the field must be initialized (i.e, sel_klass) + // according to the newest JVM spec (5.5, p.170) - was bug (gri 7/28/99) + // + // note 2: we don't want to force initialization if we are just checking + // if the field access is legal; e.g., during compilation + if (is_static && initialize_class) { + sel_klass->initialize(CHECK); + } } - if (sel_klass() != current_klass()) { + if (sel_klass() != current_klass() && !current_klass.is_null()) { HandleMark hm(THREAD); Handle ref_loader (THREAD, InstanceKlass::cast(current_klass())->class_loader()); Handle sel_loader (THREAD, InstanceKlass::cast(sel_klass())->class_loader()); diff --git a/test/compiler/loopopts/TestCMovSplitThruPhi.java b/test/compiler/loopopts/TestCMovSplitThruPhi.java index 03df3c0b81032ae8f7da3eec121cc9f8bdba9257..86e91342d07037d07b5123cdc99ff719dc213d31 100644 --- a/test/compiler/loopopts/TestCMovSplitThruPhi.java +++ b/test/compiler/loopopts/TestCMovSplitThruPhi.java @@ -25,7 +25,7 @@ * @test * @bug 8187822 * @summary C2 conditonal move optimization might create broken graph - * @run main/othervm -XX:-UseOnStackReplacement -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,TestCMovSplitThruPhi::not_inlined -XX:CompileOnly=TestCMovSplitThruPhi::test -XX:-LoopUnswitching TestCMovSplitThruPhi + * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseOnStackReplacement -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,TestCMovSplitThruPhi::not_inlined -XX:CompileOnly=TestCMovSplitThruPhi::test -XX:-LoopUnswitching TestCMovSplitThruPhi * */