brain thinking memcpy, fingers thinking memset :)

llvm-svn: 65701
This commit is contained in:
Chris Lattner 2009-02-28 18:31:01 +00:00
parent 789dee38a5
commit ca05dfef65
1 changed files with 2 additions and 2 deletions

View File

@ -518,13 +518,13 @@ void CodeGenFunction::EmitAggregateCopy(llvm::Value *DestPtr,
llvm::Value *SrcPtr, QualType Ty) {
assert(!Ty->isAnyComplexType() && "Shouldn't happen for complex");
// Aggregate assignment turns into llvm.memset. This is almost valid per
// Aggregate assignment turns into llvm.memcpy. This is almost valid per
// C99 6.5.16.1p3, which states "If the value being stored in an object is
// read from another object that overlaps in anyway the storage of the first
// object, then the overlap shall be exact and the two objects shall have
// qualified or unqualified versions of a compatible type."
//
// memset is not defined if the source and destination pointers are exactly
// memcpy is not defined if the source and destination pointers are exactly
// equal, but other compilers do this optimization, and almost every memcpy
// implementation handles this case safely. If there is a libc that does not
// safely handle this, we can add a target hook.