Signed-off-by: Jose E. Marchesi <[email protected]>

gcc/testsuite/ChangeLog

        * lib/algol68-dg.exp: New file.
        * lib/algol68-torture.exp: Likewise.
        * lib/algol68.exp: Likewise.
---
 gcc/testsuite/lib/algol68-dg.exp      |  57 ++++
 gcc/testsuite/lib/algol68-torture.exp | 430 ++++++++++++++++++++++++++
 gcc/testsuite/lib/algol68.exp         | 217 +++++++++++++
 3 files changed, 704 insertions(+)
 create mode 100644 gcc/testsuite/lib/algol68-dg.exp
 create mode 100644 gcc/testsuite/lib/algol68-torture.exp
 create mode 100644 gcc/testsuite/lib/algol68.exp

diff --git a/gcc/testsuite/lib/algol68-dg.exp b/gcc/testsuite/lib/algol68-dg.exp
new file mode 100644
index 00000000000..d012bb07352
--- /dev/null
+++ b/gcc/testsuite/lib/algol68-dg.exp
@@ -0,0 +1,57 @@
+# Copyright (C) 1997-2024 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 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 GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+load_lib gcc-dg.exp
+
+# Define ALGOL68 callbacks for dg.exp.
+
+proc algol68-dg-test { prog do_what extra_tool_flags } {
+    return [gcc-dg-test-1 algol68_target_compile $prog $do_what 
$extra_tool_flags]
+}
+
+proc algol68-dg-prune { system text } {
+    return [gcc-dg-prune $system $text]
+}
+
+# Modified dg-runtest that can cycle through a list of optimization options
+# as c-torture does.
+proc algol68-dg-runtest { testcases flags default-extra-flags } {
+    global runtests
+    global TORTURE_OPTIONS
+
+    foreach test $testcases {
+       # If we're only testing specific files and this isn't one of
+       # them, skip it.
+       if ![runtest_file_p $runtests $test] {
+           continue
+        }
+
+       # look if this is dg-do-run test, in which case
+       # we cycle through the option list, otherwise we don't
+       if [expr [search_for $test "dg-do run"]] {
+           set option_list $TORTURE_OPTIONS
+       } else {
+           set option_list [list { -O2 } ]
+       }
+
+       set nshort [file tail [file dirname $test]]/[file tail $test]
+
+       foreach flags_t $option_list {
+           verbose "Testing $nshort, $flags $flags_t" 1
+           dg-test $test "$flags $flags_t" ${default-extra-flags}
+       }
+    }
+}
diff --git a/gcc/testsuite/lib/algol68-torture.exp 
b/gcc/testsuite/lib/algol68-torture.exp
new file mode 100644
index 00000000000..269b53d5bd7
--- /dev/null
+++ b/gcc/testsuite/lib/algol68-torture.exp
@@ -0,0 +1,430 @@
+# Copyright (C) 2009-2024 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 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 GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+# Please email any bugs, comments, and/or additions to this file to
+# the author.
+
+load_lib dg.exp
+
+load_lib target-supports.exp
+
+load_lib target-utils.exp
+
+# The default option list can be overridden by
+# TORTURE_OPTIONS="{ { list1 } ... { listN } }"
+
+if ![info exists TORTURE_OPTIONS] {
+    set TORTURE_OPTIONS [list \
+       { -O0 } { -O1 } { -O2 } \
+       { -O2 -fomit-frame-pointer -finline-functions } \
+       { -O2 -fomit-frame-pointer -finline-functions -funroll-loops } \
+       { -O2 -fcheck=bounds } \
+       { -O2 -fcheck=nil } \
+       { -O3 -g } \
+       { -Os }]
+
+    if [check_effective_target_lto] {
+       set TORTURE_OPTIONS \
+           [concat $TORTURE_OPTIONS [list {-flto}]]
+    }
+}
+
+#
+# algol68-torture-compile -- compile an algol68/execute/torture testcase.
+#
+# SRC is the full pathname of the testcase.
+# OPTION is the specific compiler flag we're testing (eg: -O2).
+#
+proc algol68-torture-compile { src option } {
+    global output
+    global srcdir tmpdir
+    global host_triplet
+
+    set output "$tmpdir/[file tail [file rootname $src]].o"
+
+    regsub "(?q)$srcdir/" $src "" testcase
+
+    # If we couldn't rip $srcdir out of `src' then just do the best we can.
+    # The point is to reduce the unnecessary noise in the logs.  Don't strip
+    # out too much because different testcases with the same name can confuse
+    # `test-tool'.
+    if [string match "/*" $testcase] {
+       set testcase "[file tail [file dirname $src]]/[file tail $src]"
+    }
+
+    verbose "Testing $testcase, $option" 1
+
+    # Run the compiler and get results in comp_output.
+    set options ""
+    lappend options "additional_flags=-w $option"
+
+    set comp_output [algol68_target_compile "$src" "$output" object $options]
+    
+    # See if we got something bad.
+    set fatal_signal "*algol68*: Internal compiler error: program*got fatal 
signal"
+ 
+    if [string match "$fatal_signal 6" $comp_output] then {
+       algol68_fail $testcase "Got Signal 6, $option"
+       catch { remote_file build delete $output }
+       return
+    }
+
+    if [string match "$fatal_signal 11" $comp_output] then {
+       algol68_fail $testcase "Got Signal 11, $option"
+       catch { remote_file build delete $output }
+       return
+    }
+
+    if [regexp -line -- "internal compiler error.*" $comp_output ice] then {
+       algol68_fail $testcase "$option ($ice)"
+       catch { remote_file build delete $output }
+       return
+    }
+
+    # We shouldn't get these because of -w, but just in case.
+    if [string match "*algol68*:*warning:*" $comp_output] then {
+       warning "$testcase: (with warnings) $option"
+       send_log "$comp_output\n"
+       unresolved "$testcase, $option"
+       catch { remote_file build delete $output }
+       return
+    }
+
+    # Prune warnings we know are unwanted.
+    set comp_output [prune_warnings $comp_output]
+
+    # Report if the testcase is not supported.
+    set unsupported_message [algol68_check_unsupported_p $comp_output]
+    if { $unsupported_message != "" } {
+       unsupported "$testcase: $unsupported_message"
+       catch { remote_file build delete $output }
+       return
+    }
+
+    # remove any leftover LF/CR to make sure any output is legit
+    regsub -all -- "\[\r\n\]*" $comp_output "" comp_output
+
+    # If any message remains, we fail.
+    if ![string match "" $comp_output] then {
+       algol68_fail $testcase $option
+       catch { remote_file build delete $output }
+       return
+    }
+
+    algol68_pass $testcase $option
+    catch { remote_file build delete $output }
+}
+
+
+#
+# algol68-torture-execute -- compile and execute a testcase.
+#
+# SRC is the full pathname of the testcase.
+#
+# If the testcase has an associated .x file, we source that to run the
+# test instead.  We use .x so that we don't lengthen the existing filename
+# to more than 14 chars.
+#
+proc algol68-torture-execute { src } {
+    global output
+    global srcdir tmpdir
+    global tool
+    global compiler_conditional_xfail_data
+    global TORTURE_OPTIONS
+    global errorCode errorInfo
+    global algol68_compile_args
+    global algol68_execute_args
+    global dg-extra-tool-flags
+
+    set dg-excess-errors-flag 0
+    set dg-messages ""
+    set dg-extra-tool-flags ""
+    set dg-final-code ""
+
+    # `dg-output-text' is a list of two elements: pass/fail and text.
+    # Leave second element off for now (indicates "don't perform test")
+    set dg-output-text "P"
+
+    set tmp [dg-get-options $src]
+    foreach op $tmp {
+        verbose "Processing option: $op" 3
+        set status [catch $op errmsg]
+        if { $status != 0 } {
+            if { 0 && [info exists errorInfo] } {
+                # This also prints a backtrace which will just confuse
+                # testcase writers, so it's disabled.
+                perror "$src: $errorInfo\n"
+            } else {
+                perror "$src: $errmsg for \"$op\"\n"
+            }
+            perror "$src: $errmsg for \"$op\"" 0
+            return
+        }
+    }
+
+    # Check for alternate driver.
+    set additional_flags ""
+    if [file exists [file rootname $src].x] {
+       verbose "Using alternate driver [file rootname [file tail $src]].x" 2
+       set done_p 0
+       catch "set done_p \[source [file rootname $src].x\]"
+       if { $done_p } {
+           return
+       }
+    }
+
+    # Setup the options for the testcase run.
+    set option_list $TORTURE_OPTIONS
+    set executable $tmpdir/[file tail [file rootname $src].x]
+    regsub "(?q)$srcdir/" $src "" testcase
+
+    if { ! [info exists algol68_compile_args] } {
+       set algol68_compile_args ""
+    }
+    if { ! [info exists algol68_execute_args] } {
+       set algol68_execute_args ""
+    }
+
+    # If we couldn't rip $srcdir out of `src' then just do the best we can.
+    # The point is to reduce the unnecessary noise in the logs.  Don't strip
+    # out too much because different testcases with the same name can confuse
+    # `test-tool'.
+    if [string match "/*" $testcase] {
+       set testcase "[file tail [file dirname $src]]/[file tail $src]"
+    }
+
+    # Walk the list of options and compile and run the testcase for all
+    # options that are not explicitly disabled by the .x script (if present).
+    foreach option $option_list {
+
+       # Torture_{compile,execute}_xfail are set by the .x script.
+       if [info exists torture_compile_xfail] {
+           setup_xfail $torture_compile_xfail
+       }
+
+       # Torture_execute_before_{compile,execute} can be set by the .x script.
+       if [info exists torture_eval_before_compile] {
+            set ignore_me [eval $torture_eval_before_compile]
+       }
+
+       # FIXME: We should make sure that the modules required by this testcase
+       # exist.  If not, the testcase should XFAIL.
+
+       # Compile the testcase.
+       catch { remote_file build delete $executable }
+       verbose "Testing $testcase, $option" 1
+
+       set options ""
+       lappend options "additional_flags=-w $option"
+       if { ${dg-extra-tool-flags} != "" } {
+           lappend options "additional_flags=${dg-extra-tool-flags}"
+       }
+       if { $additional_flags != "" } {
+           lappend options "additional_flags=$additional_flags"
+       }
+       if { $algol68_compile_args != "" } {
+           lappend options "additional_flags=$algol68_compile_args"
+       }
+       set comp_output [algol68_target_compile "$src" "$executable" executable 
$options]
+
+       # See if we got something bad.
+       set fatal_signal "*algol68*: Internal compiler error: program*got fatal 
signal"
+       
+       if [string match "$fatal_signal 6" $comp_output] then {
+           algol68_fail $testcase "Got Signal 6, $option"
+           catch { remote_file build delete $executable }
+           continue
+       }
+       
+       if [string match "$fatal_signal 11" $comp_output] then {
+           algol68_fail $testcase "Got Signal 11, $option"
+           catch { remote_file build delete $executable }
+           continue
+       }
+
+       if [regexp -line -- "internal compiler error.*" $comp_output ice] then {
+           algol68_fail $testcase "$option ($ice)"
+           catch { remote_file build delete $executable }
+           continue
+       }
+       
+       # We shouldn't get these because of -w, but just in case.
+       if [string match "*algol68*:*warning:*" $comp_output] then {
+           warning "$testcase: (with warnings) $option"
+           send_log "$comp_output\n"
+           unresolved "$testcase, $option"
+           catch { remote_file build delete $executable }
+           continue
+       }
+       
+       # Prune warnings we know are unwanted.
+       set comp_output [prune_warnings $comp_output]
+
+       # Report if the testcase is not supported.
+       set unsupported_message [algol68_check_unsupported_p $comp_output]
+       if { $unsupported_message != "" } {
+           unsupported "$testcase: $unsupported_message"
+           continue
+       } elseif ![file exists $executable] {
+           if ![is3way] {
+               fail "$testcase compilation, $option"
+               untested "$testcase execution, $option"
+               continue
+           } else {
+               # FIXME: since we can't test for the existence of a remote
+               # file without short of doing an remote file list, we assume
+               # that since we got no output, it must have compiled.
+               pass "$testcase compilation, $option"           
+           }
+       } else {
+           pass "$testcase compilation, $option"
+       }
+
+       if [info exists torture_execute_xfail] {
+           setup_xfail $torture_execute_xfail
+       }
+
+       if [info exists torture_eval_before_execute] {
+            set ignore_me [eval $torture_eval_before_execute]
+       }
+
+       # Run the testcase, and analyse the output.
+       set result [algol68_load "$executable" "$algol68_execute_args" ""]
+       set status [lindex $result 0]
+       set output [lindex $result 1]
+       if { $status eq "pass" } {
+           pass "$testcase execution test, $option"
+           verbose "Exec succeeded." 3
+           if { [llength ${dg-output-text}] > 1 } {
+               if { [lindex ${dg-output-text} 0] eq "F" } {
+                   setup_xfail "*-*-*"
+               }
+               set texttmp [lindex ${dg-output-text} 1]
+               if { ![regexp -- $texttmp $output] } {
+                   fail "$testcase output pattern test, $option"
+                   send_log "Output was:\n${output}\nShould match:\n$texttmp\n"
+                   verbose "Failed test for output pattern $texttmp" 3
+               } else {
+                   pass "$testcase output pattern test, $option"
+                   verbose "Passed test for output pattern $texttmp" 3
+               }
+               unset texttmp
+           }
+       } elseif { $status eq "fail" } {
+           if {[info exists errorCode]} {
+               verbose "Exec failed, errorCode: $errorCode" 3
+           } else {
+               verbose "Exec failed, errorCode not defined!" 3
+           }
+           fail "$testcase execution test, $option"
+       } else {
+           $status "$testcase execution, $option"
+       }
+       catch { remote_file build delete $executable }
+    }
+}
+
+
+#
+# search_for_re -- looks for a string match in a file
+#
+proc search_for_re { file pattern } {
+    set fd [open $file r]
+    while { [gets $fd cur_line]>=0 } {
+       set lower [string tolower $cur_line]
+       if [regexp "$pattern" $lower] then {
+           close $fd
+           return 1
+       }
+    }
+    close $fd
+    return 0
+}
+
+
+#
+# algol68-torture -- the algol68-torture testcase source file processor
+#
+# This runs compilation only tests (no execute tests).
+#
+# SRC is the full pathname of the testcase, or just a file name in which
+# case we prepend $srcdir/$subdir.
+#
+# If the testcase has an associated .x file, we source that to run the
+# test instead.  We use .x so that we don't lengthen the existing filename
+# to more than 14 chars.
+#
+proc algol68-torture { args } {
+    global srcdir subdir
+    global compiler_conditional_xfail_data
+    global TORTURE_OPTIONS
+
+    set src [lindex $args 0]
+    if { [llength $args] > 1 } {
+       set options [lindex $args 1]
+    } else {
+       set options ""
+    }
+
+    # Prepend $srdir/$subdir if missing.
+    if ![string match "*/*" $src] {
+       set src "$srcdir/$subdir/$src"
+    }
+
+    # Check for alternate driver.
+    if [file exists [file rootname $src].x] {
+       verbose "Using alternate driver [file rootname [file tail $src]].x" 2
+       set done_p 0
+       catch "set done_p \[source [file rootname $src].x\]"
+       if { $done_p } {
+           return
+       }
+    }
+   
+    # loop through all the options
+    set option_list $TORTURE_OPTIONS
+    foreach option $option_list {
+
+       # torture_compile_xfail is set by the .x script (if present)
+       if [info exists torture_compile_xfail] {
+           setup_xfail $torture_compile_xfail
+       }
+
+       # torture_execute_before_compile is set by the .x script (if present)
+       if [info exists torture_eval_before_compile] {
+            set ignore_me [eval $torture_eval_before_compile]
+       }
+
+       algol68-torture-compile $src "$option $options"
+    }
+}
+
+#
+# add-ieee-options -- add options necessary for 100% ieee conformance.
+#
+proc add-ieee-options { } {
+    # Ensure that excess precision does not cause problems.
+    if { [istarget i?86-*-*]
+        || [istarget m68k-*-*] } then {
+      uplevel 1 lappend additional_flags "-ffloat-store"
+    }
+
+    # Enable full IEEE compliance mode.
+    if { [istarget alpha*-*-*]
+         || [istarget sh*-*-*] } then {
+      uplevel 1 lappend additional_flags "-mieee"
+    }
+}
diff --git a/gcc/testsuite/lib/algol68.exp b/gcc/testsuite/lib/algol68.exp
new file mode 100644
index 00000000000..9102ab9e668
--- /dev/null
+++ b/gcc/testsuite/lib/algol68.exp
@@ -0,0 +1,217 @@
+# Copyright (C) 2012-2024 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 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 GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+#
+# ALGOL68 support library routines
+#
+
+load_lib prune.exp
+load_lib gcc-defs.exp
+load_lib timeout.exp
+load_lib target-libpath.exp
+
+#
+# ALGOL68_UNDER_TEST is the compiler under test.
+#
+
+set algol68_compile_options ""
+
+
+#
+# algol68_include_flags -- include flags for the gcc tree structure
+#
+
+proc algol68_include_flags { paths } {
+    global srcdir
+    global TESTING_IN_BUILD_TREE
+
+    set flags ""
+
+    if { [is_remote host] || ![info exists TESTING_IN_BUILD_TREE] } {
+       return "${flags}"
+    }
+
+    set gccpath ${paths}
+
+    return "$flags"
+}
+
+#
+# algol68_link_flags -- linker flags for the gcc tree structure
+#
+
+proc algol68_link_flags { paths } {
+    global srcdir
+    global ld_library_path
+    global shlib_ext
+    global SHARED_OPTION
+    global ALGOL68_UNDER_TEST
+
+    set gccpath ${paths}
+    set libio_dir ""
+    set flags ""
+    set ld_library_path "."
+    set shlib_ext [get_shlib_extension]
+    set SHARED_OPTION ""
+    verbose "shared lib extension: $shlib_ext"
+
+    # We need to add options to locate libga68.
+    set target_wants_B_option 0
+    if { [istarget *-*-darwin9* ] || [istarget *-*-darwin\[12\]* ] } {
+      set target_wants_B_option 1
+    }
+
+    if { $gccpath != "" } {
+       # Path to libga68.spec.
+       append flags "-B${gccpath}/libga68 "
+       if { [file exists "${gccpath}/libga68/.libs/libga68.a"] \
+            || [file exists "${gccpath}/libga68/.libs/libga68.${shlib_ext}"] } 
{
+           if { $target_wants_B_option } {
+               append flags "-B${gccpath}/libga68/.libs "
+           } else {
+               append flags "-L${gccpath}/libga68/.libs "
+           }
+           append ld_library_path ":${gccpath}/libga68/.libs"
+       }
+       # Static linking is default. If only the shared lib is available adjust
+       # flags to always use it. If both are available, set SHARED_OPTION which
+       # will be added to PERMUTE_ARGS
+       if { [file exists "${gccpath}/libga68/src/.libs/libga68.${shlib_ext}"] 
} {
+           if { [file exists "${gccpath}/libga68/src/.libs/libga68.a"] } {
+               set SHARED_OPTION "-shared-libga68"
+           } else {
+#              append flags "-shared-libga68 "
+           }
+       }
+       if [file exists "${gccpath}/libiberty/libiberty.a"] {
+           append flags "-L${gccpath}/libiberty "
+       }
+       append ld_library_path [gcc-set-multilib-library-path 
$ALGOL68_UNDER_TEST]
+    }
+
+    set_ld_library_path_env_vars
+
+    return "$flags"
+}
+
+#
+# algol68_init -- called at the start of each subdir of tests
+#
+
+proc algol68_init { args } {
+    global subdir
+    global algol68_initialized
+    global base_dir
+    global tmpdir
+    global libdir
+    global gluefile wrap_flags
+    global objdir srcdir
+    global ALWAYS_ALGOL68FLAGS
+    global TOOL_EXECUTABLE TOOL_OPTIONS
+    global ALGOL68_UNDER_TEST
+    global TESTING_IN_BUILD_TREE
+    global gcc_warning_prefix
+    global gcc_error_prefix
+
+    # We set LC_ALL and LANG to C so that we get the same error messages as 
expected.
+    setenv LC_ALL C
+    setenv LANG C
+
+    if ![info exists ALGOL68_UNDER_TEST] then {
+       if [info exists TOOL_EXECUTABLE] {
+           set ALGOL68_UNDER_TEST $TOOL_EXECUTABLE
+       } else {
+           if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } {
+               set ALGOL68_UNDER_TEST [transform ga68]
+           } else {
+               set ALGOL68_UNDER_TEST [findfile $base_dir/../../ga68 
"$base_dir/../../ga68 -B$base_dir/../../" [findfile $base_dir/ga68 
"$base_dir/ga68 -B$base_dir/" [transform ga68]]]
+           }
+       }
+    }
+
+    if ![is_remote host] {
+       if { [which $ALGOL68_UNDER_TEST] == 0 } then {
+           perror "ALGOL68_UNDER_TEST ($ALGOL68_UNDER_TEST) does not exist"
+           exit 1
+       }
+    }
+
+    if ![info exists tmpdir] {
+       set tmpdir "/tmp"
+    }
+
+    if [info exists gluefile] {
+       unset gluefile
+    }
+
+    set gcc_warning_prefix "warning:"
+    set gcc_error_prefix "(fatal )?error:"
+
+    verbose "algol68 is initialized" 3
+}
+
+#
+# algol68_target_compile -- compile a source file
+#
+
+proc algol68_target_compile { source dest type options } {
+    global tmpdir
+    global gluefile wrap_flags
+    global ALWAYS_ALGOL68FLAGS
+    global ALGOL68_UNDER_TEST
+    global individual_timeout
+    global TEST_ALWAYS_FLAGS
+
+    # HACK: guard against infinite loops in the compiler
+    set individual_timeout 20
+
+    if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
+       lappend options "libs=${gluefile}"
+       lappend options "ldflags=${wrap_flags}"
+    }
+
+    set ALWAYS_ALGOL68FLAGS ""
+
+    # TEST_ALWAYS_FLAGS are flags that should be passed to every
+    # compilation.  They are passed first to allow individual
+    # tests to override them.
+    if [info exists TEST_ALWAYS_FLAGS] {
+       lappend ALWAYS_ALGOL68FLAGS "additional_flags=$TEST_ALWAYS_FLAGS"
+    }
+
+    if ![is_remote host] {
+       if [info exists TOOL_OPTIONS] {
+           lappend ALWAYS_ALGOL68FLAGS 
"additional_flags=[algol68_include_flags [get_multilibs ${TOOL_OPTIONS}] ]"
+           lappend ALWAYS_ALGOL68FLAGS "ldflags=[algol68_link_flags 
[get_multilibs ${TOOL_OPTIONS}] ]"
+       } else {
+           lappend ALWAYS_ALGOL68FLAGS 
"additional_flags=[algol68_include_flags [get_multilibs] ]"
+           lappend ALWAYS_ALGOL68FLAGS "ldflags=[algol68_link_flags 
[get_multilibs] ]"
+       }
+    }
+
+    if [info exists TOOL_OPTIONS] {
+       lappend ALWAYS_ALGOL68FLAGS "additional_flags=$TOOL_OPTIONS"
+    }
+
+    verbose -log "ALWAYS_ALGOL68FLAGS set to $ALWAYS_ALGOL68FLAGS"
+
+    lappend options "timeout=[timeout_value]"
+    lappend options "compiler=$ALGOL68_UNDER_TEST"
+
+    set options [concat "$ALWAYS_ALGOL68FLAGS" $options]
+    set options [dg-additional-files-options $options $source $dest $type]
+    return [target_compile $source $dest $type $options]
+}
-- 
2.30.2


Reply via email to