This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Do not consider reference types as dynamic


> >From f3fd1a7e81fad7a0b8e4f483f79b2470a3cf1499 Mon Sep 17 00:00:00 2001
> From: Pierre-Marie de Rodat <derodat@adacore.com>
> Date: Fri, 3 Apr 2015 10:40:52 +0200
> Subject: [PATCH] Do not consider reference types as dynamic
> 
> Even when referenced types are dynamic, the corresponding referencing
> type should not be considered as dynamic: it's only a pointer.  This
> prevents reference type for values not in memory to be resolved.
> 
> gdb/ChangeLog:
> 2015-04-03  Pierre-Marie de Rodat  <derodat@adacore.com>
> 
> 	* gdbtypes.c (is_dynamic_type_internal): Remove special handling
> 	of TYPE_CODE_REF types so that they are not considered as
> 	dynamic depending on the referenced type.
> 	(resolve_dynamic_type_internal): Likewise.
> 
> gdb/testsuite/ChangeLog:
> 2015-04-03  Pierre-Marie de Rodat  <derodat@adacore.com>
> 
> 	* gdb.ada/funcall_ref.exp: New file.
> 	* gdb.ada/funcall_ref/foo.adb: New file.

This is OK, thank you, Pierre-Marie.

Note that the parameter "top_level" is no longer useful after
this patch is applied, which is actually quite a nice side-effect
of this patch. I hum'ed and ah'ed about whether to ask that it be
removed as part of this patch, but in the end, I decided that this patch
was fine without the cleanup, as "top_level" is used a several places,
and I felt that cleaning it up here would dilute a bit the essence of
this patch.  So, I think we can clean it up separately.

> diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
> index 217ec70..6fb2e9a 100644
> --- a/gdb/gdbtypes.c
> +++ b/gdb/gdbtypes.c
> @@ -1752,10 +1752,6 @@ is_dynamic_type_internal (struct type *type, int top_level)

Thank you,
-- 
Joel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]