public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug driver/34478]  New: Memory leak in genconditions
@ 2007-12-15 11:47 wuhui1973 at 21cn dot com
  2007-12-15 12:04 ` [Bug driver/34478] " pinskia at gcc dot gnu dot org
  0 siblings, 1 reply; 2+ messages in thread
From: wuhui1973 at 21cn dot com @ 2007-12-15 11:47 UTC (permalink / raw)
  To: gcc-bugs

in genconditions source, can see following code:

183    int main(int argc, char **argv)
184    {
         ...
194      if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
195         return (FATAL_EXIT_CODE);
196     
197       condition_table = htab_create (1000, hash_c_test, cmp_c_test, NULL);
          ...
       }

While in function init_md_reader, condition_table has been allocated as
following:

907  int
908  init_md_reader (const char *filename)
909  {
        ...
928     condition_table = htab_create (n_insn_conditions,
929                      hash_c_test, cmp_c_test, NULL);
        ...
}

condition_table is allocated by xalloc, which seems not control by GC, so it
seems some memory leak here.
Suggest to add
if (condition_table)
   delete condition_table;

just before line 197 above.


-- 
           Summary: Memory leak in genconditions
           Product: gcc
           Version: 3.4.6
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: driver
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: wuhui1973 at 21cn dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34478


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

* [Bug driver/34478] Memory leak in genconditions
  2007-12-15 11:47 [Bug driver/34478] New: Memory leak in genconditions wuhui1973 at 21cn dot com
@ 2007-12-15 12:04 ` pinskia at gcc dot gnu dot org
  0 siblings, 0 replies; 2+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-12-15 12:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2007-12-15 12:04 -------
Fixed by:
r110119 | zack | 2006-01-23 07:15:05 -0800 (Mon, 23 Jan 2006) | 37 lines

 r110123@banpei:  zack | 2006-01-22 14:44:34 -0800
        * genconditions.c (condition_table, add_condition): Delete.
        (write_conditions): Don't emit n_insn_conditions nor
        insn_elision_unavailable.  Issue the gcc version #ifdef here,
        inside the table, with no #else clause ...
        (write_header): ...not here.
        (write_writer): New function.
        (main): Don't initialize condition_table.  Use add_c_test.
        Call write_writer.
        * gensupport.c (init_md_reader_args_cb): Handle multiple input
        files on the command line.
        (maybe_eval_c_test): Don't check insn_elision_unavailable.
        Return -1 if there is no entry in the table, don't abort.
        (add_c_test, traverse_c_tests): New functions.
        * gensupport.h (insn_elision_unavailable, insn_conditions)
        (n_insn_conditions): Delete declarations.
        (add_c_test, traverse_c_tests): Declare.
        * read-rtl.c: Include gensupport.h.
        (read_conditions): New function.
        (read_rtx): If read_rtx_1 returns 0, treat as EOF.
        (read_rtx_1): If we get EOF when we were looking for an initial
        open paren, return 0.  Call read_conditions when appropriate.
        * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
        dummy-conditions.o.  Eliminate references to insn-conditions.o,
        or change them to build/gencondmd.o, as appropriate.  Remove
        insn-constants.h from $(simple_generated_h) and insn-conditions.c
        from $(simple_generated_c).  For all files remaining in those
        two lists, add insn-conditions.md to the generator command line.
        Give insn-constants.h/s-constants their own rules.  Add rules
        for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
        (build/read-rtl.o): Depend on gensupport.h.
        (genprognormal): Include preds.
        (genprogearly): Rename genprognoprint; only difference is now that
        they don't link with $(BUILD_PRINT).
        * dummy-conditions.c: Delete.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.2.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34478


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

end of thread, other threads:[~2007-12-15 12:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-15 11:47 [Bug driver/34478] New: Memory leak in genconditions wuhui1973 at 21cn dot com
2007-12-15 12:04 ` [Bug driver/34478] " pinskia at gcc dot gnu dot 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).