================
@@ -870,12 +870,23 @@ void doNotInvalidateWhenPassedToSystemCalls(char *s) {
strlen(p);
strcpy(p, s);
strcpy(s, p);
+ // FIXME: We should stop analysis here, even if we emit no warnings, since
+ // overlapping buffers for strycpy is a fatal error.
strcpy(p, p);
memcpy(p, s, 1);
memcpy(s, p, 1);
memcpy(p, p, 1);
} // expected-warning {{leak}}
+void doNotInvalidateWhenPassedToSystemCalls2(char *s) {
+ char *p = malloc(12);
+ // FIXME: We should stop analysis here, even if we emit no warnings, since
+ // overlapping buffers for strycpy is a fatal error.
+ int a[4] = {0};
+ memcpy(a+2, a+1, 8);
+ (void)p;
+} // expected-warning {{leak}}
+
----------------
gamesh411 wrote:
On second thought, this still has some value, i' renaming this test case to
'overlappingMemcpyDoesNotSinkPath'.
https://github.com/llvm/llvm-project/pull/186802
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits