From 6bad16bb629c1e024855bd6c4b206327322d4102 Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Tue, 22 Feb 2011 15:54:16 +0000 Subject: [PATCH] gnat.exp: Fix comments. * lib/gnat.exp: Fix comments. Don't load libgloss.exp. (default_gnat_version): Call $compiler with --version. Adapt regexp for gnatmake output, insert version. (gnat_version): New proc. (gnat_init): Remove gnat_libgcc_s_path. (gnat_target_compile): Likewise. Remove ld_library_path. Log ADA_INCLUDE_PATH, ADA_OBJECTS_PATH. (gnat_pass): Remove. (gnat_pass): Remove. (gnat_finish): Remove. (gnat_exit): Remove. (local_find_gnatmake): Reindent. (runtest_file_p): Remove. (prune_warnings): Remove. (find_gnatclean): New proc. * lib/gnat-dg.exp (lremove): New proc. (gnat-dg-test): Reindent. Remove additional output files. (gnat-dg-runtest): Remove. * gnat.dg/array7.adb: Use cleanup-tree-dump "optimized". * gnat.dg/loop_optimization6.adb: Likewise. * gnat.dg/atomic1.adb: Use cleanup-tree-dump "gimple". From-SVN: r170404 --- gcc/testsuite/ChangeLog | 28 +++ gcc/testsuite/gnat.dg/array7.adb | 1 + gcc/testsuite/gnat.dg/atomic1.adb | 1 + gcc/testsuite/gnat.dg/loop_optimization6.adb | 1 + gcc/testsuite/lib/gnat-dg.exp | 44 +++-- gcc/testsuite/lib/gnat.exp | 173 +++++-------------- 6 files changed, 111 insertions(+), 137 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d2fac3d4b8ab..33c8ddeefad5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,31 @@ +2011-02-22 Rainer Orth + + * lib/gnat.exp: Fix comments. + Don't load libgloss.exp. + (default_gnat_version): Call $compiler with --version. + Adapt regexp for gnatmake output, insert version. + (gnat_version): New proc. + (gnat_init): Remove gnat_libgcc_s_path. + (gnat_target_compile): Likewise. + Remove ld_library_path. + Log ADA_INCLUDE_PATH, ADA_OBJECTS_PATH. + (gnat_pass): Remove. + (gnat_pass): Remove. + (gnat_finish): Remove. + (gnat_exit): Remove. + (local_find_gnatmake): Reindent. + (runtest_file_p): Remove. + (prune_warnings): Remove. + (find_gnatclean): New proc. + * lib/gnat-dg.exp (lremove): New proc. + (gnat-dg-test): Reindent. + Remove additional output files. + (gnat-dg-runtest): Remove. + + * gnat.dg/array7.adb: Use cleanup-tree-dump "optimized". + * gnat.dg/loop_optimization6.adb: Likewise. + * gnat.dg/atomic1.adb: Use cleanup-tree-dump "gimple". + 2011-02-22 Jakub Jelinek PR tree-optimization/47835 diff --git a/gcc/testsuite/gnat.dg/array7.adb b/gcc/testsuite/gnat.dg/array7.adb index d9df597cb3aa..d83a55a483a7 100644 --- a/gcc/testsuite/gnat.dg/array7.adb +++ b/gcc/testsuite/gnat.dg/array7.adb @@ -20,3 +20,4 @@ package body Array7 is end Array7; -- { dg-final { scan-tree-dump-not "MAX_EXPR" "optimized" } } +-- { dg-final { cleanup-tree-dump "optimized" } } diff --git a/gcc/testsuite/gnat.dg/atomic1.adb b/gcc/testsuite/gnat.dg/atomic1.adb index 1e5207bb93b9..59e1be201546 100644 --- a/gcc/testsuite/gnat.dg/atomic1.adb +++ b/gcc/testsuite/gnat.dg/atomic1.adb @@ -15,3 +15,4 @@ end; -- { dg-final { scan-tree-dump-times "v_16" 1 "gimple"} } -- { dg-final { scan-tree-dump-times "v_32" 1 "gimple"} } +-- { dg-final { cleanup-tree-dump "gimple" } } diff --git a/gcc/testsuite/gnat.dg/loop_optimization6.adb b/gcc/testsuite/gnat.dg/loop_optimization6.adb index 7a0f6d38803f..30f35f6ba9c7 100644 --- a/gcc/testsuite/gnat.dg/loop_optimization6.adb +++ b/gcc/testsuite/gnat.dg/loop_optimization6.adb @@ -23,3 +23,4 @@ package body Loop_Optimization6 is end Loop_Optimization6; -- { dg-final { scan-tree-dump-not "goto" "optimized"} } +-- { dg-final { cleanup-tree-dump "optimized" } } diff --git a/gcc/testsuite/lib/gnat-dg.exp b/gcc/testsuite/lib/gnat-dg.exp index 217605e2e545..e394d3f0f3a3 100644 --- a/gcc/testsuite/lib/gnat-dg.exp +++ b/gcc/testsuite/lib/gnat-dg.exp @@ -1,4 +1,4 @@ -# Copyright (C) 2006, 2007, 2010 Free Software Foundation, Inc. +# Copyright (C) 2006, 2007, 2010, 2011 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 @@ -16,13 +16,37 @@ load_lib gcc-dg.exp +# Remove VALUE from LIST_VARIABLE. +proc lremove {list_variable value} { + upvar 1 $list_variable var + set idx [lsearch -exact $var $value] + set var [lreplace $var $idx $idx] +} + # Define gcc callbacks for dg.exp. proc gnat-dg-test { prog do_what extra_tool_flags } { - if { $do_what == "compile" } { - lappend extra_tool_flags "-c" - } - return [gcc-dg-test-1 gnat_target_compile $prog $do_what $extra_tool_flags] + if { $do_what == "compile" } { + lappend extra_tool_flags "-c" + } + set result [gcc-dg-test-1 gnat_target_compile $prog $do_what $extra_tool_flags] + + # Remove additional output files apart from $output_file, which may be + # needed by dg-final. + set output_file [lindex $result 1] + set basename [file rootname $output_file] + set clean_result [remote_exec host [find_gnatclean] "-c -q -n $basename"] + if { [lindex $clean_result 0] != -1 } { + set clean_files [lindex $clean_result 1] + # Purge NL from clean_files. + regsub -all "\[\r\n\]+" $clean_files " " clean_files + # Remove ./ so lremove works. + regsub -all "\./" $clean_files "" clean_files + lremove clean_files $output_file + eval remote_file host delete $clean_files + } + + return $result } proc gnat-dg-prune { system text } { @@ -38,12 +62,6 @@ proc gnat-dg-prune { system text } { # Utility routines. -# Modified dg-runtest that can cycle through a list of optimization options -# as c-torture does. -proc gnat-dg-runtest { testcases default-extra-flags } { - return [gcc-dg-runtest $testcases ${default-extra-flags}] -} - # # gnat_load -- wrapper around default gnat_load to declare tasking tests # unsupported on platforms that lack such support @@ -64,3 +82,7 @@ if { [info procs gnat_load] != [list] \ return $result } } + +# Local Variables: +# tcl-indent-level:4 +# End: diff --git a/gcc/testsuite/lib/gnat.exp b/gcc/testsuite/lib/gnat.exp index 79fb3e6064de..ad3306933425 100644 --- a/gcc/testsuite/lib/gnat.exp +++ b/gcc/testsuite/lib/gnat.exp @@ -1,4 +1,5 @@ -# Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 +# 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 @@ -20,11 +21,6 @@ # This file is loaded by the tool init file (eg: unix.exp). It provides # default definitions for gnat_start, etc. and other supporting cast members. -# These globals are used if no compiler arguments are provided. -# They are also used by the various testsuites to define the environment: -# where to find stdio.h, libc.a, etc. - -load_lib libgloss.exp load_lib prune.exp load_lib gcc-defs.exp load_lib gcc.exp @@ -54,12 +50,13 @@ proc default_gnat_version { } { # verify that the compiler exists if { $compiler_name != 0 } then { - set tmp [remote_exec host "$compiler -v"] + set tmp [remote_exec host "$compiler --version"] set status [lindex $tmp 0] set output [lindex $tmp 1] - regexp " version \[^\n\r\]*" $output version + regexp "^GNATMAKE (\[^\n\r\]*)" $output verline version if { $status == 0 && [info exists version] } then { - clone_output "$compiler_name $version\n" + # test_summary expects "version" as second field. + clone_output "$compiler_name version $version\n" } else { clone_output "Couldn't determine version of $compiler_name: $output\n" } @@ -69,10 +66,16 @@ proc default_gnat_version { } { } } -# gnat_init -- called at the start of each .exp script. # -# There currently isn't much to do, but always using it allows us to -# make some enhancements without having to go back and rewrite the scripts. +# gnat_version -- Call default_gnat_version, so we can override it if needed. +# + +proc gnat_version { } { + default_gnat_version +} + +# +# gnat_init -- called at the start of each .exp script. # set gnat_initialized 0 @@ -85,7 +88,6 @@ proc gnat_init { args } { global gnat_initialized global GNAT_UNDER_TEST global TOOL_EXECUTABLE - global gnat_libgcc_s_path global gnat_target_current set gnat_target_current "" @@ -103,23 +105,6 @@ proc gnat_init { args } { if ![info exists tmpdir] then { set tmpdir /tmp } - - set gnat_libgcc_s_path "${rootme}" - # Leave this here since Ada should support multilibs at some point. - set compiler [lindex $GNAT_UNDER_TEST 0] -# if { [is_remote host] == 0 && [which $compiler] != 0 } { -# foreach i "[exec $compiler --print-multi-lib]" { -# set mldir "" -# regexp -- "\[a-z0-9=/\.-\]*;" $i mldir -# set mldir [string trimright $mldir "\;@"] -# if { "$mldir" == "." } { -# continue -# } -# if { [llength [glob -nocomplain ${rootme}/${mldir}/libgcc_s*.so.*]] >= 1 } { -# append gnat_libgcc_s_path ":${rootme}/${mldir}" -# } -# } -# } } proc gnat_target_compile { source dest type options } { @@ -129,8 +114,6 @@ proc gnat_target_compile { source dest type options } { global srcdir global GNAT_UNDER_TEST global TOOL_OPTIONS - global ld_library_path - global gnat_libgcc_s_path global gnat_target_current # dg-require-effective-target tests must be compiled as C. @@ -158,9 +141,11 @@ proc gnat_target_compile { source dest type options } { # specify via environment setenv ADA_INCLUDE_PATH "$rtsdir/adainclude" setenv ADA_OBJECTS_PATH "$rtsdir/adainclude" + # Always log so compilations can be repeated manually. + verbose -log "ADA_INCLUDE_PATH=$rtsdir/adainclude" + verbose -log "ADA_OBJECTS_PATH=$rtsdir/adainclude" } - set ld_library_path ".:${gnat_libgcc_s_path}" lappend options "compiler=$GNAT_UNDER_TEST -q -f" lappend options "timeout=[timeout_value]" @@ -175,71 +160,9 @@ proc gnat_target_compile { source dest type options } { set options [concat "additional_flags=$TOOL_OPTIONS" $options] } - # If we have built libada along with the compiler, point the test harness - # at it (and associated headers). - -# set sourcename [string range $source 0 [expr [string length $source] - 5]] -# set dest "" - return [target_compile $source $dest $type $options] } -# -# gnat_pass -- utility to record a testcase passed -# - -proc gnat_pass { testcase cflags } { - if { "$cflags" == "" } { - pass "$testcase" - } else { - pass "$testcase, $cflags" - } -} - -# -# gnat_fail -- utility to record a testcase failed -# - -proc gnat_fail { testcase cflags } { - if { "$cflags" == "" } { - fail "$testcase" - } else { - fail "$testcase, $cflags" - } -} - -# -# gnat_finish -- called at the end of every .exp script that calls gnat_init -# -# The purpose of this proc is to hide all quirks of the testing environment -# from the testsuites. It also exists to undo anything that gnat_init did -# (that needs undoing). -# - -proc gnat_finish { } { - # The testing harness apparently requires this. - global errorInfo - - if [info exists errorInfo] then { - unset errorInfo - } - - # Might as well reset these (keeps our caller from wondering whether - # s/he has to or not). - global prms_id bug_id - set prms_id 0 - set bug_id 0 -} - -proc gnat_exit { } { - global gluefile - - if [info exists gluefile] { - file_on_build delete $gluefile - unset gluefile - } -} - # Prune messages from GNAT that aren't useful. proc prune_gnat_output { text } { @@ -272,19 +195,19 @@ proc local_find_gnatmake {} { if ![is_remote host] { set file [lookfor_file $tool_root_dir gnatmake] if { $file == "" } { - set file [lookfor_file $tool_root_dir gcc/gnatmake] + set file [lookfor_file $tool_root_dir gcc/gnatmake] } if { $file != "" } { - set root [file dirname $file] - # Need to pass full --GCC, including multilib flags, to gnatlink, - # otherwise gcc from PATH is invoked. - set dest [target_info name] - set gnatlink_gcc "--GCC=$root/xgcc -B$root [board_info $dest multilib_flags]" - # Escape blanks to get them through DejaGnu's exec machinery. - regsub -all {\s} "$gnatlink_gcc" {\\&} gnatlink_gcc - set CC "$file --GCC=$root/xgcc --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink -cargs -B$root -largs $gnatlink_gcc -margs"; + set root [file dirname $file] + # Need to pass full --GCC, including multilib flags, to gnatlink, + # otherwise gcc from PATH is invoked. + set dest [target_info name] + set gnatlink_gcc "--GCC=$root/xgcc -B$root [board_info $dest multilib_flags]" + # Escape blanks to get them through DejaGnu's exec machinery. + regsub -all {\s} "$gnatlink_gcc" {\\&} gnatlink_gcc + set CC "$file --GCC=$root/xgcc --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink -cargs -B$root -largs $gnatlink_gcc -margs"; } else { - set CC [transform gnatmake] + set CC [transform gnatmake] } } else { set CC [transform gnatmake] @@ -292,27 +215,25 @@ proc local_find_gnatmake {} { return $CC } -# If this is an older version of DejaGnu (without runtest_file_p), -# provide one and assume the old syntax: foo1.exp bar1.c foo2.exp bar2.c. -# This can be deleted after next DejaGnu release. - -if { [info procs runtest_file_p] == "" } then { - proc runtest_file_p { runtests testcase } { - if { $runtests != "" && [regexp "\[.\]\[cC\]" $runtests] } then { - if { [lsearch $runtests [file tail $testcase]] >= 0 } then { - return 1 - } else { - return 0 - } - } - return 1 - } -} - -# Provide a definition of this if missing (delete after next DejaGnu release). +proc find_gnatclean {} { + global tool_root_dir -if { [info procs prune_warnings] == "" } then { - proc prune_warnings { text } { - return $text + if ![is_remote host] { + set file [lookfor_file $tool_root_dir gnatclean] + if { $file == "" } { + set file [lookfor_file $tool_root_dir gcc/gnatclean] + } + if { $file != "" } { + set gnatclean $file; + } else { + set gnatclean [transform gnatclean] + } + } else { + set gnatclean [transform gnatclean] } + return $gnatclean } + +# Local Variables: +# tcl-indent-level:4 +# End: -- 2.39.2