[clang] [clang][analyzer] Add checker 'unix.cstring.MissingTerminatingZero' (PR #146664)

DonĂ¡t Nagy via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 3 05:48:49 PDT 2025


================
@@ -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


More information about the cfe-commits mailing list