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

            Bug ID: 71906
           Summary: Fortran allocatable strings debug info type size
                    regression
           Product: gcc
           Version: 6.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: debug
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jan.kratochvil at redhat dot com
  Target Milestone: ---

Description of problem:
Some GDB testcases started to failing gcc-5.3.1 -> gcc-6.1.1.

Version-Release number of selected component (if applicable):
PASS: gcc-5.3.1-2.fc23.x86_64
FAIL: gcc-6.1.1-3.fc24.x86_64
FAIL: 7.0.0 20160716 (experimental)

How reproducible:
Always.

Steps to Reproduce:
cat >stringalloc.f90 <<EOH
program stringalloc
  character(len=:), target, allocatable   :: var_char

  allocate(character(len=10) :: var_char)
  var_char = 'foo'
end program stringalloc
EOH
gfortran -o stringalloc stringalloc.f90 -Wall -g;gdb ./stringalloc -batch -ex
'b 5' -ex r -ex 'ptype var_char'

Actual results:
type = PTR TO -> ( character*1 )
 <2><a4>: Abbrev Number: 8 (DW_TAG_variable)
    <a5>   DW_AT_name        : (indirect string, offset: 0x111): var_char
    <a9>   DW_AT_decl_file   : 1
    <aa>   DW_AT_decl_line   : 2
    <ab>   DW_AT_type        : <0xd1>
    <af>   DW_AT_location    : 2 byte block: 91 68      (DW_OP_fbreg: -24)
 <1><d0>: Abbrev Number: 11 (DW_TAG_string_type)
 <1><d1>: Abbrev Number: 6 (DW_TAG_pointer_type)
    <d2>   DW_AT_byte_size   : 8
    <d3>   DW_AT_type        : <0xd0>

Expected results:
type = PTR TO -> ( character*10 )
 <2><4c>: Abbrev Number: 3 (DW_TAG_variable)
    <4d>   DW_AT_name        : (indirect string, offset: 0x111): var_char
    <51>   DW_AT_decl_file   : 1
    <52>   DW_AT_decl_line   : 2
    <53>   DW_AT_type        : <0x7d>
    <57>   DW_AT_location    : 2 byte block: 91 68      (DW_OP_fbreg: -24)
 <1><78>: Abbrev Number: 6 (DW_TAG_string_type)
    <79>   DW_AT_string_length: 2 byte block: 91 64     (DW_OP_fbreg: -28)
    <7c>   DW_AT_byte_size   : 4
 <1><7d>: Abbrev Number: 7 (DW_TAG_pointer_type)
    <7e>   DW_AT_byte_size   : 8
    <7f>   DW_AT_type        : <0x78>

Additional info:
There is also some additional unknown DIE but that does not seem to be related:
 <2><5a>: Abbrev Number: 4 (DW_TAG_variable)
    <5b>   DW_AT_name        : (indirect string, offset: 0x110): .var_char
    <5f>   DW_AT_type        : <0x83>
    <63>   DW_AT_artificial  : 1
    <63>   DW_AT_location    : 2 byte block: 91 64      (DW_OP_fbreg: -28)
 <1><83>: Abbrev Number: 8 (DW_TAG_base_type)
    <84>   DW_AT_byte_size   : 4
    <85>   DW_AT_encoding    : 5        (signed)
    <86>   DW_AT_name        : (indirect string, offset: 0xeb): integer(kind=4)

GDB above is Fedora gdb-7.11.1-75.fc24.x86_64, upstream GDB is not usable.
But readelf -wi is enough for analysis of this problem.

Reply via email to