Add stack overflow check
Change-Id: I67fcb5ad4bda304879ce05561b03aa7cd46e9990
diff --git a/src/compiler/Dataflow.cc b/src/compiler/Dataflow.cc
index 4e3c9c4..cb208a5 100644
--- a/src/compiler/Dataflow.cc
+++ b/src/compiler/Dataflow.cc
@@ -1989,6 +1989,16 @@
int dfAttributes =
oatDataFlowAttributes[mir->dalvikInsn.opcode];
+ int flags = dexGetFlagsFromOpcode(mir->dalvikInsn.opcode);
+
+ if (flags & kInstrCanThrow) {
+ cUnit->attrs &= ~METHOD_IS_THROW_FREE;
+ }
+
+ if (flags & kInstrInvoke) {
+ cUnit->attrs &= ~METHOD_IS_LEAF;
+ }
+
int numUses = 0;
if (dfAttributes & DF_FORMAT_35C) {