public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/87296] [8/9/10 Regression] -Wstringop-overflow false positive due to using MEM_REF type of &MEM
[not found] <bug-87296-4@http.gcc.gnu.org/bugzilla/>
@ 2020-04-18 18:49 ` law at redhat dot com
2020-10-26 18:31 ` [Bug middle-end/87296] [8/9/10/11 " mostlyaspambox at protonmail dot com
` (2 subsequent siblings)
3 siblings, 0 replies; 4+ messages in thread
From: law at redhat dot com @ 2020-04-18 18:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87296
Jeffrey A. Law <law at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |sbergman at redhat dot com
--- Comment #8 from Jeffrey A. Law <law at redhat dot com> ---
*** Bug 92893 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/87296] [8/9/10/11 Regression] -Wstringop-overflow false positive due to using MEM_REF type of &MEM
[not found] <bug-87296-4@http.gcc.gnu.org/bugzilla/>
2020-04-18 18:49 ` [Bug middle-end/87296] [8/9/10 Regression] -Wstringop-overflow false positive due to using MEM_REF type of &MEM law at redhat dot com
@ 2020-10-26 18:31 ` mostlyaspambox at protonmail dot com
2021-02-12 0:32 ` msebor at gcc dot gnu.org
2021-02-12 0:34 ` msebor at gcc dot gnu.org
3 siblings, 0 replies; 4+ messages in thread
From: mostlyaspambox at protonmail dot com @ 2020-10-26 18:31 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87296
mostlyaspambox at protonmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mostlyaspambox at protonmail dot c
| |om
--- Comment #9 from mostlyaspambox at protonmail dot com ---
I think I've also hit this or a variation of it with the following reproducer:
```
#include <string.h>
#include <algorithm>
#include <assert.h>
#include <array>
struct Base1
{
char arr[5];
};
struct Base2
{
char arr[25];
};
struct A : Base1, Base2
{
};
extern const char* str;
void f(A& a)
{
Base1& base1 = a;
std::fill(std::begin(base1.arr), std::end(base1.arr), ' ');
Base2& base2 = a;
strncpy(reinterpret_cast<char*>(&base2), str, 6);
}
int main()
{
A a{};
f(a);
}
```
If `a` is created inside `f` instead of passed in by reference, there is no
error.
When compiled with `g++ -std=c++11 -O2 -Wall -Wextra -fno-strict-aliasing
-fwrapv -fno-aggressive-loop-optimizations -fsanitize=undefined` on x86-64 with
gcc 8.1 this prints:
test.cpp:27:12: warning: 'char* strncpy(char*, const char*, size_t)' writing 6
bytes into a region of size 5 overflows the destination [-Wstringop-overflow=]
strncpy(reinterpret_cast<char*>(&base2), str, 6);
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If `str` in the strncpy call is replaced with a string literal, there is the
same warning unless the literal has length 6 including the null terminator.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/87296] [8/9/10/11 Regression] -Wstringop-overflow false positive due to using MEM_REF type of &MEM
[not found] <bug-87296-4@http.gcc.gnu.org/bugzilla/>
2020-04-18 18:49 ` [Bug middle-end/87296] [8/9/10 Regression] -Wstringop-overflow false positive due to using MEM_REF type of &MEM law at redhat dot com
2020-10-26 18:31 ` [Bug middle-end/87296] [8/9/10/11 " mostlyaspambox at protonmail dot com
@ 2021-02-12 0:32 ` msebor at gcc dot gnu.org
2021-02-12 0:34 ` msebor at gcc dot gnu.org
3 siblings, 0 replies; 4+ messages in thread
From: msebor at gcc dot gnu.org @ 2021-02-12 0:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87296
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Target Milestone|8.5 |11.0
Status|NEW |RESOLVED
Blocks| |88443
Assignee|unassigned at gcc dot gnu.org |msebor at gcc dot gnu.org
--- Comment #10 from Martin Sebor <msebor at gcc dot gnu.org> ---
GCC 11 no longer warns for these test cases, most likely as a result of
r11-3827.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88443
[Bug 88443] [meta-bug] bogus/missing -Wstringop-overflow warnings
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/87296] [8/9/10/11 Regression] -Wstringop-overflow false positive due to using MEM_REF type of &MEM
[not found] <bug-87296-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2021-02-12 0:32 ` msebor at gcc dot gnu.org
@ 2021-02-12 0:34 ` msebor at gcc dot gnu.org
3 siblings, 0 replies; 4+ messages in thread
From: msebor at gcc dot gnu.org @ 2021-02-12 0:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87296
--- Comment #11 from Martin Sebor <msebor at gcc dot gnu.org> ---
I should note: The changes are too intrusive to backport.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-02-12 0:34 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-87296-4@http.gcc.gnu.org/bugzilla/>
2020-04-18 18:49 ` [Bug middle-end/87296] [8/9/10 Regression] -Wstringop-overflow false positive due to using MEM_REF type of &MEM law at redhat dot com
2020-10-26 18:31 ` [Bug middle-end/87296] [8/9/10/11 " mostlyaspambox at protonmail dot com
2021-02-12 0:32 ` msebor at gcc dot gnu.org
2021-02-12 0:34 ` msebor at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).