Skip to content
Snippets Groups Projects
  1. Jan 14, 2013
  2. Jan 03, 2011
  3. Apr 07, 2010
    • Simon Baldwin's avatar
      diagnostic.h (diagnostic_override_option_index): New macro to set a diagnostic's option_index. · 87cf0651
      Simon Baldwin authored
      	* diagnostic.h (diagnostic_override_option_index): New macro to
      	set a diagnostic's option_index.
      	* c-tree.h (c_cpp_error): Add warning reason argument.
      	* opts.c (_warning_as_error_callback): New.
      	(register_warning_as_error_callback): Store callback for
      	warnings enabled via enable_warning_as_error.
      	(enable_warning_as_error): Call callback, minor code tidy.
      	* opts.h (register_warning_as_error_callback): Declare.
      	* c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
      	response to -Werror=.
      	(c_common_init_options): Register warning_as_error_callback in opts.c.
      	* common.opt: Add -Wno-cpp option.
      	* c-common.c (struct reason_option_codes_t): Map cpp warning
      	reason codes to gcc option indexes.
      	* (c_option_controlling_cpp_error): New function, lookup the gcc
      	option index for a cpp warning reason code.
      	* (c_cpp_error): Add warning reason argument, call
      	c_option_controlling_cpp_error for diagnostic_override_option_index.
      	* doc/invoke.texi: Document -Wno-cpp.
      
      	* cpp.c (cb_cpp_error): Add warning reason argument, set a value
      	for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
      
      	* directives.c (do_diagnostic): Add warning reason argument,
      	call appropriate error reporting function for code.
      	(directive_diagnostics): Call specific warning functions with
      	warning reason where appropriate.
      	(do_error, do_warning, do_pragma_dependency): Add warning reason
      	argument to do_diagnostic calls.
      	* macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
      	_cpp_create_definition): Call specific warning functions with
              warning reason where appropriate.
      	* Makefile.in: Add new diagnostic functions to gettext translations.
      	* include/cpplib.h (struct cpp_callbacks): Add warning reason code
      	to error callback.
      	(CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
      	CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
      	(CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
      	CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
      	CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
      	CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
      	CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
      	CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
      	CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
      	warning reason codes.
      	(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
      	cpp_warning_with_line, cpp_pedwarning_with_line,
      	cpp_warning_with_line_syshdr): New specific error reporting functions.
      	* pch.c (cpp_valid_state): Call specific warning functions with
              warning reason where appropriate.
      	* errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
      	diagnostic handlers.
      	(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
      	cpp_warning_with_line, cpp_pedwarning_with_line,
      	cpp_warning_with_line_syshdr): New specific error reporting functions.
      	* expr.c (cpp_classify_number, eval_token, num_unary_op): Call
      	specific warning functions with warning reason where appropriate.
      	* lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
      	warn_about_normalization, lex_identifier_intern, lex_identifier,
      	_cpp_lex_direct): Ditto.
      	* charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
      	narrow_str_to_charconst): Ditto.
      
      	* gcc.dg/cpp/warn-undef-2.c: New.
      	* gcc.dg/cpp/warn-traditional-2.c: New.
      	* gcc.dg/cpp/warn-comments-2.c: New.
      	* gcc.dg/cpp/warning-directive-1.c: New.
      	* gcc.dg/cpp/warn-long-long.c: New.
      	* gcc.dg/cpp/warn-traditional.c: New.
      	* gcc.dg/cpp/warn-variadic-2.c: New.
      	* gcc.dg/cpp/warn-undef.c: New.
      	* gcc.dg/cpp/warn-normalized-1.c: New.
      	* gcc.dg/cpp/warning-directive-2.c: New.
      	* gcc.dg/cpp/warn-long-long-2.c: New.
      	* gcc.dg/cpp/warn-variadic.c: New.
      	* gcc.dg/cpp/warn-normalized-2.c: New.
      	* gcc.dg/cpp/warning-directive-3.c: New.
      	* gcc.dg/cpp/warn-deprecated-2.c: New.
      	* gcc.dg/cpp/warn-trigraphs-1.c: New.
      	* gcc.dg/cpp/warn-multichar-2.c: New.
      	* gcc.dg/cpp/warn-normalized-3.c: New.
      	* gcc.dg/cpp/warning-directive-4.c: New.
      	* gcc.dg/cpp/warn-unused-macros.c: New.
      	* gcc.dg/cpp/warn-trigraphs-2.c: New.
      	* gcc.dg/cpp/warn-cxx-compat-2.c: New.
      	* gcc.dg/cpp/warn-cxx-compat.c: New.
      	* gcc.dg/cpp/warn-redefined.c: New.
      	* gcc.dg/cpp/warn-trigraphs-3.c: New.
      	* gcc.dg/cpp/warn-unused-macros-2.c: New.
      	* gcc.dg/cpp/warn-deprecated.c: New.
      	* gcc.dg/cpp/warn-trigraphs-4.c: New.
      	* gcc.dg/cpp/warn-redefined-2.c: New.
      	* gcc.dg/cpp/warn-comments.c: New.
      	* gcc.dg/cpp/warn-multichar.c: New.
      	* g++.dg/cpp/warning-directive-1.C: New.
      	* g++.dg/cpp/warning-directive-2.C: New.
      	* g++.dg/cpp/warning-directive-3.C: New.
      	* g++.dg/cpp/warning-directive-4.C: New.
      	* gfortran.dg/warning-directive-1.F90: New.
      	* gfortran.dg/warning-directive-3.F90: New.
      	* gfortran.dg/warning-directive-2.F90: New.
      	* gfortran.dg/warning-directive-4.F90: New.
      
      From-SVN: r158079
      87cf0651
  4. Apr 09, 2009
  5. Mar 29, 2009
    • Joseph Myers's avatar
      re PR preprocessor/34695 (Preprocessor warning->error conversion from -Werror is silent) · 148e4216
      Joseph Myers authored
      	PR preprocessor/34695
      
      gcc:
      	* Makefile.in (c-opts.o): Depend on c-tree.h.
      	* c-common.c: Move down include of diagnostic.h.
      	(done_lexing, c_cpp_error): New.
      	* c-common.h (done_lexing): Declare.
      	* c-decl.c (c_write_global_declarations): Don't check cpp_errors
      	(parse_in).
      	* c-opts.c: Include c-tree.h.
      	(c_common_init_options): Set preprocessor error callback.
      	(c_common_handle_option): Do not set preprocessor
      	inhibit_warnings, warnings_are_errors, warn_system_headers,
      	pedantic_errors or inhibit_warnings flags.
      	(c_common_post_options): Do not check cpp_errors (parse_in).
      	(c_common_finish): Do not output dependencies if there were
      	errors.  Do not check return value of cpp_finish.
      	* c-ppoutput.c (pp_file_change): Set input_location.
      	* c-tree.h (c_cpp_error): Declare.
      	* diagnostic.c (diagnostic_set_info_translated): Also initialize
      	override_column.
      	(diagnostic_build_prefix): Check override_column.
      	* diagnostic.h (diagnostic_info): Add override_column field.
      	(diagnostic_override_column): Define.
      
      gcc/cp:
      	* cp-tree.h (cp_cpp_error): Remove.
      	* error.c (cp_cpp_error): Remove.
      	* parser.c (cp_lexer_new_main): Set done_lexing instead of
      	client_diagnostic and error callback.
      
      gcc/fortran:
      	* cpp.c (cb_cpp_error): New.
      	(gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings.
      	Don't check cpp_errors (cpp_in).
      	(gfc_cpp_init_0): Set cb->error.
      
      gcc/testsuite:
      	* gcc.dg/builtin-redefine.c, gcc.dg/cpp/redef2.c,
      	gcc.dg/cpp/redef3.c, gcc.dg/cpp/trad/redef2.c: Use dg-message
      	instead of dg-warning for "previous definition" messages.
      	* gcc.dg/cpp/Wvariadic-1.c, gcc.dg/cpp/Wvariadic-3.c: Expect
      	"warnings being treated as errors" message.
      	* gcc.dg/fltconst-1.c: Use -fshow-column.
      
      libcpp:
      	* makedepend.c: Remove.
      	* Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove.
      	(all, clean, TAGS_SOURCES, include): Remove makedepend handling.
      	* directives.c (cpp_errors): Remove.
      	* errors.c (print_location, _cpp_begin_message, v_message):
      	Remove.
      	(cpp_error, cpp_error_with_line): Always use error callback.
      	(cpp_error, cpp_error_with_line, cpp_errno): Return bool.
      	* include/cpplib.h (cpp_options): Remove pedantic_errors,
      	inhibit_warnings, warn_system_headers, inhibit_errors,
      	warnings_are_errors, client_diagnostic.
      	(cpp_callbacks): Add extra arguments to error callback; make it
      	return bool.
      	(cpp_finish): Return void.
      	(cpp_destroy): Remove inaccurate comment about return value.
      	(cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove.
      	(CPP_DL_NOTE): Define.
      	* include/line-map.h (linemap_print_containing_files): Remove.
      	* init.c (cpp_finish): Do not check for or return number of
      	errors.
      	* internal.h (cpp_reader): Remove errors field.
      	* line-map.c (linemap_print_containing_files): Remove.
      	* macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message
      	about previous definition.  Only emit it if previous diagnostic
      	was emitted.
      
      From-SVN: r145263
      148e4216
  6. Jul 21, 2008
    • Manuel López-Ibáñez's avatar
      line-map.h (linenum_type): New typedef. · 1bb64668
      Manuel López-Ibáñez authored
      2008-07-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	* include/line-map.h (linenum_type): New typedef.
      	(struct line_map): Use it.
      	(SOURCE_LINE): Second arguments is a LOCATION not a LINE.
      	(SOURCE_COLUMN): Likewise.
      	* macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store
      	source_location values in a variable of type linenum_type.
      	* directives.c (struct if_stack): Use linenum_type.
      	(strtoul_for_line): Rename as strtolinenum.
      	(do_line): Use linenum_type.
      	(do_linemarker): Use linenum_type and strtolinenum.
      	(_cpp_do_file_change): Use linenum_t.
      	* line-map.c (linemap_add): Likewise.
      	(linemap_line_start): Likewise.
      	* traditional.c (struct fun_macro): 'line' is a source_location.
      	* errors.c (print_location): Use linenum_type.
      	* directives-only.c (_cpp_preprocess_dir_only): Likewise.
      	* internal.h (CPP_INCREMENT_LINE): Likewise.
      	* lex.c (_cpp_skip_block_comment): Use source_location.
      
      From-SVN: r138026
      1bb64668
  7. May 21, 2008
    • Tom Tromey's avatar
      re PR preprocessor/27777 (Bad diagnostic emission when #error contains a trigraph) · 5d6342eb
      Tom Tromey authored
      gcc/testsuite
      	PR preprocessor/27777:
      	* gcc.dg/cpp/pr27777.c: New file.
      libcpp
      	PR preprocessor/27777:
      	* lex.c (cpp_output_line_to_string): New function.
      	* internal.h (_cpp_begin_message): Don't declare.
      	* errors.c (_cpp_begin_message): Now static.
      	* include/cpplib.h (cpp_output_line_to_string): Declare.
      	* directives.c (do_diagnostic): Rewrote.  Use
      	cpp_output_line_to_string.  Don't use _cpp_begin_message.
      
      From-SVN: r135740
      5d6342eb
  8. Apr 18, 2008
  9. Nov 04, 2005
    • Joseph Myers's avatar
      cp-tree.h (cp_cpp_error), [...]): Take va_list* parameter. · a63607ed
      Joseph Myers authored
      gcc/cp:
      	* cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
      	parameter.
      
      libcpp:
      	* include/cpplib.h (struct cpp_callbacks): Make error take
      	va_list* parameter.
      	* errors.c (cpp_error): Update call to callback.
      
      From-SVN: r106466
      a63607ed
  10. Nov 03, 2005
    • Joseph Myers's avatar
      re PR c++/17964 (cpp error messages contain wrong line in C++) · 178b58b5
      Joseph Myers authored
      gcc:
      	PR c++/17964
      	* diagnostic.c (diagnostic_set_info_translated): New function.
      	(diagnostic_set_info): Use it.  Add comment.
      	* diagnostic.h (diagnostic_set_info_translated): Declare.
      
      gcc/cp:
      	* error.c (cp_cpp_error): New function.
      	* cp-tree.h (cp_cpp_error): Declare.
      	* parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
      	and error callback after lexing.
      
      gcc/testsuite:
      	* g++.dg/cpp/string-1.C: New test.
      
      libcpp:
      	* include/cpplib.h (struct cpp_options): Add client_diagnostic.
      	(struct cpp_callbacks): Add error.
      	* errors.c (cpp_error): If client_diagnostic, use error callback.
      	* charset.c (convert_escape): Don't use %03o in diagnostic.
      
      From-SVN: r106454
      178b58b5
  11. Jun 29, 2005
  12. Oct 14, 2004
  13. May 24, 2004
    • Paolo Bonzini's avatar
      Makefile.def (host_modules): add libcpp. · 4f4e53dd
      Paolo Bonzini authored
      ChangeLog:
      
      2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
      
      	* Makefile.def (host_modules): add libcpp.
      	* Makefile.tpl: Add dependencies on and for libcpp.
      	* Makefile.in: Regenerate.
      	* configure.in: Add libcpp host module.
      	* configure: Regenerate.
      
      config/ChangeLog:
      
      2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
      
      	* acx.m4 (ACX_HEADER_STDBOOL, ACX_HEADER_STRING):
      	From gcc.
      
      gcc/ChangeLog:
      
      2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
      
      	Move libcpp to the toplevel.
      	* Makefile.in: Remove references to libcpp files,
      	use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
      	and change hashtable.h to that.
      	* aclocal.m4 (gcc_AC_HEADER_STDBOOL,
      	gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
      	* configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
      	* cppcharset.c: Removed.
      	* cpperror.c: Removed.
      	* cppexp.c: Removed.
      	* cppfiles.c: Removed.
      	* cpphash.c: Removed.
      	* cpphash.h: Removed.
      	* cppinit.c: Removed.
      	* cpplex.c: Removed.
      	* cpplib.c: Removed.
      	* cpplib.h: Removed.
      	* cppmacro.c: Removed.
      	* cpppch.c: Removed.
      	* cpptrad.c: Removed.
      	* cppucnid.h: Removed.
      	* cppucnid.pl: Removed.
      	* cppucnid.tab: Removed.
      	* hashtable.c: Removed.
      	* hashtable.h: Removed.
      	* line-map.c: Removed.
      	* line-map.h: Removed.
      	* mkdeps.c: Removed.
      	* mkdeps.h: Removed.
      	* stringpool.h: Include symtab.h instead of hashtable.h.
      	* tree.h: Include symtab.h instead of hashtable.h.
      	* system.h (O_NONBLOCK, O_NOCTTY): Do not define.
      
      gcc/cp/ChangeLog:
      
      2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
      
      	* Make-lang.in: No need to specify $(LIBCPP).
      
      gcc/java/ChangeLog:
      
      2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
      
      	* Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
      
      libcpp/ChangeLog:
      
      2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
      
      	Moved libcpp from the gcc subdirectory to the toplevel.
      	* Makefile.am: New file.
      	* Makefile.in: Regenerate.
      	* configure.ac: New file.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* charset.c: Moved from gcc/cppcharset.c.  Add note about
      	brokenness of input charset detection.  Adjust for change
      	in name of cppucnid.h.
      	* errors.c: Moved from gcc/cpperror.c.  Do not include intl.h.
      	* expr.c: Moved from gcc/cppexp.c.
      	* files.c: Moved from gcc/cppfiles.c.  Do not include intl.h.
      	Remove #define of O_BINARY, it is in system.h.
      	* identifiers.c: Moved from gcc/cpphash.c.
      	* internal.h: Moved from gcc/cpphash.h.  Change header
      	guard name.  All other files adjusted to match name change.
      	* init.c: Moved from gcc/cppinit.c.
      	(init_library) [ENABLE_NLS]: Call bindtextdomain.
      	* lex.c: Moved from gcc/cpplex.c.
      	* directives.c: Moved from gcc/cpplib.c.
      	* macro.c: Moved from gcc/cppmacro.c.
      	* pch.c: Moved from gcc/cpppch.c.  Do not include intl.h.
      	* traditional.c: Moved from gcc/cpptrad.c.
      	* ucnid.h: Moved from gcc/cppucnid.h.  Change header
      	guard name.
      	* ucnid.pl: Moved from gcc/cppucnid.pl.
      	* ucnid.tab: Moved from gcc/cppucnid.tab.  Change header
      	guard name.
      	* symtab.c: Moved from gcc/hashtable.c.
      	* line-map.c: Moved from gcc.  Do not include intl.h.
      	* mkdeps.c: Moved from gcc.
      	* system.h: New file.
      
      libcpp/include/ChangeLog:
      
      2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
      
      	* cpplib.h: Moved from gcc.  Change header guard name.
      	* line-map.h: Moved from gcc.  Change header guard name.
      	* mkdeps.h: Moved from gcc.  Change header guard name.
      	* symtab.h: Moved from gcc/hashtable.h.  Change header
      	guard name.
      
      libcpp/po/ChangeLog:
      
      2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
      
      	* be.po: Extracted from gcc/po/be.po.
      	* ca.po: Extracted from gcc/po/ca.po.
      	* da.po: Extracted from gcc/po/da.po.
      	* de.po: Extracted from gcc/po/de.po.
      	* el.po: Extracted from gcc/po/el.po.
      	* es.po: Extracted from gcc/po/es.po.
      	* fr.po: Extracted from gcc/po/fr.po.
      	* ja.po: Extracted from gcc/po/ja.po.
      	* nl.po: Extracted from gcc/po/nl.po.
      	* sv.po: Extracted from gcc/po/sv.po.
      	* tr.po: Extracted from gcc/po/tr.po.
      
      From-SVN: r82199
      4f4e53dd
  14. Apr 23, 2004
    • Per Bothner's avatar
      line-map.h (struct line_maps): New field highest_line. · 500bee0a
      Per Bothner authored
      	* line-map.h (struct line_maps):  New field highest_line.
      	(linemap_position_for_column):  Make non-inline function.
      	(LINEMAP_POSITION_FOR_COLUMN):  New macro.
      	* line-map.c (linemap_init):  Clear highest_line field.
      	(linemap_add):  Set highest_line field.
      	(linemap_line_start):  Minor optimization - use highest_line field.
      	Reduce maximum column hint to 10000.  Update highest_line field.
      	(linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
      	* cpphash.h (struct cpp_reader):  Remove line field - instead use
      	line_table->highest_line.
      	(saved_line):  Remove unused field.
      	(CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
      	Use  line_table's highest_line field instead of cpp_reader's line.
      	* cpplib.c (start_directive):  Likewise use highest_line field.
      	(do_line, do_linemarker):  Likewise just use newest map.
      	(_cpp_do_file_change):  Don't need to set cpp_reader's line field.
      	* cpperror.c (cpp_error):  Likewise use highest_line field.
      	* cppfiles.c (open_file_failed:  Likewise.
      	(cpp_make_system_header):  Likewise use newest map and highest_line.
      	* cppinit.c (cpp_create_reader):  Don't initialize removed field.
      	* cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
      	skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
      	_cpp_lex_direct):  Likewise use highest_line.
      	(_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
      	* cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
      	and use newest map.
      	* cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
      	* cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
      	(copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
      
      From-SVN: r81074
      500bee0a
  15. Feb 11, 2004
    • Per Bothner's avatar
      Represent column numbers using line-map's source_location. · 12f9df4e
      Per Bothner authored
      	The "next available source_location" is now managed internally by
      	line-maps.c rather than by clients.
      	* line-map.h (struct line_map):  New field column_bits.
      	<from_line>:  Rename field to start_location.
      	(struct line_maps):  New fields highest_location and max_column_hint.
      	(linemap_check_files_exited):  New declaration.
      	(linemap_line_start):  New declaration.
      	(linemap_add):  Remove from_line parameter; use highest_location field.
      	(SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
      	(SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
      	(CURRENT_LINE_MAP):  Remove macro.
      	(linemap_position_for_column):  New inline function.
      	* line-map.c (linemap_init):  Clear new fields.
      	(linemap_check_files_exited):  New function, extracted from ...
      	(linemap_free):  Use linemap_check_files_exited.
      	(linemap_add):  Remove from_line parameter.  Various updates.
      	(linemap_line_start):  New function.
      	(linemap_lookeup):  Update for new field names.
      	* cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
      	linemap_position_for_column may unpredictably change the current map,
      	it is cleaner and simpler for us to not cache it in cpp_reader.
      	(struct cpp_buffer):  New sysp field.
      	Changed warned_cplusplus_comments and from_stage3 to bitfields.
      	* cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
      	* cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
      	current map using linemap_lookup.
      	(do_linemarker):  Also set buffer's sysp field.
      	(destringize_and_run):  No longer need to decrement current line.
      	* cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
      	(search_path_head, open_file_failed):  Use buffer's sysp.
      	(cpp_make_system_header):  Get current map using linemap_lookup.
      	Also set buffer's sysp flag.
      	* cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
      	* cpphash.h (CPP_INCREMENT_LINE):  New macro.
      	(struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
      	(struct cpp_reader):  ... and adding saved_line_base field.
      	* cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
      	Update accordingly.  Don't adjust line.
      	(_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
      	* cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
      	(cpp_in_system_header):  ... new inline function, using buffer's sysp.
      	* cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
      	* cpplex.c (_cpp_lex_direct):  Likewise.
      	* cppmacro.c (_cpp_builtin_macro_text):  Likewise.
      	* cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
      	* cpplib.h (struct cpp_token):  Rename line field to src_loc.
      	Remove col field as it is now subsumed by src_loc.
      	* cpperror.c:  Update various field, parameter, and macro names.
      	(print_location):  If col==0, try SOURCE_COLUMN of line.
      	(cpp_error):  Use cur_token's src_loc field, rather than line+col.
      	* cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
      	* cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
      	_cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
      	(_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
      	(_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
      	(_cpp_lex_direct):  Use linemap_position_for_column.
      	* c-ppoutput.c (maybe_print_line, print_line):  Don't take map
      	parameter.  Instead get it from the line_table global.  Adjust callers.
      	(print):  Remove map field.  Replace line field to src_line.
      	(init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
      	(cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
      	(pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
      	Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
      	* cpptrad.c (copy_comment):  Rename variable.
      	* c-lex.c (map):  Remove static variable, for same reason we removed
      	cpp_reader's map field.
      	(cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
      	to call linemap_lookup.
      	(cb_line_change):  Token's line field replaced by src_loc.
      	(fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
      	Don't save new_map.
      
      	* cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
      	source_location.
      
      From-SVN: r77663
      12f9df4e
  16. Jan 22, 2004
  17. Jan 20, 2004
    • Per Bothner's avatar
      Move cpp_reader's line_maps field to a shared global. · 50f59cd7
      Per Bothner authored
      	* cpphash.h (cpp_reader):  Rename line_maps field to line_table
      	and change the type to a pointer rather than a struct.
      	* cppinit.c (cpp_push_main_field):  Adjust accordingly.
      	* cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
      	Likewise.
      	* cppfiles.c (validate_pch):  Likewise.
      	* cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
      	Likewise.
      	* cpperror.c (print_location):  Likewise.
      	* cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
      	* cppinit.c (cpp_create_reader):  Handle new parameter.
      	(cpp_destroy):  Don't free line_maps - that's no longer our job.
      	* input.h (line_table):  New variable.
      	* toplev.c (line_table):  Declare variable.
      	(general_init):  Initialize line_table.
      	* c-opts.c (c_common_init_options):  Pass line_table to
      	cpp_create_reader.
      	* fix-header.c (read_scan_file):  New local variable line_table.
      	Initialize, and pass it to cpp_create_reader.
      	* Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
      	(C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
      
      From-SVN: r76198
      50f59cd7
  18. Nov 01, 2003
    • John David Anglin's avatar
      re PR preprocessor/12847 (xxx.c:1:20: xxxx.h: No such file or directory) · 0527bc4e
      John David Anglin authored
      	PR preprocessor/12847
      	* cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c,
      	cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c,
      	c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN,
      	DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with
      	"CPP_".
      
      From-SVN: r73183
      0527bc4e
  19. Aug 28, 2003
  20. Aug 26, 2003
    • Per Bothner's avatar
      Copy over from cs branch: · dc3786d8
      Per Bothner authored
      	* cpplib.h (struct cpp_token):  Change type of field line to fileline.
      	(cpp_error_with_line):  Use fileline for appropriate parameter.
      	* cpphash.h (struct cpp_macro):  Change type of field line to fileline.
      	(struct cpp_reader):  Likewise for fields line and directive_line.
      	(_cpp_begin_message):  Use fileline for appropriate parameter.
      	* cpperror.c (print_location, _cpp_begin_message, cpp_error_with_line,
      	cpp_error):  Use fileline for appropriate parameters and variables.
      	(print_location):  New local lin, since it is not a fileline.
      
      From-SVN: r70826
      dc3786d8
  21. Jul 22, 2003
    • Zack Weinberg's avatar
      hashtable.c (approx_sqrt): Make static. · a2f7be91
      Zack Weinberg authored
      	* hashtable.c (approx_sqrt): Make static.
      	* hashtable.h: Don't prototype approx_sqrt.
      	* line-map.c (init_line_maps): Rename linemap_init.
      	(free_line_maps): Rename linemap_free.
      	(add_line_map): Rename linemap_add.
      	(lookup_line): Rename linemap_lookup.
      	(print_containing_files): Rename linemap_print_containing_files.
      	* linemap.h: Update to match.
      
      	* cpperror.c, cppinit.c, cpplib.c, cppmacro.c: Update calls to
      	linemap routines to use new names.
      
      From-SVN: r69672
      a2f7be91
  22. Jul 13, 2003
    • Zack Weinberg's avatar
      Makefile.in (LIBCPP_DEPS): Remove coretypes.h and $(TM_H). · 43839642
      Zack Weinberg authored
      	* Makefile.in (LIBCPP_DEPS): Remove coretypes.h and $(TM_H).
      	(hashtable.o, line-map.o, mkdeps.o): Likewise, from dependency
      	list.  Move these all together down by cpplib.
      
      	* cpplib.h: Don't refer to MAX_WCHAR_TYPE_SIZE when determining
      	definition of CPPCHAR_SIGNED_T.
      
      	* cppcharset.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, cppinit.c
      	* cpplex.c, cpplib.c, cppmacro.c, cpppch.c, cpptrad.c, hashtable.c
      	* line-map.c, mkdeps.c: Don't include coretypes.h or tm.h.
      
      	* cpphash.c (_cpp_init_hashtable): Don't use gcc_obstack_init.
      	* cppinit.c (cpp_create_reader): Likewise.
      
      	* cpphash.h (scan_out_logical_line): Rename _cpp_scan_out_logical_line.
      	* cpptrad.c: Likewise.  All callers changed.
      	* cpplib.c: All callers changed.
      	* c-ppoutput.c: Replace 'uchar' with 'unsigned char' throughout.
      	* hashtable.h: Define GTY(x) to nothing here too.
      
      From-SVN: r69298
      43839642
  23. Jun 17, 2003
    • Zack Weinberg's avatar
      * cpplib.h, cpphash.h, cppcharset.c, cpperror.c, cppexp.c · 6cf87ca4
      Zack Weinberg authored
      	* cppfiles.c, cpphash.c, cppinit.c, cpplex.c, cpplib.c
      	* cppmacro.c, cpppch.c, cpptrad.c, cppspec.c: Convert to
      	ISO C: new-style function declarations, no need for PARAMS,
      	no special punctuation on indirect function calls, use string
      	constant concatenation where convenient.
      
      From-SVN: r68070
      6cf87ca4
  24. May 17, 2003
    • Kaveh R. Ghazi's avatar
      builtins.c (validate_arglist): Eliminate libiberty VA_ macros, always use stdarg. · e34d07f2
      Kaveh R. Ghazi authored
      gcc:
      	* builtins.c (validate_arglist): Eliminate libiberty VA_ macros,
      	always use stdarg.
      	* c-errors.c (pedwarn_c99): Likewise.
      	* c-format.c (status_warning): Likewise.
      	* c-semantics.c (build_stmt): Likewise.
      	* calls.c (emit_library_call, emit_library_call_value): Likewise.
      	* collect2.c (notice, fatal_perror, fatal, error): Likewise.
      	* cpperror.c (cpp_error, cpp_error_with_line): Likewise.
      	* diagnostic.c (build_message_string, output_printf,
      	output_verbatim, verbatim, inform, warning, pedwarn, error, sorry,
      	fatal_error, internal_error, warning_with_decl, pedwarn_with_decl,
      	error_with_decl, fnotice): Likewise.
      	* dwarf2asm.c (dw2_asm_output_data, dw2_asm_output_delta,
      	dw2_asm_output_offset, dw2_asm_output_pcrel, dw2_asm_output_addr,
      	dw2_asm_output_addr_rtx, dw2_asm_output_nstring,
      	dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128,
      	dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
      	dw2_asm_output_encoded_addr_rtx): Likewise.
      	* emit-rtl.c (gen_rtx, gen_rtvec): Likewise.
      	* errors.c (warning, error, fatal, internal_error): Likewise.
      	* final.c (output_operand_lossage, asm_fprintf): Likewise.
      	* fix-header.c (fatal): Likewise.
      	* gcc.c (fatal, error, notice): Likewise.
      	* gcov.c (fnotice): Likewise.
      	* genattrtab.c (attr_rtx, attr_printf): Likewise.
      	* gengtype.c (error_at_line, xasprintf, oprintf): Likewise.
      	* gensupport.c (message_with_line): Likewise.
      	* mips-tfile.c (fatal, error): Likewise.
      	* protoize.c (notice): Likewise.
      	* ra-debug.c (ra_debug_msg): Likewise.
      	* read-rtl.c (fatal_with_file_and_line): Likewise.
      	* rtl-error.c (error_for_asm, warning_for_asm): Likewise.
      	* tree.c (build, build_nt, build_function_type_list): Likewise.
      
      cp:
      	* error.c (cp_error_at, cp_warning_at, cp_pedwarn_at): Eliminate
      	libiberty VA_ macros, always use stdarg.
      	* rtti.c (create_pseudo_type_info): Likewise.
      	* tree.c (build_min_nt, build_min): Likewise.
      
      From-SVN: r66919
      e34d07f2
  25. Dec 16, 2002
  26. Jul 09, 2002
    • Neil Booth's avatar
      cpperror.c (cpp_error): Default to directive_line within directives here. · cd98faa1
      Neil Booth authored
      	* cpperror.c (cpp_error): Default to directive_line within
      	directives here.
      	* cppexp.c (cpp_interpret_integer): Only use traditional
      	number semantics in directives.
      	* cpplib.c (prepare_directive_trad): Don't reset pfile->line.
      	(do_include_common): Similarly.
      	* cpptrad.c (scan_out_logical_line): Implement accurate
      	quoting of <> in #include.
      	* doc/cpp.texi: Update.
      
      From-SVN: r55347
      cd98faa1
  27. Jun 21, 2002
    • Neil Booth's avatar
      cpperror.c (cpp_error): For traditional CPP, default to diagnostics on pfile->line. · 00b94a44
      Neil Booth authored
      	* cpperror.c (cpp_error): For traditional CPP, default to
      	diagnostics on pfile->line.
      	* cpplib.c (prepare_directive_trad): Set line number for
      	diagnostics for #define too.
      	* cpptrad.c (skip_whitespace): Skip comments properly.
      	(_cpp_expansions_different_trad): Initialize quote2.
      testsuite:
      	* gcc.dg/cpp/trad: New directory with traditional tests copied
      	from parent directory.
      	* gcc.dg/cpp/assert_trad1.c, gcc.dg/cpp/assert_trad2.c,
      	gcc.dg/cpp/assert_trad3.c, gcc.dg/cpp/defined_trad.c,
      	gcc.dg/cpp/hash2.c, gcc.dg/cpp/tr-define.c, gcc.dg/cpp/tr-direct.c,
      	gcc.dg/cpp/tr-sign.c, gcc.dg/cpp/tr-str.c, gcc.dg/cpp/uchar-2.c:
      	Move to trad/ and rename.
      	* gcc.dg/cpp/trad/__STDC__.c, gcc.dg/cpp/trad/comment.c,
      	gcc.dg/cpp/trad/escaped-eof.c, gcc.dg/cpp/trad/redef1.c,
      	gcc.dg/cpp/trad/redef2.c: New tests.
      	* gcc.dg/cpp/trad/trad.exp: New driver.
      
      From-SVN: r54870
      00b94a44
  28. Jun 02, 2002
    • Neil Booth's avatar
      c-common.c (c_common_init): Override cpplib's default warn_long_long setting. · ceeedfc1
      Neil Booth authored
      	* c-common.c (c_common_init): Override cpplib's default
      	warn_long_long setting.
      	* c-lex.c (lex_number): Replace with interpret_integer,
      	interpret_float, narrowest_unsigned_type and
      	narrowest_signed_type, taking advantage of the new
      	cpplib functionality.
      	* cpperror.c (_cpp_begin_message): If a warning is turned
      	into an error, avoid printing "warning:".
      	* cppexp.c (cpp_num_sign_extend): New.
      	* cppinit.c: Update comment.
      	* cpplib.h (cpp_num_sign_extend): New.
      	* tree.h: Update comment.
      testsuite:
      	* gcc.dg/wtr-int-type-1.c, gcc.dg/wtr-suffix-1.c,
      	gcc.dg/cpp/paste4.c, gcc.dg/cpp/sysmac2.c:
      	Update for mofified diagnostics.
      	* gcc.dg/c99-intconst-1.c: No longer fail.
      
      From-SVN: r54180
      ceeedfc1
  29. May 23, 2002
    • Neil Booth's avatar
      cpperror.c (_cpp_begin_message): No special casing of CPP_FATAL_LIMIT. · bdee42b1
      Neil Booth authored
      	* cpperror.c (_cpp_begin_message): No special casing
      	of CPP_FATAL_LIMIT.
      	* cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
      	(output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
      	* cpplib.c (do_include_common): Use DL_ERROR.
      	* cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
      	(DL_ICE): Renumber.
      	* fix-header.c (read_scan_file): Update.
      
      From-SVN: r53765
      bdee42b1
  30. May 22, 2002
    • Kazu Hirata's avatar
      cpperror.c: Fix formatting. · df383483
      Kazu Hirata authored
      	* cpperror.c: Fix formatting.
      	* cppexp.c: Likewise.
      	* cppfiles.c: Likewise.
      	* cpphash.c: Likewise.
      	* cpphash.h: Likewise.
      	* cppinit.c: Likewise.
      	* cpplex.c: Likewise.
      	* cpplib.c: Likewise.
      	* cppmacro.c: Likewise.
      	* cppmain.c: Likewise.
      	* cppspec.c: Likewise.
      
      From-SVN: r53751
      df383483
  31. Apr 14, 2002
    • Neil Booth's avatar
      cpperror.c (print_location): Don't print include chain if line == 0. · ebef4e8c
      Neil Booth authored
      	* cpperror.c (print_location): Don't print include chain
      	if line == 0.
      	(cpp_begin_message): Update to use DL_ macros.
      	(cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
      	cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
      	cpp_notice, cpp_notice_from_errno): Remove.
      	(cpp_error, cpp_error_with_line): Update to take a diagnostic
      	level.
      	(cpp_errno): New.
      	* cppexp.c (CPP_ICE): Remove.
      	(SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
      	lex, integer_overflow, _cpp_parse_expr): Update.
      	* cppfiles.c (read_include_file, find_include_file,
      	handle_missing_header, _cpp_read_file, remap_filename): Update.
      	* cpphash.h (enum error_type): Remove.
      	(_cpp_begin_message): Update.
      	* cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
      	cpp_handle_option, cpp_post_options): Update.
      	* cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
      	skip_whitespace, parse_identifier, parse_slow, parse_string,
      	_cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
      	cpp_interpret_charconst): Update.
      	* cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
      	lex_macro_node, do_undef, glue_header_name, parse_include,
      	do_include_common, read_flag, do_line, do_linemarker, do_ident,
      	cpp_register_pragma, do_pragma_once, do_pragma_system_header,
      	do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
      	do_elif, do_endif, parse_answer, parse_assertion, do_assert,
      	_cpp_pop_buffer, do_diagnostic): Update.
      	* cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
      	DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
      	(cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
      	cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
      	cpp_notice, cpp_notice_from_errno): Remove.
      	(cpp_error, cpp_error_with_line): Update to take a diagnostic
      	level.
      	(cpp_errno): New.
      	* cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
      	collect_args, enter_macro_context, save_parameter, parse_params,
      	_cpp_create_definition, check_trad_stringification,
      	cpp_macro_definition): Update.
      	* cppmain.c (cpp_preprocess_file): Update.
      	* fix-header.c (read_scan_file): Update.
      
      From-SVN: r52302
      ebef4e8c
  32. Jan 03, 2002
    • Neil Booth's avatar
      cpperror.c: Update comments and copyright. · 5d8ebbd8
      Neil Booth authored
      	* cpperror.c: Update comments and copyright.
      	* cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
      	cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
      
      From-SVN: r48522
      5d8ebbd8
  33. Sep 14, 2001
    • Neil Booth's avatar
      cpperror.c (print_location): Take line and column, for default positioning use... · 97293897
      Neil Booth authored
      cpperror.c (print_location): Take line and column, for default positioning use the previously lexed token.
      
      	* cpperror.c (print_location): Take line and column, for
      	default positioning use the previously lexed token.
      	(_cpp_begin_message): Take line and column.
      	(cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
      	cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
      	* cpphash.h (_cpp_begin_message): Update prototype.
      	* cppinit.c (push_include): Don't set output line.
      	* cpplex.c (_cpp_lex_token): Callback for start of new output lines.
      	* cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
      	(do_pragma): Kludge for front ends.  Don't expand macros at all.
      	* cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
      	(struct cpp_token): Remove output_line.
      	(struct cpp_callbacks): New member line_change.
      	* cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
      	cpp_get_token): Preserve BOL flag.
      	(cpp_get_line): Remove.
      	(_cpp_backup_tokens): Remove useless abort().
      	* cppmain.c (cb_line_change): New.
      	(scan_translation_unit): Don't worry about starting new lines here.
      	* scan-decls.c (scan_decls): Update.
      	* c-lex.c (c_lex, init_c_lex): Update.
      	(cb_line_change, src_lineno): New.
      
      From-SVN: r45613
      97293897
  34. Aug 22, 2001
    • Neil Booth's avatar
      cpperror.c (print_location): Don't show _Pragma. · 29401c30
      Neil Booth authored
      	* cpperror.c (print_location): Don't show _Pragma.
      	* cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
      	and file change callback generation here.
      	(stack_include_file): Update use of cpp_push_buffer.
      	* cpphash.h (_cpp_pop_file_buffer): Update prototype.
      	(struct cpp_buffer): Remove type, pfile members.
      	* cppinit.c (cpp_handle_option): Use free_chain.
      	* cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
      	(skip_escaped_newlines, get_effective_char, lex_percent): Take
      	a cpp_reader rather than a cpp_buffer.
      	(skip_escaped_newlines, get_effective_char, skip_block_comment,
      	skip_line_comment, parse_string, lex_percent, lex_dot,
      	_cpp_lex_token): Update accordingly.
      	* cpplib.c (_cpp_pop_buffer): Don't do file change callback
      	generation here.
      	(cpp_push_buffer): Update prototype.
      	(run_directive): Update use of cpp_push_buffer.
      	(_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
      	handle_assertion): Update use of run_directive.
      	* cpplib.h (enum cpp_buffer_type): Remove.
      	(cpp_push_buffer): Update prototype.
      	* fix-header.c (read_scan_file): Update.
      
      From-SVN: r45112
      29401c30
  35. Aug 18, 2001
    • Zack Weinberg's avatar
      ansidecl.h: Reorganize for readability... · b649398a
      Zack Weinberg authored
      include:
              * ansidecl.h: Reorganize for readability, remove documentation
              of obsolete macros, document PARAMS and VPARAMS.  Add new
              macros VA_OPEN, VA_CLOSE, and VA_FIXEDARG for nicer variadic
              function implementation.
      
      gcc:
              * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
      
      From-SVN: r45011
      b649398a
  36. Aug 17, 2001
    • Neil Booth's avatar
      cpperror.c (print_location): Don't take a file name; use the line map instead. · bb74c963
      Neil Booth authored
      	* cpperror.c (print_location):  Don't take a file name; use the
      	line map instead.
      	(_cpp_begin_message): Similarly.
      	(cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
      	cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
      	(cpp_pedwarn_with_file_and_line): Remove.
      	* cppfiles.c (stack_include_file): Update; set filename to stdin
      	here when appropriate.
      	* cpphash.h (struct cpp_buffer): Remove nominal_fname.
      	(_cpp_begin_message): Don't take a file name.
      	* cppinit.c: Add comment.
      	* cpplex.c: Fix end-of-directive indicator.
      	* cpplib.c: Don't include intl.h.
      	(run_directive, do_diagnostic): Update.
      	(do_line): Update to not use nominal_fname.
      	(cpp_push_buffer): Don't take a filename.
      	* cpplib.h (struct ht): Remove.
      	(cpp_push_buffer): Don't take a filename.
      	(cpp_pedwarn_with_file_and_line): Remove.
      	* cppmacro.c (struct cpp_macro): Remove file.
      	(builtin_macro): Update.
      	(_cpp_create_definition): Update.
      	* cppmain.c: Correct comment.
      	* fix-header.c (read_scan_file): Update.
      
      From-SVN: r44986
      bb74c963
  37. Aug 11, 2001
    • Neil Booth's avatar
      c-lex.c (map): Make const. · 47d89cf3
      Neil Booth authored
      	* c-lex.c (map): Make const.
      	(cb_file_change): Update for callback passing a line map.
      	Don't assume we have a previous map.  Remove sanity check
      	about popping too many files.
      	* cpperror.c (print_location): Make map const.
      	* cppfiles.c (stack_include_file): Update; line maps now hold sysp.
      	(cpp_make_system_header): Similarly.
      	(search_from): Similarly.
      	(_cpp_execute_include): Don't remember where we came from.
      	* cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
      	(struct cpp_reader): Make map const.
      	(CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
      	* cpplib.c (do_line): Update; line maps now hold sysp.
      	(cpp_push_buffer): Similarly.
      	(_cpp_do_file_change): Similarly; callback with map instead.
      	(cpp_get_line_maps): Constify return value.
      	(_cpp_pop_buffer): Update.
      	* cpplib.h (struct cpp_file_change): Remove.
      	(struct cpp_callbacks): Update.
      	(cpp_get_line_maps): Constify return value.
      	* cppmacro.c (_cpp_create_definition): Update.
      	* cppmain.c (struct printer): Constify map.
      	(maybe_print_line): Similarly.
      	(print_line): Similarly.  Deduce flags 1 and 2 here.
      	(cb_file_change): Update.
      	* line-map.c (free_line_maps): Warn regardless.
      	(add_line_map): Return pointer to const.  When passed NULL to_file
      	with LC_LEAVE, use the obvious values for the return point so the
      	caller doesn't have to figure them out.
      	(lookup_line): Return pointer to const.
      	(print_containing_files): Take pointer to const.
      	* line-map.h (struct line_map): New members reason, sysp.
      	(add_line_map): Return pointer to const.
      	(lookup_line): Similarly.
      	(print_containing_files): Take pointer to const.
      
      From-SVN: r44789
      47d89cf3
  38. Aug 06, 2001
    • Neil Booth's avatar
      cpperror.c (print_containing_files): Moved to line-map.c. · fde84349
      Neil Booth authored
      	* cpperror.c (print_containing_files): Moved to line-map.c.
      	(print_location): line-map.c handles re-listing or otherwise.
      	* cpphash.h (struct lexer_state): Remove next_bol.
      	(struct cpp_buffer): Remove include_stack_listed.
      	* cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
      	Remove faked buffer handling.
      	(_cpp_do_file_change): Tweak.
      	* cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
      	* cppmain.c (struct printer): Remove filename.
      	(print_line, cb_file_change): Update accordingly.
      	* line-map.c: Include intl.h.
      	(init_line_maps): Initialize last_listed.
      	(free_line_maps): Sanity check, warn if ENABLED_CHECKING.
      	(add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
      	(print_containing_files): New.
      	* line-map.h (struct line_maps): New member last_listed.
      	(print_containing_files, INCLUDED_FROM): New.
      	* Makefile.in: Update.
      	* po/POTFILES.in: Add line-map.c.
      
      From-SVN: r44670
      fde84349
  39. Aug 05, 2001
    • Neil Booth's avatar
      re PR preprocessor/3081 (Preprocessor merges 2 first lines when -imacros is being used) · 67821e3a
      Neil Booth authored
      	PR preprocessor/3081
      	* c-lex.c (map): New.
      	(cb_file_change): Update map and use it.
      	(cb_def_pragma, cb_define, cb_undef): Use map and line.
      	(c_lex): Update to use map.
      	* cpperror.c (print_location): Move to using logical line numbers.
      	* cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
      	(cpp_make_system_header): Similarly.
      	(_cpp_execute_include): Stop line numbering hacks.  Store the
      	line we will return to.
      	* cpphash.h (CPP_BUF_LINE): Remove.
      	(struct cpp_buffer): Remove lineno and pseudo_newlines.
      	Add map and return_to_line.
      	(_cpp_do_file_change): Update.
      	* cppinit.c (cpp_start_read): Update line kludge.
      	* cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
      	(trigraph_ok): Use logical line numbers for diagnostics.
      	(skip_block_comment): Likewise.
      	(skip_whitespace): Likewise.
      	(skip_line_comment): Use pfile->line instead.
      	(_cpp_lex_token): Update to use logical line numbering exclusively.
      	Handle BOL locally.  Accept new lines in directives, but keep
      	pfile->line decremented.  Diagnostics use logical lines.  Update
      	directive handling.
      	* cpplib.c (SEEN_EOL): New.
      	(skip_rest_of_line, check_eol): Use it.
      	(end_directive): Increase line number when accepting the newline
      	at the end of a directive.
      	(run_directive): Simplify.
      	(do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
      	(_cpp_do_file_change): Update to take buffer line number as an
      	argument, and store the current map in the cpp_reader.  Remove
      	line number kludges.
      	(_cpp_do__Pragma): Restore output position after a _Pragma.
      	(cpp_push_buffer): Don't set output line or lineno.
      	(_cpp_pop_buffer): Transfer more info from a faked buffer.
      	Remove line kludge.  Set output_line.
      	* cppmacro.c (builtin_macro): Update handling of __LINE__.
      	(parse_arg): Use logical lines.
      	(save_lookahead_token): Save EOFs too now.
      	* cppmain.c (struct printer): Fix comments.
      	(printer_init): Simplify, let caller do errors.
      	(scan_translation_unit, check_multiline_token, dump_macro): Update.
      	(maybe_print_line): Simplify.
      	(print_line): Don't print a linemarker if -P.
      	(cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
      	(cb_file_change): Simplify.
      	* line-map.h (LAST_SOURCE_LINE): Fix.
      	(CURRENT_LINE_MAP): New.
      
      	* gcc.dg/cpp/19951025-1.c: Revert.
      	* gcc.dg/cpp/directiv.c: We no longer process directives that
      	interrupt macro arguments.
      
      From-SVN: r44650
      67821e3a
  40. Aug 02, 2001
    • Neil Booth's avatar
      line-map.c: New. · d82fc108
      Neil Booth authored
      	* line-map.c: New.
      	* line-map.h: New.
      	* Makefile.in (line-map.o): New.
      	(LIBCPP_OBJS, LIBCPP_DEPS): Update.
      	* c-lex.c (cb_file_change): Update for new cpp_file_change structure.
      	* cpperror.c (print_containing_files): Similarly.
      	(print_location): Update.  Don't output a space before _Pragma.
      	* cppfiles.c (stack_include_file): Set to line 1 immediately.
      	(stack_include_filee, cpp_make_system_header): Update.
      	(_cpp_execute_include): Get logical line number right for calling
      	as-yet-unterminated #include.
      	* cpphash.h (struct cpp_reader): Add line_maps.
      	(_cpp_do_file_change): Update.
      	* cppinit.c (cpp_create_reader): Initialize line maps.
      	(cpp_destroy): Destroy line maps.
      	(cpp_start_read): Get logical line number right.
      	* cpplex.c (parse_string): Only warn once for multi-line strings.
      	Use boolean variable for null warning.
      	* cpplib.c (_cpp_handle_directive): End the directive if it isn't
      	already.
      	(do_include_common): End the directive early.
      	(do_line): Don't warn about out-of-range lines in preprocessed
      	source.  Update.  Remove unused variables.
      	(_cpp_do_file_change): Update for new line mapping.
      	(pragma_cb): New typedef.
      	(cpp_register_pragma): Stop looking ahead before calling the
      	handler.  Clean up.
      	(do_pragma_system_header): End directive early.
      	(cpp_get_line_maps): New.
      	(cpp_pop_buffer): Fudge logical line.  Update.
      	* cpplib.h: Include line-map.h
      	(enum cpp_fc_reason): Remove.
      	(struct cpp_file_change): Update.
      	(cpp_get_line_maps): New.
      	* cppmain.c (struct_printer): New member map.
      	(cb_file_change): Update for new mappings.
      	* fix-header.c (cb_file_change): Similarly.
      testsuite:
      	* gcc.dg/cpp/19951025-1.c: Update.
      
      From-SVN: r44584
      d82fc108
Loading