* 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
e.g. __REGISTER_PREFIX__.
* cpphash.h (struct cpp_reader): Move member warn_dollars...
* cpplib.h (struct cpp_options): ...to here. Change type to
unsigned char.
* cppinit.c (cpp_create_reader): Set it to 1 here.
(post_options): Don't set it here.
* c-opts.c (c_common_init_options): Reset it to 0 here.
(finish_options): Set it here.
* cpplex.c (forms_identifier_p): Tweak for new location of
warn_dollars.
From-SVN: r67824
* cppinit.c (cpp_create_reader): Take extra hash_table* argument,
and pass that to _cpp_init_hashtable.
(cpp_read_main_file): Drop hash_table* argument; don't call
_cpp_init_hashtable.
* cpplib.h: Update declarations to match.
* c-opts.c (c_common_init_options): Pass ident_hash to
cpp_create_reader.
(c_common_post_options): Don't pass ident_hash to cpp_read_main_file.
* fix-header.c (read_scan_file): Likewise pass NULL table to
cpp_create_reader rather than cpp_read_main_file.
* cppfiles.c (cpp_rename_file): Generalized and renamed
to cpp_change_file.
* cpplib.h: Update declaration to match.
* c-opts.c (push_command_line_line, finish_options): Change
cpp_rename_file calls to cpp_change_file.
From-SVN: r64617
* c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
(c_common_init): Set EBCDIC in cpp options.
* cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option,
not conditional compilation.
* cpplib.h (struct cpp_options): New entry EBCDIC.
From-SVN: r64471
* Makefile.in (PREPROCESSOR_DEFINES): Add
@TARGET_SYSTEM_ROOT_DEFINE@.
* configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
is specified or if building a cross compiler.
(TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
if the sysroot is under $exec_prefix.
* configure: Regenerated.
* cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
defined.
(struct default_include): Add add_sysroot field.
(cpp_SYSROOT): Declare.
* cppdefault.c (cpp_include_defaults): Fill in add_sysroot
field.
(cpp_SYSROOT): New variable.
* cppinit.c (cpp_create_reader): Initialize
CPP_OPTION (pfile, sysroot).
(init_standard_includes): Handle add_sysroot. Do not
add unrelocated copies of relocated directories.
(COMMAND_LINE_OPTIONS): Add -isysroot.
(cpp_handle_option): Handle -isysroot.
* cpplib.h (struct cpp_options): Add sysroot member.
* gcc.c (The Specs Language): Update description of %I.
(target_system_root_changed): New variable.
(process_command): Conditionalize make_relative_prefix call
on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE. Set
target_system_root_changed.
(do_spec_1): Add -isysroot to %I.
* doc/invoke.texi (Spec Files): Update description of %I.
* doc/install.texi (--with-sysroot): Update comment about
relocation.
From-SVN: r62853
* cpplib.h (struct cpp_options): Add warn_deprecated field.
* cppinit.c (cpp_create_reader): Turn it on by default.
* c-opts.c (c_common_decode_option): Set it.
* cpplib.c (do_pragma_once): Only complain about #pragma once
if warn_deprecated is set.
From-SVN: r62005
PR preprocessor/7358
* c-opts.c (check_deps_environment_vars): Ignore main file
for SUNPRO_DEPENDENCIES.
* cppfiles.c (stack_include_file): Ignore main file if
appropriate.
* cpplib.h (struct cpp_options): New member in deps.
* doc/cppenv.texi: Update.
From-SVN: r56333
* Makefile.in (c-opts.o): Update
* c-opts.c: Include intl.h.
(print_help): Move from cppinit.c. Remove unused options.
(COMMAND_LINE_OPTIONS): Move more from cppinit.c.
(missing_arg): Complain for switches without an argument.
(c_common_decode_option): Reject missing joined arguments.
Handle new switches from cppinit.c.
* cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
(cpp_handle_option): Similarly.
(print_help): Moved to c-opts.c.
* cpplib.h (struct cpp_options): Remove help_only.
* gcc.c (cpp_unique_options): Remove -$.
* doc/cppopts.texi: Undocument -h.
From-SVN: r56155
* cppinit.c (struct lang_flags): Rename trigraphs std.
(set_lang): Update.
* cpplib.h (struct cpp_options): New member std.
* cppmacro.c (_cpp_builtin_macro_text): Use std.
(collect_args): Flag whether to swallow a possible future
comma pasted with varargs.
(replace_args): Use this flag.
* doc/cpp.texi: Update varargs extension documentation.
testsuite:
* gcc.dg/cpp/vararg3.c, gcc.dg/cpp/vararg4.c: New tests.
From-SVN: r56077
* Makefile.in: Update cppmain.o.
* cpphash.h (struct cpp_reader): Move some members to a
nested structure.
(trad_line): Rename saved_line.
(_cpp_read_logical_line_trad): Update.
(_cpp_remove_overlay): New.
* cppinit.c (cpp_create_reader): No need to set saved_line.
(cpp_destroy): Update.
(cpp_read_main_file): Only overlay if compiling.
* cpplex.c (continue_after_nul): Return false if in directive.
* cpplib.c (EXPAND): New.
(directive_table, SEEN_EOL): Update.
(end_directive): Remove overlay if traditional; don't skip
line in traditional #define.
(prepare_directive_trad): New.
(_cpp_handle_directive, run_directive): Update for traditional
directives.
(lex_macro_node): Simplify, don't use lex_identifier_trad.
* cpplib.h (struct options): Add preprocess_only.
* cppmain.c: Don't include intl.h.
(cpp_preprocess_file): Set options->preprocess_only.
(scan_translation_unit_trad): Fix, and print line numbers.
* cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
save_replacement_text, _cpp_create_trad_definition): Update for
variable renaming.
(_cpp_overlay_buffer): Save line number.
(_cpp_remove_overlay): Rename from restore_buff, restore line.
(_cpp_read_logical_line_trad): Don't handle overlays here.
(scan_out_logical_line): Process directives.
From-SVN: r54485
* cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
options their own entries.
(parse_option): Clarify comment.
(cpp_handle_option): Remove 'ignore' parameter and OPT_W
special case. Replace if/strcmp chain for -W options with
use of new OPT_* entries for them.
(cpp_handle_options): Update to match.
* cpplib.h: Remove last parameter to cpp_handle_option from prototype.
* c-decl.c, cp/decl2.c: Update call to cpp_handle_option.
From-SVN: r54352
* Makefile.in: Update for cpptrad.c.
* cpphash.h (struct cpp_buffer): New members for buffer
overlays.
(struct cpp_reader): New members for traditional output.
(_cpp_read_logical_line, _cpp_overlay_buffer): New.
* cppinit.c (cpp_create_reader): Set trad_line.
(cpp_destroy): Free trad_out_base if used.
(cpp_read_main_file): Overlay an empty buffer if traditional.
(cpp_finish_options): Don't do builtins.
(COMMAND_LINE_OPTIONS): Add -traditional-cpp.
(cpp_handle_option): Handle it.
* cpplex.c (continue_after_nul): New.
(_cpp_lex_direct): Use handle_nul.
* cpplib.h (struct cpp_options): New traditional option.
* cpptrad.c: New file.
From-SVN: r53568
* c-common.c (c_common_init_options): Use C89 for Objective-C,
and set the options flag.
* cppinit.c (lang_flags): Remove objc.
(lang_defaults): Remove OBJC and OBJCXX.
(set_lang): Update.
(COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
(cpp_handle_option): Remove -+ and -lang-objc++.
For ObjC, just set a flag.
(print_help): Update.
* cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
From-SVN: r53566
* c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
Default-define here.
(builtin_define_with_value): Can now wrap the expansion in
quotation marks if such is wanted.
(cb_register_builtins): Update calls to builtin_define_with_value.
Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
here.
(c_common_init): Set options->stdc_0_in_system_headers.
* c-lex.h: Update prototype of builtin_define_with_value.
* cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
and REGISTER_PREFIX.
* cppinit.c (VERS, ULP, C, X): Kill.
(builtin_array): Remove entries for __VERSION__,
__USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
__HAVE_BUILTIN_SETJMP__. Make __STDC__ always a builtin, not
a constant.
(init_builtins): Kill off a bunch of now-dead code.
(COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
-fno-leading-underscore.
(cpp_handle_option): Remove code to set user_label_prefix.
(cpp_post_options): Likewise.
* cpplib.h (struct cpp_options): Remove user_label_prefix.
(stdc_0_in_system_headers): New.
* cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
stdc_0_in_system_headers) too to decide the value of __STDC__.
* tradcpp.c (user_label_prefix): Kill.
(main): Remove code handling -f(no-)leading-underscore.
(initialize_builtins): Don't define __REGISTER_PREFIX__
or __USER_LABEL_PREFIX__.
(install_value): Wrap compound statement in dummy loop so the
macro works properly in an if statement.
From-SVN: r53525
* cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
(cpp_post_options): Move sanity checks to...
(sanity_checks): New.
* cpplex.c (maybe_read_ucs): Fix prototype.
(parse_string, cpp_parse_escape): Cast for %c format specifier.
* cpplib.h (cppchar_t): Use unsigned long or unsigned long long
if necessary.
From-SVN: r53163
* c-lex.c (lex_string): Let cpp_parse_escape handles truncation
and sign-extension.
(lex_charconst): Update for change in prototype of
cpp_interpret_charconst. Extend from cppchar_t to HOST_WIDE_INT
appropriately.
* cpphash.h (BITS_PER_CPPCHAR_T): New.
* cppinit.c (cpp_create_reader): Initialize them for no
change in semantics.
(cpp_post_options): Add sanity checks.
* cpplex.c (cpp_parse_escape): Handle precision, sign-extension
and truncation issues. Calculate in type cppchar_t.
(MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
(cpp_interpret_charconst): Calculate in type cppchar_t. Handle
run-time dependent precision correctly. Return whether the
result is signed or not.
* cpplib.c (dequote_string): Use cppchar_t; update.
* cpplib.h (cppchar_signed_t): New.
struct cpp_options): New precision members.
(cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
From-SVN: r53152
* cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
(HAVE_NO_R_OPERAND): Remove.
(HAVE_VALUE): Remove.
(op_to_prio): Update.
(UNARY): Don't alter flags.
(_cpp_parse_expr): want_value used to indicate whether
a number or unary operator is expected next. Distinguish
unary and binary +/-.
(op_as_text): Update for unary operators.
From-SVN: r52780
2002-04-24 Matt Hiller <hiller@redhat.com>
* cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
* c-lex.c: Ditto.
* cpplex.c (skip_line_comment): Process comment one multibyte
character at a time rather than one char at a time, if
appropriate.
(parse_string): Process string one multibyte character at a time
rather than one char at a time, if appropriate.
* c-lex.c (lex_string): Lex and copy multibyte strings
appropriately.
* cpplib.h (cppchar_t): Change to unsigned.
From-SVN: r52737