mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-04 01:04:26 +08:00
cppinit.c (cpp_cleanup): Free include dir chains.
* cppinit.c (cpp_cleanup): Free include dir chains. * cpplib.c (do_undef): Let _cpp_free_definition make the node void. (do_unassert): Free the assert with _cpp_free_definition. * cppmacro.c (_cpp_free_definition): Free memory allocated for assertions. Make the node a T_VOID node. From-SVN: r35765
This commit is contained in:
parent
e33f625385
commit
709e9e509c
@ -1,3 +1,11 @@
|
||||
2000-08-17 Neil Booth <NeilB@earthling.net>
|
||||
|
||||
* cppinit.c (cpp_cleanup): Free include dir chains.
|
||||
* cpplib.c (do_undef): Let _cpp_free_definition make the node void.
|
||||
(do_unassert): Free the assert with _cpp_free_definition.
|
||||
* cppmacro.c (_cpp_free_definition): Free memory allocated for
|
||||
assertions. Make the node a T_VOID node.
|
||||
|
||||
2000-08-17 Neil Booth <NeilB@earthling.net>
|
||||
|
||||
* cppinit.c (path_include, append_include_chain):
|
||||
|
@ -467,6 +467,8 @@ void
|
||||
cpp_cleanup (pfile)
|
||||
cpp_reader *pfile;
|
||||
{
|
||||
struct file_name_list *dir, *next;
|
||||
|
||||
while (CPP_BUFFER (pfile) != NULL)
|
||||
cpp_pop_buffer (pfile);
|
||||
|
||||
@ -480,6 +482,13 @@ cpp_cleanup (pfile)
|
||||
_cpp_cleanup_includes (pfile);
|
||||
_cpp_cleanup_stacks (pfile);
|
||||
_cpp_cleanup_macros (pfile);
|
||||
|
||||
for (dir = CPP_OPTION (pfile, quote_include); dir; dir = next)
|
||||
{
|
||||
next = dir->next;
|
||||
free (dir->name);
|
||||
free (dir);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
10
gcc/cpplib.c
10
gcc/cpplib.c
@ -298,7 +298,6 @@ do_undef (pfile)
|
||||
cpp_warning (pfile, "undefining \"%s\"", node->name);
|
||||
|
||||
_cpp_free_definition (node);
|
||||
node->type = T_VOID;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1369,14 +1368,7 @@ do_unassert (pfile)
|
||||
node->type = T_VOID;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (temp = node->value.answers; temp; temp = next)
|
||||
{
|
||||
next = temp->next;
|
||||
FREE_ANSWER (temp);
|
||||
}
|
||||
node->type = T_VOID;
|
||||
}
|
||||
_cpp_free_definition (node);
|
||||
}
|
||||
|
||||
if (answer)
|
||||
|
@ -404,6 +404,18 @@ _cpp_free_definition (h)
|
||||
{
|
||||
if (h->type == T_MACRO)
|
||||
free ((PTR) h->value.expansion);
|
||||
else if (h->type == T_ASSERTION)
|
||||
{
|
||||
struct answer *temp, *next;
|
||||
|
||||
for (temp = h->value.answers; temp; temp = next)
|
||||
{
|
||||
next = temp->next;
|
||||
FREE_ANSWER (temp);
|
||||
}
|
||||
}
|
||||
|
||||
h->type = T_VOID;
|
||||
h->value.expansion = NULL;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user