mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-14 06:37:33 +00:00
Verify that the alignment argument to llvm.memcpy is a constant
integer, PR2318. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55228 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
dbf7aa5b4b
commit
259f88e3c9
@ -1273,6 +1273,16 @@ void Verifier::visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI) {
|
||||
switch (ID) {
|
||||
default:
|
||||
break;
|
||||
case Intrinsic::memcpy_i32:
|
||||
case Intrinsic::memcpy_i64:
|
||||
case Intrinsic::memmove_i32:
|
||||
case Intrinsic::memmove_i64:
|
||||
case Intrinsic::memset_i32:
|
||||
case Intrinsic::memset_i64:
|
||||
Assert1(isa<ConstantInt>(CI.getOperand(4)),
|
||||
"alignment argument of memory intrinsics must be a constant int",
|
||||
&CI);
|
||||
break;
|
||||
case Intrinsic::init_trampoline:
|
||||
Assert1(isa<Function>(CI.getOperand(2)->stripPointerCasts()),
|
||||
"llvm.init_trampoline parameter #2 must resolve to a function.",
|
||||
|
11
test/Verifier/2008-08-22-MemCpyAlignment.ll
Normal file
11
test/Verifier/2008-08-22-MemCpyAlignment.ll
Normal file
@ -0,0 +1,11 @@
|
||||
; RUN: not llvm-as -f %s -o /dev/null |& grep {alignment argument of memory intrinsics must be a constant int}
|
||||
; PR2318
|
||||
|
||||
define void @x(i8* %a, i8* %src, i64 %len, i32 %align) nounwind {
|
||||
entry:
|
||||
tail call void @llvm.memcpy.i64( i8* %a, i8* %src, i64 %len, i32 %align) nounwind
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @llvm.memcpy.i64( i8* %a, i8* %src, i64 %len, i32)
|
||||
|
Loading…
x
Reference in New Issue
Block a user