cppinit.c (cpp_start_read): Free the imacros list as we traverse it.
* cppinit.c (cpp_start_read): Free the imacros list as we traverse it. Don't free the chains before returning. (_cpp_push_next_buffer): Only try pushing buffers if we've completed -imacros handling. From-SVN: r45349
This commit is contained in:
parent
058466a1a1
commit
53aabfbce9
@ -1,3 +1,10 @@
|
||||
2001-09-01 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* cppinit.c (cpp_start_read): Free the imacros list as we
|
||||
traverse it. Don't free the chains before returning.
|
||||
(_cpp_push_next_buffer): Only try pushing buffers if we've
|
||||
completed -imacros handling.
|
||||
|
||||
2001-08-31 Eric Christopher <echristo@redhat.com>
|
||||
|
||||
* gcc.c (handle_braces): Add explaination for abort.
|
||||
|
@ -958,18 +958,19 @@ cpp_start_read (pfile, fname)
|
||||
|
||||
/* Scan -imacros files after command line defines, but before
|
||||
files given with -include. */
|
||||
for (p = CPP_OPTION (pfile, pending)->imacros_head; p; p = p->next)
|
||||
while ((p = CPP_OPTION (pfile, pending)->imacros_head) != NULL)
|
||||
{
|
||||
if (push_include (pfile, p))
|
||||
{
|
||||
pfile->buffer->return_at_eof = true;
|
||||
cpp_scan_nooutput (pfile);
|
||||
}
|
||||
CPP_OPTION (pfile, pending)->imacros_head = p->next;
|
||||
free (p);
|
||||
}
|
||||
}
|
||||
|
||||
free_chain (CPP_OPTION (pfile, pending)->directive_head);
|
||||
free_chain (CPP_OPTION (pfile, pending)->imacros_head);
|
||||
_cpp_push_next_buffer (pfile);
|
||||
|
||||
return 1;
|
||||
@ -984,7 +985,12 @@ _cpp_push_next_buffer (pfile)
|
||||
{
|
||||
bool pushed = false;
|
||||
|
||||
if (CPP_OPTION (pfile, pending))
|
||||
/* This is't pretty; we'd rather not be relying on this as a boolean
|
||||
for reverting the line map. Further, we only free the chains in
|
||||
this conditional, so an early call to cpp_finish / cpp_destroy
|
||||
will leak that memory. */
|
||||
if (CPP_OPTION (pfile, pending)
|
||||
&& CPP_OPTION (pfile, pending)->imacros_head == NULL)
|
||||
{
|
||||
while (!pushed)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user