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