* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39020
138bc75d-0d04-0410-961f-
82ee72b054a4
+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>
* configure.in: Require at least perl 5.6.0 to regenerate
finish_parse ()
{
cpp_finish (parse_in);
+ /* Call to cpp_destroy () omitted for performance reasons. */
errorcount += cpp_errors (parse_in);
}
finish_parse ()
{
cpp_finish (parse_in);
+ /* Call to cpp_destroy () omitted for performance reasons. */
errorcount += cpp_errors (parse_in);
}
\f
return pfile;
}
-/* Free resources used by PFILE.
- This is the cpp_reader 'finalizer' or 'destructor' (in C++ terminology). */
-void
-cpp_cleanup (pfile)
+/* Free resources used by PFILE. Accessing PFILE after this function
+ returns leads to undefined behaviour. */
+int
+cpp_destroy (pfile)
cpp_reader *pfile;
{
+ int result;
struct file_name_list *dir, *dirn;
cpp_context *context, *contextn;
contextn = context->next;
free (context);
}
+
+ result = pfile->errors;
+ free (pfile);
+
+ return result;
}
/* Call this first to get a handle to pass to other functions. */
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
for a given reader. These pointers are good until you call
cpp_finish on that reader. You can either edit the callbacks
extern int cpp_start_read PARAMS ((cpp_reader *, const char *));
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 *,
const cpp_token *));
extern enum cpp_ttype cpp_can_paste PARAMS ((cpp_reader *, const cpp_token *,
do_preprocessing (argc, argv);
- /* Reader destructor. */
- cpp_cleanup (pfile);
-
+ /* Call to cpp_destroy () omitted for performance reasons. */
if (cpp_errors (pfile))
return FATAL_EXIT_CODE;