; A test for "physical subtyping" used in some C programs... | |
; | |
; RUN: analyze %s -tddatastructure | |
; | |
%ST = type { int, int* } ; "Subtype" | |
%DT = type { int, int*, int } ; "derived type" | |
int %test(%DT* %DT) { | |
%DTp = getelementptr %DT* %DT, long 0, ubyte 0 | |
%A = load int* %DTp | |
%ST = cast %DT* %DT to %ST* | |
%STp = getelementptr %ST* %ST, long 0, ubyte 0 | |
%B = load int* %STp | |
%C = sub int %A, %B ; A & B are equal, %C = 0 | |
ret int %C | |
} |