From: Bernhard Heckel <bernhard.heckel@intel.com>
To: Joel Brobecker <brobecker@adacore.com>
Cc: qiyaoltc@gmail.com, eliz@gnu.org, gdb-patches@sourceware.org
Subject: Re: [PATCH V2 3/5] Fortran: Resolve dynamic target types of pointers.
Date: Tue, 05 Jul 2016 15:31:00 -0000 [thread overview]
Message-ID: <577BD2C1.5050409@intel.com> (raw)
In-Reply-To: <20160705143544.GG3295@adacore.com>
On 05/07/2016 16:35, Joel Brobecker wrote:
>> Dynamic target types of pointers have to be resolved before
>> they can be further processed. If not, GDB wil show wrong
>> boundaries, size,... or even crash as it will access some
>> random memory.
>>
>> 2016-06-30 Bernhard Heckel <bernhard.heckel@intel.com>
>>
>> gdb/Changelog:
>> * NEWS: Added new fortran feature.
>> * gdbtypes.c (resolve_dynamic_pointer_types): Resolve
>> dynamic target types.
>> * valops.c (value_ind): Throw error when pointer is
>> not associated.
>>
>> gdb/Testsuite/Changelog:
>> * gdb.fortran/pointers.f90: Add dynamic variables.
>> * gdb.fortran/pointers.exp: Test dynamic variables.
>> * gdb.fortran/print_type.exp: Test pointer to dynamic
>> types.
> I am wondering if this might be causing problems or unnecessary
> resolutions. For instance, at least for languages such as Ada,
> you don't really need to resolve the pointer type's target type
> when just trying to print the pointer's value. In my experience,
> this is the type of thing that should be done at type/value printing
> time, or when dereferencing the pointer (Eg. during expression
> evaluation).
>
Hi Joel,
we could resolve the target when we actually access it -> value_ind.
As far as I know there is one corner case, when we print the address and
the target type has
an DATA_LOCATION attribute. But I don't find the code at the moment.
Nevertheless, with your input it is becomes questionable if we should
resolve structures and references.
Fields of structures could be resolved when we access them ->
value_struct_elt. What do you think?
Let me take a second look on this...
BR
Bernhard
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
next prev parent reply other threads:[~2016-07-05 15:31 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-04 9:52 [PATCH V2 0/5] Fortran: Resolve " Bernhard Heckel
2016-07-04 9:52 ` [PATCH V2 4/5] Fortran: Fix query of address of not-allocated types Bernhard Heckel
2016-07-04 9:52 ` [PATCH V2 2/5] Fortran: Testsuite, add print of pointer types Bernhard Heckel
2016-07-04 9:52 ` [PATCH V2 3/5] Fortran: Resolve dynamic target types of pointers Bernhard Heckel
2016-07-04 15:01 ` Eli Zaretskii
2016-07-05 14:35 ` Joel Brobecker
2016-07-05 15:31 ` Bernhard Heckel [this message]
2016-07-05 15:51 ` Joel Brobecker
2016-07-04 9:52 ` [PATCH V2 1/5] Fortran: Typeprint, fix dangling types Bernhard Heckel
2016-07-04 9:52 ` [PATCH V2 5/5] Fortran: Handle cyclic pointers Bernhard Heckel
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=577BD2C1.5050409@intel.com \
--to=bernhard.heckel@intel.com \
--cc=brobecker@adacore.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=qiyaoltc@gmail.com \
/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