summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-04-26 18:16:49 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-04-26 18:16:49 +0000
commit8cd77baebc7620b18b4b830d52416762860c291b (patch)
tree6ff39c3a0577f18f5783d0817c69a994328d8077 /llvm/test
parent1c3f65a18cad4d46e8683e47430694c8d8f2ccbe (diff)
downloadbcm5719-llvm-8cd77baebc7620b18b4b830d52416762860c291b.tar.gz
bcm5719-llvm-8cd77baebc7620b18b4b830d52416762860c291b.zip
[SimplifyLibCalls] sprintf doesn't copy null bytes
sprintf doesn't read or copy the terminating null byte from it's string operands. sprintf will append it's own after processing all of the format specifiers. This fixes PR27526. llvm-svn: 267580
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/InstCombine/sprintf-1.ll5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/test/Transforms/InstCombine/sprintf-1.ll b/llvm/test/Transforms/InstCombine/sprintf-1.ll
index ddf2f2f88e7..0c7fbcb2f8e 100644
--- a/llvm/test/Transforms/InstCombine/sprintf-1.ll
+++ b/llvm/test/Transforms/InstCombine/sprintf-1.ll
@@ -65,8 +65,9 @@ define void @test_simplify5(i8* %dst, i8* %str) {
%fmt = getelementptr [3 x i8], [3 x i8]* @percent_s, i32 0, i32 0
call i32 (i8*, i8*, ...) @sprintf(i8* %dst, i8* %fmt, i8* %str)
; CHECK-NEXT: [[STRLEN:%[a-z0-9]+]] = call i32 @strlen(i8* %str)
-; CHECK-NEXT: [[LENINC:%[a-z0-9]+]] = add i32 [[STRLEN]], 1
-; CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dst, i8* %str, i32 [[LENINC]], i32 1, i1 false)
+; CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dst, i8* %str, i32 [[STRLEN]], i32 1, i1 false)
+; CHECK-NEXT: [[NUL:%[a-z0-9]+]] = getelementptr i8, i8* %dst, i32 [[STRLEN]]
+; CHECK-NEXT: store i8 0, i8* [[NUL]], align 1
ret void
; CHECK-NEXT: ret void
}
OpenPOWER on IntegriCloud