Skip to content
Snippets Groups Projects
  1. Nov 04, 2005
    • jsm28's avatar
      gcc/cp: · d65b3a40
      jsm28 authored
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106466 138bc75d-0d04-0410-961f-82ee72b054a4
      d65b3a40
  2. Nov 03, 2005
    • jsm28's avatar
      gcc: · eb0d20b7
      jsm28 authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106454 138bc75d-0d04-0410-961f-82ee72b054a4
      eb0d20b7
  3. Jun 29, 2005
  4. Oct 14, 2004
  5. May 24, 2004
    • bonzini's avatar
      ChangeLog: · d856c8a6
      bonzini authored
      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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82199 138bc75d-0d04-0410-961f-82ee72b054a4
      d856c8a6
  6. Apr 23, 2004
    • bothner's avatar
      · dbddc569
      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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81074 138bc75d-0d04-0410-961f-82ee72b054a4
      dbddc569
  7. Feb 11, 2004
    • bothner's avatar
      · 610625e3
      bothner authored
      	Represent column numbers using line-map's source_location.
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77663 138bc75d-0d04-0410-961f-82ee72b054a4
      610625e3
  8. Jan 22, 2004
  9. Jan 20, 2004
    • bothner's avatar
      · ceec9c13
      bothner authored
      	Move cpp_reader's line_maps field to a shared global.
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76198 138bc75d-0d04-0410-961f-82ee72b054a4
      ceec9c13
  10. Nov 01, 2003
    • danglin's avatar
      PR preprocessor/12847 · d80d2074
      danglin authored
      	* 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_".
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73183 138bc75d-0d04-0410-961f-82ee72b054a4
      d80d2074
  11. Aug 28, 2003
    • bothner's avatar
      · d7dd769a
      bothner authored
      	* cpperror.c (print_location):  Don't check for !pfile->buffer.  That
      	test fails following my 08-21 change, and it seems unnecessary anyway.
      	(cpp_error):  Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70874 138bc75d-0d04-0410-961f-82ee72b054a4
      d7dd769a
  12. Aug 26, 2003
    • bothner's avatar
      · a65bda30
      bothner authored
      Copy over from cs branch:
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70826 138bc75d-0d04-0410-961f-82ee72b054a4
      a65bda30
  13. Jul 22, 2003
    • zack's avatar
      * hashtable.c (approx_sqrt): Make static. · 196ce2be
      zack authored
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69672 138bc75d-0d04-0410-961f-82ee72b054a4
      196ce2be
  14. Jul 13, 2003
    • zack's avatar
      * Makefile.in (LIBCPP_DEPS): Remove coretypes.h and $(TM_H). · 69edc0b3
      zack authored
      	(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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69298 138bc75d-0d04-0410-961f-82ee72b054a4
      69edc0b3
  15. Jun 17, 2003
  16. May 17, 2003
    • ghazi's avatar
      gcc: · ee582a61
      ghazi authored
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66919 138bc75d-0d04-0410-961f-82ee72b054a4
      ee582a61
  17. Dec 16, 2002
  18. Jul 09, 2002
  19. Jun 21, 2002
    • neil's avatar
      * cpperror.c (cpp_error): For traditional CPP, default to · aacf5b8e
      neil authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54870 138bc75d-0d04-0410-961f-82ee72b054a4
      aacf5b8e
  20. Jun 02, 2002
    • neil's avatar
      * c-common.c (c_common_init): Override cpplib's default · f5ec8cb5
      neil authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54180 138bc75d-0d04-0410-961f-82ee72b054a4
      f5ec8cb5
  21. May 23, 2002
    • neil's avatar
      * cpperror.c (_cpp_begin_message): No special casing · b9093358
      neil authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53765 138bc75d-0d04-0410-961f-82ee72b054a4
      b9093358
  22. May 22, 2002
    • kazu's avatar
      * cpperror.c: Fix formatting. · b1a9ff83
      kazu authored
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53751 138bc75d-0d04-0410-961f-82ee72b054a4
      b1a9ff83
  23. Apr 14, 2002
    • neil's avatar
      * cpperror.c (print_location): Don't print include chain · 73328dce
      neil authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52302 138bc75d-0d04-0410-961f-82ee72b054a4
      73328dce
  24. Jan 03, 2002
  25. Sep 14, 2001
    • neil's avatar
      * cpperror.c (print_location): Take line and column, for · 5621a364
      neil authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45613 138bc75d-0d04-0410-961f-82ee72b054a4
      5621a364
  26. Aug 22, 2001
    • neil's avatar
      * cpperror.c (print_location): Don't show _Pragma. · c808d026
      neil authored
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45112 138bc75d-0d04-0410-961f-82ee72b054a4
      c808d026
  27. Aug 18, 2001
    • zack's avatar
      include: · 8b562dac
      zack authored
              * 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45011 138bc75d-0d04-0410-961f-82ee72b054a4
      8b562dac
  28. Aug 17, 2001
    • neil's avatar
      * cpperror.c (print_location): Don't take a file name; use the · 5a9f87bb
      neil authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44986 138bc75d-0d04-0410-961f-82ee72b054a4
      5a9f87bb
  29. Aug 11, 2001
    • neil's avatar
      * c-lex.c (map): Make const. · f85fcf2b
      neil authored
      	(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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44789 138bc75d-0d04-0410-961f-82ee72b054a4
      f85fcf2b
  30. Aug 06, 2001
    • neil's avatar
      * cpperror.c (print_containing_files): Moved to line-map.c. · bd507c05
      neil authored
      	(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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44670 138bc75d-0d04-0410-961f-82ee72b054a4
      bd507c05
  31. Aug 05, 2001
    • neil's avatar
      PR preprocessor/3081 · 1ea7ed21
      neil authored
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44650 138bc75d-0d04-0410-961f-82ee72b054a4
      1ea7ed21
  32. Aug 02, 2001
    • neil's avatar
      * line-map.c: New. · 38692459
      neil authored
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44584 138bc75d-0d04-0410-961f-82ee72b054a4
      38692459
  33. Apr 22, 2001
  34. Apr 08, 2001
  35. Jan 23, 2001
  36. Dec 17, 2000
    • neil's avatar
      * cppmain.c (check_multiline_token): New function. · fb688dd2
      neil authored
              (scan_buffer): Use it.
              (cb_change_file): Restructure to avoid warning.
              * cpperror.c (print_location): Initialize col.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38332 138bc75d-0d04-0410-961f-82ee72b054a4
      fb688dd2
    • neil's avatar
      * c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up. · f0c20935
      neil authored
              * cpperror.c (print_containing_files): Get right line number.
              (print_location): Output column of 1 if 0.
              * cppfiles.c (stack_include_file): cpp_push_buffer handles
              the callback.
              * cpphash.h (_cpp_do_file_change): No longer external.
              * cpplib.c (do_file_change): Now local to cpplib.c.
              (do_line): Fake a buffer stack for preprocessed files.
              (cpp_push_buffer): Create a file_change callback.  Handle faked
              buffers.
              (cpp_pop_buffer): Similarly.
              * cpplib.h: BUF_FAKE: New buffer type.
              * cppmain.c: Update to handle correct file renaming where a
              #line is the first line of the main file, and produce only
              the renamed file, not the original file, as output.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38319 138bc75d-0d04-0410-961f-82ee72b054a4
      f0c20935
  37. Dec 11, 2000
    • neil's avatar
      * cpperror.c (print_location): New function. · 6cee4464
      neil authored
              (print_containing_files): Simplify.
              (_cpp_begin_message): Simplify and use print_location.
              * cppfiles.c (stack_include_file): Update.
              (_cpp_pop_file_buffer): Update.
              * cpphash.h (struct cpp_buffer): New members
              include_stack_listed and type.
              * cpplib.c (_cpp_handle_directive): Buffer->inc is not null.
              (run_directive): Take buffer type.  cpp_push_buffer cannot fail.
              (_cpp_do__Pragma, cpp_define, _cpp_define_builtin, cpp_undef,
              handle_assertion): Update.
              (cpp_push_buffer): Take a buffer type and file name.
              (cpp_pop_buffer): Update.  Clear include_stack_listed.
              * cpplib.h (input_stack_listing_current): Remove.
              (enum cpp_buffer_type): New.
              (cpp_push_buffer): New prototype.
              * cppmacro.c (builtin_macro): Simplify; buffer cannot be null.
              * fix-header.c (read_scan_file): Update.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38186 138bc75d-0d04-0410-961f-82ee72b054a4
      6cee4464
  38. Nov 17, 2000
  39. Oct 28, 2000
    • neil's avatar
      2000-10-28 Neil Booth <neilb@earthling.net> · 79bd622b
      neil authored
      	New macro expander.
      
      	* cpplib.c (struct answer): New.
      	(struct if_stack): Use cpp_lexer_pos rather than line and col.
      	Rename cmacro mi_cmacro.
      	(struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
      	IN_I): New directive and flags.
      	(skip_rest_of_line, check_eol, run_directive, glue_header_name,
      	parse_answer, parse_assertion, find_answer): New functions.
      	(parse_ifdef, detect_if_not_defined, validate_else): Remove.
      	(lex_macro_node): New function to replace parse_ifdef and
      	get_define_node.
      
      	(_cpp_handle_directive): New function, combines _cpp_check_directive
      	and _cpp_check_linemarker.
      
      	(do_define, do_undef, parse_include, do_include, do_import,
      	do_include_next, read_line_number, do_line, do_ident, do_pragma,
      	do_pragma_once, do_pragma_poison, do_pragma_dependency):
      	Update for new token getting interface.
      
      	(do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
      	: Update for new multiple-include optimisation technique.
      	(do_elif): Don't forget to invalidate controlling macros.
      
      	(unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
      	(parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
      	Functions to handle assertions with the new token interface.
      	(do_assert, do_unassert): Use them.
      
      	(cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
      	Use run_directive.
      
      	(_cpp_init_stacks): Register directive names.  Don't register special
      	nodes.
      
      	* cpperror.c (print_containing_files, _cpp_begin_message): Update to
      	new position recording regime.
      	(cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
      	cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
      	cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
      	(cpp_type2name): Move to cpplex.c.
      
      	* cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
      	(parse_defined): Update to handle new multiple include optimisation
      	method.  Remove poisoned identifier warning.
      	(parse_assertion, TYPE_NAME): Delete.
      	(lex): Update for multiple include optimisation, removal of
      	CPP_DEFINED, to use _cpp_test_assertion for assertions and
      	cpp_token_as_text.
      	(_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
      	(op_as_text): New function, to wrap cpp_token_as_text.
      
      	* cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
      	Update for MI optimisation.
      	(_cpp_execute_include): Take a token rather than 3 arguments.  Fix
      	segfault on diagnostic.
      	(_cpp_compare_file_date): Take a token rather than 3 args.
      	(cpp_read_file): Work correctly for zero-length files.
      
      	* cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
      	_cpp_init_hashtable and _cpp_cleanup_hashtable.
      	(cpp_lookup): Place identifiers at front of identifier pool
      	for _cpp_lookup_with_hash.
      	(_cpp_lookup_with_hash): Require identifiers to be at the front of
      	the identifier pool.  Commit the memory if not already in the
      	hash table.
      
      	* cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
      	Initialise various members of cpp_reader, memory pools, and the
      	special nodes.
      	(cpp_printer_init): Delete.
      	(cpp_cleanup): Update.
      	(struct builtin, builtin_array, initialize_builtins): Update for new
      	hashnode definition and builtin handling.
      	(cpp_start_read, cpp_finish): Don't take or initialise a
      	printer.  Update.
      
      	* cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
      	PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
      	T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
      	T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
      	(struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
      	struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
      	NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
      	struct toklist, struct cpp_context, struct specnodes,
      	TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
      	NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
      	enum builtin_type, cpp_can_paste): New.
      	(struct cpp_token): Delete line and col members.
      	(struct cpp_buffer): New member output_lineno.
      	(struct lexer_state): Delete indented, in_lex_line, seen_dot.
      	Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
      	(struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
      	ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
      	base_context, context, directive, mi_state, mi_if_not_defined,
      	mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
      	mlstring_pos, macro_buffer, macro_buffer_len.
      	Delete members mls_line, mls_column, token_list, potential_control_macro,
      	temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
      	context_cap, cur_context, no_expand_level, paste_level, contexts, args,
      	save_parameter_spellings, need_newline, .
      	Change type of date, time and spec_nodes members.
      	Change prototypes for include and ident callbacks.
      	(struct cpp_hashnode): Change type of name.  Remove union members
      	expansion and code.  Add members macro, operator and builtin.
      
      	(cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
      	cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
      	cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
      	cpp_stop_lookahead): New prototypes.
      	(cpp_printer_init, cpp_dump_definition): Delete prototypes.
      
      	(U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
      	Move from cpphash.h.
      
      	* cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
      	ufputs): Move to cpplib.h.
      	(enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
      	TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
      	COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
      	struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
      	_cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
      	_cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
      	_cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
      	_cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
      	_cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
      	_cpp_parse_assertion, _cpp_find_answer): Delete.
      	(VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
      	POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
      	_cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
      	_cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
      	_cpp_handle_directive, DSC): New.
      	(struct include_file): New member defined.
      
      	(DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
      	_cpp_compare_file_date): Update.
      	(_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
      	(_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
      	_cpp_cleanup_hashtable.
      
      	* Makefile.in: Remove cppoutput.c.
      
      	* cppoutput.c: Delete
      
      	* fixheader.c (read_scan_file): Update for new cpp_get_token
      	prototype.
      	(recognized_function): New argument LINE.
      
      	* scan-decls.c (skip_to_closing_brace, scan_decls): Update for
      	new cpp_get_token prototype.
      
      	* scan.h (recognized_function): Update prototype.
      
      	* po/POTFILES.in: Remove cppoutput.c.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37098 138bc75d-0d04-0410-961f-82ee72b054a4
      79bd622b
Loading