aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/lib
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/lib')
-rw-r--r--gcc/testsuite/lib/cobol.exp29
-rw-r--r--gcc/testsuite/lib/gcc-dg.exp3
-rw-r--r--gcc/testsuite/lib/target-supports.exp65
3 files changed, 75 insertions, 22 deletions
diff --git a/gcc/testsuite/lib/cobol.exp b/gcc/testsuite/lib/cobol.exp
index cd88bcb..723989e 100644
--- a/gcc/testsuite/lib/cobol.exp
+++ b/gcc/testsuite/lib/cobol.exp
@@ -107,8 +107,11 @@ proc cobol_link_flags { paths } {
}
if { $gccpath != "" } {
+ if [file exists "${gccpath}/libgcobol/libgcobol.spec"] {
+ append flags "-B${gccpath}/libgcobol "
+ }
if [file exists "${gccpath}/libgcobol/libgcobol.a"] {
- append flags "-L${gccpath}/libgcobol"
+ append flags "-L${gccpath}/libgcobol "
}
if { [file exists "${gccpath}/libgcobol/.libs/libgcobol.a"] ||
[file exists "${gccpath}/libgobol/.libs/libgcobol.${shlib_ext}"] } {
@@ -119,6 +122,15 @@ proc cobol_link_flags { paths } {
}
append ld_library_path ":${gccpath}/libgcobol/.libs"
}
+ if { [file exists "${gccpath}/libquadmath/.libs/libquadmath.a"] ||
+ [file exists "${gccpath}/libquadmath/.libs/libquadmath.${shlib_ext}"] } {
+ if { $target_wants_B_option } {
+ append flags "-B${gccpath}/libquadmath/.libs "
+ } else {
+ append flags "-L${gccpath}/libquadmath/.libs "
+ }
+ append ld_library_path ":${gccpath}/libquadmath/.libs"
+ }
if { [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.a"] ||
[file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.${shlib_ext}"] } {
if { $target_wants_B_option } {
@@ -160,7 +172,6 @@ proc cobol_init { args } {
global gcc_warning_prefix
global gcc_error_prefix
global TEST_ALWAYS_FLAGS
- global cobol_init_set_COBOL_UNDER_TEST
# We set LC_ALL and LANG to C so that we get the same error messages as expected.
setenv LC_ALL C
@@ -176,24 +187,14 @@ proc cobol_init { args } {
setenv LANG C.ASCII
}
- # COBOL_UNDER_TEST as set below contains $specpath, which depends on
- # the used multilib config. Thus, its value may need to be reset;
- # that's tracked via gfortran_init_set_COBOL_UNDER_TEST.
- if { ![info exists COBOL_UNDER_TEST]
- || [info exists cobol_init_set_COBOL_UNDER_TEST] } then {
+ if ![info exists COBOL_UNDER_TEST] then {
if [info exists TOOL_EXECUTABLE] {
set COBOL_UNDER_TEST $TOOL_EXECUTABLE
} else {
if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } {
set COBOL_UNDER_TEST [transform gcobol]
} else {
- if [info exists TOOL_OPTIONS] {
- set specpath [get_multilibs ${TOOL_OPTIONS}]
- } else {
- set specpath [get_multilibs]
- }
- set cobol_init_set_COBOL_UNDER_TEST 1
- set COBOL_UNDER_TEST [findfile $base_dir/../../gcobol "$base_dir/../../gcobol -B$base_dir/../../ -B$specpath/libgcobol/.libs" [findfile $base_dir/gcobol "$base_dir/gcobol -B$base_dir/" [transform gcobol]]]
+ set COBOL_UNDER_TEST [findfile $base_dir/../../gcobol "$base_dir/../../gcobol -B$base_dir/../../" [findfile $base_dir/gcobol "$base_dir/gcobol -B$base_dir/" [transform gcobol]]]
}
}
}
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index eadc1cd..6dd8fa3 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -507,8 +507,7 @@ if { [info procs ${tool}_load] != [list] \
set linenum 1
set outfile [open [lindex ${output-file} 1]]
set do_fail 0
- set name [file tail [lindex ${output-file} 1]]
- verbose "output-file args is $args program is $program" 1
+ set name [testname-for-summary]
while { [gets $outfile line] >= 0 } {
if { $linenum != 1 } {
set c [string index $output $idx]
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index ee4138a..287e51b 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -562,6 +562,16 @@ proc check_effective_target_elf { } {
}
}
+# Returns 1 if the target uses the PE/COFF object format, 0 otherwise.
+
+proc check_effective_target_pe { } {
+ if { [gcc_target_object_format] == "pe" } {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
# Returns 1 if the target toolchain supports ifunc, 0 otherwise.
proc check_ifunc_available { } {
@@ -649,6 +659,37 @@ proc check_effective_target_trampolines { } {
return 1
}
+# Return 1 if target supports calling virtual variadic methods
+# of multi-inheritance classes.
+
+proc check_effective_target_variadic_mi_thunk { } {
+ # These targets do not implement TARGET_ASM_OUTPUT_MI_THUNK.
+ if { [istarget avr-*-*]
+ || [istarget bpf-*-*]
+ || [istarget fr30-*-*]
+ || [istarget ft32-*-*]
+ || [istarget amdgcn-*-*]
+ || [istarget h8300-*-*]
+ || [istarget iq2000-*-*]
+ || [istarget lm32-*-*]
+ || [istarget m32c-*-*]
+ || [istarget m32r-*-*]
+ || [istarget mcore-*-*]
+ || [istarget moxie-*-*]
+ || [istarget msp430-*-*]
+ || [istarget nvptx-*-*]
+ || [istarget pdp11-*-*]
+ || [istarget pru-*-*]
+ || [istarget rl78-*-*]
+ || [istarget rx-*-*]
+ || [istarget v850-*-*]
+ || [istarget visium-*-*] } {
+
+ return 0;
+ }
+ return 1
+}
+
# Return 1 if target has limited stack size.
proc check_effective_target_stack_size { } {
@@ -12622,6 +12663,18 @@ proc check_effective_target_exceptions_enabled {} {
}]
}
+# Returns 1 if target uses setjump/longjump for implementing exceptions,
+# 0 otherwise.
+proc check_effective_target_using_sjlj_exceptions {} {
+ return [check_no_compiler_messages using_sjlj_exceptions assembly {
+ // C++
+ #if !defined __USING_SJLJ_EXCEPTIONS__
+ #error not using SJLJ exception implementation
+ #endif
+ int dummy;
+ }]
+}
+
proc check_effective_target_tiny {} {
return [check_cached_effective_target tiny {
if { [istarget aarch64*-*-*]
@@ -13489,11 +13542,11 @@ proc check_effective_target_arm_v8_3a_bkey_directive { } {
# Return 1 if the target supports executing the Armv8.1-M Mainline Low
# Overhead Loop, 0 otherwise. The test is valid for ARM.
-proc check_effective_target_arm_v8_1_lob_ok { } {
+proc check_effective_target_arm_v8_1m_lob_hw { } {
if { ![check_effective_target_arm_cortex_m] } {
return 0;
} else {
- return [check_runtime arm_v8_1_lob_hw_available {
+ return [check_runtime arm_v8_1m_lob_hw_available {
int
main (void)
{ int i = 0;
@@ -13513,9 +13566,9 @@ proc check_effective_target_arm_v8_1_lob_ok { } {
# the Armv8.1-M Mainline Low Overhead Loop, 0 otherwise. The test is
# valid for ARM.
-proc check_effective_target_arm_thumb2_no_arm_v8_1_lob { } {
+proc check_effective_target_arm_thumb2_no_arm_v8_1m_lob { } {
if { [check_effective_target_arm_thumb2]
- && ![check_effective_target_arm_v8_1_lob_ok] } {
+ && ![check_effective_target_arm_v8_1m_lob_hw] } {
return 1
}
return 0
@@ -13525,9 +13578,9 @@ proc check_effective_target_arm_thumb2_no_arm_v8_1_lob { } {
# used and the target does not support executing the Armv8.1-M
# Mainline Low Overhead Loop, 0 otherwise. The test is valid for ARM.
-proc check_effective_target_arm_thumb2_ok_no_arm_v8_1_lob { } {
+proc check_effective_target_arm_thumb2_ok_no_arm_v8_1m_lob { } {
if { [check_effective_target_arm_thumb2_ok]
- && ![check_effective_target_arm_v8_1_lob_ok] } {
+ && ![check_effective_target_arm_v8_1m_lob_hw] } {
return 1
}
return 0