Bug 572260

Summary: missing debuginfo for inline asm arg in c++ method
Product: [Fedora] Fedora Reporter: Stan Cox <scox>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: jakub, mjw
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: gcc-4.4.3-12.fc13 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-04-13 01:50:41 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:
Attachments:
Description Flags
c++ testcase none

Description Stan Cox 2010-03-10 16:54:03 UTC
Created attachment 399133 [details]
c++ testcase

gcc 4.4.3-9 is unable to find debuginfo for arg3, which has been assigned the method argument 'min', in:
  void method (int min) {}

(stap, by way of libdw, says)
semantic error: failed to retrieve location attribute for local 'arg3' (dieoffset: 0x5be): identifier '$arg3' at /work/scox/virginsystemtap/src/testsuite/systemtap.base/cxxclass.stp:28:57
        source:   printf("meth %s: %d %d\n", user_string($arg1), $arg2, $arg3);
                                                                        ^
gcc built from the upstream svn trunk works okay:
/work/scox/toolchain/install/bin/g++ -O2 -g cxxclass.ii -o cxxclass.exe
stap cxxclass.stp cxxclass.exe -c ./cxxclass.exe
main_enter
...

Comment 1 Jakub Jelinek 2010-03-10 21:43:37 UTC
The trunk just makes slightly different inlining decisions.
Compiling this on the trunk -g -O2 --param early-inlining-insns=32 leads to the same thing.  While VTA and var-tracking correctly track it, when method is inlined in early inlining rather than normal inlining, it is decided to be a non-localized variable, therefore dwarf2out.c doesn't look it up, just its origin and thus eventhough dwarf2out_var_location recorded that it is constant and its value, gen_variable_die doesn't look it up at all.

Will file upstream and discuss there with Honza.

Comment 2 Fedora Update System 2010-03-25 22:00:42 UTC
gcc-4.4.3-12.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/gcc-4.4.3-12.fc13

Comment 3 Fedora Update System 2010-04-01 19:27:21 UTC
gcc-4.4.3-12.fc13 has been pushed to the Fedora 13 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update gcc'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/gcc-4.4.3-12.fc13

Comment 4 Fedora Update System 2010-04-13 01:50:37 UTC
gcc-4.4.3-12.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.