diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2008-11-24 03:41:24 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2008-11-24 03:41:24 +0000 |
commit | 02ff308aa1c165d37fcf35f618243180ee68eedd (patch) | |
tree | 063f9163cfe13c002a1c88b27aad8e4e0f493c4f /test/Analysis | |
parent | 9f22a4aaaf2bdde843e0b32f85a1951f12f257d5 (diff) | |
download | external_llvm-02ff308aa1c165d37fcf35f618243180ee68eedd.zip external_llvm-02ff308aa1c165d37fcf35f618243180ee68eedd.tar.gz external_llvm-02ff308aa1c165d37fcf35f618243180ee68eedd.tar.bz2 |
Extend the 'noalias' attribute to function return values. This is intended to
indicate functions that allocate, such as operator new, or list::insert. The
actual definition is slightly less strict (for now).
No changes to the bitcode reader/writer, asm printer or verifier were needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59934 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Analysis')
-rw-r--r-- | test/Analysis/BasicAA/2008-11-23-NoaliasRet.ll | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/Analysis/BasicAA/2008-11-23-NoaliasRet.ll b/test/Analysis/BasicAA/2008-11-23-NoaliasRet.ll new file mode 100644 index 0000000..d2e823e --- /dev/null +++ b/test/Analysis/BasicAA/2008-11-23-NoaliasRet.ll @@ -0,0 +1,12 @@ +; RUN: llvm-as < %s | opt -aa-eval |& grep {1 no alias response} + +declare noalias i32* @_Znwj(i32 %x) nounwind + +define i32 @foo() { + %A = call i32* @_Znwj(i32 4) + %B = call i32* @_Znwj(i32 4) + store i32 1, i32* %A + store i32 2, i32* %B + %C = load i32* %A + ret i32 %C +} |