# Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. # 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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: # jlarmour@cygnus.co.uk # This file was written by Jonathan Larmour (jlarmour@cygnus.co.uk). # GCC testsuite that uses the `dg.exp' driver. # Load support procs. load_lib gcc-dg.exp ############################### # proc gcc_target_object_format {} ############################### # has been moved to: gcc/testsuite/lib/file-format.exp ############################### # proc check_weak_available { } ############################### # has been moved to: gcc/testsuite/lib/target-supports.exp ########## # weak-1.c ########## if { [ check_weak_available ] == 1 } { dg-init set lines [gcc_target_compile "$srcdir/$subdir/weak-1a.c" "weak-1a.o" object ""] if ![string match "" $lines] then { fail "weak-1a.o" } else { dg-runtest "$srcdir/$subdir/weak-1.c" "weak-1a.o" "" file delete weak-1a.o } dg-finish } elseif { [ check_weak_available ] == 0 } { unsupported "weak-1.c" } else { unresolved "weak-1.c" } ########## # weak-2.c ########## if { [ check_weak_available ] == 1 } { dg-init set lines [gcc_target_compile "$srcdir/$subdir/weak-2a.c" "weak-2a.o" object ""] if ![string match "" $lines] then { fail "weak-2a.o" } else { set lines [gcc_target_compile "$srcdir/$subdir/weak-2b.c" "weak-2b.o" object ""] if ![string match "" $lines] then { fail "weak-2b.o" } else { dg-runtest "$srcdir/$subdir/weak-2.c" "weak-2a.o weak-2b.o" "" file delete weak-2a.o weak-2b.o } } dg-finish } elseif { [ check_weak_available ] == 0 } { unsupported "weak-2.c" } else { unresolved "weak-2.c" } ########### # alias-1.c ########### dg-init switch [check_alias_available "$srcdir/$subdir/alias-1.c"] { yes { dg-runtest "$srcdir/$subdir/alias-1.c" "" "" } no { unsupported "alias-1.c" } default { fail "alias-1.c" } } dg-finish ########### # alias-2.c ########### dg-init switch [check_alias_available "$srcdir/$subdir/alias-2.c"] { yes { dg-runtest "$srcdir/$subdir/alias-2.c" "" "" } no { unsupported "alias-2.c" } default { fail "alias-2.c" } } dg-finish ########### # wkali-1.c ########### if { [ check_weak_available ] == 1 } { dg-init switch [check_alias_available "$srcdir/$subdir/wkali-1.c"] { yes { dg-runtest "$srcdir/$subdir/wkali-1.c" "" "" } no { unsupported "wkali-1.c" } default { fail "wkali-1.c" } } dg-finish } elseif { [ check_weak_available ] == 0 } { unsupported "wkali-1.c" } else { unresolved "wkali-1.c" } ########### # wkali-2.c ########### if { [ check_weak_available ] == 1 } { dg-init set lines [gcc_target_compile "$srcdir/$subdir/wkali-2a.c" "wkali-2a.o" object ""] if ![string match "" $lines] then { fail "wkali-2a.o" } else { set lines [gcc_target_compile "$srcdir/$subdir/wkali-2b.c" "wkali-2b.o" object ""] if [string match "*only weak aliases*" $lines] then { xfail "wkali-2b.o" file delete $srcdir/$subdir/wkali-2.exe } elseif ![string match "" $lines] then { fail "wkali-2b.o" } else { dg-runtest "$srcdir/$subdir/wkali-2.c" "wkali-2a.o wkali-2b.o" "" file delete wkali-2a.o wkali-2b.o } } dg-finish } elseif { [ check_weak_available ] == 0 } { unsupported "wkali-2.c" } else { unresolved "wkali-2.c" } ########### # gcsec-1.c ########### set ld_output [ remote_exec host "[ find_ld ]" "--help" ] # AIX gld supports garbage collection. But AIX gcc does not support # -ffunction-sections or -fdata-sections. if { [ string first "--gc-sections" $ld_output ] >= 0 && ! [istarget rs6000-*-aix*] && ! [istarget powerpc*-*-aix*] } { dg-init if [isnative] { dg-runtest "$srcdir/$subdir/gcsec-1.c" "-ffunction-sections -fdata-sections -Wl,--gc-sections -static" "" } else { dg-runtest "$srcdir/$subdir/gcsec-1.c" "-ffunction-sections -fdata-sections -Wl,--gc-sections" "" } dg-finish } else { unsupported "gcsec-1.c" } ### EOF ecos.exp