[Bug debug/96383] [8/9/10/11 Regression] Full ABI information missing from GCC compiled C

ebotcazou at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jul 31 08:23:02 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96383

--- Comment #12 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> So with the attached 'updated patch' I see
> 
>                 === gnat tests ===
> 
> 
> Running target unix/
> FAIL: gnat.dg/debug11_pkg.adb scan-assembler-not foreign_imported_func
> FAIL: gnat.dg/debug9.adb scan-assembler-times \\\\(DIE \\\\(0x[a-f0-9]*\\\\)
> DW_
> TAG_type_unit\\\\) 0
> 
> where the first FAIL seems obvious from the name of 'foreign_imported_func'
> and the changed outcome is expected and OK?

The annoying thing is the discrepancy with the variable case; in other words,
the patch is undercutting gnat_write_global_declarations (utils.c:5913).

> For the second FAIL I see type units for system__secondary_stack_* types
> and the extra subroutines are likely the invoked system__secondary_stack_*
> functions like
> 
>  <1><77>: Abbrev Number: 38 (DW_TAG_subprogram)
>     <78>   DW_AT_external    : 1
>     <78>   DW_AT_name        : (indirect string, offset: 0x47):
> system__secondar
> y_stack__ss_release
>     <7c>   DW_AT_decl_file   : 2
>     <7d>   DW_AT_decl_line   : 95
>     <7e>   DW_AT_decl_column : 14
>     <7f>   DW_AT_sibling     : <0x8e>
>  <2><83>: Abbrev Number: 39 (DW_TAG_formal_parameter)
>     <84>   DW_AT_name        : m
>     <86>   DW_AT_decl_file   : 2
>     <87>   DW_AT_decl_line   : 95
>     <88>   DW_AT_decl_column : 26
>     <89>   DW_AT_type        : <0x8e>
>  <2><8d>: Abbrev Number: 0
> 
> note they are not DECL_ARTIFICIAL and also not DECL_IGNORED.  Now the
> testcase tries to test sth else than no type units at all as its
> comment explains.

Yes, I agree that there is probably a missing DECL_IGNORED here.


More information about the Gcc-bugs mailing list