X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=gold%2Ftestsuite%2Ficf_safe_test.sh;fp=gold%2Ftestsuite%2Ficf_safe_test.sh;h=f77559ce22c05e2d1df5dff7f87c54d139d7da06;hb=d5da4f291af551c0b8b79e1d4a9b173d60e5c10e;hp=0000000000000000000000000000000000000000;hpb=7b5ea4fcdf2819e070665ab5610f8b48e3867c10;p=msp430-binutils.git diff --git a/gold/testsuite/icf_safe_test.sh b/gold/testsuite/icf_safe_test.sh new file mode 100755 index 0000000..f77559c --- /dev/null +++ b/gold/testsuite/icf_safe_test.sh @@ -0,0 +1,50 @@ +# icf_safe_test.sh -- test --icf=safe + +# Copyright 2009 Free Software Foundation, Inc. +# Written by Sriraman Tallam . + +# This file is part of gold. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, +# MA 02110-1301, USA. + +# The goal of this program is to verify if --icf=safe works as expected. +# File icf_safe_test.cc is in this test. This program checks if only +# ctors and dtors are folded. + +check_nofold() +{ + 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 folded" $2 "and" $3 + exit 1 + fi +} + +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 +} + +check_nofold icf_safe_test.stdout "kept_func_1" "kept_func_2" +check_fold icf_safe_test.stdout "_ZN1AD1Ev" "_ZN1AC1Ev"