aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/lib
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/lib')
-rw-r--r--gcc/testsuite/lib/cobol.exp9
-rw-r--r--gcc/testsuite/lib/gcc-dg.exp3
-rw-r--r--gcc/testsuite/lib/target-supports.exp65
3 files changed, 69 insertions, 8 deletions
diff --git a/gcc/testsuite/lib/cobol.exp b/gcc/testsuite/lib/cobol.exp
index 8ea91e3..723989e 100644
--- a/gcc/testsuite/lib/cobol.exp
+++ b/gcc/testsuite/lib/cobol.exp
@@ -122,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 } {
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