From 036006623c44b84147d08815d385c953821e6bda Mon Sep 17 00:00:00 2001
From: Jason Hiser <jdhiser@gmail.com>
Date: Mon, 25 Feb 2019 16:42:15 +0000
Subject: [PATCH] adjusted self-validation to work for aarch64's lack of EH
 info.

---
 irdb-libs/ir_builders/fill_in_indtargs.cpp | 4 +++-
 irdb-libs/ir_builders/fix_calls.cpp        | 5 ++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/irdb-libs/ir_builders/fill_in_indtargs.cpp b/irdb-libs/ir_builders/fill_in_indtargs.cpp
index 0eff242bb..28ea73ea5 100644
--- a/irdb-libs/ir_builders/fill_in_indtargs.cpp
+++ b/irdb-libs/ir_builders/fill_in_indtargs.cpp
@@ -3702,6 +3702,9 @@ int executeStep(IRDBObjects_t *const irdb_objects)
 			fill_in_indtargs(firp, elfiop.get(), do_unpin_opt);
 			if(split_eh_frame_opt)
 				split_eh_frame(firp);
+
+			if(firp->getArchitecture()->getMachineType() != admtAarch64)
+				assert(getenv("SELF_VALIDATE")==nullptr || ranges.size() > 1 );
 		}
 
 		if(getenv("FII_NOUPDATE")!=nullptr)
@@ -3721,7 +3724,6 @@ int executeStep(IRDBObjects_t *const irdb_objects)
 
 	assert(getenv("SELF_VALIDATE")==nullptr || bounds.size() > 3 );
 	assert(getenv("SELF_VALIDATE")==nullptr || targets.size() > 100 );
-	assert(getenv("SELF_VALIDATE")==nullptr || ranges.size() > 1 );
 	assert(getenv("SELF_VALIDATE")==nullptr || preds.size() > 100 );
 	assert(getenv("SELF_VALIDATE")==nullptr || lookupInstructionMap.size() > 100 );
 
diff --git a/irdb-libs/ir_builders/fix_calls.cpp b/irdb-libs/ir_builders/fix_calls.cpp
index b35c6f509..d245e2b95 100644
--- a/irdb-libs/ir_builders/fix_calls.cpp
+++ b/irdb-libs/ir_builders/fix_calls.cpp
@@ -1054,6 +1054,10 @@ int executeStep(IRDBObjects_t *const irdb_objects)
 
 			cout<<"Done!"<<endl;
 
+			if(firp->getArchitecture()->getMachineType() != admtAarch64)
+				assert(getenv("SELF_VALIDATE")==nullptr || (fixed_calls + other_fixes) > 5);
+
+
 		}
 	}
 	catch (DatabaseError_t pnide)
@@ -1067,7 +1071,6 @@ int executeStep(IRDBObjects_t *const irdb_objects)
                 return -1;
         }
 
-	assert(getenv("SELF_VALIDATE")==nullptr || (fixed_calls + other_fixes) > 5);
 	assert(getenv("SELF_VALIDATE")==nullptr || fix_all || not_fixed_calls > 5);
 
 	return 0;
-- 
GitLab