2003-10-03 18:42:25 +00:00
|
|
|
;
|
2006-08-18 06:34:30 +00:00
|
|
|
; RUN: opt -analyze %s -tddatastructure
|
2003-10-03 18:42:25 +00:00
|
|
|
|
2002-10-31 01:25:13 +00:00
|
|
|
%G = global int 2 ; <int*> [#uses=1]
|
|
|
|
%H = global int* null
|
|
|
|
|
|
|
|
%I = global int** null
|
|
|
|
%J = global int** null
|
|
|
|
|
|
|
|
implementation ; Functions:
|
|
|
|
|
|
|
|
void %foo1() {
|
|
|
|
store int* %G, int** %H
|
|
|
|
store int** %H, int ***%I
|
|
|
|
ret void
|
|
|
|
}
|
|
|
|
|
|
|
|
void %foo2() { ; No predecessors!
|
|
|
|
store int 7, int* %G
|
|
|
|
store int** %H, int ***%J
|
|
|
|
ret void
|
|
|
|
}
|
|
|
|
|
|
|
|
void %test(bool %cond) {
|
|
|
|
; <label>:0 ; No predecessors!
|
|
|
|
br bool %cond, label %call, label %F
|
|
|
|
|
|
|
|
F: ; preds = %0
|
|
|
|
br label %call
|
|
|
|
|
|
|
|
call: ; preds = %F, %0
|
|
|
|
%Fn = phi void ()* [ %foo2, %F ], [ %foo1, %0 ] ; <void ()*> [#uses=1]
|
|
|
|
call void %Fn()
|
|
|
|
ret void
|
|
|
|
}
|