Add dex file verification check for dexlayout output file.

For debug builds, run the output dex file of dexlayout through the dex
file verifier as a sanity check.

Bug: 36107940
Test: mm test-art-host
Change-Id: I2b556db32cfd360cc4fe8d1d080508deebd27aa0
diff --git a/dexlayout/dexlayout.cc b/dexlayout/dexlayout.cc
index 4aa8b82..3ce7e1a 100644
--- a/dexlayout/dexlayout.cc
+++ b/dexlayout/dexlayout.cc
@@ -34,6 +34,7 @@
 
 #include "dex_ir_builder.h"
 #include "dex_file-inl.h"
+#include "dex_file_verifier.h"
 #include "dex_instruction-inl.h"
 #include "dex_visualize.h"
 #include "dex_writer.h"
@@ -1756,6 +1757,16 @@
       LayoutOutputFile(dex_file);
     }
     OutputDexFile(dex_file->GetLocation());
+    // Verify the output dex file is ok on debug builds.
+    if (kIsDebugBuild) {
+      std::string error_msg;
+      DCHECK(DexFileVerifier::Verify(dex_file,
+                                     dex_file->Begin(),
+                                     dex_file->Size(),
+                                     dex_file->GetLocation().c_str(),
+                                     false,
+                                     &error_msg));
+    }
   }
 }