optimizing: fix gtests

by taking into account that the compilation unit is null during tests.

Change-Id: I01a28ce8f03c927ff679b84bcdf2464fa97e0924
diff --git a/compiler/optimizing/builder.cc b/compiler/optimizing/builder.cc
index fff2906..818d671 100644
--- a/compiler/optimizing/builder.cc
+++ b/compiler/optimizing/builder.cc
@@ -520,17 +520,22 @@
   UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction());
 }
 
-static bool RequiresConstructorBarrier(const DexCompilationUnit& cu, const CompilerDriver& driver) {
+static bool RequiresConstructorBarrier(const DexCompilationUnit* cu, const CompilerDriver& driver) {
+  // dex compilation unit is null only when unit testing.
+  if (cu == nullptr) {
+    return false;
+  }
+
   Thread* self = Thread::Current();
-  return cu.IsConstructor()
-      && driver.RequiresConstructorBarrier(self, cu.GetDexFile(), cu.GetClassDefIndex());
+  return cu->IsConstructor()
+      && driver.RequiresConstructorBarrier(self, cu->GetDexFile(), cu->GetClassDefIndex());
 }
 
 void HGraphBuilder::BuildReturn(const Instruction& instruction, Primitive::Type type) {
   if (type == Primitive::kPrimVoid) {
     // Note that we might insert redundant barriers when inlining `super` calls.
     // TODO: add a data flow analysis to get rid of duplicate barriers.
-    if (RequiresConstructorBarrier(*dex_compilation_unit_, *compiler_driver_)) {
+    if (RequiresConstructorBarrier(dex_compilation_unit_, *compiler_driver_)) {
       current_block_->AddInstruction(new (arena_) HMemoryBarrier(kStoreStore));
     }
     current_block_->AddInstruction(new (arena_) HReturnVoid());