summaryrefslogtreecommitdiffstats
path: root/gcc/cppinit.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * configure.in: Add check for lstat.neil2001-04-061-1/+3
| | | | | | | | | | | | | | | * configure, config.in: Regenerate. * cppinit.c (append_include_chain): Make empty path ".". * cpplib.c (do_line): Don't simplify #line paths. * cppfiles.c (remove_component_p): New function. (find_or_create_entry): Acknowledge stat () errors during path simplification. (handle_missing_header): Don't simplify paths. (_cpp_simplify_pathname): Don't simplify VMS paths. Return the empty path untouched. Don't leave a trailing '/'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41148 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpp.texi: Update documentation for -include and -imacros.neil2001-03-151-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | * cppfiles.c (struct include_file): Remove "defined" memeber. (find_or_create_entry): Make a copy of the file name, and simplify it. (open_file): Update to ensure we use the simplified filename. (stack_include_file): Don't set search_from. (cpp_included): Don't simplify the path name here. (find_include_file): New prototype. Call search_from to get the start of the "" include chain. Don't simplify the filenames here. (_cpp_execute_include): New prototype. Move diagnostics to do_include_common. Update. (_cpp_pop_file_buffer): Don't set defined. (search_from): New prototype. Use the preprocessor's cwd for files included from the command line. (read_name_map): Don't simplify the pathname here. * cpphash.h (enum include_type): New. (struct buffer): Delete search from. New search_cached. (_cpp_execute_include): Update prototype. * cppinit.c (do_includes): Use _cpp_execute_include. * cpplib.c (do_include_common): New function. (do_include, do_include_next, do_import): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40486 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppfiles.c (_cpp_execute_include): Don't make a null-terminatedneil2001-03-041-2/+0
| | | | | | | | | | | | | | | | | | copy of the filename. Don't use CPP_PREV_BUFFER. Don't call strlen or strcpy; we already know the length. (_cpp_compare_file_date): Similarly. * cpphash.h (struct cpp_reader): Delete done_initialising. (CPP_PREV_BUFFER): Delete. * cppinit.c (cpp_start_read): Don't set done_initialising. * cpplex.c (parse_string): Guarantee null-termination. (_cpp_equiv_toklists): Remove. * cpplib.c (glue_header_name): Null-terminate. (do_line): Don't leak memory. * cpplib.h (BT_WEAK): Delete. * cppmain.c (cb_ident): Strings are now null-terminated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40233 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (append_include_chain): Mark "after" include file name list as acgf2001-03-021-1/+4
| | | | | | | | system directory. * cpp.texi: Document new behavior. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40189 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppfiles.c (struct include_file): Update.neil2001-03-021-23/+22
| | | | | | | | | | | | | | | | | | | | | | | (stack_include_file): Use search_from. (cpp_included, find_include_file): Update. (cpp_execute_include): Update. ptr->name may not be null terminated. Use the new search_from member variable of cpp_buffer. (_cpp_compare_file_date): Similarly. (search_from): New function, similiar to actual_directory. (actual_directory): Delete. (remap_filename): Update. loc->name may not be null terminated. (struct file_name_list): Rename search_path. Update. * cpphash.h (struct cpp_buffer): Delete actual_dir. New members search_from and dir. (struct cpp_reader): Remove actual_dirs. * cppinit.c (struct cpp_pending): Update for renamed objects. (append_include_chain, remove_dup_dir, remove_dup_dirs, merge_include_chains, cpp_destroy, cpp_start_read): Similarly. * cpplib.h (struct cpp_options): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40178 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpplib.c (_cpp_init_stacks): Cast enum for comparison.danglin2001-03-021-1/+1
| | | | | | | | | | | | * cppexp.c (lex): Cast enums for comparison. * cppinit.c (parse_option): Cast enum for comparison. * cpplex.c (cpp_spell_token): Cast enums to int for minus. (cpp_output_token): Likewise. (cpp_can_paste): Cast enums for comparsion and plus/minus. (cpp_avoid_paste): Cast enums for minus and comparison. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40174 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpphash.h (struct cpp_reader): Add print_version field.zack2001-03-021-13/+18
| | | | | | | | | | | | | | | | | | * cppinit.c (cpp_handle_option): For -v, -version, and --version, just set print_version and other flags as appropriate. (cpp_post_options): Print version here if print_version is set. * toplev.c (exit_after_options): New flag. (independent_decode_option): Don't exit here; just set exit_after_options. (main): Exit after calling lang_hooks.post_options if exit_after_options is true. * cppinit.c (append_include_chain): Drop never-used case QUOTE. (merge_include_chains): Adjust comment to match code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40171 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (builtin_array): Update.neil2001-02-251-6/+16
| | | | | | | | | | | | | | | | | (init_builtins): Flag builtins to warn if redefined or undefined. Define __GXX_WEAK as a normal macro. * cpplib.c (do_undef): Warn if flagged NODE_WARN. * cpplib.h (NODE_WARN): New flag. * cppmacro.c (builtin_macro): Remove handling of __GXX_WEAK__. Handle __STDC__ as a builtin only on Solaris. (warn_of_redefinition): Renamed from check_macro_definition. Reverse sense of test. Always warn if NODE_WARN. (_cpp_create_definition): Use warn_of_redefinition. Flag any macro beginning with "__STDC_" to require a mandatory warning if redefined or undefined. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40053 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppfiles.c: Update comments.neil2001-02-211-32/+23
| | | | | | | | | | | | | | | | (_cpp_read_file): Don't check for NULL filenames any more. * cppinit.c (cpp_start_read): Don't do canonicalization of in_fname and out_fname. Use the passed file name exclusively. (_cpp_handle_options): Don't treat "-" as a command line option, but as a normal filename. (_cpp_post_options): Canonicalize in_fname and out_fname. * cppmain.c (printer_init): Don't check out_fname for NULL. * c-lex.c (orig_filename): Rename cpp_filename for clarity. (init_c_lex): Update, and use "" to represent stdin to CPP. (yyparse): Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39938 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (set_lang): Move builtin handling to...neil2001-02-201-14/+18
| | | | | | | | (init_builtins): ...here. (_cpp_create_reader): Move call to set_lang. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39934 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpphash.h (struct spec_nodes): Add n_true and n_false.zack2001-02-071-1/+3
| | | | | | | | | | | | | * cppinit.c (cpp_create_reader): Initialize them. (append_include_chain): cxx_aware arg might be unused. * cppexp.c (lex): In C++ mode, recognize 'true' and 'false' keywords and give them their phase 7 meaning. Pedwarn about this unless '__bool_true_false_are_defined' is defined. * g++.dg/stdbool-if.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39523 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (BC): New macro.mmitchel2001-02-041-0/+2
| | | | | | | | | | | (builtin_array): Add __GXX_WEAK__. * cpplib.h (builtin_type): Add BT_WEAK. * cppmacro.c (builtin_macro): Handle BT_WEAK. * defaults.h (SUPPORTS_ONE_ONLY): Define. * varasm.c (SUPPORTS_ONE_ONLY): Do not define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39436 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (append_include_chain): Honor NO_IMPLICIT_EXTERN_C.jakub2001-02-031-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39435 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppfiles.c (_cpp_read_file): Add to dependencies if requested.jakub2001-01-241-7/+2
| | | | | | | | | | * cppinit.c (cpp_start_read): Remove deps_add_dep call. * tradcpp.c (main): Add -imacros or -include'd dependencies for -M*. * cpp.texi (-M, -MM): Document -M -include behaviour. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39240 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (INO_T_EQ): Don't use #elif, fix formatting.msokolov2001-01-211-4/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39161 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-parse.in (finish_parse): Add comment about cpp_destroy.neil2001-01-141-4/+10
| | | | | | | | | | | * cp/lex.c (finish_parse): Similarly. * cppinit.c (cpp_cleanup): Rename cpp_destroy for clarity. Return the number of errors encountered. * cpplib.h (cpp_cleanup): Rename cpp_destroy, return int. * cppmain.c (main): Don't call cpp_destroy. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39020 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (cpp_handle_option): help_only is now part of theneil2001-01-131-3/+3
| | | | | | | | | | | | | | | cpp_options structure. * cpplib.c (cpp_errors, cpp_get_options, cpp_get_callbacks, cpp_set_callbacks): New functions. * cpplib.h (cpp_callbacks): Break out as a named structure. (cpp_options): Move help_only here from cpp_reader. (CPP_FATAL_ERRORS): Update to use cpp_errors. (cpp_errors, cpp_get_options, cpp_get_callbacks, cpp_set_callbacks): New prototypes. * cppmain.c (main): Update for help_only. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38971 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (do_includes): Fix typo.neil2001-01-111-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38928 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-01-11 Neil Booth <neil@daikokuya.demon.co.uk>neil2001-01-111-15/+20
| | | | | | | | | | | | | | | | | * cppinit.c (cpp_start_read): If -fpreprocessed, ignore -D, -U and -A, and don't initialize the builtins. * cppmain.c (cb_define, cb_undef): Unconditionally process the callback. * tradcpp.c (main): Fix typo. 2000-01-11 Mark Elbrecht <snowball3@bigfoot.com> * cppfiles.c (cpp_included, find_include_file, _cpp_execute_include) (read_name_map): Use IS_ABSOLUTE_PATH. * tradcpp.c (get_filename): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38925 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (tradcpp0): Depend on mkdeps.h. Link mkdeps.oneil2001-01-101-3/+4
| | | | | | | | | | | | | | | | | | | | | * cppinit.c (cpp_start_read): Update comment, remove unneeded if statement. * tradcpp.c: Include mkdeps.h. (deps, print_deps_phony_targets, deps_append, output_deps, init_dependency_output, output_deps): New. (deps_buffer, deps_allocated_size, deps_size, deps_column, deps_output): Delete. (print_deps_missing_files): Rename deps_missing_files. (inhibit_output): Make global. (main): Delete inhibit_output, deps_stream, deps_target. Use mkdeps functionality in the same way as cpplib. Remove -g3 handling. Handle -MF, -MP, -MQ, -MT. Update handling of -M and -MM. Remove old handling of deps via deps_out, and old reading of environment variables. (get_filename): Update to use deps_add_dep. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38885 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (OPT_g): Remove.neil2001-01-101-8/+2
| | | | | | | | | | | (cpp_handle_option): Update for removed -g3. (print_help): Update. * cpplib.h (struct cpp_options): Remove debug_output. * cppmain.c (setup_callbacks, cb_define): Update. * gcc.c (cpp_options): Translate -g3 to -dD. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38881 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (OPT_MD, OPT_MMD): Restore.neil2001-01-091-10/+30
| | | | | | | | | | | | (cpp_handle_option): Handle them. (cpp_post_options): Ensure one of -M or -MM is specified with any other -M? option. (init_dependency_output): Suppress output with -MG. * cpp.texi: Update. * invoke.texi: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38833 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (cpp_cleanup): NULLify macro_buffer and zeroaoliva2001-01-091-1/+5
| | | | | | | | | macro_buffer_len. * cppmacro.c (cpp_macro_definition): Reset macro_buffer_len when realloc()ing macro_buffer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38821 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (init): Rename init_library.neil2001-01-081-3/+3
| | | | | | | | | (cpp_create_reader): Update. * gcc.c (cpp_options): If -o given, use it as the target of any -M options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38805 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lang.c (c_post_options): Call cpp_post_options.neil2001-01-071-62/+62
| | | | | | | | | | | | | | | | | | | | | | | * cppmain.c (main): Similarly. * fix-header.c (read_scan_file): Similarly. * cp/decl2.c (cxx_post_options): Similarly. * objc/objc-act.c (objc_post_options): Similarly. * cppinit.c (cpp_start_read): Move option consistency checks to cpp_post_options. Don't call init_dependency_output. If needed, add default target and main file dependency. (OPT_MD, OPT_MMD): Remove. (OPT_MF): New. (cpp_handle_option): Update for OPT_* changes. (cpp_post_options): New. (init_dependency_output): Command line -MF overrides environment variables. Don't set default target etc. Suppress output if dependencies are going to stdout. (print_help): Update. * cpplib.h (cpp_post_options): New. * gcc.c (cpp_options): Update for -MD, -MMD, -MF. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38777 138bc75d-0d04-0410-961f-82ee72b054a4
* * (initialize, initialize_builtins,neil2001-01-071-114/+127
| | | | | | | | | | | | | | | | initialize_dependency_output, initialize_standard_includes): Rename s/initialize/init. Update. (init_dependency_output): Move to after cpp_handle_options, the correct location temporally at least. (opt_comp): Move next to init (), its caller. Fix prototype. (init): Make "initialized" local scope. (cpp_create_reader): Always call init (). (cpp_start_read): Update. (output_deps): New function, broken out of cpp_finish. (cpp_finish): Break out output_deps. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38770 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpp.texi: Update for -MQ.neil2001-01-061-12/+9
| | | | | | | | | | | | | | | | | | * cppinit.c (cpp_create_reader): Always create pfile->deps. (cpp_cleanup): Always free pfile->deps. (initialize_dependency_output): Don't create pfile->deps. (cpp_handle_option): Similarly. (OPT_MQ): New. * gcc.c (cpp_options): Handle -MQ. (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ. * mkdeps.c (base_name): Remove. (deps_init): Don't allocate vector space until it's needed. (deps_free): Only free vectors if allocated. (deps_add_target, deps_add_dep): Update for initial allocation. (deps_add_default_target): Don't strip to the base_name. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38735 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpplib.h (struct cpp_reader): Add help_only field.zack2001-01-051-13/+22
| | | | | | | | | | | | | | | | | | * cppinit.c (COMMAND_LINE_OPTIONS): Add OPT_version. (cpp_handle_option): Set pfile->help_only if we see -h, --help, -target-help, or --version. Print version string but do not set help_only if we see -v or -version. Make text printed by -v match that printed by (-)-version. * cppmain.c (main): Exit after option parsing if pfile->help_only is true. * toplev.c (independent_decode_option): Call print_version, then exit, if we see --version (but not -version). (print_version): Split lengthy message into two lines. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38733 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpp.texi: Update for -MP. Clarify behaviour of -MT.neil2001-01-051-2/+12
| | | | | | | | | | | | | | | | | | | | | | * cppinit.c (initialize_dependency_output): Update. (cpp_finish): Output dummy targets for -MP. (OPT_MP): New. (cpp_handle_option): Handle -MP. Don't quote -MT options. * cpplib.h (struct cpp_options): Add deps_phony_targets. * gcc.c (cpp_options): Update to handle -MP. * mkdeps.c (deps_add_target, deps_add_default_target): Update to quote only the default target. (deps_phony_targets): Insert a preceding newline. Rename from deps_dummy_targets for consistency. * mkdeps.h: Update java: * lang.c (lang_decode_option): Change -MA to -MP. * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target): Update to new prototype; do quote targets. (jcf_dependency_write): Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38707 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpp.texi: Update for -MT.neil2001-01-041-15/+21
| | | | | | | | | | | | | | | | | * cppinit.c (initialize_dependency_output): Add a default target if none has been given already. (no_tgt, OPT_MT): New. (cpp_handle_option): Handle -MT. Update -M etc. * cpplib.h (struct cpp_options): Remove deps_target. * gcc.c (cpp_options): Handle -MT. * mkdeps.c (struct deps): Move from mkdeps.h. (deps_calc_target): Rename deps_add_default_target. Add a default target if none has been specified already. * mkdeps.h (struct deps): Move to mkdeps.c. (deps_calc_target): Rename deps_add_default_target. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38681 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpplib.h (struct cpp_reader): Remove references to string_poolneil2000-12-171-7/+0
| | | | | | | | | | | | | | and temp_string_pool. * cppinit.c (cpp_create_reader, cpp_cleanup): Similarly; using ident_pool in place. * cpplex.c (parse_number, unescaped_terminator_p, parse_string, save_comment, cpp_token_as_text): Similarly. * cpplib.c (do_define, glue_header_name, parse_assertion): Similarly. * cppmacro.c (make_number_token, builtin_macro, lock_pools, unlock_pools, stringify_arg, paste_tokens): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38336 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.c (cpp_options): Pass -fno-operator-names.jakub2000-12-151-0/+9
| | | | | | | | | | | | * cpplib.h (struct cpp_options): Add operator_names. * cppinit.c (cpp_create_reader): Initialize it. (initialize_builtins): If -fno-operator-names, don't add C++ alternate operator names. (COMMAND_LINE_OPTIONS): Add -fno-operator-names. (cpp_handle_option): Clear operator_names. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38288 138bc75d-0d04-0410-961f-82ee72b054a4
* include:zack2000-12-081-43/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * safe-ctype.h: New file. libiberty: * safe-ctype.c: New file. * Makefile.in (CFILES): Add safe-ctype.c. (REQUIRED_OFILES): Add safe-ctype.o. * argv.c: Define ISBLANK and use it, not isspace. * basename.c, cplus-dem.c, fnmatch.c, pexecute.c, strtod.c, strtol.c, strtoul.c: Include safe-ctype.h, not ctype.h. Use uppercase ctype macros. Don't test ISUPPER(c)/ISLOWER(c) before calling TOLOWER(c)/TOUPPER(c). gcc: * Makefile.in (HOST_RTL): Add safe-ctype.o. (safe-ctype.o): New rule. * system.h: Include safe-ctype.h, not ctype.h. No need to wrap ctype macros. * cpphash.h: Zap IStable and related macros. Define is_* in terms of safe-ctype.h macros. * cppinit.c: Delete the IStable and all related code. * tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and is_space arrays. Delete initialize_char_syntax. Change all references to the above arrays to use macros instead. * tradcpp.h: Define is_idchar, is_idstart, is_space, and is_nvspace in terms of safe_ctype.h's macros. * tradcif.y: is_idchar, is_idstart are macros not arrays. * config/i370/i370.c, config/winnt/dirent.c, config/winnt/fixinc-nt.c, config/winnt/ld.c: Use uppercase ctype macros. If we included ctype.h, include safe-ctype.h instead. * fixinc/fixfixes.c: Use uppercase ctype macros. Don't test ISLOWER(c) before calling TOUPPER(c). * fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk. * fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h. No need to wrap ctype macros. Don't test ISUPPER(x) before calling TOLOWER(x). gcc/ch: * lex.c: Don't bother checking whether ISUPPER(c) before calling TOLOWER(c). Don't bother checking whether isascii(c) before testing ISSPACE(c); ISSPACE(c) includes '\n'. gcc/f: * Make-lang.in: Link f/fini with safe-ctype.o. * bad.c: Don't test ISUPPER(c) || ISLOWER(c) before calling TOUPPER(c). * com.c: Use TOUPPER, not ffesrc_toupper. * fini.c: Don't test ISALPHA(c) before calling TOUPPER(c)/TOLOWER(c). * intrin.c: Don't test IN_CTYPE_DOMAIN(c). * src.c: Delete ffesrc_toupper_ and ffesrc_tolower_ and their initializing code; use TOUPPER and TOLOWER instead of ffesrc_toupper and ffesrc_tolower. * src.h: Don't declare ffesrc_toupper_ or ffesrc_tolower_. Don't define ffesrc_toupper or ffesrc_tolower. gcc/java: * jvgenmain.c: Use ISPRINT not isascii. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38124 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppfiles.c (cpp_make_system_header): Take 2 booleans,neil2000-12-041-2/+2
| | | | | | | | | | | | | | and operate on current buffer. (cpp_read_file): Rename _cpp_read_file. * cpplib.c (do_line, do_pragma_system_header): Update calls to cpp_make_system_header. * fix-header.c: Similarly. * cpphash.h (_cpp_read_file): Move from... * cpplib.h: ... here. * cppinit.c (do_includes, cpp_start_read): Update appropriately. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37989 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (initialize): Forgotten prototype.neil2000-12-011-0/+1
| | | | | | | | | | | | | | | | | | * cpplex.c (_cpp_lex_token): Loop until not skipping. Always clear PREV_WHITE upon meeting a new line. * cpplib.c (end_directive): Set pfile->skipping after skip_rest_of_line. * cpplib.h (cpp_reader): Remove macro_pos. * cppmacro.c (cpp_get_line): Don't do anything special inside macros. (parse_arg): Add PREV_WHITE if a token appears after new lines. (funlike_invocation_p): Save and restore the output position over a successful check for a '('. (enter_macro_context): Delete uses of macro_pos. (cpp_get_token): Don't use pfile->skipping. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37927 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppmacro.c (cpp_scan_buffer_nooutput): Take a booleanneil2000-11-281-1/+1
| | | | | | | | | | | indicating whether to scan all buffers on the stack or just one. * cppinit.c (do_includes): Update. * cppmain.c (main): Update. * cpplib.h: Update prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37829 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lex.h (parse_in): Change parse_in to a cpp_reader *.neil2000-11-281-37/+31
| | | | | | | | | | | | | | | | | | | | | | | | | * c-decl.c (c_decode_option): Update to match. * c-lex.c (init_c_lex, yyparse): Update to match. * c-lang.c (lang_init_options): Use cpp_create_reader. * cppinit.c (cpp_init): Rename initialize. (cpp_reader_init): Rename cpp_create_reader. Create the reader. Initialize cpplib if appropriate. * cpplib.h (cpp_create_reader) New prototype. (cpp_init, cpp_reader_init): Delete prototypes. * cppmain.c (general_init, setup_callbacks): New functions. (main): Use them. * fix-header.c (scan_in): Change type to cpp_reader *. (read_scan_file): Update for new cpplib interface and scan_in type. * cp/decl.c (parse_in): Change to cpp_reader *. (lang_decode_option): Update. * cp/lex.c (lang_init_options): Use new cpplib interface. (init_cp_pragma, finish_parse, handle_pragma_implementation): Update. * cp/spew.c (read_token): Update. * objc/objc-act.c (lang_init_options): Update new cpplib interface. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37826 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (cpp_reader_init): Remove handling of warn_pasteneil2000-11-271-9/+0
| | | | | | | | | | | command line options. (cpp_handle_option): Similarly. * cpplib.h (struct cpp_options): Remove warn_paste. * cppmacro.c (paste_tokens): Apart from assembler, make unpasteable token warning mandatory. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37804 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpplib.h (struct cpp_reader): Remove lang_asm.neil2000-11-261-11/+5
| | | | | | | | | | | | | | | (struct cpp_options): Remove c89. New members lang, extended_numbers. * cppexp.c (parse_number): Use them. * cpphash.h (VALID_SIGN): Use them. * cppinit.c (set_lang, cpp_start_read): Update. * cpplex.c (parse_string, _cpp_lex_token): Update. * cpplib.c (_cpp_handle_directive): Update. * cppmacro.c (parse_args): Update. * cppmain.c (scan_buffer): Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37761 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib.neil2000-11-261-1/+3
| | | | | | | | | | | | | | | | | | | | * c-decl.c: Remove parse_in declaration. * c-lang.c: Similarly. * c-lex.c: Similarly. * c-parse.in: Similarly. * c-pragma.c: Similarly. * configure.in: Similarly. * cp/Make-lang.in: Similarly. * cp/spew.c: Similarly. * cp/decl2.c: Remove check for lang-c++ option. * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line. * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++. * c-lex.h: Add declaration of parse_in. * cppinit.c: Call set_lang after allocating pfile->pending. * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37754 138bc75d-0d04-0410-961f-82ee72b054a4
* * do_includes: Revert to using cpp_read_file.neil2000-11-211-8/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37620 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lang.c (lang_init_options): Update call toneil2000-11-201-69/+129
| | | | | | | | | | | | | | | | | cpp_reader_init. * cppmain.c (main): Similarly. * fix-header.c (read_scan_file): Similarly. * cp/lex.c (lang_init_options): Similarly. * objc/objc-act.c (lang_init_options): Similarly. * cppexp.c (parse_number): Only warn for unextended C89. * cppinit.c (set_lang): New function. (cpp_reader_init): Take a LANG argument and pass it to set_lang. (COMMAND_LINE_OPTIONS): New option std=c++98. (cpp_handle_option): Use set_lang. * cpplib.h (enum_c_lang): New enumeration. Update comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37587 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c: Update comments.neil2000-11-181-58/+66
| | | | | | | | | (cpp_reader_init): Make -imacro and -include use the standard #include "" search path. (do_includes): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37542 138bc75d-0d04-0410-961f-82ee72b054a4
* New option --target-help.cchavva2000-11-141-0/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37456 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppfiles.c (stack_include_file): Check for stacked contextsneil2000-10-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | here. * cpphash.h (_cpp_do__Pragma): New prototype. * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table. * cpplex.c (skip_escaped_newlines): Only process trigraphs and escaped newlines if !(buffer->from_stage3). (_cpp_lex_token): Warn about missing newlines iff !buffer->from_stage3. * cpplib.c (get__Pragma_string, destringize, _cpp_do__Pragma): New functions. (run_directive): Set output_line for _Pragma to avoid line markers in output. Set from_stage3 and prevent macro expansion for _Pragma and command-line options. Check buffer exhaustion. (cpp_push_buffer): Don't check for stacked macro contexts, as this is perfectly legitimate for _Pragma. Move the check to stack_include_file instead. Set from_stage3 iff buffer is preprocessed input. * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments unsigned. New boolean from_stage3. (struct spec_nodes): Add n__Pragma. * cppmacro.c (enter_macro_context): Flip sense of return value. (_cpp_get_token): Handle _Pragma operator. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37147 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-10-28 Neil Booth <neilb@earthling.net>neil2000-10-281-109/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New macro expander. * cpplib.c (struct answer): New. (struct if_stack): Use cpp_lexer_pos rather than line and col. Rename cmacro mi_cmacro. (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL, IN_I): New directive and flags. (skip_rest_of_line, check_eol, run_directive, glue_header_name, parse_answer, parse_assertion, find_answer): New functions. (parse_ifdef, detect_if_not_defined, validate_else): Remove. (lex_macro_node): New function to replace parse_ifdef and get_define_node. (_cpp_handle_directive): New function, combines _cpp_check_directive and _cpp_check_linemarker. (do_define, do_undef, parse_include, do_include, do_import, do_include_next, read_line_number, do_line, do_ident, do_pragma, do_pragma_once, do_pragma_poison, do_pragma_dependency): Update for new token getting interface. (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional) : Update for new multiple-include optimisation technique. (do_elif): Don't forget to invalidate controlling macros. (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update. (parse_assertion, parse_answer, find_answer, _cpp_test_assertion): Functions to handle assertions with the new token interface. (do_assert, do_unassert): Use them. (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert): Use run_directive. (_cpp_init_stacks): Register directive names. Don't register special nodes. * cpperror.c (print_containing_files, _cpp_begin_message): Update to new position recording regime. (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning, cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line, cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes. (cpp_type2name): Move to cpplex.c. * cppexp.c (parse_charconst): spec_nodes is no longer a pointer. (parse_defined): Update to handle new multiple include optimisation method. Remove poisoned identifier warning. (parse_assertion, TYPE_NAME): Delete. (lex): Update for multiple include optimisation, removal of CPP_DEFINED, to use _cpp_test_assertion for assertions and cpp_token_as_text. (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text. (op_as_text): New function, to wrap cpp_token_as_text. * cppfiles.c (stack_include_file, _cpp_pop_file_buffer): Update for MI optimisation. (_cpp_execute_include): Take a token rather than 3 arguments. Fix segfault on diagnostic. (_cpp_compare_file_date): Take a token rather than 3 args. (cpp_read_file): Work correctly for zero-length files. * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename _cpp_init_hashtable and _cpp_cleanup_hashtable. (cpp_lookup): Place identifiers at front of identifier pool for _cpp_lookup_with_hash. (_cpp_lookup_with_hash): Require identifiers to be at the front of the identifier pool. Commit the memory if not already in the hash table. * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top. Initialise various members of cpp_reader, memory pools, and the special nodes. (cpp_printer_init): Delete. (cpp_cleanup): Update. (struct builtin, builtin_array, initialize_builtins): Update for new hashnode definition and builtin handling. (cpp_start_read, cpp_finish): Don't take or initialise a printer. Update. * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL, PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE, T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL, T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete. (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos, struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind, NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos, struct toklist, struct cpp_context, struct specnodes, TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED, NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION, enum builtin_type, cpp_can_paste): New. (struct cpp_token): Delete line and col members. (struct cpp_buffer): New member output_lineno. (struct lexer_state): Delete indented, in_lex_line, seen_dot. Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args. (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos, ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool, base_context, context, directive, mi_state, mi_if_not_defined, mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused, mlstring_pos, macro_buffer, macro_buffer_len. Delete members mls_line, mls_column, token_list, potential_control_macro, temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token, context_cap, cur_context, no_expand_level, paste_level, contexts, args, save_parameter_spellings, need_newline, . Change type of date, time and spec_nodes members. Change prototypes for include and ident callbacks. (struct cpp_hashnode): Change type of name. Remove union members expansion and code. Add members macro, operator and builtin. (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read, cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line, cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead, cpp_stop_lookahead): New prototypes. (cpp_printer_init, cpp_dump_definition): Delete prototypes. (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs): Move from cpphash.h. * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs): Move to cpplib.h. (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL, TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION, COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler, struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens, _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist, _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space, _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive, _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name, _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker, _cpp_parse_assertion, _cpp_find_answer): Delete. (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE, POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk, _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion, _cpp_handle_directive, DSC): New. (struct include_file): New member defined. (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include, _cpp_compare_file_date): Update. (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New. (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable, _cpp_cleanup_hashtable. * Makefile.in: Remove cppoutput.c. * cppoutput.c: Delete * fixheader.c (read_scan_file): Update for new cpp_get_token prototype. (recognized_function): New argument LINE. * scan-decls.c (skip_to_closing_brace, scan_decls): Update for new cpp_get_token prototype. * scan.h (recognized_function): Update prototype. * po/POTFILES.in: Remove cppoutput.c. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37098 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpperror.c (_cpp_begin_message): Do the test for suppressionneil2000-09-281-1/+1
| | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36655 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-09-25 Branko Cibej <branko.cibej@hermes.si>bkoz2000-09-251-8/+14
| | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36636 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppinit.c (cpp_init): Don't use ANSI prototypes.mmitchel2000-09-181-1/+1
| | | | | | | | * flow.c (flow_dump_loop): Likewise. (flow_loops_dump): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36480 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in: Remove references to cppulp.{c,o}.neil2000-09-071-5/+6
| | | | | | | | | * cppinit.c (initialize_builtins, cpp_start_read, cpp_handle_option): Update to use cpp_options structure. * cppulp.c: Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36245 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud