OLD | NEW |
1 ; RUN: opt %s -minsfi-expand-allocas -S | FileCheck %s | 1 ; RUN: opt %s -minsfi-expand-allocas -S | FileCheck %s |
2 | 2 |
3 target datalayout = "p:32:32:32" | 3 target datalayout = "p:32:32:32" |
4 target triple = "le32-unknown-nacl" | 4 target triple = "le32-unknown-nacl" |
5 | 5 |
6 @__sfi_stack_ptr = external global i32 | 6 @__sfi_stack_ptr = external global i32 |
7 | 7 |
8 ; CHECK: @__sfi_stack_ptr1 = internal global i32 | 8 ; CHECK: @__sfi_stack_ptr1 = internal global i32 |
9 | 9 |
10 define i8* @test_correct_global_var_used() { | 10 define i8* @test_correct_global_var_used() { |
11 %ptr = alloca i8 | 11 %ptr = alloca i8 |
12 ret i8* %ptr | 12 ret i8* %ptr |
13 } | 13 } |
14 | 14 |
15 ; CHECK-LABEL: define i8* @test_correct_global_var_used() { | 15 ; CHECK-LABEL: define i8* @test_correct_global_var_used() { |
16 ; CHECK-NEXT: %frame_top = load i32* @__sfi_stack_ptr1 | 16 ; CHECK-NEXT: %frame_top = load i32, i32* @__sfi_stack_ptr1 |
17 ; CHECK-NEXT: %1 = sub i32 %frame_top, 1 | 17 ; CHECK-NEXT: %1 = sub i32 %frame_top, 1 |
18 ; CHECK-NEXT: %ptr = inttoptr i32 %1 to i8* | 18 ; CHECK-NEXT: %ptr = inttoptr i32 %1 to i8* |
19 ; CHECK-NEXT: ret i8* %ptr | 19 ; CHECK-NEXT: ret i8* %ptr |
20 ; CHECK-NEXT: } | 20 ; CHECK-NEXT: } |
21 | 21 |
22 define i32 @_start_minsfi(i32 %args) { | 22 define i32 @_start_minsfi(i32 %args) { |
23 ret i32 0 | 23 ret i32 0 |
24 } | 24 } |
OLD | NEW |