< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/Assertions.java
Print this page
*** 20,40 ****
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package org.graalvm.compiler.debug;
/**
* Utility for query whether assertions are enabled.
*/
public class Assertions {
/**
* Determines if assertions are enabled. Strictly speaking, this may only be true for the
* {@link Assertions} class but we assume assertions are enabled/disabled for Graal as a whole.
*/
! public static final boolean ENABLED = assertionsEnabled();
!
! private static boolean assertionsEnabled() {
boolean enabled = false;
assert (enabled = true) == true;
return enabled;
}
}
--- 20,62 ----
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package org.graalvm.compiler.debug;
+ import org.graalvm.compiler.options.Option;
+ import org.graalvm.compiler.options.OptionKey;
+ import org.graalvm.compiler.options.OptionType;
+ import org.graalvm.compiler.options.OptionValues;
+
/**
* Utility for query whether assertions are enabled.
*/
public class Assertions {
/**
* Determines if assertions are enabled. Strictly speaking, this may only be true for the
* {@link Assertions} class but we assume assertions are enabled/disabled for Graal as a whole.
*/
! public static boolean assertionsEnabled() {
boolean enabled = false;
assert (enabled = true) == true;
return enabled;
}
+
+ /**
+ * Determines if detailed assertions are enabled. This requires that the normal assertions are
+ * also enabled.
+ *
+ * @param values the current OptionValues that might define a value for DetailAsserts.
+ */
+ public static boolean detailedAssertionsEnabled(OptionValues values) {
+ return assertionsEnabled() && Options.DetailedAsserts.getValue(values);
+ }
+
+ // @formatter:off
+ public static class Options {
+
+ @Option(help = "Enable expensive assertions. (Require normal assertions enabled)", type = OptionType.Debug)
+ public static final OptionKey<Boolean> DetailedAsserts = new OptionKey<>(true);
+
+ }
+ // @formatter:on
}
< prev index next >