2007-05-17  Fariborz Jahanian <fjahanian@apple.com>

        Radar 2996215
        * charset.c (cpp_utf8_utf16): New
        * include/cpplib.h (cpp_utf8_utf16): New decl.

2007-05-02  Eric Christopher  <echristo@apple.com>

	Radar 4238322
	* expr.c (num_div_op): Don't overflow if the result is
	zero.

2007-02-22  Geoffrey Keating  <geoffk@apple.com>

	Radar 4927549
	* init.c (lang_defaults): Enable extended identifiers by default
	for languages which require them.

2007-01-05  Bill Wendling  <wendling@apple.com>

        Radar 4897123
        * directives.c (_cpp_do_file_change): Array of maps could change after
        the "file_change" callback. We should relookup the map afterwards.

2006-09-18  Bill Wendling  <wendling@apple.com>

        Radar 3222135
        * charset.c (narrow_str_to_charconst): If the -pedantic[-errors] flag
        is set, then issue a warning for multi-character character constants.

2005-02-28  Devang Patel  <dpatel@apple.com>
  	    Ziemowit Laski  <zlaski@apple.com>

	Radar 4137741
        * directives.c (_cpp_do_file_change): If preprocessor
        defer_file_change_debug_hooks flag is set, synthesize CPP_BINCL
        and CPP_EINCL tokens.
        * init.c (cpp_create_reader): Initialize token run (and associated
        pointers) for storing CPP_EINCL tokens.
        * internal.h (struct cpp_reader): Add new fields for storing
        CPP_EINCL tokens.
        (_cpp_next_tokenrun): Add declaration.
        * lex.c (next_tokenrun): Make externally visible and rename to
        _cpp_next_tokenrun().
        (_cpp_temp_token): Call _cpp_next_tokenrun() instead of
        next_tokenrun().
        (_cpp_lex_token): Likewise; return any pending CPP_EINCL tokens
        before returning token actually read.
        * include/cpplib.h (TTYPE_TABLE): Define new CPP_BINCL and CPP_EINCL
        token types, similar to CPP_PRAGMA.
        (cpp_options): Define new defer_file_change_debug_hooks flag.

2006-04-25  Mike Stump  <mrs@apple.com>

	Radar 4505741
	* lex.c: Rename cw_asm_states to iasm_states.
	Rename cw_asm_in_operands to iasm_in_operands.
	Rename cw_asm_state to iasm_state.
	Rename cw_asm_label_follows to iasm_label_follows.
	Rename flag_cw_asm_blocks to flag_iasm_blocks.
	* macro.c: Likewise.
	* makedepend.c: Likewise.

2006-04-17  Devang Patel  <dpatel@apple.com>

	Radar 4499790
	* charset.c (cpp_interpret_string): Enable pascal strings for wchars.

2005-12-13  Mike Stump  <mrs@apple.com>

	* Revert 2005-12-07  Devang Patel  <dpatel@apple.com> Radar 4137741

2005-12-09  Mike Stump  <mrs@apple.com>

	Radar 4371958
	* macro.c (cpp_get_token): Be sure to reset the BOL flag when
	injecting macro bodies, as we wouldn't want a previous value.

2005-12-07  Devang Patel  <dpatel@apple.com>
   	    Ziemowit Laski  <zlaski@apple.com>

        Radar 4137741
        * directives.c (_cpp_do_file_change): If preprocessor
        defer_file_change_debug_hooks flag is set, synthesize CPP_BINCL
        and CPP_EINCL tokens.
        * init.c (cpp_create_reader): Initialize token run (and associated
        pointers) for storing CPP_EINCL tokens.
        * internal.h (struct cpp_reader): Add new fields for storing
        CPP_EINCL tokens.
        (_cpp_next_tokenrun): Add declaration.
        * lex.c (next_tokenrun): Make externally visible and rename to
        _cpp_next_tokenrun().
        (_cpp_temp_token): Call _cpp_next_tokenrun() instead of
        next_tokenrun().
        (_cpp_lex_token): Likewise; return any pending CPP_EINCL tokens
        before returning token actually read.
        * include/cpplib.h (TTYPE_TABLE): Define new CPP_BINCL and CPP_EINCL
        token types, similar to CPP_PRAGMA.
        (cpp_options): Define new defer_file_change_debug_hooks flag.

2005-08-22  Mike Stump  <mrs@apple.com>

	Radar 4211954
	* expr.c (interpret_int_suffix): Add support for the h suffix to
	identify hex integers.
	(cpp_classify_number): Likewise.
	(cpp_interpret_integer): Likewise.
	* include/cpplib.h (struct cpp_options): Likewise.

2005-06-15  Geoffrey Keating  <geoffk@apple.com>

	* lex.c (warn_about_normalization): Add cast to 'sz'.
	* macro.c (cpp_get_token): Use cast on 'result' rather than making
	it non-const.
	* pch.c (cpp_read_state): Don't mix declarations and code.

2005-06-01  Devang Patel  <dpatel@apple.com>

	Radar 4133801
	* include/cpplib.h (CPP_BINCL, CPP_EINCL):  New.

2005-04-21  Devang Patel  <dpatel@apple.com>

	Radar 4058553
	Backport from FSF Mainline.
	2005-04-19  Per Bothner  <per@bothner.com>

	PR preprocessor/20907
	* line-map.c (linemap_line_start): Fix bug when we need to increse
	column_bits but can re-use the current line_map.

2005-03-11  Devang Patel  <dpatel@apple.com.

	* diretives.c: Fix white space.

2005-03-06  Devang Patel  <dpatel@apple.com>

	* init.c (cpp_read_main_file): Remove Symbol Separation support.
	* internal.h (cpp_cinfo_state): Remove.
	(struct cpp_reader): Remove Symbol Separation support.
	(find_include_cinfo): Remove.
	* pch.c (count_defs): Remove Symbol Separation support.
	(write_defs): Same.
	(cpp_valid_state): Remove warn_invalid_sr use.
	* directives.c (find_include_cinfo, cpp_symbol_separation_init,
	cpp_write_symbol_deps, cpp_get_stabs_checksum): Remove.

2005-02-27  Devang Patel  <dpatel@apple.com>

	Radar 3982899
	* directives.c (do_line): Save sysp early before line table is realloc'ed.

2005-02-21  Devang Patel  <dpatel@apple.com>

	Radar 4007432
	* charset.c (_cpp_convert_input): Check '\r' before inserting
	'\n' at the end.

2005-02-17  Devang Patel  <dpatel@apple.com>

	Radar 3958387
	* libcpp/lex.c (_cpp_get_fresh_line): Check warn_newline_at_eof.

2005-01-04  Anders Bertelrud  <anders@apple.com>

	Radar 3871393
	* include/cpplib.h (struct cpp_dir):  Added 'header_map' field.

2005-01-06  Mike Stump  <mrs@apple.com>

	Radar 3929334
	* files.c (pch_open_file): Add indirection for pch files for distcc.
	(read_from_parent): Add.
	(write_to_parent): Add.
	(init_indirect_pipes): Add.
	(indirect_file): Add.

2004-12-10  Devang Patel  <dpatel@apple.com>

        Undo Radar 3909961
        * libcpp/directivec.c (do_elif): Do not check EOL when -Wextra-tokens is used.

2004-12-10  Devang Patel  <dpatel@apple.com>

        Radar 3909961
        * libcpp/directivec.c (do_elif): Check EOL when -Wextra-tokens is used.

2004-08-03  Stan Shebs  <shebs@apple.com>

	Radar 3368707
	Support for CodeWarrior-style assembly language blocks and
	functions.
	* include/cpplib.h (CPP_BOL, CPP_EOL): Define.
	* internal.h (struct cpp_context): New field bol_p.
	* lex.c (lex_identifier): Handle special chars in opcodes.
	(cw_asm_label_follows): New global.
	(_cpp_lex_direct): Special handling for @-labels,
	flag end of operands when ';' seen.
	* macro.c (enter_macro_context): Add bol_p argument and use.
	(push_ptoken_context): Seed bol_p field.
	(push_token_context): Ditto.
	(cpp_get_token): Detect tokens at beginning of line and record.
