[PATCH] gdb/fortran: Allow Flang MAIN_ in Fortran testing
Andrew Burgess
andrew.burgess@embecosm.com
Wed Apr 29 09:15:21 GMT 2020
* Sharma, Alok Kumar <AlokKumar.Sharma@amd.com> [2020-04-27 18:02:03 +0000]:
> Hi Andrew,
>
> Thanks a lot for your valuable comments. Please have a look at the
> updated patch in attachment.
>
>
>
> From 75e55e41ddc83ee3db6879fd955baf31d1301ba4 Mon Sep 17 00:00:00 2001
> From: Alok Kumar Sharma <AlokKumar.Sharma@amd.com>
> Date: Fri, 24 Apr 2020 14:46:09 +0530
> Subject: [PATCH] gdb/fortran: Allow Flang MAIN_ in Fortran testing
>
> Name of fortran main function for Flang compiler is MAIN_ while
> for gfortran it is MAIN__ . In test cases MAIN__ is hardcoded for
> the purpose of inserting breakpoint.
>
> New proc is added to detect main function name depending on the
> compiler used.
> Fortran specific version of runto_main named fortran_runto_main
> is added.
>
> This commit adds support for Flang main function, there should be
> no change for gfortran.
This looks great. Please go ahead an commit it. I did have one minor
last fix, but don't feel you know you need to repost the patch, just
update and merge.
>
> gdb/testsuite/ChangeLog
>
> * lib/fortran.exp (fortran_main): New Proc, handle flang MAIN_,
> (fortran_runto_main): New Proc, fortran version of runto_main.
> * gdb.fortran/array-bounds-high.exp: Handle flang MAIN_.
> * gdb.fortran/array-bounds.exp: Likewise.
> * gdb.fortran/array-slices.exp: Likewise.
> * gdb.fortran/block-data.exp: Likewise.
> * gdb.fortran/charset.exp: Likewise.
> * gdb.fortran/common-block.exp: Likewise.
> * gdb.fortran/complex.exp: Likewise.
> * gdb.fortran/derived-type-function.exp: Likewise.
> * gdb.fortran/derived-type.exp: Likewise.
> * gdb.fortran/info-modules.exp: Likewise.
> * gdb.fortran/info-types.exp: Likewise.
> * gdb.fortran/intrinsics.exp: Likewise.
> * gdb.fortran/library-module.exp: Likewise.
> * gdb.fortran/logical.exp: Likewise.
> * gdb.fortran/max-depth.exp: Likewise.
> * gdb.fortran/module.exp: Likewise.
> * gdb.fortran/multi-dim.exp: Likewise.
> * gdb.fortran/nested-funcs.exp: Likewise.
> * gdb.fortran/print-formatted.exp: Likewise.
> * gdb.fortran/print_type.exp: Likewise.
> * gdb.fortran/printing-types.exp: Likewise.
> * gdb.fortran/ptr-indentation.exp: Likewise.
> * gdb.fortran/ptype-on-functions.exp: Likewise.
> * gdb.fortran/subarray.exp: Likewise.
> * gdb.fortran/vla-alloc-assoc.exp: Likewise.
> * gdb.fortran/vla-datatypes.exp: Likewise.
> * gdb.fortran/vla-history.exp: Likewise.
> * gdb.fortran/vla-ptr-info.exp: Likewise.
> * gdb.fortran/vla-ptype-sub.exp: Likewise.
> * gdb.fortran/vla-ptype.exp: Likewise.
> * gdb.fortran/vla-sizeof.exp: Likewise.
> * gdb.fortran/vla-type.exp: Likewise.
> * gdb.fortran/vla-value-sub-arbitrary.exp: Likewise.
> * gdb.fortran/vla-value-sub-finish.exp: Likewise.
> * gdb.fortran/vla-value-sub.exp: Likewise.
> * gdb.fortran/vla-value.exp: Likewise.
> * gdb.fortran/whatis_type.exp: Likewise.
> * gdb.mi/mi-var-child-f.exp: Likewise.
>
> Change-Id: I0a30f5dad684879b416f71d3d08c385c159325bf
> ---
> gdb/testsuite/ChangeLog | 43 +++++++++++++++++++
> .../gdb.fortran/array-bounds-high.exp | 5 ++-
> gdb/testsuite/gdb.fortran/array-bounds.exp | 5 ++-
> gdb/testsuite/gdb.fortran/array-slices.exp | 3 +-
> gdb/testsuite/gdb.fortran/block-data.exp | 4 +-
> gdb/testsuite/gdb.fortran/charset.exp | 6 ++-
> gdb/testsuite/gdb.fortran/common-block.exp | 4 +-
> gdb/testsuite/gdb.fortran/complex.exp | 5 ++-
> .../gdb.fortran/derived-type-function.exp | 5 ++-
> gdb/testsuite/gdb.fortran/derived-type.exp | 4 +-
> gdb/testsuite/gdb.fortran/info-modules.exp | 4 +-
> gdb/testsuite/gdb.fortran/info-types.exp | 4 +-
> gdb/testsuite/gdb.fortran/intrinsics.exp | 4 +-
> gdb/testsuite/gdb.fortran/library-module.exp | 5 ++-
> gdb/testsuite/gdb.fortran/logical.exp | 5 ++-
> gdb/testsuite/gdb.fortran/max-depth.exp | 4 +-
> gdb/testsuite/gdb.fortran/module.exp | 6 +--
> gdb/testsuite/gdb.fortran/multi-dim.exp | 4 +-
> gdb/testsuite/gdb.fortran/nested-funcs.exp | 4 +-
> gdb/testsuite/gdb.fortran/print-formatted.exp | 4 +-
> gdb/testsuite/gdb.fortran/print_type.exp | 2 +-
> gdb/testsuite/gdb.fortran/printing-types.exp | 5 ++-
> gdb/testsuite/gdb.fortran/ptr-indentation.exp | 4 +-
> .../gdb.fortran/ptype-on-functions.exp | 4 +-
> gdb/testsuite/gdb.fortran/subarray.exp | 5 ++-
> gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp | 3 +-
> gdb/testsuite/gdb.fortran/vla-datatypes.exp | 2 +-
> gdb/testsuite/gdb.fortran/vla-history.exp | 3 +-
> gdb/testsuite/gdb.fortran/vla-ptr-info.exp | 3 +-
> gdb/testsuite/gdb.fortran/vla-ptype-sub.exp | 2 +-
> gdb/testsuite/gdb.fortran/vla-ptype.exp | 2 +-
> gdb/testsuite/gdb.fortran/vla-sizeof.exp | 3 +-
> gdb/testsuite/gdb.fortran/vla-type.exp | 2 +-
> .../gdb.fortran/vla-value-sub-arbitrary.exp | 3 +-
> .../gdb.fortran/vla-value-sub-finish.exp | 3 +-
> gdb/testsuite/gdb.fortran/vla-value-sub.exp | 3 +-
> gdb/testsuite/gdb.fortran/vla-value.exp | 6 +--
> gdb/testsuite/gdb.fortran/whatis_type.exp | 4 +-
> gdb/testsuite/gdb.mi/mi-var-child-f.exp | 2 +-
> gdb/testsuite/lib/fortran.exp | 18 ++++++++
> 40 files changed, 143 insertions(+), 64 deletions(-)
>
> diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
> index 10683db566..0e3c207f85 100644
> --- a/gdb/testsuite/ChangeLog
> +++ b/gdb/testsuite/ChangeLog
> @@ -1,3 +1,46 @@
> +2020-04-24 Alok Kumar Sharma <alokkumar.sharma@amd.com>
> +
> + * lib/fortran.exp (fortran_main): New Proc, handle flang MAIN_,
> + (fortran_runto_main): New Proc, fortran version of runto_main.
> + * gdb.fortran/array-bounds-high.exp: Handle flang MAIN_
> + * gdb.fortran/array-bounds.exp: Likewise.
> + * gdb.fortran/array-slices.exp: Likewise.
> + * gdb.fortran/block-data.exp: Likewise.
> + * gdb.fortran/charset.exp: Likewise.
> + * gdb.fortran/common-block.exp: Likewise.
> + * gdb.fortran/complex.exp: Likewise.
> + * gdb.fortran/derived-type-function.exp: Likewise.
> + * gdb.fortran/derived-type.exp: Likewise.
> + * gdb.fortran/info-modules.exp: Likewise.
> + * gdb.fortran/info-types.exp: Likewise.
> + * gdb.fortran/intrinsics.exp: Likewise.
> + * gdb.fortran/library-module.exp: Likewise.
> + * gdb.fortran/logical.exp: Likewise.
> + * gdb.fortran/max-depth.exp: Likewise.
> + * gdb.fortran/module.exp: Likewise.
> + * gdb.fortran/multi-dim.exp: Likewise.
> + * gdb.fortran/nested-funcs.exp: Likewise.
> + * gdb.fortran/print-formatted.exp: Likewise.
> + * gdb.fortran/print_type.exp: Likewise.
> + * gdb.fortran/printing-types.exp: Likewise.
> + * gdb.fortran/ptr-indentation.exp: Likewise.
> + * gdb.fortran/ptype-on-functions.exp: Likewise.
> + * gdb.fortran/subarray.exp: Likewise.
> + * gdb.fortran/vla-alloc-assoc.exp: Likewise.
> + * gdb.fortran/vla-datatypes.exp: Likewise.
> + * gdb.fortran/vla-history.exp: Likewise.
> + * gdb.fortran/vla-ptr-info.exp: Likewise.
> + * gdb.fortran/vla-ptype-sub.exp: Likewise.
> + * gdb.fortran/vla-ptype.exp: Likewise.
> + * gdb.fortran/vla-sizeof.exp: Likewise.
> + * gdb.fortran/vla-type.exp: Likewise.
> + * gdb.fortran/vla-value-sub-arbitrary.exp: Likewise.
> + * gdb.fortran/vla-value-sub-finish.exp: Likewise.
> + * gdb.fortran/vla-value-sub.exp: Likewise.
> + * gdb.fortran/vla-value.exp: Likewise.
> + * gdb.fortran/whatis_type.exp: Likewise.
> + * gdb.mi/mi-var-child-f.exp: Likewise.
> +
> 2020-04-23 Tom de Vries <tdevries@suse.de>
>
> * gdb.base/decl-before-def.exp: Run to main and print a again.
> diff --git a/gdb/testsuite/gdb.fortran/array-bounds-high.exp b/gdb/testsuite/gdb.fortran/array-bounds-high.exp
> index 81e2f87b89..ba34dbc23e 100644
> --- a/gdb/testsuite/gdb.fortran/array-bounds-high.exp
> +++ b/gdb/testsuite/gdb.fortran/array-bounds-high.exp
> @@ -20,13 +20,14 @@ if { [skip_fortran_tests] } { return -1 }
>
> set testfile "array-bounds-high"
> standard_testfile .f90
> +load_lib fortran.exp
>
> if {[prepare_for_testing $testfile.exp $testfile $srcfile {f90 debug}]} {
> return -1
> }
>
> -if {![runto MAIN__]} {
> - perror "Could not run to breakpoint `MAIN__'."
> +if {![fortran_runto_main]} {
> + perror "Could not run to main."
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/array-bounds.exp b/gdb/testsuite/gdb.fortran/array-bounds.exp
> index 12bf5c2db3..3f2527343b 100644
> --- a/gdb/testsuite/gdb.fortran/array-bounds.exp
> +++ b/gdb/testsuite/gdb.fortran/array-bounds.exp
> @@ -20,13 +20,14 @@ if { [skip_fortran_tests] } { return -1 }
>
> set testfile "array-bounds"
> standard_testfile .f90
> +load_lib fortran.exp
>
> if {[prepare_for_testing $testfile.exp $testfile $srcfile {f90 debug}]} {
> return -1
> }
>
> -if {![runto MAIN__]} {
> - perror "Could not run to breakpoint `MAIN__'."
> +if {![fortran_runto_main]} {
> + perror "Could not run to main."
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/array-slices.exp b/gdb/testsuite/gdb.fortran/array-slices.exp
> index 11997f926a..4ca1db90f7 100644
> --- a/gdb/testsuite/gdb.fortran/array-slices.exp
> +++ b/gdb/testsuite/gdb.fortran/array-slices.exp
> @@ -21,13 +21,14 @@
> if {[skip_fortran_tests]} { return -1 }
>
> standard_testfile ".f90"
> +load_lib fortran.exp
>
> if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
> {debug f90}]} {
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/block-data.exp b/gdb/testsuite/gdb.fortran/block-data.exp
> index 292afe6c16..632c0141a3 100644
> --- a/gdb/testsuite/gdb.fortran/block-data.exp
> +++ b/gdb/testsuite/gdb.fortran/block-data.exp
> @@ -30,8 +30,8 @@ if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]} {
> return -1
> }
>
> -if ![runto MAIN__] then {
> - untested "couldn't run to breakpoint MAIN__"
> +if ![fortran_runto_main] then {
> + untested "couldn't run to main"
> return -1
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/charset.exp b/gdb/testsuite/gdb.fortran/charset.exp
> index f0f62f8490..fc504ae0b0 100644
> --- a/gdb/testsuite/gdb.fortran/charset.exp
> +++ b/gdb/testsuite/gdb.fortran/charset.exp
> @@ -19,12 +19,14 @@
> if { [skip_fortran_tests] } { return -1 }
>
> standard_testfile .f90
> +load_lib fortran.exp
> +
> if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug additional_flags=-fbackslash f90}] } {
> return -1
> }
>
> -if ![runto MAIN__] {
> - perror "Couldn't run to MAIN__"
> +if ![fortran_runto_main] {
> + perror "Couldn't run to main"
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/common-block.exp b/gdb/testsuite/gdb.fortran/common-block.exp
> index 19c1af0d81..3dacfd32b2 100644
> --- a/gdb/testsuite/gdb.fortran/common-block.exp
> +++ b/gdb/testsuite/gdb.fortran/common-block.exp
> @@ -27,8 +27,8 @@ if {[prepare_for_testing "failed to prepare" ${testfile} \
> return -1
> }
>
> -if ![runto MAIN__] then {
> - perror "couldn't run to breakpoint MAIN__"
> +if ![fortran_runto_main] then {
> + perror "couldn't run to main"
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/complex.exp b/gdb/testsuite/gdb.fortran/complex.exp
> index c092ab29f1..a88e553e58 100644
> --- a/gdb/testsuite/gdb.fortran/complex.exp
> +++ b/gdb/testsuite/gdb.fortran/complex.exp
> @@ -14,13 +14,14 @@
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
>
> standard_testfile .f90
> +load_lib fortran.exp
>
> if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90 quiet}]} {
> return -1
> }
>
> -if ![runto MAIN__] then {
> - perror "Couldn't run to MAIN__"
> +if ![fortran_runto_main] then {
> + perror "Couldn't run to main"
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/derived-type-function.exp b/gdb/testsuite/gdb.fortran/derived-type-function.exp
> index 1f0f957317..2ae6f46c1e 100644
> --- a/gdb/testsuite/gdb.fortran/derived-type-function.exp
> +++ b/gdb/testsuite/gdb.fortran/derived-type-function.exp
> @@ -21,13 +21,14 @@
> if { [skip_fortran_tests] } { return -1 }
>
> standard_testfile .f90
> +load_lib fortran.exp
>
> if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}]} {
> return -1
> }
>
> -if ![runto MAIN__] then {
> - perror "couldn't run to breakpoint MAIN__"
> +if ![fortran_runto_main] then {
> + perror "couldn't run to main"
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/derived-type.exp b/gdb/testsuite/gdb.fortran/derived-type.exp
> index f1705bffd8..4b86ba97de 100644
> --- a/gdb/testsuite/gdb.fortran/derived-type.exp
> +++ b/gdb/testsuite/gdb.fortran/derived-type.exp
> @@ -27,8 +27,8 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}]} {
> return -1
> }
>
> -if ![runto MAIN__] then {
> - perror "couldn't run to breakpoint MAIN__"
> +if ![fortran_runto_main] then {
> + perror "couldn't run to main"
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/info-modules.exp b/gdb/testsuite/gdb.fortran/info-modules.exp
> index 0c3c6a58e1..a3a9b2cb18 100644
> --- a/gdb/testsuite/gdb.fortran/info-modules.exp
> +++ b/gdb/testsuite/gdb.fortran/info-modules.exp
> @@ -28,8 +28,8 @@ if { [prepare_for_testing "failed to prepare" $testfile \
> return -1
> }
>
> -if { ![runto MAIN__] } {
> - perror "Could not run to breakpoint `MAIN__'."
> +if { ![fortran_runto_main] } {
> + perror "Could not run to main."
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/info-types.exp b/gdb/testsuite/gdb.fortran/info-types.exp
> index 2138937782..e80c990a85 100644
> --- a/gdb/testsuite/gdb.fortran/info-types.exp
> +++ b/gdb/testsuite/gdb.fortran/info-types.exp
> @@ -27,8 +27,8 @@ if { [prepare_for_testing "failed to prepare" $testfile \
> return -1
> }
>
> -if { ![runto MAIN__] } {
> - perror "Could not run to breakpoint `MAIN__'."
> +if { ![fortran_runto_main] } {
> + perror "Could not run to main."
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/intrinsics.exp b/gdb/testsuite/gdb.fortran/intrinsics.exp
> index 504bce4138..2cb0237c95 100644
> --- a/gdb/testsuite/gdb.fortran/intrinsics.exp
> +++ b/gdb/testsuite/gdb.fortran/intrinsics.exp
> @@ -25,8 +25,8 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}] }
> return -1
> }
>
> -if { ![runto MAIN__] } {
> - perror "Could not run to breakpoint `MAIN__'."
> +if { ![fortran_runto_main] } {
> + perror "Could not run to main."
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/library-module.exp b/gdb/testsuite/gdb.fortran/library-module.exp
> index f25988e32c..8254fcf10a 100644
> --- a/gdb/testsuite/gdb.fortran/library-module.exp
> +++ b/gdb/testsuite/gdb.fortran/library-module.exp
> @@ -40,9 +40,10 @@ if { [gdb_compile $srcdir/$subdir/$srcfile $binfile executable [list debug f90
> clean_restart $testfile
>
> gdb_load_shlib $libfile
> +load_lib fortran.exp
>
> -if ![runto MAIN__] then {
> - perror "couldn't run to breakpoint MAIN__"
> +if ![fortran_runto_main] then {
> + perror "couldn't run to main"
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/logical.exp b/gdb/testsuite/gdb.fortran/logical.exp
> index 324714fa49..161bbdd908 100644
> --- a/gdb/testsuite/gdb.fortran/logical.exp
> +++ b/gdb/testsuite/gdb.fortran/logical.exp
> @@ -16,13 +16,14 @@
> # This file was written by Jan Kratochvil <jan.kratochvil@redhat.com>.
>
> standard_testfile .f90
> +load_lib fortran.exp
>
> if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90 quiet}]} {
> return -1
> }
>
> -if { ![runto MAIN__] } {
> - perror "Could not run to breakpoint `MAIN__'."
> +if { ![fortran_runto_main] } {
> + perror "Could not run to main."
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/max-depth.exp b/gdb/testsuite/gdb.fortran/max-depth.exp
> index 262d0fdfa1..420b72539f 100644
> --- a/gdb/testsuite/gdb.fortran/max-depth.exp
> +++ b/gdb/testsuite/gdb.fortran/max-depth.exp
> @@ -26,8 +26,8 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}] }
> return -1
> }
>
> -if { ![runto MAIN__] } {
> - perror "Could not run to breakpoint `MAIN__'."
> +if { ![fortran_runto_main] } {
> + perror "Could not run to main."
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/module.exp b/gdb/testsuite/gdb.fortran/module.exp
> index 1c269e2fed..4a8251c44c 100644
> --- a/gdb/testsuite/gdb.fortran/module.exp
> +++ b/gdb/testsuite/gdb.fortran/module.exp
> @@ -29,8 +29,8 @@ gdb_test "p modmany::var_i" " = 14" "stopped language detection"
>
> gdb_test "print mod1::var_const" " = 20" "fully qualified name of DW_TAG_constant"
>
> -if ![runto MAIN__] then {
> - perror "couldn't run to breakpoint MAIN__"
> +if ![fortran_runto_main] then {
> + perror "couldn't run to main"
> continue
> }
>
> @@ -123,7 +123,7 @@ complete "modmany::var" $modmany_list
> # Breakpoint would work in language "c".
> gdb_test "show language" {The current source language is "(auto; currently )?fortran".}
>
> -# gcc-4.4.2: The main program is always MAIN__ in .symtab so "runto" above
> +# gcc-4.4.2: The main program is always $fmain in .symtab so "runto" above
> # works. But DWARF DW_TAG_subprogram contains the name specified by
> # the "program" Fortran statement.
> if [gdb_breakpoint "module"] {
> diff --git a/gdb/testsuite/gdb.fortran/multi-dim.exp b/gdb/testsuite/gdb.fortran/multi-dim.exp
> index 05590914df..ef6c6da8bd 100644
> --- a/gdb/testsuite/gdb.fortran/multi-dim.exp
> +++ b/gdb/testsuite/gdb.fortran/multi-dim.exp
> @@ -25,8 +25,8 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug f90}
> return -1
> }
>
> -if ![runto MAIN__] {
> - perror "Couldn't run to MAIN__"
> +if ![fortran_runto_main] {
> + perror "Couldn't run to main"
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/nested-funcs.exp b/gdb/testsuite/gdb.fortran/nested-funcs.exp
> index e4fc02ffa5..9e0073d210 100755
> --- a/gdb/testsuite/gdb.fortran/nested-funcs.exp
> +++ b/gdb/testsuite/gdb.fortran/nested-funcs.exp
> @@ -25,8 +25,8 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}]} {
> return -1
> }
>
> -if ![runto MAIN__] then {
> - perror "couldn't run to breakpoint MAIN__"
> +if ![fortran_runto_main] then {
> + perror "couldn't run to main"
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/print-formatted.exp b/gdb/testsuite/gdb.fortran/print-formatted.exp
> index 8c6529ce7f..e71287724b 100644
> --- a/gdb/testsuite/gdb.fortran/print-formatted.exp
> +++ b/gdb/testsuite/gdb.fortran/print-formatted.exp
> @@ -25,8 +25,8 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}] }
> return -1
> }
>
> -if { ![runto MAIN__] } {
> - fail "runto MAIN__"
> +if { ![fortran_runto_main] } {
> + fail "could not run to main"
> return -1
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/print_type.exp b/gdb/testsuite/gdb.fortran/print_type.exp
> index 7d5915390d..fcedb9579a 100755
> --- a/gdb/testsuite/gdb.fortran/print_type.exp
> +++ b/gdb/testsuite/gdb.fortran/print_type.exp
> @@ -24,7 +24,7 @@ if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/printing-types.exp b/gdb/testsuite/gdb.fortran/printing-types.exp
> index 2c88f9e003..44fd93cc56 100644
> --- a/gdb/testsuite/gdb.fortran/printing-types.exp
> +++ b/gdb/testsuite/gdb.fortran/printing-types.exp
> @@ -16,13 +16,14 @@
> if {[skip_fortran_tests]} { return -1 }
>
> standard_testfile .f90
> +load_lib fortran.exp
>
> if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]} {
> return -1
> }
>
> -if {![runto MAIN__]} then {
> - untested "could not run to breakpoint MAIN__"
> +if {![fortran_runto_main]} then {
> + untested "could not run to main"
> return -1
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/ptr-indentation.exp b/gdb/testsuite/gdb.fortran/ptr-indentation.exp
> index 285e24e2cc..209809a292 100644
> --- a/gdb/testsuite/gdb.fortran/ptr-indentation.exp
> +++ b/gdb/testsuite/gdb.fortran/ptr-indentation.exp
> @@ -22,8 +22,8 @@ if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]} {
> return -1
> }
>
> -if {![runto MAIN__]} then {
> - untested "couldn't run to breakpoint MAIN__"
> +if {![fortran_runto_main]} then {
> + untested "couldn't run to main"
> return -1
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/ptype-on-functions.exp b/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
> index d91e4bd48e..8dc5f76d93 100644
> --- a/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
> +++ b/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
> @@ -24,8 +24,8 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}]} {
> return -1
> }
>
> -if ![runto MAIN__] then {
> - perror "couldn't run to breakpoint MAIN__"
> +if ![fortran_runto_main] then {
> + perror "couldn't run to main"
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/subarray.exp b/gdb/testsuite/gdb.fortran/subarray.exp
> index 5e3e8c38cb..9ee5a9b3cb 100644
> --- a/gdb/testsuite/gdb.fortran/subarray.exp
> +++ b/gdb/testsuite/gdb.fortran/subarray.exp
> @@ -21,6 +21,7 @@
> if { [skip_fortran_tests] } { return -1 }
>
> standard_testfile .f
> +load_lib fortran.exp
>
> if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}]} {
> return -1
> @@ -31,8 +32,8 @@ gdb_start
> gdb_reinitialize_dir $srcdir/$subdir
> gdb_load ${binfile}
>
> -if ![runto MAIN__] then {
> - perror "couldn't run to breakpoint MAIN__"
> +if ![fortran_runto_main] then {
> + perror "couldn't run to main"
> continue
> }
>
> diff --git a/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp b/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
> index 5d8585c2ee..2ae0411cf1 100644
> --- a/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
> @@ -14,13 +14,14 @@
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
>
> standard_testfile "vla.f90"
> +load_lib fortran.exp
>
> if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> {debug f90 quiet}] } {
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-datatypes.exp b/gdb/testsuite/gdb.fortran/vla-datatypes.exp
> index 2db9b3e110..b69636f600 100644
> --- a/gdb/testsuite/gdb.fortran/vla-datatypes.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-datatypes.exp
> @@ -24,7 +24,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> # check that all fortran standard datatypes will be
> # handled correctly when using as VLA's
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-history.exp b/gdb/testsuite/gdb.fortran/vla-history.exp
> index 24bd945f4a..3bf98db197 100644
> --- a/gdb/testsuite/gdb.fortran/vla-history.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-history.exp
> @@ -14,13 +14,14 @@
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
>
> standard_testfile "vla.f90"
> +load_lib fortran.exp
>
> if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> {debug f90 quiet}] } {
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-ptr-info.exp b/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
> index 24c7b45840..d3fa595bea 100644
> --- a/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
> @@ -14,13 +14,14 @@
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
>
> standard_testfile "vla.f90"
> +load_lib fortran.exp
>
> if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> {debug f90 quiet}] } {
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp b/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
> index 09909e74b0..07a4a5fc2e 100644
> --- a/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
> @@ -21,7 +21,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-ptype.exp b/gdb/testsuite/gdb.fortran/vla-ptype.exp
> index 22b2005317..bbb81ea0c8 100644
> --- a/gdb/testsuite/gdb.fortran/vla-ptype.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-ptype.exp
> @@ -21,7 +21,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-sizeof.exp b/gdb/testsuite/gdb.fortran/vla-sizeof.exp
> index 8e7d36314e..d26b8c60f8 100644
> --- a/gdb/testsuite/gdb.fortran/vla-sizeof.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-sizeof.exp
> @@ -14,13 +14,14 @@
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
>
> standard_testfile "vla.f90"
> +load_lib fortran.exp
>
> if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> {debug f90 quiet}] } {
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-type.exp b/gdb/testsuite/gdb.fortran/vla-type.exp
> index 6d885e7889..f007ea3a78 100755
> --- a/gdb/testsuite/gdb.fortran/vla-type.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-type.exp
> @@ -21,7 +21,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp b/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
> index ab61dde06f..c3ed909a81 100644
> --- a/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
> @@ -14,13 +14,14 @@
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
>
> standard_testfile "vla-sub.f90"
> +load_lib fortran.exp
>
> if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> {debug f90 quiet}] } {
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp b/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
> index afd992cee4..403e411cc2 100644
> --- a/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
> @@ -14,13 +14,14 @@
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
>
> standard_testfile "vla-sub.f90"
> +load_lib fortran.exp
>
> if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> {debug f90 quiet}] } {
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-value-sub.exp b/gdb/testsuite/gdb.fortran/vla-value-sub.exp
> index 3311f6befa..fd923edf40 100644
> --- a/gdb/testsuite/gdb.fortran/vla-value-sub.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-value-sub.exp
> @@ -14,13 +14,14 @@
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
>
> standard_testfile "vla-sub.f90"
> +load_lib fortran.exp
>
> if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> {debug f90 quiet}] } {
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.fortran/vla-value.exp b/gdb/testsuite/gdb.fortran/vla-value.exp
> index 5af17b570c..9a727fc30a 100644
> --- a/gdb/testsuite/gdb.fortran/vla-value.exp
> +++ b/gdb/testsuite/gdb.fortran/vla-value.exp
> @@ -21,7 +21,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
> return -1
> }
>
> -if ![runto_main] {
> +if ![fortran_runto_main] {
> untested "could not run to main"
> return -1
> }
> @@ -129,8 +129,8 @@ gdb_test "print vla1(9, 9, 9)" "no such vector element \\\(vector not allocated\
> # Try to assign VLA to user variable
> clean_restart ${testfile}
>
> -if ![runto MAIN__] then {
> - perror "couldn't run to breakpoint MAIN__"
> +if ![fortran_runto_main] then {
> + perror "couldn't run to main"
> continue
> }
> gdb_breakpoint [gdb_get_line_number "vla2-allocated"]
> diff --git a/gdb/testsuite/gdb.fortran/whatis_type.exp b/gdb/testsuite/gdb.fortran/whatis_type.exp
> index 6a9cc0a81e..4b0cbf9c28 100644
> --- a/gdb/testsuite/gdb.fortran/whatis_type.exp
> +++ b/gdb/testsuite/gdb.fortran/whatis_type.exp
> @@ -23,8 +23,8 @@ if { [prepare_for_testing "failed to prepare" ${testfile} \
> return -1
> }
>
> -if ![runto MAIN__] {
> - fail "run to MAIN__"
> +if ![fortran_runto_main] {
> + fail "run to main"
> return
> }
>
> diff --git a/gdb/testsuite/gdb.mi/mi-var-child-f.exp b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
> index 8cfffa7c08..3af80a8e60 100644
> --- a/gdb/testsuite/gdb.mi/mi-var-child-f.exp
> +++ b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
> @@ -36,7 +36,7 @@ if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
> mi_gdb_reinitialize_dir $srcdir/$subdir
> mi_gdb_load ${binfile}
>
> -mi_runto MAIN__
> +mi_runto [fortran_main]
>
> mi_create_varobj "array" "array" "create local variable array"
>
> diff --git a/gdb/testsuite/lib/fortran.exp b/gdb/testsuite/lib/fortran.exp
> index 549ed65790..654afd2b74 100644
> --- a/gdb/testsuite/lib/fortran.exp
> +++ b/gdb/testsuite/lib/fortran.exp
> @@ -126,3 +126,21 @@ proc fortran_character1 {} {
> return "unknown"
> }
> }
> +
> +proc fortran_main {} {
This proc should have a header comment. Something like:
# Return name of the main procedure based on the compiler version.
> + if {[test_compiler_info {gcc-4-[012]-*}]
> + || [test_compiler_info {gcc-*}]
> + || [test_compiler_info {icc-*}]} {
> + return "MAIN__"
> + } elseif {[test_compiler_info {clang-*}]} {
> + return "MAIN_"
> + } else {
> + return "unknown"
> + }
> +}
> +
> +# fortran version of runto_main.
Please capitalise Fortran, which I believe is how the name is written.
With those two fixes, please just go ahead and merge.
Thanks,
Andrew
> +
> +proc fortran_runto_main { } {
> + return [runto [fortran_main]]
> +}
> --
> 2.17.1
More information about the Gdb-patches
mailing list