public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/99057] New: Memory leak in cp_parser_selection_statement
@ 2021-02-10 12:31 marxin at gcc dot gnu.org
  2021-02-10 12:34 ` [Bug c++/99057] " marxin at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-02-10 12:31 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 99057
           Summary: Memory leak in cp_parser_selection_statement
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: jason at gcc dot gnu.org, mpolacek at gcc dot gnu.org
  Target Milestone: ---

I see the following leak:

g++
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C
-c -Wduplicated-cond -wrapper valgrind,--leak-check=yes
...
==30789== 240 bytes in 6 blocks are definitely lost in loss record 1,620 of
1,879
==30789==    at 0x483977F: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==30789==    by 0x1DD4BEF: xrealloc (xmalloc.c:177)
==30789==    by 0xAD85B1: reserve<tree_node*> (vec.h:290)
==30789==    by 0xAD85B1: reserve (vec.h:1778)
==30789==    by 0xAD85B1: safe_push (vec.h:1887)
==30789==    by 0xAD85B1: cp_parser_selection_statement (parser.c:12341)
==30789==    by 0xAD85B1: cp_parser_statement(cp_parser*, tree_node*, bool,
bool*, vec<tree_node*, va_heap, vl_ptr>*, unsigned int*) (parser.c:11623)
==30789==    by 0xAD8712: cp_parser_statement_seq_opt(cp_parser*, tree_node*)
(parser.c:12112)
==30789==    by 0xAD87F0: cp_parser_compound_statement(cp_parser*, tree_node*,
int, bool) (parser.c:12062)
==30789==    by 0xAF60BF: cp_parser_function_body (parser.c:23991)
==30789==    by 0xAF60BF:
cp_parser_ctor_initializer_opt_and_function_body(cp_parser*, bool)
(parser.c:24042)
==30789==    by 0xAF7CCA:
cp_parser_function_definition_after_declarator(cp_parser*, bool)
(parser.c:29945)
==30789==    by 0xAF915D:
cp_parser_function_definition_from_specifiers_and_declarator (parser.c:29861)
==30789==    by 0xAF915D: cp_parser_init_declarator(cp_parser*, int,
cp_decl_specifier_seq*, vec<deferred_access_check, va_gc, vl_embed>*, bool,
bool, int, bool*, tree_node**, unsigned int*, tree_node**) (parser.c:21564)
==30789==    by 0xAFF477: cp_parser_single_declaration(cp_parser*,
vec<deferred_access_check, va_gc, vl_embed>*, bool, bool, bool*)
(parser.c:30441)
==30789==    by 0xAFF5F1:
cp_parser_template_declaration_after_parameters(cp_parser*, tree_node*, bool)
(parser.c:30013)
==30789==    by 0xAFFE0C: cp_parser_explicit_template_declaration(cp_parser*,
bool) (parser.c:30279)
==30789==    by 0xB02671: cp_parser_declaration(cp_parser*, tree_node*)
(parser.c:14009)

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

* [Bug c++/99057] Memory leak in cp_parser_selection_statement
  2021-02-10 12:31 [Bug c++/99057] New: Memory leak in cp_parser_selection_statement marxin at gcc dot gnu.org
@ 2021-02-10 12:34 ` marxin at gcc dot gnu.org
  2021-02-10 13:03 ` marxin at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-02-10 12:34 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2021-02-10

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

* [Bug c++/99057] Memory leak in cp_parser_selection_statement
  2021-02-10 12:31 [Bug c++/99057] New: Memory leak in cp_parser_selection_statement marxin at gcc dot gnu.org
  2021-02-10 12:34 ` [Bug c++/99057] " marxin at gcc dot gnu.org
@ 2021-02-10 13:03 ` marxin at gcc dot gnu.org
  2021-02-10 14:17 ` mpolacek at gcc dot gnu.org
  2021-02-11  3:54 ` mpolacek at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-02-10 13:03 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
And this one please for C FE:

$ cat wslay.i
   typedef long unsigned int size_t;
        typedef struct   {
        }
        __sigset_t;
                                            typedef int (*__compar_fn_t) (const
void *, const void *);
        extern __inline __attribute__ ((__gnu_inline__)) void * bsearch (const
void *__key, const void *__base, size_t __nmemb, size_t __size,   __compar_fn_t
__compar) {
        size_t __l, __u, __idx;
        int __comparison;
        while (__l < __u)     {
           if (__comparison < 0)  __u = __idx;
           else if (__comparison > 0)  __l = __idx + 1;
         }
      }

$ gcc wslay.i -O -Wduplicated-cond -fsyntax-only -wrapper
valgrind,--leak-check=yes
==26658== Memcheck, a memory error detector
==26658== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==26658== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==26658== Command: /home/marxin/bin/gcc/lib/gcc/x86_64-pc-linux-gnu/11.0.0/cc1
-fpreprocessed wslay.i -quiet -dumpdir a- -dumpbase wslay.i -dumpbase-ext .i
-mtune=generic -march=x86-64 -O -Wduplicated-cond -fsyntax-only -o /dev/null
==26658== 
==26658== 
==26658== HEAP SUMMARY:
==26658==     in use at exit: 540,404 bytes in 2,250 blocks
==26658==   total heap usage: 3,394 allocs, 1,144 frees, 1,156,250 bytes
allocated
==26658== 
==26658== 40 bytes in 1 blocks are definitely lost in loss record 18 of 741
==26658==    at 0x483977F: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==26658==    by 0x1ADADFF: xrealloc (xmalloc.c:177)
==26658==    by 0x8B7F55: reserve<tree_node*> (vec.h:290)
==26658==    by 0x8B7F55: reserve (vec.h:1778)
==26658==    by 0x8B7F55: safe_push (vec.h:1887)
==26658==    by 0x8B7F55: c_parser_if_statement (c-parser.c:6499)
==26658==    by 0x8B7F55: c_parser_statement_after_labels(c_parser*, bool*,
vec<tree_node*, va_heap, vl_ptr>*) (c-parser.c:6108)
==26658==    by 0x8B856A: c_parser_compound_statement_nostart(c_parser*)
(c-parser.c:5788)
==26658==    by 0x8D2C6D: c_parser_compound_statement(c_parser*, unsigned int*)
(c-parser.c:5597)
==26658==    by 0x8B6569: c_parser_statement_after_labels(c_parser*, bool*,
vec<tree_node*, va_heap, vl_ptr>*) (c-parser.c:6102)
==26658==    by 0x8D5993: c_parser_statement (c-parser.c:6074)
==26658==    by 0x8D5993: c_parser_c99_block_statement(c_parser*, bool*,
unsigned int*) (c-parser.c:6314)
==26658==    by 0x8D66E6: c_parser_while_statement(c_parser*, bool, unsigned
short, bool*) (c-parser.c:6634)
==26658==    by 0x8B6C90: c_parser_statement_after_labels(c_parser*, bool*,
vec<tree_node*, va_heap, vl_ptr>*) (c-parser.c:6114)
==26658==    by 0x8B856A: c_parser_compound_statement_nostart(c_parser*)
(c-parser.c:5788)
==26658==    by 0x8D2C6D: c_parser_compound_statement(c_parser*, unsigned int*)
(c-parser.c:5597)
==26658==    by 0x8D441F: c_parser_declaration_or_fndef(c_parser*, bool, bool,
bool, bool, bool, tree_node**, vec<c_token, va_heap, vl_ptr>, bool, tree_node*,
oacc_routine_data*, bool*) (c-parser.c:2539)

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

* [Bug c++/99057] Memory leak in cp_parser_selection_statement
  2021-02-10 12:31 [Bug c++/99057] New: Memory leak in cp_parser_selection_statement marxin at gcc dot gnu.org
  2021-02-10 12:34 ` [Bug c++/99057] " marxin at gcc dot gnu.org
  2021-02-10 13:03 ` marxin at gcc dot gnu.org
@ 2021-02-10 14:17 ` mpolacek at gcc dot gnu.org
  2021-02-11  3:54 ` mpolacek at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2021-02-10 14:17 UTC (permalink / raw)
  To: gcc-bugs

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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |mpolacek at gcc dot gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
-Wduplicated-cond -> mine

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

* [Bug c++/99057] Memory leak in cp_parser_selection_statement
  2021-02-10 12:31 [Bug c++/99057] New: Memory leak in cp_parser_selection_statement marxin at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-02-10 14:17 ` mpolacek at gcc dot gnu.org
@ 2021-02-11  3:54 ` mpolacek at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2021-02-11  3:54 UTC (permalink / raw)
  To: gcc-bugs

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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Fixed r11-7182-g27a804bc62805aedb1b097a00eb2c0059244680a.

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

end of thread, other threads:[~2021-02-11  3:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-10 12:31 [Bug c++/99057] New: Memory leak in cp_parser_selection_statement marxin at gcc dot gnu.org
2021-02-10 12:34 ` [Bug c++/99057] " marxin at gcc dot gnu.org
2021-02-10 13:03 ` marxin at gcc dot gnu.org
2021-02-10 14:17 ` mpolacek at gcc dot gnu.org
2021-02-11  3:54 ` mpolacek 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).