Skip to content
Snippets Groups Projects
  • Nathan Sidwell's avatar
    e9a2e208
    cpplib: Macro use location and comparison · e9a2e208
    Nathan Sidwell authored
    Our macro use hook passes a location, but doesn't recieve it from the
    using location.  This patch adds the extra location_t parameter and
    passes it though.
    
    A second cleanup is breaking out the macro comparison code from the
    redefinition warning.  That;ll turn out useful for modules.
    
    Finally, there's a filename comparison needed for the location
    optimization of rewinding from line 2 (occurs during the emission of
    builtin macros).
    
    	libcpp/
    	* internal.h (_cpp_notify_macro_use): Add location parm.
    	(_cpp_maybe_notify_macro_use): Likewise.
    	* directives.c (_cpp_do_file_change): Check we've not changed file
    	when optimizing a rewind.
    	(do_ifdef): Pass location to _cpp_maybe_notify_macro_use.
    	(do_ifndef): Likewise.  Delete obsolete comment about powerpc.
    	* expr.c (parse_defined): Pass location to
    	_cpp_maybe_notify_macro_use.
    	* macro.c (enter_macro_context): Likewise.
    	(warn_of_redefinition): Break out helper function.  Call it.
    	(compare_macros): New function broken out of warn_of_redefinition.
    	(_cpp_new_macro): Zero all fields.
    	(_cpp_notify_macro_use): Add location parameter.
    e9a2e208
    History
    cpplib: Macro use location and comparison
    Nathan Sidwell authored
    Our macro use hook passes a location, but doesn't recieve it from the
    using location.  This patch adds the extra location_t parameter and
    passes it though.
    
    A second cleanup is breaking out the macro comparison code from the
    redefinition warning.  That;ll turn out useful for modules.
    
    Finally, there's a filename comparison needed for the location
    optimization of rewinding from line 2 (occurs during the emission of
    builtin macros).
    
    	libcpp/
    	* internal.h (_cpp_notify_macro_use): Add location parm.
    	(_cpp_maybe_notify_macro_use): Likewise.
    	* directives.c (_cpp_do_file_change): Check we've not changed file
    	when optimizing a rewind.
    	(do_ifdef): Pass location to _cpp_maybe_notify_macro_use.
    	(do_ifndef): Likewise.  Delete obsolete comment about powerpc.
    	* expr.c (parse_defined): Pass location to
    	_cpp_maybe_notify_macro_use.
    	* macro.c (enter_macro_context): Likewise.
    	(warn_of_redefinition): Break out helper function.  Call it.
    	(compare_macros): New function broken out of warn_of_redefinition.
    	(_cpp_new_macro): Zero all fields.
    	(_cpp_notify_macro_use): Add location parameter.