diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2012-07-21 08:29:45 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2012-07-21 08:29:45 +0000 |
commit | 61e2ff8f821beec2eefdbb21a5954f74b1c0a295 (patch) | |
tree | 83622d2e1b9b9d0f8f9ad3217d8889147a7dafff /test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll | |
parent | 60287963c7505180500d63b1c1b90f0f4b337430 (diff) |
Teach globalopt to play nice with leak checkers. This is a reapplication of
r160529 that was subsequently reverted. The fix was to not call
GV->eraseFromParent() right before the caller does the same. The existing
testcases already caught this bug if run under valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160602 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll')
-rw-r--r-- | test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll b/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll new file mode 100644 index 0000000000..0d5cbf5333 --- /dev/null +++ b/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll @@ -0,0 +1,20 @@ +; RUN: opt -globalopt -S -o - < %s | FileCheck %s + +@test1 = internal global i8* null + +define void @test1a() { +; CHECK: @test1a +; CHECK-NOT: store +; CHECK-NEXT: ret void + store i8* null, i8** @test1 + ret void +} + +define void @test1b(i8* %p) { +; CHECK: @test1b +; CHECK-NEXT: store +; CHECK-NEXT: ret void + store i8* %p, i8** @test1 + ret void +} + |