[clang] [analyzer] use `invalidateRegions()` in `VisitGCCAsmStmt` (PR #109838)
Pavel Skripkin via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 4 00:02:38 PDT 2024
================
@@ -40,7 +42,19 @@ void testInlineAsmMemcpyUninit(void)
{
int a[10], b[10] = {}, c;
MyMemcpy(&a[1], &b[1], sizeof(b) - sizeof(b[1]));
- c = a[0]; // expected-warning{{Assigned value is garbage or undefined}}
+ c = a[0]; // FIXME: should be warning about uninitialized value, but invalidateRegions() also
+ // invalidates super region.
+}
+
+void testInlineAsmMemcpyUninitLoop(const void *src, unsigned long len)
+{
+ int a[10], c;
+ unsigned long toCopy = sizeof(a) < len ? sizeof(a) : len;
+
+ MyMemcpy(a, src, toCopy);
+
+ for (unsigned long i = 0; i < toCopy; ++i)
+ c = a[i]; // no-warning
----------------
pskrgag wrote:
Rewrote test in linear manner. It's just possible to directly access 1st element to test warning
https://github.com/llvm/llvm-project/pull/109838
More information about the cfe-commits
mailing list