diff options
| author | Anna Zaks <ganna@apple.com> | 2016-02-02 01:03:11 +0000 |
|---|---|---|
| committer | Anna Zaks <ganna@apple.com> | 2016-02-02 01:03:11 +0000 |
| commit | cad7994c3b4f023767fbc5cf66ed4eeee940a149 (patch) | |
| tree | ac79e6b396f496411f35440ff6915a4025d680dd /llvm/test/Transforms/SafeStack/setjmp2.ll | |
| parent | 2c275cc6860bef6812dfe4f59b356ba917fa3284 (diff) | |
| download | bcm5719-llvm-cad7994c3b4f023767fbc5cf66ed4eeee940a149.tar.gz bcm5719-llvm-cad7994c3b4f023767fbc5cf66ed4eeee940a149.zip | |
[safestack] Make sure the unsafe stack pointer is popped in all cases
The unsafe stack pointer is only popped in moveStaticAllocasToUnsafeStack so it won't happen if there are no static allocas.
Fixes https://llvm.org/bugs/show_bug.cgi?id=26122
Differential Revision: http://reviews.llvm.org/D16339
llvm-svn: 259447
Diffstat (limited to 'llvm/test/Transforms/SafeStack/setjmp2.ll')
| -rw-r--r-- | llvm/test/Transforms/SafeStack/setjmp2.ll | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/test/Transforms/SafeStack/setjmp2.ll b/llvm/test/Transforms/SafeStack/setjmp2.ll index bb15d7e03ac..dc83c482420 100644 --- a/llvm/test/Transforms/SafeStack/setjmp2.ll +++ b/llvm/test/Transforms/SafeStack/setjmp2.ll @@ -12,8 +12,8 @@ ; CHECK: @foo(i32 %[[ARG:.*]]) define i32 @foo(i32 %size) nounwind uwtable safestack { entry: - ; CHECK: %[[DYNPTR:.*]] = alloca i8* - ; CHECK-NEXT: %[[SP:.*]] = load i8*, i8** @__safestack_unsafe_stack_ptr + ; CHECK: %[[SP:.*]] = load i8*, i8** @__safestack_unsafe_stack_ptr + ; CHECK-NEXT: %[[DYNPTR:.*]] = alloca i8* ; CHECK-NEXT: store i8* %[[SP]], i8** %[[DYNPTR]] ; CHECK-NEXT: %[[ZEXT:.*]] = zext i32 %[[ARG]] to i64 @@ -35,6 +35,7 @@ entry: ; CHECK: call void @funcall(i32* %[[ALLOCA]]) call void @funcall(i32* %a) + ; CHECK-NEXT: store i8* %[[SP:.*]], i8** @__safestack_unsafe_stack_ptr ret i32 0 } |

