diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp index 42b3cef470c..d0fb0d32b3a 100644 --- a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp @@ -1598,8 +1598,8 @@ Value *LibCallSimplifier::optimizePrintFString(CallInst *CI, IRBuilder<> &B) {    if (!CI->use_empty())      return nullptr; -  // printf("x") -> putchar('x'), even for '%'. -  if (FormatStr.size() == 1) +  // printf("x") -> putchar('x'), even for "%" and "%%". +  if (FormatStr.size() == 1 || FormatStr == "%%")      return emitPutChar(B.getInt32(FormatStr[0]), B, TLI);    // printf("%s", "a") --> putchar('a')  | 

