1. Revert "[SLC] sprintf(dst, "%s", str) -> strcpy(dst, str)" (details)
Commit 3e7403a1346f9644511170e0b29b5adf68996309 by martin
Revert "[SLC] sprintf(dst, "%s", str) -> strcpy(dst, str)"

This reverts commit 6dbf0cfcf789365493f70ae69df8a7a59be41c75.

That commit caused failed assertions, e.g. like this:

$ cat sprintf-strcpy.c
char *ptr; void func(void) { ptr += sprintf(ptr, "%s", ""); }

$ clang -c sprintf-strcpy.c -O2 -target x86_64-linux-gnu
clang: ../lib/IR/Value.cpp:473: void llvm::Value::doRAUW(llvm::Value*,
llvm::Value::ReplaceMetadataUses): Assertion `New->getType() ==
getType() && "replaceAllUses of value with new value of different
type!"' failed.
The file was modifiedllvm/test/Transforms/InstCombine/sprintf-1.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/2010-05-30-memcpy-Struct.ll (diff)
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp (diff)