PING**2 (dwarf2out.c review) - Re: [patch] Add DW_AT_main_subprogram tag to Fortran main program
Tobias Burnus
burnus@net-b.de
Mon Oct 18 12:19:00 GMT 2010
On 10/10/2010 11:49 AM, FX wrote:
> ping
>
>
>> Updated patch below, against regtested on x86_64-linux. OK to commit?
>>
>>
>>
>> 2010-10-03 Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
>>
>> * dwarf2out.c (add_calling_convention_attribute): Flag main
>> Fortran subroutine with DW_AT_main_subprogram.
>>
>>
>>
>> Index: gcc/dwarf2out.c
>> ===================================================================
>> --- gcc/dwarf2out.c (revision 164914)
>> +++ gcc/dwarf2out.c (working copy)
>> @@ -17841,14 +17841,21 @@ add_calling_convention_attribute (dw_die
>> value = ((enum dwarf_calling_convention)
>> targetm.dwarf_calling_convention (TREE_TYPE (decl)));
>>
>> - /* DWARF doesn't provide a way to identify a program's source-level
>> - entry point. DW_AT_calling_convention attributes are only meant
>> - to describe functions' calling conventions. However, lacking a
>> - better way to signal the Fortran main program, we use this for the
>> - time being, following existing custom. */
>> if (is_fortran ()
>> && !strcmp (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), "MAIN__"))
>> - value = DW_CC_program;
>> + {
>> + /* DWARF 2 doesn't provide a way to identify a program's source-level
>> + entry point. DW_AT_calling_convention attributes are only meant
>> + to describe functions' calling conventions. However, lacking a
>> + better way to signal the Fortran main program, we used this for
>> + a long time, following existing custom. Now, DWARF 4 has
>> + DW_AT_main_subprogram, which we add below, but some tools still
>> + rely on the old way, which we thus keep. */
>> + value = DW_CC_program;
>> +
>> + if (dwarf_version>= 4 || !dwarf_strict)
>> + add_AT_flag (subr_die, DW_AT_main_subprogram, 1);
>> + }
>>
>> /* Only add the attribute if the backend requests it, and
>> is not DW_CC_normal. */
>>
>
>
More information about the Fortran
mailing list