Bug 525709

Summary: 4.4.1-16 breaks gfortran debuginfo
Product: [Fedora] Fedora Reporter: Jan Kratochvil <jan.kratochvil>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: jakub
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-09-29 08:37:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jan Kratochvil 2009-09-25 10:45:04 UTC
Description of problem:
GDB testsuite broke on the last update.

Version-Release number of selected component (if applicable):
gcc-gfortran-4.4.1-16.x86_64 FAILs
gcc-gfortran-4.4.1-15.x86_64 PASSes

How reproducible:
Always.

Steps to Reproduce:
gfortran -o 1 gdb.fortran/array-element.f -Wall -g; gdb -nx -q ./1
Reading symbols from /home/jkratoch/redhat/fedora/gdb/devel/gdb-6.8.91.20090925/gdb/testsuite/1...done.
(gdb) b 30
Breakpoint 1 at 0x400968: file gdb.fortran/array-element.f, line 30.
(gdb) r
Starting program: /home/jkratoch/redhat/fedora/gdb/devel/gdb-6.8.91.20090925/gdb/testsuite/1 
 This is a test.

Breakpoint 1, sub (a=..., n=4197100) at gdb.fortran/array-element.f:32
32	        end
(gdb) p a(1)

Actual results:
$1 = -nan(0x7fdbc0)


Expected results:
$1 = 1


Additional info:
There are missing trailing DW_OP_deref's:
-       .long   .LASF3  # DW_AT_producer: "GNU Fortran 4.4.1 20090918 (Red Hat 4.4.1-15)"
+       .long   .LASF3  # DW_AT_producer: "GNU Fortran 4.4.1 20090923 (Red Hat 4.4.1-16)"
[...]
        .uleb128 0xd    # (DIE (0xf1) DW_TAG_formal_parameter)
        .ascii "a\0"    # DW_AT_name
        .byte   0x1     # DW_AT_decl_file (gdb.fortran/array-element.f)
        .byte   0x1a    # DW_AT_decl_line
        .long   0x148   # DW_AT_type
-       .byte   0x3     # DW_AT_location
+       .byte   0x2     # DW_AT_location
        .byte   0x91    # DW_OP_fbreg
        .sleb128 -40
-       .byte   0x6     # DW_OP_deref

Comment 1 Jakub Jelinek 2009-09-29 08:37:59 UTC
Should be fixed in gcc-4.4.1-17.