From: Simon Marchi via Gdb-patches <gdb-patches@sourceware.org>
To: "Willgerodt, Felix" <felix.willgerodt@intel.com>,
"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [PING**3] [PATCH] gdb, testsuite: Fix mi-var-child-f.exp for Intel compilers.
Date: Fri, 11 Jun 2021 10:10:22 -0400 [thread overview]
Message-ID: <10d61e20-856a-76f6-ea43-1293496286ba@polymtl.ca> (raw)
In-Reply-To: <ddb928e415db4b228d1b3c1a6be7f0c7@intel.com>
Andrew, do you have an opinion on this?
Simon
On 2021-06-11 8:51 a.m., Willgerodt, Felix via Gdb-patches wrote:
> *Ping*
>
> Regards,
> Felix
>
> -----Original Message-----
> From: Willgerodt, Felix
> Sent: Mittwoch, 2. Juni 2021 09:24
> To: gdb-patches@sourceware.org
> Subject: RE: [PING**2] [PATCH] gdb, testsuite: Fix mi-var-child-f.exp for Intel compilers.
>
> *Ping*
>
> Keith Seitz is in favour of this but can't approve.
>
> Regards,
> Felix
>
> -----Original Message-----
> From: Willgerodt, Felix
> Sent: Freitag, 21. Mai 2021 08:52
> To: gdb-patches@sourceware.org
> Subject: [Ping] [PATCH] gdb, testsuite: Fix mi-var-child-f.exp for Intel compilers.
>
> Kindly pinging!
>
> Felix
>
> -----Original Message-----
> From: Willgerodt, Felix <felix.willgerodt@intel.com>
> Sent: Freitag, 7. Mai 2021 09:33
> To: Willgerodt, Felix <felix.willgerodt@intel.com>; gdb-patches@sourceware.org
> Subject: [PATCH] gdb, testsuite: Fix mi-var-child-f.exp for Intel compilers.
>
> mi-var-child-f.exp uses array.f as the inferior, which uses an unnamed main function. This causes false positive fails for Intel compilers, as they emit the following DWARF:
>
> ~~~
> 0x0000002a: DW_TAG_subprogram
> DW_AT_low_pc (0x0000000000404800)
> DW_AT_high_pc (0x000000000040484c)
> DW_AT_frame_base (DW_OP_reg6 RBP)
> DW_AT_linkage_name ("MAIN__")
> DW_AT_name ("_unnamed_main$$")
> DW_AT_decl_file ("array.f")
> DW_AT_decl_line (16)
> DW_AT_external (true)
> DW_AT_main_subprogram (true)
> ~~~
>
> The testsuite for fortran uses test_compiler_info to determine a hardcoded string which is used to run to main and as a testing regex:
>
> ~~~
> proc fortran_main {} {
> 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"
> }
> }
> ~~~
>
> GDB however uses DW_AT_name mostly in its output, which fails the regex.
> To fix this testcase immediately, I modernized array.f and gave it a named main. There was no specific reason it was unnamed anyway. Fixing the testsuite properly is not straightforward. fortran_main and test_compiler_info would need some changes, which has broader influences.
> I might look at this later down the road.
>
> gdb/testsuite/ChangeLog:
> 2021-05-06 Felix Willgerodt <felix.willgerodt@intel.com>
>
> * gdb.mi/array.f: Convert into...
> * gdb.mi/array.f90: ...this.
> * gdb.mi/mi-var-child-f.exp: Use array.f90.
> ---
> gdb/testsuite/gdb.mi/array.f | 20 --------------------
> gdb/testsuite/gdb.mi/array.f90 | 21 +++++++++++++++++++++
> gdb/testsuite/gdb.mi/mi-var-child-f.exp | 4 ++--
> 3 files changed, 23 insertions(+), 22 deletions(-) delete mode 100644 gdb/testsuite/gdb.mi/array.f create mode 100644 gdb/testsuite/gdb.mi/array.f90
>
> diff --git a/gdb/testsuite/gdb.mi/array.f b/gdb/testsuite/gdb.mi/array.f deleted file mode 100644 index 2d31ecae984..00000000000
> --- a/gdb/testsuite/gdb.mi/array.f
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -c Copyright 2006-2021 Free Software Foundation, Inc.
> -
> -c This program is free software; you can redistribute it and/or modify -c it under the terms of the GNU General Public License as published by -c the Free Software Foundation; either version 3 of the License, or -c (at your option) any later version.
> -c
> -c This program is distributed in the hope that it will be useful, -c but WITHOUT ANY WARRANTY; without even the implied warranty of -c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -c GNU General Public License for more details.
> -c
> -c You should have received a copy of the GNU General Public License -c along with this program. If not, see <http://www.gnu.org/licenses/>.
> -
> - INTEGER array(1:2,-1:1)
> - DATA array/11,21,12,22,13,23/
> - CONTINUE
> - STOP
> - END
> diff --git a/gdb/testsuite/gdb.mi/array.f90 b/gdb/testsuite/gdb.mi/array.f90 new file mode 100644 index 00000000000..b414b27e026
> --- /dev/null
> +++ b/gdb/testsuite/gdb.mi/array.f90
> @@ -0,0 +1,21 @@
> +! Copyright 2006-2021 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 this program. If not, see <http://www.gnu.org/licenses/>.
> +
> +program prog_array
> + INTEGER array (1:2,-1:1)
> + DATA array/11,21,12,22,13,23/
> + CONTINUE
> + STOP
> +end program prog_array
> diff --git a/gdb/testsuite/gdb.mi/mi-var-child-f.exp b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
> index 272505a4d69..f35c0cdd6d3 100644
> --- a/gdb/testsuite/gdb.mi/mi-var-child-f.exp
> +++ b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
> @@ -26,7 +26,7 @@ if [mi_gdb_start] {
> continue
> }
>
> -standard_testfile array.f
> +standard_testfile array.f90
>
> if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
> executable {debug f90}] != ""} {
> @@ -36,7 +36,7 @@ if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \ mi_gdb_reinitialize_dir $srcdir/$subdir mi_gdb_load ${binfile}
>
> -mi_runto [fortran_main]
> +mi_runto prog_array
>
> mi_create_varobj "array" "array" "create local variable array"
>
> --
> 2.25.4
>
> Intel Deutschland GmbH
> Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
> Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva
> Chairperson of the Supervisory Board: Nicole Lau
> Registered Office: Munich
> Commercial Register: Amtsgericht Muenchen HRB 186928
>
next prev parent reply other threads:[~2021-06-11 14:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-11 12:51 Willgerodt, Felix via Gdb-patches
2021-06-11 14:10 ` Simon Marchi via Gdb-patches [this message]
2021-06-11 14:41 ` Andrew Burgess
2021-06-11 15:20 ` Willgerodt, Felix via Gdb-patches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=10d61e20-856a-76f6-ea43-1293496286ba@polymtl.ca \
--to=gdb-patches@sourceware.org \
--cc=felix.willgerodt@intel.com \
--cc=simon.marchi@polymtl.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox