|
1 |
| -define i32 @fn(i8* %str) #0 { |
| 1 | +define i32 @fn(ptr %str) #0 { |
2 | 2 | entry:
|
3 |
| - %str.addr = alloca i8*, align 4 |
| 3 | + %str.addr = alloca ptr, align 4 |
4 | 4 | %buffer = alloca [65536 x i8], align 1
|
5 |
| - store i8* %str, i8** %str.addr, align 4 |
6 |
| - %arraydecay = getelementptr inbounds [65536 x i8], [65536 x i8]* %buffer, i32 0, i32 0 |
7 |
| - %0 = load i8*, i8** %str.addr, align 4 |
8 |
| - %call = call i8* @strcpy(i8* %arraydecay, i8* %0) |
9 |
| - %arraydecay1 = getelementptr inbounds [65536 x i8], [65536 x i8]* %buffer, i32 0, i32 0 |
10 |
| - %call2 = call i32 @puts(i8* %arraydecay1) |
11 |
| - %arrayidx = getelementptr inbounds [65536 x i8], [65536 x i8]* %buffer, i32 0, i32 65535 |
12 |
| - %1 = load i8, i8* %arrayidx, align 1 |
| 5 | + store ptr %str, ptr %str.addr, align 4 |
| 6 | + %arraydecay = getelementptr inbounds [65536 x i8], ptr %buffer, i32 0, i32 0 |
| 7 | + %0 = load ptr, ptr %str.addr, align 4 |
| 8 | + %call = call ptr @strcpy(ptr %arraydecay, ptr %0) |
| 9 | + %arraydecay1 = getelementptr inbounds [65536 x i8], ptr %buffer, i32 0, i32 0 |
| 10 | + %call2 = call i32 @puts(ptr %arraydecay1) |
| 11 | + %arrayidx = getelementptr inbounds [65536 x i8], ptr %buffer, i32 0, i32 65535 |
| 12 | + %1 = load i8, ptr %arrayidx, align 1 |
13 | 13 | %conv = zext i8 %1 to i32
|
14 | 14 | ret i32 %conv
|
15 | 15 | }
|
16 | 16 |
|
17 |
| -declare i8* @strcpy(i8*, i8*) |
| 17 | +declare ptr @strcpy(ptr, ptr) |
18 | 18 |
|
19 |
| -declare i32 @puts(i8*) |
| 19 | +declare i32 @puts(ptr) |
20 | 20 |
|
21 | 21 | attributes #0 = { noinline nounwind optnone ssp }
|
22 | 22 |
|
|
0 commit comments