Skip to content
Snippets Groups Projects
  1. Feb 18, 2006
    • Grigory Zagorodnev's avatar
      cpp.texi (__TIMESTAMP__): Document. · be8ac3e2
      Grigory Zagorodnev authored
      2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
      
      gcc/ChangeLog:
           * doc/cpp.texi (__TIMESTAMP__): Document.
      
      libcpp/ChangeLog:
           * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
           * files.c (_cpp_get_file_stat): New function.
           * include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
           * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
           * internal.h (_cpp_get_file_stat): Prototype.
           (struct cpp_buffer): Add timestamp.
      
      gcc/testsuite/ChangeLog:
           * gcc.dg/cpp/undef3.c: New test.
           * gcc.dg/cpp/trad/builtins2.c: New test.
      
      From-SVN: r111232
      be8ac3e2
  2. Jan 23, 2006
  3. Jan 04, 2006
    • Richard Henderson's avatar
      directives.c (struct pragma_entry): Add is_deferred. · bc4071dd
      Richard Henderson authored
      libcpp/
      	* directives.c (struct pragma_entry): Add is_deferred.  Add ident
      	entry to value union.
      	(end_directive): Don't eat the line if in_deferred_pragma.
      	(run_directive): Remove pragma hacks.
      	(insert_pragma_entry): Remove.
      	(new_pragma_entry): New.
      	(register_pragma_1): Split out of register_pragma.  Only handle
      	the lookup tree and return the new entry.
      	(cpp_register_pragma): Fill in the pragma entry here.
      	(cpp_register_deferred_pragma): New.
      	(register_pragma_internal): New.
      	(_cpp_init_internal_pragmas): Use register_pragma_internal.
      	(do_pragma): Allow pragma expansion after namespace.  For deferred
      	pragmas, don't slurp the line into a string.
      	(destringize_and_run): Save tokens for deferred pragmas.
      	(cpp_handle_deferred_pragma): Remove.
      	* macro.c (builtin_macro): Remove pragma token hack.
      	(_cpp_push_token_context): Rename from push_token_context and export.
      	* internal.h (struct lexer_state): Add pragma_allow_expansion.
      	(_cpp_push_token_context): Declare.
      	* lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
      	a token.  Update the line number correctly if so.
      	(_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
      	(cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
      	* include/cpplib.h (PRAGMA_EOL): New.
      	(CPP_TOKEN_FLD_PRAGMA): New.
      	(struct cpp_token): Add val.pragma.
      	(struct cpp_options): Remove defer_pragmas.
      	(cpp_handle_deferred_pragma): Remove.
      	(cpp_register_deferred_pragma): Declare.
      
      gcc/
      	* c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
      	via integer constant.
      	(pragma_lex): Remove.
      	* c-pch.c (c_common_pch_pragma): Accept the name as an argument,
      	rather than parsing it.
      	* c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
      	handle_pragma_extern_prefix): Add %< %> quotes.
      	(registered_pragmas): New.
      	(c_register_pragma_1): New.
      	(c_register_pragma): Use it.
      	(c_register_pragma_with_expansion): Likewise.
      	(c_invoke_pragma_handler): New.
      	(init_pragma): Use cpp_register_deferred_pragma directly for
      	pch_preprocess.
      	* c-pragma.h (enum pragma_kind): New.
      	(pragma_handler): New.
      	(c_invoke_pragma_handler): Declare.
      	* c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
      	CPP_PRAGMA_EOL.
      	* c-common.h (c_common_pch_pragma): Update decl.
      	* Makefile.in (c-parser.o): Update dependencies.
      	(GTFILES): Add c-pragma.h.
      	* c-parser.c (struct c_token): Add pragma_kind.
      	(struct c_parser): Add in_pragma.
      	(c_lex_one_token): Always initialize keyword and pragma_kind.
      	Extract data for CPP_PRAGMA.
      	(c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
      	(c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
      	Don't allow CPP_PRAGMA_EOL if in_pragma.
      	(c_parser_consume_pragma): New.
      	(c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
      	(c_parser_skip_to_end_of_parameter): Likewise.
      	(c_parser_skip_to_end_of_block_or_statement): Likewise.
      	(c_parser_skip_to_pragma_eol): New.
      	(c_parser_external_declaration): Handle CPP_PRAGMA.
      	(c_parser_compound_statement_nostart): Likewise.
      	(c_parser_statement_after_labels): Likewise.
      	(c_parser_pragma): New.
      	(pragma_lex): Likewise.
      	(c_parser_pragma_pch_preprocess): New.
      	(c_parser_new): Merge into ...
      	(c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
      
      gcc/cp/
      	* lex.c (handle_pragma_java_exceptions): Fix whitespace.
      	* parser.c (struct cp_token): Add pragma_kind.
      	(eof_token): Update to match.
      	(struct cp_lexer): Add in_pragma; rearrange next for better packing.
      	(cp_parser_initial_pragma): New.
      	(cp_lexer_new_main): Use it.  Don't bother clearing
      	c_lex_return_raw_strings.
      	(cp_lexer_get_preprocessor_token): Always initialize keyword
      	and pragma_kind fields.  Handle CPP_PRAGMA.
      	(cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when 
      	in_pragma is set.
      	(cp_lexer_handle_pragma): Remove.  Update callers to cp_parser_pragma.
      	(cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
      	(cp_parser_skip_to_pragma_eol): New.
      	(cp_parser_error): Use it.
      	(cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
      	rearrange with switch statement.
      	(cp_parser_skip_to_end_of_statement): Likewise.
      	(cp_parser_skip_to_end_of_block_or_statement): Likewise.
      	(cp_parser_skip_to_closing_brace): Likewise.
      	(cp_parser_skip_until_found): Likewise.
      	(cp_parser_statement): Add in_compound argument; update callers.
      	Use it to decide how to handle pragma parsing.
      	(cp_parser_labeled_statement): Add in_compound argument; pass
      	it on to cp_parser_statement.
      	(cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
      	(cp_parser_declaration_seq_opt): Likewise.
      	(cp_parser_parameter_declaration): Likewise.
      	(cp_parser_member_specification_opt): Likewise.
      	(cp_parser_function_definition_after_decl): Likewise.
      	(cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
      	(cp_parser_pragma): New.
      	(pragma_lex): New.
      
      gcc/testsuite/
      	* g++.dg/parse/pragma2.C: Update expected error lines.
      
      From-SVN: r109336
      bc4071dd
  4. Nov 04, 2005
    • Andrew Pinski's avatar
      re PR preprocessor/22042 (stringification BUG) · 651ed942
      Andrew Pinski authored
      2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
      
              PR preprocessor/22042
              * macro.c (_cpp_builtin_macro_text): Lower the needed max
              buffer size.
              (cpp_quote_string): Don't octalify non printable
              charactors.
      2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
      
              PR preprocessor/22042
              * gcc.dg/cpp/strify4.c: New test.
      
      From-SVN: r106463
      651ed942
  5. Jun 29, 2005
  6. May 28, 2005
    • Gabriel Dos Reis's avatar
      configure.ac: Check declarations for asprintf and vasprintf. · c3f829c1
      Gabriel Dos Reis authored
      	* configure.ac: Check declarations for asprintf and vasprintf.
      	* config.in: Regenerate.
      	* configure: Likewise.
      
      	* charset.c (conversion_loop): Use XRESIZEVEC.
      	(convert_no_conversion): Likewise.
      	(convert_using_iconv): Likewise.
      	(init_iconv_desc): Cast return value of alloca.
      	(cpp_host_to_exec_charset): Use XNEWVEC.
      	(emit_numeric_escape): Use XRESIZEVEC.
      	(cpp_interpret_string): Use XNEWVEC.
      	(cpp_interpret_string): Use XRESIZEVEC.
      	(_cpp_interpret_identifier): Cast return value of alloca.
      	(_cpp_convert_input): Use XNEWVEC and XRESIZEVEC.
      	* directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC.
      	(parse_include): Use XNEWVEC.
      	(insert_pragma_entry): Rename local variable "new" to
      	"new_entry".
      	(save_registered_pragmas): Cast return value of xmemdup.
      	(destringize_and_run): Same for alloca.
      	(parse_assertion): Likewise.
      	(do_assert): Cast allocated storage to proper type.
      	(cpp_define): Likewise.
      	(_cpp_define_builtin): Likewise.
      	(cpp_undef): Likewise.
      	(handle_assertion): Likewise.
      	(cpp_push_buffer): Rename local variable "new" to "new_buffer".
      	* expr.c (CPP_UPLUS): Cast value to type cpp_ttype.
      	(CPP_UMINUS): Likewise.
      	(struct cpp_operator): Rename from struct operator.
      	(_cpp_expand_op_stack): Use XRESIZEVEC.
      	* files.c (pch_open_file): Use XNEWVEC.
      	(pch_open_file): Use XRESIZEVEC.
      	(read_file_guts): Use XNEWVEC and XRESIZEVEC.
      	(dir_name_of_file): Use XNEWVEC.
      	(make_cpp_file): Use XCNEW.
      	(make_cpp_dir): Likewise.
      	(allocate_file_hash_entries): USE XNEWVEC.
      	(cpp_included): Cast return value of htab_find_with_hash.
      	(append_file_to_dir): Use XNEWVEC.
      	(read_filename_string): Likewise. Use XRESIZEVEC too.
      	(read_name_map): Cast return value of alloca.  Use XRESIZEVEC.
      	(remap_filename): Use XNEWVEC.
      	(struct pchf_entry): Move definition out of struct pchf_data.
      	(_cpp_save_file_entries): Use XCNEWVAR.
      	(_cpp_read_file_entries): Use XNEWVAR.
      	* identifiers.c (alloc_node): Use XOBNEW.
      	* init.c (cpp_create_reader): Use XCNEW.
      	(cpp_init_builtins): Cast of b->value to enum builtin_type.
      	(read_original_directory): Cast return value of alloca.
      	* lex.c (add_line_note): Use XRESIZEVEC.
      	(warn_about_normalization): Use XNEWVEC.
      	(_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype).
      	(new_buff): Use XNEWVEC.
      	* line-map.c (linemap_add): Use XRESIZEVEC.
      	* macro.c (builtin_macro): Cast return value of alloca.
      	(paste_tokens): Likewise.
      	(expand_arg): Use XNEWVEC and XRESIZEVEC.
      	(_cpp_save_parameter): Use XRESIZEVEC.
      	(create_iso_definition): Cast allocated storage to proper type.
      	(_cpp_create_definition): Likewise.
      	(cpp_macro_definition): Use XRESIZEVEC.
      	* makedepend.c (add_clm): Use XNEW.
      	(add_dir): Likewise.
      	* mkdeps.c (munge): Use XNEWVEC.
      	(deps_init): Use XCNEW.
      	(deps_add_target): Use XRESIZEVEC.
      	(deps_add_default_target): Cast return value of alloca.
      	(deps_add_dep): Use XRESIZEVEC.
      	(deps_add_vpath): Likewise.  Use XNEWVEC too.
      	(deps_restore): Likewise.
      	* pch.c (save_idents): Use XNEW and XNEWVEC.
      	(cpp_save_state): Use XNEW.
      	(count_defs): Cast return value of htab_find.
      	(write_defs): Likewise.
      	(cpp_write_pch_deps): Use XNEWVEC.
      	(collect_ht_nodes): Use XRESIZEVEC.
      	(cpp_valid_state): Use XNEWVEC.
      	(save_macros): Use XRESIZEVEC.  Cast return value of xmemdup.
      	* symtab.c (ht_create): Use XCNEW.
      	(ht_lookup_with_hash): Cast return value of obstack_copy0.
      	(ht_expand): Use XCNEWVEC.
      	* system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus.
      	(bool): Do not define if __cplusplus.
      
      From-SVN: r100295
      c3f829c1
  7. Apr 05, 2005
  8. Mar 12, 2005
    • Geoffrey Keating's avatar
      Index: libcpp/ChangeLog · 47e20491
      Geoffrey Keating authored
      2005-03-12  Geoffrey Keating  <geoffk@apple.com>
      
      	* directives.c (glue_header_name): Update call to cpp_spell_token.
      	* internal.h (_cpp_interpret_identifier): New.
      	* charset.c (_cpp_interpret_identifier): New.
      	(_cpp_valid_ucn): Allow UCN version of '$'.
      	* lex.c (lex_identifier): Add extra parameter to indicate if initial
      	character was '$' or '\'.  Support identifiers with UCNs.
      	(forms_identifier_p): Allow UCNs.
      	(_cpp_lex_direct): Pass extra parameter to lex_identifier.
      	(utf8_to_ucn): New.
      	(cpp_spell_token): Add FORSTRING parameter.  Use it.
      	(cpp_token_as_text): Update call to cpp_spell_token.
      	(cpp_output_token): Write UCNs back out.
      	(stringify_arg): Update call to cpp_spell_token.
      	(paste_tokens): Likewise.
      	(cpp_macro_definition): Likewise.
      	* macro.c (stringify_arg): Likewise.
      	(paste_tokens): Likewise.
      	(cpp_macro_definition): Likewise.
      	* include/cpplib.h: Add parameter to cpp_spell_token.
      
      Index: gcc/ChangeLog
      2005-03-12  Geoffrey Keating  <geoffk@apple.com>
      
      	* c-lex.c (c_lex_with_flags): Add parameter to call to
      	cpp_spell_token.
      
      Index: gcc/testsuite/ChangeLog
      2005-03-12  Geoffrey Keating  <geoffk@apple.com>
      
      	* gcc.dg/ucnid-1.c: New.
      	* gcc.dg/ucnid-2.c: New.
      	* gcc.dg/ucnid-3.c: New.
      	* gcc.dg/ucnid-4.c: New.
      	* gcc.dg/ucnid-5.c: New.
      	* gcc.dg/ucnid-6.c: New.
      	* gcc.dg/cpp/ucnid-1.c: New.
      	* gcc.dg/cpp/ucnid-2.c: New.
      	* gcc.dg/cpp/ucnid-3.c: New.
      	* g++.dg/other/ucnid-1.C: New.
      
      From-SVN: r96333
      47e20491
  9. Mar 04, 2005
  10. Feb 15, 2005
    • Eric Christopher's avatar
      re PR preprocessor/19077 (Internal compiler error compiling MPlayer) · 6da55c00
      Eric Christopher authored
      2005-02-15  Eric Christopher  <echristo@redhat.com>
      
      	PR preprocessor/19077
      	* macro.c (cpp_macro_definition): Move handling of whitespace
      	to PREV_WHITE conditional. Remove overloading of len
      	variable.
      
      2005-02-15  Eric Christopher  <echristo@redhat.com>
      
      	* gcc.dg/cpp/20050215-1.c: New file.
      
      From-SVN: r95080
      6da55c00
  11. Feb 14, 2005
    • Kazu Hirata's avatar
      directives.c, [...]: Update copyright. · 31c3e631
      Kazu Hirata authored
      	* directives.c, files.c, init.c, internal.h, macro.c, pch.c,
      	traditional.c: Update copyright.
      
      From-SVN: r95012
      31c3e631
    • Paolo Bonzini's avatar
      re PR bootstrap/19818 (GCC 4.0 cannot bootstrap itself) · be0f1e54
      Paolo Bonzini authored
      include:
      2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR bootstrap/19818
      	* ansidecl.h (PARAMS): Guard from redefinition.
      
      libcpp:
      2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR bootstrap/19818
      	* configure.ac: Check for declaration of basename and getopt.
      	* config.in: Regenerate.
      	* configure: Regenerate.
      	* internal.h (ustrcspn): New.
      	* macro.c (create_iso_definition): Fix allocation of memory.
      	(padding_token): Add cast to remove const-ness.
      	* pch.c (cpp_read_state): Use ustrcspn.
      
      From-SVN: r95003
      be0f1e54
  12. Jan 02, 2005
  13. Sep 09, 2004
    • Zack Weinberg's avatar
      cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_ prefixes throughout. · 21b11495
      Zack Weinberg authored
      2004-09-09  Matt Austern  <austern@apple.com>
      	    Zack Weinberg  <zack@codesourcery.com>
      
      	* include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
      	prefixes throughout.  Add entry for PRAGMA.  Remove
      	unnecessary "= 0" from EQ.
      	(enum cpp_ttype): Adjust OP and TK definitions to restore
      	prefixes, via token-paste.
      	(CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
      	Change from #defines to additional cpp_ttype enumerators.
      	(struct cpp_options): Add defer_pragmas.
      	(cpp_handle_deferred_pragma): Prototype new interface.
      
      	* internal.h (struct cpp_reader): Add directive_result.
      	* directives.c (struct pragma_entry): Add is_internal field;
      	give boolean fields type bool.
      	(start_directive): Initialize pfile->directive_result.type.
      	(_cpp_do__Pragma): Likewise.
      	(run_directive): Do not crash if pfile->buffer->prev is NULL.
      	(insert_pragma_entry): Add 'internal' argument; set new->is_internal
      	from it.
      	(register_pragma): New static function, bulk of former
      	cpp_register_pragma here; add 'internal' argument, pass along
      	to insert_pragma_entry.
      	(cpp_register_pragma): Now a wrapper around register_pragma which
      	always passes false for 'internal' argument.
      	(_cpp_init_internal_pragmas): Call register_pragma directly, passing
      	true for 'internal'.
      	(do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
      	an internal pragma, save text till the end of the line as a CPP_PRAGMA
      	token instead of executing the pragma.
      	(cpp_handle_deferred_pragma): New interface.
      	* lex.c (token_spellings): Adjust OP and TK definitions to
      	match changes to cpplib.h.
      	(_cpp_lex_token): Check for a directive-result token and
      	return it if present.
      	(cpp_token_val_index): Handle CPP_PRAGMA.
      	* macro.c (cpp_builtin_macro_text): Correct comment.
      	(builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
      
      From-SVN: r87247
      21b11495
  14. Jul 24, 2004
    • Bernardo Innocenti's avatar
      internal.h (xnew, [...]): Remove. · 72bb2c39
      Bernardo Innocenti authored
      	* internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove.
      	* directives.c: Use XNEW-family macros from libiberty.
      	* lex.c: Likewise.
      	* macro.c: Likewise.
      	* cpplib.h (cpp_deps_style): Export enum with name.
      
      From-SVN: r85121
      72bb2c39
  15. Jun 09, 2004
    • Geoffrey Keating's avatar
      Index: gcc/ChangeLog · d8044160
      Geoffrey Keating authored
      2004-06-09  Geoffrey Keating  <geoffk@apple.com>
      
      	* Makefile.in (CPPLIB_H): Put files in order of inclusion.
      	(CPP_ID_DATA_H): New.
      	(gtype-desc.o): Update dependencies.
      	(GTFILES): Use CPP_ID_DATA_H.
      
      Index: gcc/testsuite/ChangeLog
      2004-06-09  Geoffrey Keating  <geoffk@apple.com>
      
      	* gcc.dg/pch/macro-4.c: New.
      	* gcc.dg/pch/macro-4.hs: New.
      
      Index: libcpp/ChangeLog
      2004-06-09  Geoffrey Keating  <geoffk@apple.com>
      
      	* traditional.c (push_replacement_text): Set macro->traditional.
      	(save_replacement_text): Likewise.
      	* pch.c (cpp_write_pch_state): Don't write list of defined macros.
      	(struct save_macro_item): Delete.
      	(struct save_macro_data): Use a character array not the previous
      	structured format.
      	(save_macros): Save macro as text not as internal structures.
      	(cpp_prepare_state): Update for changes to save_macro_data.
      	(cpp_read_state): Don't read macros defined in PCH.  Restore
      	-D macros as text.
      	* macro.c (create_iso_definition): Honour alloc_subobject.
      	Clear traditional flag.
      	(_cpp_create_definition): Honour alloc_subobject.
      	* lex.c (cpp_token_val_index): New.
      	* internal.h: Include cpp-id-data.h.
      	(uchar): Move definition to cpp-id-data.h.
      	(U): Likewise.
      	(cpp_macro): Likewise.
      	* directives.c (struct answer): Move to cpp-id-data.h.
      	(do_assert): Honour alloc_subobject.
      
      Index: libcpp/include/ChangeLog
      2004-06-09  Geoffrey Keating  <geoffk@apple.com>
      
      	* symtab.h (struct ht): Add field 'alloc_subobject'.
      	* cpplib.h (struct cpp_string): Add GTY marker.
      	(enum cpp_token_fld_kind): New.
      	(struct cpp_token): Add GTY markers.
      	(cpp_token_val_index): Prototype.
      	(CPP_HASHNODE_VALUE_IDX): New.
      	(struct cpp_hashnode): Don't skip fields of 'value' when marking.
      	* cpp-id-data.h: New file.
      
      From-SVN: r82851
      d8044160
  16. Jun 05, 2004
    • Zack Weinberg's avatar
      Makefile.am: Add makedepend. · c6e83800
      Zack Weinberg authored
      libcpp:
      	* Makefile.am: Add makedepend.
      	* Makefile.in, aclocal.m4: Regenerate.
      	* charset.c: Insert a space to avoid a warning.
      	* directives.c: Include mkdeps.h.
      	(_cpp_handle_directive): Reenable macro expander if appropriate.
      	(undefine_macros): Inline body of _cpp_free_definition for speed.
      	Do not call undef callback or _cpp_warn_if_unused_macro.
      	(cpp_get_deps): New interface.
      	* files.c (search_cache): Add pfile argument.  Check for file
      	that would be found by "" or <> search here...
      	(_cpp_find_file): ...not here.  Correct recorded start_dir of
      	files found by directory-of-current-file search that would be
      	found by "" or <> search.
      	* init.c (cpp_add_dependency_target): Delete.
      	* internal.h (struct lexer_state): Add discarding_output flag.
      	* lex.c (lex_identifier): Compute hash function while scanning.
      	* macro.c (cpp_scan_nooutput): Disable macro expansion outside
      	directives.
      	* makedepend.c: New file.
      	* mkdeps.c (struct deps): Add vpath vector.
      	(apply_vpath, deps_add_vpath): New function.
      	(deps_free): Free vpath vector.
      	(deps_add_dep, deps_add_target): Use apply_vpath.
      	* symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH.
      	(ht_lookup_with_hash): New function.
      	* cpplib.h, mkdeps.h: Update prototypes.
      	* symtab.h: Update prototypes.
      	(HT_HASHSTEP, HT_FINISH): New macros.
      
      gcc:
      	* Makefile.in (MKDEPS_H): New shorthand.
      	(c-opts.o): Update dependencies.
      	* c-opts.c: Include mkdeps.h.
      	(handle_deferred_opts): Use cpp_get_deps and deps_add_target,
      	not cpp_add_dependency_target.
      
      From-SVN: r82654
      c6e83800
  17. 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
  18. 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
  19. Feb 19, 2004
    • Richard Henderson's avatar
      c-opts.c (warn_variadic_macros): New. · e5b79219
      Richard Henderson authored
              * c-opts.c (warn_variadic_macros): New.
              (c_common_handle_option): Set it.
              (sanitize_cpp_opts): Copy it to cpp_opts.
              * c.opt (Wvariadic-macros): New.
              * cpplib.h (struct cpp_options): Add warn_variadic_macros.
              * cppinit.c (cpp_create_reader): Initialize it.
              * cppmacro.c (parse_params): Check it.
      
      From-SVN: r78125
      e5b79219
  20. Feb 18, 2004
    • Per Bothner's avatar
      re PR preprocessor/14103 (ICEs on "gcc -E -imacros foo.h baz.c") · 22234f56
      Per Bothner authored
      	* cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
      	partly reverts my 2003-10-01 change, because we're back to logically
      	including <command line> inside the main line.
      	* cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
      	* cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
      	Fixes PR preprocessor/14103.
      
      	* cppfiles.c (_cpp_stack_include):  When appropriate decrement
      	line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
      	(cpp_push_include):  Don't need to increment pfile's line field.
      	* line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
      
      	* c-ppoutput.c (print struct):  New first_time field.
      	(init_pp_output):  Set print.first_time.
      	(pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
      	which is set also for (say) <command line>.  Clear print.first_time.
      
      	* cppfiles.c (struct _cpp_file):  Comment and type for pch field
      	does not match the code, so fix both.
      	(should_stack_file):  Inline include_pch_p function.
      	(include_pch_p):  Remove pointless function.
      
      	* cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
      
      From-SVN: r78049
      22234f56
  21. 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
  22. Jan 21, 2004
    • Kazu Hirata's avatar
      alias.c, [...]: Update copyright. · d9221e01
      Kazu Hirata authored
      	* alias.c, basic-block.h, c-common.c, c-common.h,
      	c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
      	calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
      	combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
      	cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
      	defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
      	expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
      	genautomata.c, genconditions.c, genemit.c, genflags.c,
      	gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
      	ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
      	langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
      	line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
      	ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
      	rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
      	target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
      	unwind.h, varray.c, varray.h: Update copyright.
      
      From-SVN: r76302
      d9221e01
  23. 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
  24. 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
  25. Oct 02, 2003
    • Per Bothner's avatar
      cpplib.c (_cpp_pop_buffer): Do generate a _cpp_do_file_change callback even... · 40de9f76
      Per Bothner authored
      cpplib.c (_cpp_pop_buffer): Do generate a _cpp_do_file_change callback even when popping the main file.
      
      
      	* cpplib.c (_cpp_pop_buffer):  Do generate a _cpp_do_file_change
      	callback even when popping the main file.
      
      	* cpplib.c (cpp_push_buffer):  Since we no longer set return_at_eof,
      	remove the unused return_at_eof parameter.
      	* cppfiles.c, cpplib.c, cppmacro.c, cpppch.c, fix-header.c:
      	Update callers of cpp_push_buffer.
      
      From-SVN: r72016
      40de9f76
  26. 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
  27. Jul 19, 2003
    • Kaveh R. Ghazi's avatar
      alias.c [...]: Remove unnecessary casts. · 703ad42b
      Kaveh R. Ghazi authored
      	* alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c
      	c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in
      	c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c
      	collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c
      	cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c
      	cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c
      	dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c
      	fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c
      	gcse.c genattr.c genattrtab.c genautomata.c genconditions.c
      	genemit.c genextract.c genoutput.c genrecog.c gensupport.c
      	ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c
      	integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c
      	loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c
      	postreload.c prefix.c print-tree.c protoize.c ra-build.c
      	ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c
      	regmove.c regrename.c reload.c reload1.c reorg.c resource.c
      	sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c
      	simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c
      	tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c
      	varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary
      	casts.
      
      From-SVN: r69587
      703ad42b
  28. 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
  29. Jun 25, 2003
    • Martin Schaffner's avatar
      cppfiles.c: Clarify comments. · 48c4721e
      Martin Schaffner authored
      	* cppfiles.c: Clarify comments.
      	* cpphash.h: Likewise.
      	* cpplib.h: Likewise.
      	* cppmacro.c: Likewise.
      	* mkdeps.h: Likewise.
      
      From-SVN: r68496
      48c4721e
  30. 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
  31. Jun 01, 2003
  32. Apr 24, 2003
    • Neil Booth's avatar
      cpplex.c (cpp_token_len): Tighten up. · 59325650
      Neil Booth authored
      	* cpplex.c (cpp_token_len): Tighten up.
      	(cpp_token_as_text): Need extra byte now.
      	* cpplib.c (glue_header_name): Need extra 2 bytes.
      	* cppmacro.c (cpp_macro_definition): Need extra byte.
      
      From-SVN: r66049
      59325650
  33. Apr 23, 2003
    • Neil Booth's avatar
      Makefile.in (c-lex.o, [...]): Update. · 6338b358
      Neil Booth authored
      	* Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
      	* c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
      	(lex_string): Take cpp_string with full spelling.
      	(cb_ident): Update.
      	(c_lex): Update diagnostics.
      	* cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
      	(create_literal): New.
      	(lex_string): Unterminated literals have type CPP_OTHER.
      	(_cpp_lex_direct): Update calls to lex_string.  Use create_literal
      	for CPP_OTHER.
      	(cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
      	(_cpp_equiv_tokens, cpp_interpret_charconst): Update.
      	* cpplib.c (parse_include, do_line, do_linemarker,
      	destringize_and_run): Update for token storing full spelling.
      	* cpplib.h: Update token spelling types.
      	* cppmacro.c (stringify_arg, check_trad_stringification):
      	Update for token storing full spelling.
      cp:
      	* Make-lang.in (lex.o): Remove mbchar.h.
      	* lex.c (MULTIBYTE_CHARS): Lose.
      	* parser.c (cp_lexer_get_preprocessor_token): CPP_OTHER handled
      	in c-lex.c.
      testsuite:
      	* gcc.dg/cpp/include2.c: Update.
      	* gcc.dg/cpp/multiline-2.c: New.
      	* gcc.dg/cpp/multiline.c: Update.
      	* gcc.dg/cpp/strify2.c: Update.
      	* gcc.dg/cpp/trad/literals-2.c: Update.
      
      From-SVN: r66019
      6338b358
  34. Apr 22, 2003
    • Neil Booth's avatar
      c-lex.c (c_lex): Handle CPP_OTHER differently. · 1067694a
      Neil Booth authored
      	* c-lex.c (c_lex): Handle CPP_OTHER differently.
      	* cppexp.c (_cpp_parse_expr): Similarly.
      	* cpplex.c (SPELL_CHAR): Remove.
      	(_cpp_lex_direct): Stray chars are saved as byte strings.
      	(cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
      	handle SPELL_CHAR.
      	(cpp_avoid_paste): Update handling of CPP_OTHER.
      	* cpplib.h: Spell CPP_OTHER like a number.
      	(struct cpp_token): Remove member c.
      	* cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
      
      From-SVN: r65951
      1067694a
  35. Apr 19, 2003
    • Neil Booth's avatar
      cppfiles.c (ENABLE_VALGRIND_CHECKING, [...]): Remove. · 26aea073
      Neil Booth authored
      	* cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
      	MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
      	(struct include_file): Remove fefcnt, mapped members.
      	(open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
      	(read_include_file): Don't use mmap, terminate buffers in '\r'.
      	(purge_cache): Don't use munmap.
      	* cpphash.h (CPP_BUF_COLUMN): Update.
      	(lexer_state): Remove lexing_comment.
      	(struct _cpp_line_note): New.
      	(struct cpp_buffer): New members cur_note, notes_used, notes_cap,
      	next_line and need_line.  Remove col_adjust and saved_flags.
      	(_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
      	_cpp_skip_block_comment, scan_out_logical_line): New.
      	(_cpp_init_mbchar): Remove.
      	* cppinit.c (init_library): Remove call to _cpp_init_mbchar.
      	(cpp_read_main_file): Set line to 1 earlier.
      	(post_options): -traditional-cpp doesn't want trigraphs.
      	* cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
      	(add_line_note, _cpp_clean_line, _cpp_process_line_notes,
      	_cpp_get_fresh_line): New.
      	(handle_newline, skip_escaped_newlines, trigraph_p,
      	continue_after_nul, _cpp_init_mbchar): Remove.
      	(get_effective_char): Update.
      	(_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
      	(skip_line_comment): Simplify.
      	(skip_whitespace, parse_identifier, parse_slow, parse_number,
      	parse_string): Update.
      	(cpp_lex_direct): Use clean lines and process line notes.  Update.
      	(cpp_interpret_charconst): No MULTIBYTE_CHARS.
      	* cpplib.c (prepare_directive_trad): Call scan_out_logical_line
      	directly.
      	(_cpp_handle_directive): Don't set saved_flags.
      	(run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
      	cpp_undef, handle_assertion, cpp_push_buffer): Update.
      	(_cpp_pop_buffer): Free notes.
      	* cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
      	* cpppch.c (cpp_read_state): \n terminate buffer.
      	* cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
      	(copy_comment): Use _cpp_skip_block_comment.
      	(skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
      	Simplify.
      	(_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
      	save_replacement_text): Update.
      	(scan_out_logical_line): Update to use clean lines and process
      	line notes.
      	* fix-header.c (read_scan_file): Update.
      testsuite:
      	* gcc.dg/cpp/_Pragma4.c: Remove stray space.
      	* gcc.dg/cpp/trad/escaped-eof.c: Correct line number.
      
      From-SVN: r65808
      26aea073
  36. Mar 14, 2003
  37. Feb 21, 2003
    • Zack Weinberg's avatar
      cpphash.h (struct lexer_state): Add directive_wants_padding. · a8d0ddaf
      Zack Weinberg authored
      	* cpphash.h (struct lexer_state): Add directive_wants_padding.
      	* cpplib.c (_cpp_handle_directive): Set directive_wants_padding
      	for directives of type INCL.
      	(glue_header_name, parse_include): Use get_token_no_padding.
      	* cppmacro.c (replace_args): If directive_wants_padding,
      	provide padding tokens.
      
      	* testsuite/gcc.dg/cpp/include3.c: New test.
      	* testsuite/gcc.dg/cpp/inc/foo.h: New file.
      
      From-SVN: r63231
      a8d0ddaf
  38. Dec 16, 2002
  39. Oct 09, 2002
Loading