================ @@ -0,0 +1,91 @@ +// RUN: %clang_analyze_cc1 -analyzer-checker=unix.cstring.MissingTerminatingZero -verify %s + +#include "Inputs/system-header-simulator.h" + +void clang_analyzer_eval(int); + +size_t test_init_compound(int i) { + char src1[6] = {1,2,3,4,5,6}; + char src2[6] = {1,2,3,0,5,6}; + switch (i) { + case 1: + return strlen(src1); // expected-warning{{String contains no terminating zero}} + case 2: + return strlen(src1 + 1); // expected-warning{{String contains no terminating zero}} + case 3: + return strlen(src2); + case 4: + return strlen(src2 + 4); // expected-warning{{String contains no terminating zero}} + case 5: + return strlen(src2 + 3); + } + src1[5] = 0; + return strlen(src1); +} + +typedef char CHAR; ---------------- NagyDonat wrote:
Why do you use this typedef? https://github.com/llvm/llvm-project/pull/146664 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits