diff options
author | Jim Grosbach <grosbach@apple.com> | 2012-02-01 00:08:17 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2012-02-01 00:08:17 +0000 |
commit | d0e277d272d517ca1cda368267d199f0da7cad95 (patch) | |
tree | 632f0e1cf045667d851f80f4ad3cc8472de1e8db /test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll | |
parent | 24dda217052b48373ed89d043a778aabb2f65080 (diff) | |
download | external_llvm-d0e277d272d517ca1cda368267d199f0da7cad95.tar.gz external_llvm-d0e277d272d517ca1cda368267d199f0da7cad95.tar.bz2 external_llvm-d0e277d272d517ca1cda368267d199f0da7cad95.zip |
Disable InstCombine unsafe folding bitcasts of calls w/ varargs.
Changing arguments from being passed as fixed to varargs is unsafe, as
the ABI may require they be handled differently (stack vs. register, for
example).
Remove two tests which rely on the bitcast being folded into the direct
call, which is exactly the transformation that's unsafe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149457 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll')
-rw-r--r-- | test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll b/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll deleted file mode 100644 index 23b606779e..0000000000 --- a/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll +++ /dev/null @@ -1,23 +0,0 @@ -; Ignore stderr, we expect warnings there -; RUN: opt < %s -instcombine 2> /dev/null -S | not grep bitcast - -define void @a() { - ret void -} - -define signext i32 @b(i32* inreg %x) { - ret i32 0 -} - -define void @c(...) { - ret void -} - -define void @g(i32* %y) { - call void bitcast (void ()* @a to void (i32*)*)( i32* noalias %y ) - call <2 x i32> bitcast (i32 (i32*)* @b to <2 x i32> (i32*)*)( i32* inreg null ) ; <<2 x i32>>:1 [#uses=0] - %x = call i64 bitcast (i32 (i32*)* @b to i64 (i32)*)( i32 0 ) ; <i64> [#uses=0] - call void bitcast (void (...)* @c to void (i32)*)( i32 0 ) - call void bitcast (void (...)* @c to void (i32)*)( i32 zeroext 0 ) - ret void -} |