On Wed, 31 Mar 2021 19:02:02 GMT, Ioi Lam <ik...@openjdk.org> wrote: >> src/hotspot/share/runtime/flags/debug_globals.hpp line 38: >> >>> 36: // have any MANAGEABLE flags of the ccstr type, but we really need to >>> 37: // make sure the implementation is correct (in terms of memory >>> allocation) >>> 38: // just in case someone may add such a flag in the future. >> >> Could you have just added a develop flag to the manageable flags instead? > > I had to use a `product` flag due to the following code, which should have > been removed as part of > [JDK-8243208](https://bugs.openjdk.java.net/browse/JDK-8243208), but I was > afraid to do so because I didn't have a test case. I.e., all of our > diagnostic/manageable/experimental flags were `product` flags. > > With this PR, now I have a test case -- I changed `DummyManageableStringFlag` > to a `notproduct` flag, and removed the following code. I am re-running > tiers1-4 now. > > void JVMFlag::check_all_flag_declarations() { > for (JVMFlag* current = &flagTable[0]; current->_name != NULL; current++) { > int flags = static_cast<int>(current->_flags); > // Backwards compatibility. This will be relaxed/removed in JDK-7123237. > int mask = JVMFlag::KIND_DIAGNOSTIC | JVMFlag::KIND_MANAGEABLE | > JVMFlag::KIND_EXPERIMENTAL; > if ((flags & mask) != 0) { > assert((flags & mask) == JVMFlag::KIND_DIAGNOSTIC || > (flags & mask) == JVMFlag::KIND_MANAGEABLE || > (flags & mask) == JVMFlag::KIND_EXPERIMENTAL, > "%s can be declared with at most one of " > "DIAGNOSTIC, MANAGEABLE or EXPERIMENTAL", current->_name); > assert((flags & KIND_NOT_PRODUCT) == 0 && > (flags & KIND_DEVELOP) == 0, > "%s has an optional DIAGNOSTIC, MANAGEABLE or EXPERIMENTAL " > "attribute; it must be declared as a product flag", > current->_name); > } > } > }
What's the difference between notproduct and develop again? Do we run tests with the optimized build and why would this flag be available in that build? ie. why not develop? ------------- PR: https://git.openjdk.java.net/jdk/pull/3254