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));
+ }
}
}