diff options
Diffstat (limited to 'test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll')
-rw-r--r-- | test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll b/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll new file mode 100644 index 0000000..766c227 --- /dev/null +++ b/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll @@ -0,0 +1,17 @@ +; Make sure that functions are removed successfully if they are referred to by +; a global that is dead. Make sure any globals they refer to die as well. + +; RUN: opt < %s -globaldce -S | not grep foo + +;; Unused, kills %foo +@b = internal global i32 ()* @foo ; <i32 ()**> [#uses=0] + +;; Should die when function %foo is killed +@foo.upgrd.1 = internal global i32 7 ; <i32*> [#uses=1] + + ;; dies when %b dies. +define internal i32 @foo() { + %ret = load i32* @foo.upgrd.1 ; <i32> [#uses=1] + ret i32 %ret +} + |