preprocessor: main-file cleanup

Nathan Sidwell nathan@acm.org
Thu Nov 19 12:46:50 GMT 2020


In preparing module patch 7 I realized there was a cleanup I could
make to simplify it.  This is that cleanup.  Also, when	doing the
cleanup I noticed some macros had been turned into inline functions,
but not renamed to the preprocessors internal namespace
(_cpp_$INTERNAL rather than cpp_$USER).	 Thus, this renames those
functions, deletes an internal field of the file structure, and
determines whether we're in the	main file by comparing to
pfile->main_file, the _cpp_file	of the main file.

	libcpp/
	* internal.h (cpp_in_system_header): Rename to ...
	(_cpp_in_system_header): ... here.
	(cpp_in_primary_file): Rename to ...
	(_cpp_in_main_source_file): ... here.  Compare main_file equality
	and check main_search value.
	* lex.c (maybe_va_opt_error, _cpp_lex_direct): Adjust for rename.
	* macro.c (_cpp_builtin_macro_text): Likewise.
	(replace_args): Likewise.
	* directives.c (do_include_next): Likewise.
	(do_pragma_once, do_pragma_system_header): Likewise.
	* files.c (struct _cpp_file): Delete main_file field.
	(pch_open): Check pfile->main_file equality.
	(make_cpp_file): Drop cpp_reader parm, don't set main_file.
	(_cpp_find_file): Adjust.
	(_cpp_stack_file): Check pfile->main_file equality.
	(struct report_missing_guard_data): Add cpp_reader field.
	(report_missing_guard): Check pfile->main_file equality.
	(_cpp_report_missing_guards): Adjust.

pushing to trunk
-- 
Nathan Sidwell
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 07.1-cpp-main.diff
Type: text/x-patch
Size: 8227 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20201119/a3d92830/attachment-0001.bin>


More information about the Gcc-patches mailing list