public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/98989] New: missing -Wfree-nonheap-object freeing std::strings over 15 bytes long
@ 2021-02-07 22:23 msebor at gcc dot gnu.org
  2021-02-07 22:44 ` [Bug middle-end/98989] " msebor at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: msebor at gcc dot gnu.org @ 2021-02-07 22:23 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98989

            Bug ID: 98989
           Summary: missing -Wfree-nonheap-object freeing std::strings
                    over 15 bytes long
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

Given the test case below, -Wfree-nonheap-object detects the invalid attempt to
free the std::string buffer provided the string constant it's initialized with
is no more than 15 characters long (plus the terminating nul).  But the option
fails to diagnose the invalid call once the string length is 16 or more.

#include <string>

void f ()
{
  std::string str (STR);
  char *p = &str[0];
  free (p);
}

$ g++ -DSTR='"abcdefghijklmno"' -O2 -S -Wall t.C
t.C: In function ‘void f()’:
t.C:7:8: warning: ‘void free(void*)’ called on unallocated object ‘str’
[-Wfree-nonheap-object]
    7 |   free (p);
      |   ~~~~~^~~
t.C:5:15: note: declared here
    5 |   std::string str (STR);
      |               ^~~

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-02-07 23:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-07 22:23 [Bug middle-end/98989] New: missing -Wfree-nonheap-object freeing std::strings over 15 bytes long msebor at gcc dot gnu.org
2021-02-07 22:44 ` [Bug middle-end/98989] " msebor at gcc dot gnu.org
2021-02-07 22:59 ` msebor at gcc dot gnu.org
2021-02-07 23:22 ` 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).