Summary: | missing warning on a buffer overflow with non-constant offset and constant size | ||
---|---|---|---|
Product: | gcc | Reporter: | Martin Sebor <msebor> |
Component: | tree-optimization | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | normal | Keywords: | diagnostic |
Priority: | P3 | ||
Version: | 9.0 | ||
Target Milestone: | 10.0 | ||
Host: | Target: | ||
Build: | Known to work: | 10.0 | |
Known to fail: | 9.3.0 | Last reconfirmed: | |
Bug Depends on: | |||
Bug Blocks: | 88443 |
Description
Martin Sebor
2018-12-11 00:25:15 UTC
Thanks to r279392 GCC 10 detects the certain overflow in g: pr88441.c: In function āgā: pr88441.c:13:5: warning: writing 8 bytes into a region of size 7 [-Wstringop-overflow=] 13 | __builtin_memcpy (a + i, p, sizeof a); // missing -Wstringop-overflow | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pr88441.c:1:6: note: at offset 0 to object āaā with size 8 declared here 1 | char a[8]; | ^ It feels like a separate question whether the possible/likely overflow should also be diagnosed when it's not certain. Diagnosing it would be a design change for the overflow warnings that are currently meant to trigger for certain overflows, so I'm going to resolve this as fixed. |