; ; RUN: llvm-upgrade < %s | llvm-as | opt -analyze -tddatastructure int* %test1(int *%A) { %R = getelementptr int* %A, long 1 ret int* %R } int* %test2(uint %Num) { %A = malloc sbyte, uint %Num %B = cast sbyte* %A to int* ret int* %B } int* %test3(uint %Num) { %A = malloc sbyte, uint %Num %B = cast sbyte* %A to int* %C = getelementptr int* %B, long 5 ret int* %C } int* %test4(bool %C, uint %Num) { br bool %C, label %L1, label %L2 L1: %A = malloc sbyte, uint %Num %B = cast sbyte* %A to int* br label %L3 L2: %C = malloc int, uint %Num br label %L3 L3: %D = phi int* [%B, %L1], [%C, %L2] %E = getelementptr int* %D, long 5 ret int* %E } int* %test5(bool %C, uint %Num) { br bool %C, label %L1, label %L2 L1: %C = malloc int, uint %Num br label %L3 L2: %A = malloc sbyte, uint %Num %B = cast sbyte* %A to int* br label %L3 L3: %D = phi int* [%C, %L1], [%B, %L2] %E = getelementptr int* %D, long 5 ret int* %E } int %test6({int, int}* %A) { %B = getelementptr {int, int}* %A, long 0, uint 0 %b = load int* %B %C = getelementptr {int, int}* %A, long 0, uint 1 %c = load int* %C %d = add int %b, %c ret int %d } sbyte* %test7(uint %Num) { %X = malloc sbyte, uint %Num %Y = getelementptr sbyte* %X, long 1 store sbyte 0, sbyte* %Y ret sbyte* %X }