2014-09-03 06:28:02 +08:00
|
|
|
; RUN: %lli %s
|
2013-04-05 21:29:04 +08:00
|
|
|
;
|
|
|
|
; Verify relocations to global symbols with addend work correctly.
|
|
|
|
;
|
|
|
|
; Compiled from this C code:
|
|
|
|
;
|
|
|
|
; int test[2] = { -1, 0 };
|
|
|
|
; int *p = &test[1];
|
|
|
|
;
|
|
|
|
; int main (void)
|
|
|
|
; {
|
|
|
|
; return *p;
|
|
|
|
; }
|
|
|
|
;
|
|
|
|
|
|
|
|
@test = global [2 x i32] [i32 -1, i32 0], align 4
|
2015-03-14 02:20:45 +08:00
|
|
|
@p = global i32* getelementptr inbounds ([2 x i32], [2 x i32]* @test, i64 0, i64 1), align 8
|
2013-04-05 21:29:04 +08:00
|
|
|
|
|
|
|
define i32 @main() {
|
|
|
|
entry:
|
2015-02-28 05:17:42 +08:00
|
|
|
%0 = load i32*, i32** @p, align 8
|
|
|
|
%1 = load i32, i32* %0, align 4
|
2013-04-05 21:29:04 +08:00
|
|
|
ret i32 %1
|
|
|
|
}
|
|
|
|
|