Skip to content
Snippets Groups Projects
  1. Oct 14, 2004
  2. 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
  3. 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
  4. 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
  5. Jan 22, 2004
  6. 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
  7. 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
  8. Aug 28, 2003
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. Dec 16, 2002
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. Apr 22, 2001
  31. Apr 08, 2001
    • Neil Booth's avatar
      cpperror.c (print_location): Don't special case <stdin>. · 2f878973
      Neil Booth authored
      	* cpperror.c (print_location): Don't special case <stdin>.
      	(_cpp_begin_message): Handle WARNING_SYSHDR the same as
      	WARNING, but we don't check if we're in system headers.
      	* cpplib.h (enum error_type): WARNING_SYSHDR: New.
      	* cpplib.c (do_warning): Warn in system headers.
      
      From-SVN: r41186
      2f878973
  32. Jan 23, 2001
  33. Dec 17, 2000
    • Neil Booth's avatar
      cppmain.c (check_multiline_token): New function. · dfbf62ec
      Neil Booth authored
              * cppmain.c (check_multiline_token): New function.
              (scan_buffer): Use it.
              (cb_change_file): Restructure to avoid warning.
              * cpperror.c (print_location): Initialize col.
      
      From-SVN: r38332
      dfbf62ec
    • Neil Booth's avatar
      c-lex.c: Move main_input_filename handling to FC_ENTER. · ad2a084d
      Neil Booth authored
              * c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up.
              * 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.
      
      From-SVN: r38319
      ad2a084d
  34. Dec 11, 2000
    • Neil Booth's avatar
      cpperror.c (print_location): New function. · 0bda4760
      Neil Booth authored
              * cpperror.c (print_location): New function.
              (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.
      
      From-SVN: r38186
      0bda4760
  35. Nov 17, 2000
  36. Oct 28, 2000
    • Neil Booth's avatar
      New macro expander. · 93c80368
      Neil Booth authored
      2000-10-28  Neil Booth  <neilb@earthling.net>
      
      	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.
      
      From-SVN: r37098
      93c80368
  37. Sep 28, 2000
    • Neil Booth's avatar
      cpperror.c (_cpp_begin_message): Do the test for suppression of warnings and... · d8090680
      Neil Booth authored
      cpperror.c (_cpp_begin_message): Do the test for suppression of warnings and pedantic warnings before the "is a...
      
      	* cpperror.c (_cpp_begin_message):  Do the test for suppression
              of warnings and pedantic warnings before the "is a warning an
              error" tests.
      	* cppinit.c (cpp_handle_option): Remove surplus \n.
      	* cpplex.c (ON_REST_ARG): Delete.
      	(skip_block_comment): Initialise prevc.
      	(parse_args): Improve error messages.
      	(maybe_paste_with_next): Use CONTEXT_VARARGS rather
      	than ON_REST_ARG.
      	* cpplib.c (cpp_push_buffer): Fix grammar in message.
      	* cppmain.c (main): Set callbacks for #ident and #pragma
      	only if no_output option is false.
      	(do_pragma_implementation): Only call the #pragma handler
      	if it is set in the cpp_reader structure.
      
      From-SVN: r36655
      d8090680
  38. Sep 25, 2000
    • Branko Cibej's avatar
      flags.h: Declare warning flag warn_system_headers. · 317639a8
      Branko Cibej authored
      2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
      
              * flags.h:  Declare warning flag warn_system_headers.
              * toplev.c:  Define it.
              (W_options): Add option -Wsystem-headers.
              * diagnostic.c (count_error): Test warn_system_headers.
              * invoke.texi:  Add description for -Wsystem-headers.
      	* cpplib.h (cpp_options): New member warn_system_headers.
      	* cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
      	CPP_IN_SYSTEM_HEADER.
      	* cpplib.c (do_import, do_pragma_once): Likewise.
      	* cpperror.c (_cpp_begin_message): Test warn_system_headers
      	and CPP_IN_SYSTEM_HEADER.
      	* cppinit.c (handle_option): Recognize -Wsystem_headers.
      	(print_help): Describe -Wsystem_headers.
      	* cpplex.c (lex_line): Reorganize condition so that warnings
      	about C++ comments in system headers can be enabled. Remove
      	label do_line_comment.
      
      From-SVN: r36636
      317639a8
  39. Aug 29, 2000
    • Zack Weinberg's avatar
      cpperror.c (print_file_and_line): If line is (unsigned int)-1, print just the filename. · 2c8f0515
      Zack Weinberg authored
      	* cpperror.c (print_file_and_line): If line is (unsigned int)-1,
      	print just the filename.
      	* cpplex.c (_cpp_run_directive): Add additional argument, the
      	name to give the synthetic buffer.  This defaults to
      	translated "<command line>".
      	* cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
      	Adjust to match.
      	(_cpp_define_builtin): New function.
      	* cppinit.c (initialize_builtins): Use _cpp_define_builtin.
      	* cpphash.h: Update prototypes.
      
      	* tradcpp.c (main): Process -D and -U simultaneously, in the
      	order they appeared on the command line.
      
      From-SVN: r36043
      2c8f0515
Loading