This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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 1/10] debug-early merge: Ada front-end


> My apologies for the delay on Ada.  I have reworked the patch to leave
> the first pass on the TYPE_DECLs which are definitely needed.  I also
> optimized things a bit, since we don't need to save all the globals any
> more.

Thanks, this looks fine modulo a couple of nits, see below.

> There is one regression which I'd like you and Jason's input before
> proceeding:
> 
> +FAIL: gnat.dg/specs/debug1.ads scan-assembler-times DW_AT_artificial 17
> 
> The problem is that the Ada front-end twiddles the DECL_ARTIFICIAL flag
> *after* it has called debug_hooks->early_global_decl().  The function
> gnat_to_gnu_entity() calls create_var_decl_1->rest_of_decl_compilation,
> but then much later twiddles DECL_ARTIFICIAL:
> 
>        if (!Comes_From_Source (gnat_entity))
> 	DECL_ARTIFICIAL (gnu_decl) = 1;
> 
> Twiddling DECL_ARTIFICIAL after we create early dwarf, means the DIE
> does not get the DW_AT_artificial.  Would it be possible for you guys
> (ahem, Ada folk) to set DECL_ARTIFICIAL before calling
> rest_of_decl_compilation?

Sure, just add a ??? comment before the above lines for now.


@@ -535,8 +535,7 @@ extern tree gnat_type_for_size (unsigned precision, int 
unsignedp);
    an unsigned type; otherwise a signed type is returned.  */
 extern tree gnat_type_for_mode (machine_mode mode, int unsignedp);
 
-/* Emit debug info for all global variable declarations.  */
-extern void gnat_write_global_declarations (void);
+extern void note_types_used_by_globals (void);

The comment needs to be adjusted instead of removed and preferably be the same 
as the one (ajusted too) above the function in utils.c.

-- 
Eric Botcazou


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