RFR (XS) 8248632: Shenandoah: build fails without both JVMTI and JFR

Aleksey Shipilev shade at redhat.com
Wed Jul 1 13:59:20 UTC 2020


Bug:
  https://bugs.openjdk.java.net/browse/JDK-8248632

We get dangling ":" when both JFR and JVMTI are disabled. The fix is to put the colon into the macro
calls themselves, which would select it properly:

diff -r 7ab23692b432 src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp       Wed Jul 01 15:09:28 2020 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp       Wed Jul 01 15:51:30 2020 +0200
@@ -91,13 +91,15 @@
 class ShenandoahSerialWeakRoots {
 private:
   JVMTI_ONLY(ShenandoahJVMTIWeakRoot _jvmti_weak_roots;)
   JFR_ONLY(ShenandoahJFRWeakRoot     _jfr_weak_roots;)
 public:
-  ShenandoahSerialWeakRoots(ShenandoahPhaseTimings::Phase phase) :
-  JVMTI_ONLY(_jvmti_weak_roots(phase))
-  JFR_ONLY(JVMTI_ONLY(COMMA)_jfr_weak_roots(phase)) {};
+  ShenandoahSerialWeakRoots(ShenandoahPhaseTimings::Phase phase)
+  JVMTI_ONLY(: _jvmti_weak_roots(phase))
+  JFR_ONLY(NOT_JVMTI(:) JVMTI_ONLY(COMMA) _jfr_weak_roots(phase))
+  {};
+
   void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* keep_alive, uint worker_id);
   void weak_oops_do(OopClosure* cl, uint worker_id);
 };


Testing: builds

-- 
Thanks,
-Aleksey



More information about the hotspot-gc-dev mailing list