20 lines · c
1// RUN: %clang_analyze_cc1 -w -analyzer-checker=unix.cstring.BadSizeArg \2// RUN: -verify %s3 4// expected-no-diagnostics5 6typedef __SIZE_TYPE__ size_t;7// The last parameter is normally size_t but the test is about the abnormal8// situation when it's not a size_t.9size_t strlcpy(char *, const char *, int);10 11enum WeirdDecl {12 AStrangeWayToSpecifyStringLengthCorrectly = 10UL,13 AStrangeWayToSpecifyStringLengthIncorrectly = 5UL14};15void testWeirdDecls(const char *src) {16 char dst[10];17 strlcpy(dst, src, AStrangeWayToSpecifyStringLengthCorrectly); // no-crash18 strlcpy(dst, src, AStrangeWayToSpecifyStringLengthIncorrectly); // no-crash // no-warning19}20