================ @@ -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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits