http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48174

           Summary: DWARF for subroutine with no args indicates 'varargs'
           Product: gcc
           Version: 4.5.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: lo...@cray.com


> cat test.f
      MODULE swim_arrays
        REAL, DIMENSION(:,:), ALLOCATABLE :: U
      END MODULE

      SUBROUTINE ALLOC_ARRAYS
        USE swim_arrays
        INTEGER N1,N2
        PARAMETER (N1=513, N2=4097)
        INTEGER status

        ALLOCATE(U(N1,N2), STAT=status)
      END SUBROUTINE

> gfortran -g -O2 -c test.f
> objdump --dwarf test.o

....

 <1><2d>: Abbrev Number: 2 (DW_TAG_subprogram)
    <2e>   DW_AT_external    : 1    
    <2f>   DW_AT_name        : (indirect string, offset: 0x0): alloc_arrays    
    <33>   DW_AT_decl_file   : 1    
    <34>   DW_AT_decl_line   : 5    
    <35>   DW_AT_low_pc      : 0x0    
    <3d>   DW_AT_high_pc     : 0x83    
    <45>   DW_AT_frame_base  : 0x0    (location list)
    <49>   DW_AT_sibling     : <0x79>    
 <2><4d>: Abbrev Number: 3 (DW_TAG_unspecified_parameters)

.....

The DWARF information (DW_TAG_unspecified_parameters) for subroutine
alloc_arrays above is showing that the subroutine has a variable number of
arguments.  This is causing failures in performance tools that use this
information.

Reply via email to