[LLVMbugs] [Bug 9493] New: Dwarf relocation missing in ARM assembly output
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Wed Mar 16 04:16:19 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=9493
Summary: Dwarf relocation missing in ARM assembly output
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: Backend: ARM
AssignedTo: unassignedbugs at nondot.org
ReportedBy: rengolin at gmail.com
CC: llvmbugs at cs.uiuc.edu
In DWARF output by LLVM, references from DW_AT_location to location list
entries in .debug_loc are
missing any relocation - they are just numeric offsets from the start of the
.debug_loc section.
This means they don't get correctly updated when the linker combines the
.debug_loc section.
In DWARF we would expect any DW_AT_location that is a loclistptr rather than
inline expression
block to have a relocation against the corresponding entry in the .debug_loc
section.
The following example exposes the bug:
extern int g(int, int);
extern int a;
void f(void) {
int x;
int i = 10;
a = g(0, 0);
x = 1;
while (x & 1 && --i) { x *= a; }
a = g(x, 0);
x = 2;
i = 10;
while (x & 2 && --i) { x *= a; }
a = g(0, x);
}
Where the variable 'x' has two locations, R0 and R1, throughout the program.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list