diff options
author | Chris Lattner <sabre@nondot.org> | 2002-05-24 21:27:41 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-05-24 21:27:41 +0000 |
commit | 77ff8fa9f94c773856e3a3869f083a150027f73e (patch) | |
tree | 6c28bd131bc9c891cd73c01f5e916106cf475116 /test | |
parent | 76ec6e1dcc07260eb321f3695b3d12860776125c (diff) | |
download | external_llvm-77ff8fa9f94c773856e3a3869f083a150027f73e.zip external_llvm-77ff8fa9f94c773856e3a3869f083a150027f73e.tar.gz external_llvm-77ff8fa9f94c773856e3a3869f083a150027f73e.tar.bz2 |
Testcases to show what -funcresolve does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2744 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Transforms/FunctionResolve/Makefile | 10 | ||||
-rw-r--r-- | test/Transforms/FunctionResolve/basictest.ll | 15 | ||||
-rw-r--r-- | test/Transforms/FunctionResolve/retmismatch1.ll | 22 | ||||
-rw-r--r-- | test/Transforms/FunctionResolve/retmismatch2.ll | 23 |
4 files changed, 70 insertions, 0 deletions
diff --git a/test/Transforms/FunctionResolve/Makefile b/test/Transforms/FunctionResolve/Makefile new file mode 100644 index 0000000..91acd4d --- /dev/null +++ b/test/Transforms/FunctionResolve/Makefile @@ -0,0 +1,10 @@ + +LEVEL = ../../../.. +include $(LEVEL)/test/Makefile.tests + +TESTS := $(wildcard *.ll) + +all:: $(addprefix Output/, $(TESTS:%.ll=%.ll.out)) + +Output/%.ll.out: %.ll Output/.dir $(LOPT) + -$(TESTRUNR) $< diff --git a/test/Transforms/FunctionResolve/basictest.ll b/test/Transforms/FunctionResolve/basictest.ll new file mode 100644 index 0000000..c21142d --- /dev/null +++ b/test/Transforms/FunctionResolve/basictest.ll @@ -0,0 +1,15 @@ +; RUN: if as < %s | opt -funcresolve | dis | grep '\.\.\.' | grep call +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi + +declare int %foo(...) + +int %foo(int %x, float %y) { + ret int %x +} + +int %bar() { + %x = call int(...)* %foo(double 12.5, int 48) + ret int %x +} diff --git a/test/Transforms/FunctionResolve/retmismatch1.ll b/test/Transforms/FunctionResolve/retmismatch1.ll new file mode 100644 index 0000000..7cd055dc6 --- /dev/null +++ b/test/Transforms/FunctionResolve/retmismatch1.ll @@ -0,0 +1,22 @@ +; This shows where the function is called with the prototype indicating a +; return type exists, but it really doesn't. +; RUN: if as < %s | opt -funcresolve +; RUN: then echo "opt ok" +; RUN: else exit 1 # Make sure opt doesn't abort! +; RUN: fi +; +; RUN: if as < %s | opt -funcresolve | dis | grep '\.\.\.' | grep call +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi + +declare int %foo(...) + +void %foo(int %x, float %y) { + ret void +} + +int %bar() { + %x = call int(...)* %foo(double 12.5, int 48) + ret int %x +} diff --git a/test/Transforms/FunctionResolve/retmismatch2.ll b/test/Transforms/FunctionResolve/retmismatch2.ll new file mode 100644 index 0000000..606f92f --- /dev/null +++ b/test/Transforms/FunctionResolve/retmismatch2.ll @@ -0,0 +1,23 @@ +; This shows where the function is called with the prototype indicating a +; return type doesn't exists, but it really does. +; +; RUN: if as < %s | opt -funcresolve +; RUN: then echo "opt ok" +; RUN: else exit 1 # Make sure opt doesn't abort! +; RUN: fi +; +; RUN: if as < %s | opt -funcresolve | dis | grep '\.\.\.' | grep call +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi + +declare void %foo(...) + +int %foo(int %x, float %y) { + ret int %x +} + +int %bar() { + call void (...)* %foo(double 12.5, int 48) + ret int 6 +} |