c-parse.in (finish_parse): Add comment about cpp_destroy.

* c-parse.in (finish_parse): Add comment about cpp_destroy.
        * cp/lex.c (finish_parse): Similarly.
        * cppinit.c (cpp_cleanup): Rename cpp_destroy for clarity.
        Return the number of errors encountered.
        * cpplib.h (cpp_cleanup): Rename cpp_destroy, return int.
        * cppmain.c (main): Don't call cpp_destroy.

From-SVN: r39020
This commit is contained in:
Neil Booth 2001-01-14 22:00:20 +00:00 committed by Neil Booth
parent 984ad2c633
commit 400023a387
6 changed files with 26 additions and 8 deletions

View File

@ -1,3 +1,12 @@
2001-01-14 Neil Booth <neil@daikokuya.demon.co.uk>
* c-parse.in (finish_parse): Add comment about cpp_destroy.
* cp/lex.c (finish_parse): Similarly.
* cppinit.c (cpp_cleanup): Rename cpp_destroy for clarity.
Return the number of errors encountered.
* cpplib.h (cpp_cleanup): Rename cpp_destroy, return int.
* cppmain.c (main): Don't call cpp_destroy.
2001-01-14 Joseph S. Myers <jsm28@cam.ac.uk> 2001-01-14 Joseph S. Myers <jsm28@cam.ac.uk>
* configure.in: Require at least perl 5.6.0 to regenerate * configure.in: Require at least perl 5.6.0 to regenerate

View File

@ -3161,6 +3161,7 @@ void
finish_parse () finish_parse ()
{ {
cpp_finish (parse_in); cpp_finish (parse_in);
/* Call to cpp_destroy () omitted for performance reasons. */
errorcount += cpp_errors (parse_in); errorcount += cpp_errors (parse_in);
} }

View File

@ -755,6 +755,7 @@ void
finish_parse () finish_parse ()
{ {
cpp_finish (parse_in); cpp_finish (parse_in);
/* Call to cpp_destroy () omitted for performance reasons. */
errorcount += cpp_errors (parse_in); errorcount += cpp_errors (parse_in);
} }

View File

@ -557,12 +557,13 @@ cpp_create_reader (lang)
return pfile; return pfile;
} }
/* Free resources used by PFILE. /* Free resources used by PFILE. Accessing PFILE after this function
This is the cpp_reader 'finalizer' or 'destructor' (in C++ terminology). */ returns leads to undefined behaviour. */
void int
cpp_cleanup (pfile) cpp_destroy (pfile)
cpp_reader *pfile; cpp_reader *pfile;
{ {
int result;
struct file_name_list *dir, *dirn; struct file_name_list *dir, *dirn;
cpp_context *context, *contextn; cpp_context *context, *contextn;
@ -600,6 +601,11 @@ cpp_cleanup (pfile)
contextn = context->next; contextn = context->next;
free (context); free (context);
} }
result = pfile->errors;
free (pfile);
return result;
} }

View File

@ -494,6 +494,10 @@ struct cpp_hashnode
/* Call this first to get a handle to pass to other functions. */ /* Call this first to get a handle to pass to other functions. */
extern cpp_reader *cpp_create_reader PARAMS ((enum c_lang)); extern cpp_reader *cpp_create_reader PARAMS ((enum c_lang));
/* Call this to release the handle. Any use of the handle after this
function returns is invalid. Returns cpp_errors (pfile). */
extern int cpp_destroy PARAMS ((cpp_reader *));
/* Call these to get pointers to the options and callback structures /* Call these to get pointers to the options and callback structures
for a given reader. These pointers are good until you call for a given reader. These pointers are good until you call
cpp_finish on that reader. You can either edit the callbacks cpp_finish on that reader. You can either edit the callbacks
@ -529,7 +533,6 @@ extern void cpp_register_pragma_space PARAMS ((cpp_reader *, const char *));
extern int cpp_start_read PARAMS ((cpp_reader *, const char *)); extern int cpp_start_read PARAMS ((cpp_reader *, const char *));
extern void cpp_finish PARAMS ((cpp_reader *)); extern void cpp_finish PARAMS ((cpp_reader *));
extern void cpp_cleanup PARAMS ((cpp_reader *));
extern int cpp_avoid_paste PARAMS ((cpp_reader *, const cpp_token *, extern int cpp_avoid_paste PARAMS ((cpp_reader *, const cpp_token *,
const cpp_token *)); const cpp_token *));
extern enum cpp_ttype cpp_can_paste PARAMS ((cpp_reader *, const cpp_token *, extern enum cpp_ttype cpp_can_paste PARAMS ((cpp_reader *, const cpp_token *,

View File

@ -79,9 +79,7 @@ main (argc, argv)
do_preprocessing (argc, argv); do_preprocessing (argc, argv);
/* Reader destructor. */ /* Call to cpp_destroy () omitted for performance reasons. */
cpp_cleanup (pfile);
if (cpp_errors (pfile)) if (cpp_errors (pfile))
return FATAL_EXIT_CODE; return FATAL_EXIT_CODE;