[Bug translator/11815] New: SDT_V2 sdt.h broken for modern gcc on x86-64, cxxclass.exp
fche at redhat dot com
sourceware-bugzilla@sourceware.org
Tue Jul 13 18:59:00 GMT 2010
With gcc 4.5ish on x86-64, SDT_V2 gets super optimized,
and gives us this ditty in the .probes section assembly code:
3:
.asciz "$.LC0 $64 $24" #,,
.balign 8
where $.LC0 is a reference to a string literal. This symbol
does not get propagated past the assembler, so stap has no
hope of resolving this particular operand.
Secondarily, the regexp magic in tapsets.cxx:4651ish
// this pattern matches 0xD(%R) | (%R) | %R
const char *pattern =
"\\([0x]*-*[0-9]*\\)\\([(]*\\)\\(%*[0-9a-z][0-9a-z]*\\)\\([)]*\\)";
this unfortunately appears to match each of the above quoted operands, and
leads to wrong code generation (fetch_register(0)).
--
Summary: SDT_V2 sdt.h broken for modern gcc on x86-64,
cxxclass.exp
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: translator
AssignedTo: systemtap at sources dot redhat dot com
ReportedBy: fche at redhat dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=11815
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the Systemtap
mailing list