diff --git a/compiler/driver/compiler_options.h b/compiler/driver/compiler_options.h
index 92b2fee..c0f91d1 100644
--- a/compiler/driver/compiler_options.h
+++ b/compiler/driver/compiler_options.h
@@ -56,9 +56,9 @@
     include_patch_information_(kDefaultIncludePatchInformation),
     top_k_profile_threshold_(kDefaultTopKProfileThreshold),
     include_debug_symbols_(kDefaultIncludeDebugSymbols),
-    explicit_null_checks_(true),
-    explicit_so_checks_(true),
-    explicit_suspend_checks_(true)
+    implicit_null_checks_(false),
+    implicit_so_checks_(false),
+    implicit_suspend_checks_(false)
 #ifdef ART_SEA_IR_MODE
     , sea_ir_mode_(false)
 #endif
@@ -74,9 +74,9 @@
                   bool include_patch_information,
                   double top_k_profile_threshold,
                   bool include_debug_symbols,
-                  bool explicit_null_checks,
-                  bool explicit_so_checks,
-                  bool explicit_suspend_checks
+                  bool implicit_null_checks,
+                  bool implicit_so_checks,
+                  bool implicit_suspend_checks
 #ifdef ART_SEA_IR_MODE
                   , bool sea_ir_mode
 #endif
@@ -91,9 +91,9 @@
     include_patch_information_(include_patch_information),
     top_k_profile_threshold_(top_k_profile_threshold),
     include_debug_symbols_(include_debug_symbols),
-    explicit_null_checks_(explicit_null_checks),
-    explicit_so_checks_(explicit_so_checks),
-    explicit_suspend_checks_(explicit_suspend_checks)
+    implicit_null_checks_(implicit_null_checks),
+    implicit_so_checks_(implicit_so_checks),
+    implicit_suspend_checks_(implicit_suspend_checks)
 #ifdef ART_SEA_IR_MODE
     , sea_ir_mode_(sea_ir_mode)
 #endif
@@ -160,28 +160,28 @@
     return include_debug_symbols_;
   }
 
-  bool GetExplicitNullChecks() const {
-    return explicit_null_checks_;
+  bool GetImplicitNullChecks() const {
+    return implicit_null_checks_;
   }
 
-  void SetExplicitNullChecks(bool new_val) {
-    explicit_null_checks_ = new_val;
+  void SetImplicitNullChecks(bool new_val) {
+    implicit_null_checks_ = new_val;
   }
 
-  bool GetExplicitStackOverflowChecks() const {
-    return explicit_so_checks_;
+  bool GetImplicitStackOverflowChecks() const {
+    return implicit_so_checks_;
   }
 
-  void SetExplicitStackOverflowChecks(bool new_val) {
-    explicit_so_checks_ = new_val;
+  void SetImplicitStackOverflowChecks(bool new_val) {
+    implicit_so_checks_ = new_val;
   }
 
-  bool GetExplicitSuspendChecks() const {
-    return explicit_suspend_checks_;
+  bool GetImplicitSuspendChecks() const {
+    return implicit_suspend_checks_;
   }
 
-  void SetExplicitSuspendChecks(bool new_val) {
-    explicit_suspend_checks_ = new_val;
+  void SetImplicitSuspendChecks(bool new_val) {
+    implicit_suspend_checks_ = new_val;
   }
 
 #ifdef ART_SEA_IR_MODE
@@ -208,9 +208,9 @@
   // When using a profile file only the top K% of the profiled samples will be compiled.
   double top_k_profile_threshold_;
   bool include_debug_symbols_;
-  bool explicit_null_checks_;
-  bool explicit_so_checks_;
-  bool explicit_suspend_checks_;
+  bool implicit_null_checks_;
+  bool implicit_so_checks_;
+  bool implicit_suspend_checks_;
 #ifdef ART_SEA_IR_MODE
   bool sea_ir_mode_;
 #endif
