1 # Copyright
(C
) 2005-2018 Free Software Foundation
, Inc.
3 # This
program is free software
; you can redistribute it and
/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation
; either version
3 of the License
, or
6 #
(at your option
) any later version.
8 # This
program is distributed in the hope that it will be useful
,
9 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License
for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with GCC
; see the file COPYING3.
If not see
15 #
<http
://www.gnu.org
/licenses
/>.
17 # Run the LANGUAGE compiler with GCC_OPTIONS and inspect the compiler
,
18 # assembler and linker output
(from gcc
-v
) to make sure that they
19 # match the patterns COMPILER_PATTERN
, AS_PATTERN and LD_PATTERN
,
24 # disable
for non
-profile targets explitly
, rather than
25 # rely
on check
-effective target. We
're explicitly trying to check
26 # profiling works, and if it doesn't check
-effective
-target will
27 # simply skip the tests
, rather than have this test shout at us.
28 if [ istarget
"nvptx-*-*" ] { return 0 }
30 # These tests don
't run runtest_file_p consistently if it
31 # doesn't
return the same
values, so disable parallelization
32 # of this
*.exp file. The first parallel runtest to reach
33 # this will run all the tests serially.
34 if ![gcc_parallel_test_run_p options
] {
37 gcc_parallel_test_enable
0
39 proc check_for_all_options
{language gcc_options compiler_pattern as_pattern ld_pattern
} {
40 set filename test
-[pid
]
41 set fd
[open $filename.c w
]
42 puts $fd
"int main (void) \{ return 0; \}"
44 remote_download host $filename.c
46 set test
"compiler driver $gcc_options option(s)"
47 set gcc_options
"\{additional_flags=$gcc_options -v\}"
50 "c" { set compiler cc1 }
51 default
{ error
"unknown language" }
53 set gcc_output
[gcc_target_compile $filename.c $filename.x executable $gcc_options
]
54 remote_file build
delete $filename.c $filename.x $filename.gcno
56 if {![regexp
-- "/${compiler}(\\.exe)? -quiet.*$compiler_pattern" $gcc_output]} {
57 fail
"$test (compiler options)"
60 if {![regexp
-- " *as(\\.exe)? .*$as_pattern" $gcc_output]} {
61 fail
"$test (assembler options)"
64 if {![regexp
-- "/collect2(\\.exe)? .*$ld_pattern" $gcc_output]} {
65 fail
"$test (linker options)"
71 check_for_all_options c
{--coverage
} {-fprofile
-arcs
-ftest
-coverage
} {} {-lgcov
}
73 gcc_parallel_test_enable
1