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: [email protected]
ReportedBy: [email protected]
CC: [email protected]
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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs