174989affSNico Weber // RUN: %clangxx -O0 -g %s -o %t && %run %t
274989affSNico Weber
3*975fa725SPaul Robinson // UNSUPPORTED: target={{.*linux.*}}
474989affSNico Weber
574989affSNico Weber #include <stdio.h>
674989affSNico Weber #include <stdlib.h>
774989affSNico Weber #include <string.h>
874989affSNico Weber
test1()974989affSNico Weber void test1() {
1074989affSNico Weber const char src[] = "abc";
1174989affSNico Weber char dst[7] = {'x', 'y', 'z', 0};
1274989affSNico Weber size_t len;
1374989affSNico Weber
1474989affSNico Weber len = strlcpy(dst, src, sizeof(dst));
1574989affSNico Weber printf("%s %zu ", dst, len);
1674989affSNico Weber }
1774989affSNico Weber
test2()1874989affSNico Weber void test2() {
1974989affSNico Weber const char src[] = "abc";
2074989affSNico Weber char dst[7] = {0};
2174989affSNico Weber size_t len;
2274989affSNico Weber
2374989affSNico Weber len = strlcat(dst, src, sizeof(dst));
2474989affSNico Weber printf("%s %zu ", dst, len);
2574989affSNico Weber }
2674989affSNico Weber
test3()2774989affSNico Weber void test3() {
2874989affSNico Weber const char src[] = "abc";
2974989affSNico Weber char dst[4] = {'x', 'y', 'z', 0};
3074989affSNico Weber size_t len;
3174989affSNico Weber
3274989affSNico Weber len = strlcat(dst, src, sizeof(dst));
3374989affSNico Weber printf("%s %zu ", dst, len);
3474989affSNico Weber }
3574989affSNico Weber
test4()3674989affSNico Weber void test4() {
3774989affSNico Weber const char src[] = "";
3874989affSNico Weber char dst[4] = {'x', 'y', 'z', 0};
3974989affSNico Weber size_t len;
4074989affSNico Weber
4174989affSNico Weber len = strlcat(dst, src, sizeof(dst));
4274989affSNico Weber printf("%s %zu\n", dst, len);
4374989affSNico Weber }
4474989affSNico Weber
main(void)4574989affSNico Weber int main(void) {
4674989affSNico Weber test1();
4774989affSNico Weber test2();
4874989affSNico Weber test3();
4974989affSNico Weber test4();
5074989affSNico Weber
5174989affSNico Weber // CHECK: abc 3 abc 3 xyz 3 0
5274989affSNico Weber
5374989affSNico Weber return 0;
5474989affSNico Weber }
55