Fix IRgen of __builtin_memset.

- Fix test case to not only have negative tests.

llvm-svn: 64674
This commit is contained in:
Daniel Dunbar 2009-02-16 21:52:05 +00:00
parent 58b0589d73
commit e28b359881
2 changed files with 7 additions and 2 deletions

View File

@ -280,7 +280,8 @@ RValue CodeGenFunction::EmitBuiltinExpr(unsigned BuiltinID, const CallExpr *E) {
case Builtin::BI__builtin_memset: {
Value *Address = EmitScalarExpr(E->getArg(0));
Builder.CreateCall4(CGM.getMemSetFn(), Address,
EmitScalarExpr(E->getArg(1)),
Builder.CreateTrunc(EmitScalarExpr(E->getArg(1)),
llvm::Type::Int8Ty),
EmitScalarExpr(E->getArg(2)),
llvm::ConstantInt::get(llvm::Type::Int32Ty, 1));
return RValue::get(Address);

View File

@ -1,4 +1,8 @@
// RUN: clang -emit-llvm -o - %s | not grep __builtin
// RUN: clang -arch i386 -emit-llvm -o %t %s &&
// RUN: grep '@llvm.memset.i32' %t &&
// RUN: grep '@llvm.memcpy.i32' %t &&
// RUN: grep '@llvm.memmove.i32' %t &&
// RUN: grep __builtin %t | count 0
int main(int argc, char **argv) {
unsigned char a = 0x11223344;