summaryrefslogtreecommitdiff
path: root/gold/testsuite/icf_safe_test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'gold/testsuite/icf_safe_test.sh')
-rwxr-xr-xgold/testsuite/icf_safe_test.sh30
1 files changed, 18 insertions, 12 deletions
diff --git a/gold/testsuite/icf_safe_test.sh b/gold/testsuite/icf_safe_test.sh
index 3b2795a8fb..fe224f6988 100755
--- a/gold/testsuite/icf_safe_test.sh
+++ b/gold/testsuite/icf_safe_test.sh
@@ -40,28 +40,34 @@ check_nofold()
check_fold()
{
- func_addr_1=`grep $2 $1 | awk '{print $1}'`
- func_addr_2=`grep $3 $1 | awk '{print $1}'`
- if [ $func_addr_1 != $func_addr_2 ]
- then
- echo "Safe Identical Code Folding did not fold " $2 "and" $3
- exit 1
- fi
+ awk "
+BEGIN { discard = 0; }
+/^Discarded input/ { discard = 1; }
+/^Memory map/ { discard = 0; }
+/.*\\.text\\..*($2|$3).*/ { act[discard] = act[discard] \" \" \$0; }
+END {
+ # printf \"kept\" act[0] \"\\nfolded\" act[1] \"\\n\";
+ if (length(act[0]) == 0 || length(act[1]) == 0)
+ {
+ printf \"Safe Identical Code Folding did not fold $2 and $3\\n\"
+ exit 1;
+ }
+ }" $1
}
arch_specific_safe_fold()
{
- grep_x86=`grep -q -e "Advanced Micro Devices X86-64" -e "Intel 80386" -e "ARM" -e "TILE" $2`
+ grep_x86=`grep -q -e "Advanced Micro Devices X86-64" -e "Intel 80386" -e "ARM" -e "TILE" -e "PowerPC" $2`
if [ $? -eq 0 ];
then
- check_fold $1 $3 $4
+ check_fold $3 $4 $5
else
- check_nofold $1 $3 $4
+ check_nofold $1 $4 $5
fi
}
arch_specific_safe_fold icf_safe_test_1.stdout icf_safe_test_2.stdout \
- "kept_func_1" "kept_func_2"
-check_fold icf_safe_test_1.stdout "_ZN1AD1Ev" "_ZN1AC1Ev"
+ icf_safe_test.map "kept_func_1" "kept_func_2"
+check_fold icf_safe_test.map "_ZN1AD2Ev" "_ZN1AC2Ev"
check_nofold icf_safe_test_1.stdout "kept_func_3" "kept_func_1"
check_nofold icf_safe_test_1.stdout "kept_func_3" "kept_func_2"