summaryrefslogtreecommitdiffstats
path: root/gcc/cp/spew.c
Commit message (Collapse)AuthorAgeFilesLines
* * c-lex.c (indent_level): Remove.neil2002-05-231-9/+1
| | | | | | | | | | | | (cb_file_change, c_lex): Remove indent level handling. * c-lex.h (indent_level): Remove. * input.h (struct file_stack): Remove indent_level. * toplev.c (push_srcloc): Remove indent_level handling. cp: * spew.c (yyungetc, snarf_block): Remove indent_level handling. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53786 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c (fix_string_type): Split out of ...rth2002-04-261-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | (combine_strings): ... here. Take a varray, not a tree list. (c_expand_builtin_printf): Use fix_string_type. * c-common.h: Update decls. * c-parse.in (string): Remove. Update all uses to use STRING instead, and not call combine_strings. (yylexstring): New. (_yylex): Use it. * c-typeck.c (simple_asm_stmt): Don't call combine_strings. (build_asm_stmt): Likewise. * objc/objc-act.c (my_build_string): Use fix_string_type. (build_objc_string_object): Build varray for combine_strings. * parse.y (string): Remove. Update all uses to use STRING instead, and not call combine_strings. * rtti.c (tinfo_name): Use fix_string_type. * semantics.c (finish_asm_stmt): Don't call combine_strings. * spew.c (yylexstring): New. (read_token): Use it. * g++.dg/parse/concat1.C: New. * gcc.dg/concat2.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52790 138bc75d-0d04-0410-961f-82ee72b054a4
* * xref.c: Remove.jason2002-02-041-5/+0
| | | | | | | | | | | | | * Make-lang.in (CXX_OBJS): Remove cp/xref.o (cp/xref.o): Remove dependencies. * class.c (finish_struct_1, check_methods): Don't call xref fns. (finish_struct_1): Likewise. * friend.c (make_friend_class): Likewise. * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise. * spew.c (read_process_identifier): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49472 138bc75d-0d04-0410-961f-82ee72b054a4
* * spew.c (pending_inlines, pending_inlines_tail,jakub2002-01-231-8/+13
| | | | | | | | | | | | | | | | | processing_these_inlines): Make static. (mark_pending_inlines): Remove static. (begin_parsing_inclass_inline): If in function, save pi for GC to cp_function_chain->unparsed_inlines instead. (process_next_inline): Likewise. * cp-tree.h (struct cp_language_function): Add unparsed_inlines. (mark_pending_inlines): Add prototype. * decl.c (spew_debug): Remove unused extern. (mark_lang_function): Call mark_pending_inlines. * g++.dg/other/gc1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49147 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>rodrigc2002-01-231-2/+2
| | | | | | | | | | * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Change my_fancy_abort() to abort(). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49139 138bc75d-0d04-0410-961f-82ee72b054a4
* * spew.c (YYCHAR): Uppercase macro parameter and addgrahams2002-01-101-4/+4
| | | | | | | | | parenthesis. (YYCODE): Likewise. (NAME): Uppercase macro parameter. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48717 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h: Delete #defines for cp_error, cp_warning,zack2001-12-181-1/+1
| | | | | | | | | | | | | cp_pedwarn, and cp_compiler_error. * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, typeck2.c: Change calls to the above macros to use their language-independent equivalents: error, warning, pedwarn, and internal_error respectively. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48140 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,jakub2001-12-121-5/+2
| | | | | | | | | | | | ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, THIS_NAME_P): Delete. * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash with internal naming scheme. * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47936 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c: Include c-lex.h.neil2001-11-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (c_common_lang_init): Change prototype. Call init_c_lex and init_pragma from here. * c-common.h (c_common_lang_init): Change prototype. * c-decl.c (init_decl_processing): Rename. Call c_parse_init. * c-lang.c (c_init): Change prototype. Update. (c_init_options): Update. * c-lex.c (cpp_filename): Remove. (init_c_lex): Update. Read the main file, and get the original file name. (yyparse): Finish the command line options. * c-parse.in (c_parse_init): Call init_reswords here. (init_parse): Remove. * c-tree.h (c_init_decl_processing): New. * cpphash.c (_cpp_init_hashtable): After initializing the hash table, populate it. * cppinit.c (read_original_filename, cpp_finish_options): New. (cpp_create_reader): New prototype. Defer hash table initialization. (cpp_start_read): Rename cpp_read_main_file. Initialize the hash table. Get the original filename. * cpplib.h (cpp_create_reader): Update. (cpp_start_read): Remove. (cpp_read_main_file, cpp_finish_options): New. * cppmain.c (main, do_preprocessing): Update. * langhooks.h (struct langhooks): Update init prototype. * toplev.c (general_init, parse_options_and_default_flags, process_options, lang_indpendent_init, lang_dependent_init, init_asm_output): New; perform the bulk of initialization. (compile_file): Move most of initialization to above functions. (debug_hooks): Initialize statically. (set_Wunused): Relocate. (toplev_main): Move most of initialization to other init functions. Have a clear logic flow. * tree.h (init_parse, init_decl_processing): Remove. ada: * misc.c (gnat_init): Change prototype. Include the functionality of the old init_parse and init_decl_processing. (gnat_init_decl_processing): New prototype. (init_parse): Remove. * utils.c (init_decl_processing): Rename gnat_init_decl_processing. cp: * cp-tree.h (init_reswords, cxx_init_decl_processing): New. (cxx_init): Update prototype. * decl.c (init_decl_processing): Rename. Move null node init to its creation time. * lex.c (cxx_init_options): Update. (cxx_init): Combine with old init_parse; also call cxx_init_decl_processing. f: * com.c (ffecom_init_decl_processing): Renamed from init_decl_processing. (init_parse): Move contents to ffe_init. (ffe_init): Update prototype. java: * decl.c (init_decl_processing): Rename java_init_decl_processing. * java-tree.h: New prototype. * lang.c (java_init): Update prototype. Combine with old init_parse. objc: * objc-act.c (objc_init): Update prototype, combine with old init_parse. (objc_init_options): Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47046 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,jsm282001-10-281-1/+1
| | | | | | | semantics.c, spew.c: Fix spelling errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46593 138bc75d-0d04-0410-961f-82ee72b054a4
* * spew.c (end_input): No longer static.jason2001-10-021-3/+2
| | | | | | | | * cp-tree.h: Declare it. * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45962 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl2.c (lang_f_options): Const-ification.ghazi2001-09-121-1/+1
| | | | | | | | * lex.c (cplus_tree_code_name): Likewise. * spew.c (yyerror): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45565 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.hneil2001-08-041-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | are also on line-map.h. * cppfiles.c (stack_include_file): Update. * cpphash.h (struct cpp_buffer): New member return_at_eof. (_cpp_pop_buffer): New. * cppinit.c (cpp_destroy, cpp_finish): Update. (do_includes): Mark each buffer to return at EOF. * cpplex.c (_cpp_lex_token): Pop buffers at EOF. Continue or return as requested. * cpplib.c (run_directive, do_line, cpp_push_buffer): Update. (cpp_pop_buffer): Rename _cpp_pop_buffer. Stop skipping. * cpplib.h (cpp_pop_buffer): Remove. (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput. * cppmacro.c (cpp_scan_buffer_nooutput): Similarly. No need to pop buffers. * cppmain.c (scan_buffer): Rename scan_translation_unit. No need to pop buffers. (do_preprocessing): Update. * fix-header.c (read_scan_file): Update. No need to pop buffers. * c-parse.in (_yylex): Similarly. * scan-decls.c (scan_decls): Similarly. * line-map.h: Update comments. * cp/spew.c (read_token): No need to pop buffers. * objc/Make-lang.in (objc-act.o): Update dependencies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44634 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2001-07-261-2/+7
| | | | | | | | | | * spew.c (yylex): Only copy the token's lineno, if it is non-zero. testsuite: * g++.old-deja/g++.other/lineno5.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44391 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.neil2001-07-191-5/+1
| | | | | | | | | | | | * c-parse.in (yyerror, _yylex): Similarly. * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr): Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough. Update comments. * cpplib.h (CPP_INT, CPP_FLOAT): Remove. * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44144 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2001-05-161-8/+3
| | | | | | | | | * spew.c (read_token): Call yyerror on all unexpected tokens. testsuite: * g++.old-deja/g++.other/crash41.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42143 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2001-05-011-4/+8
| | | | | | | | | * spew.c (last_token_id): New static variable. (read_token): Set it here. (yyerror): Use it here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41719 138bc75d-0d04-0410-961f-82ee72b054a4
* * invoke.texi: Document more C++ command-line options.mmitchel2001-04-261-6/+1
| | | | | | | | | | | | | | | | | | | Remove support for -Wextern-inline, -flabels-ok, -fvtable-gc, -fxref * cp-tree.h (warn_extern_inline): Remove. (flag_labels_ok): Likewise. * decl2.c (warn_extern_inline): Remove. (flag_labels_ok): Likewise. (lang_f_options): Remove labels-ok, vtable-gc, xref. (unsupported_options): Add them. (cxx_decode_option): Don't accept -Wextern-inline. * method.c (hack_identifier): Remove -flabels-ok support. * spew.c (see_typename): Likewise. * g++.dg/vtgc1.C: XFAIL. * g++.old-deja/g++.other/crash18.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41609 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-parse.in (yylexname): New function, split out of _yylex.zack2001-03-071-5/+1
| | | | | | | | | | | | | | | | | (objc_rid_sans_at): New table. (init_reswords): Initialize it. (_yylex): Give labels clearer names. Handle CPP_ATSIGN by retrieving the next token and checking it for significance as an ObjC keyword or string constant. * cpplex.c (_cpp_lex_token): Just return CPP_ATSIGN for '@'. * cpplib.h (TTYPE_TABLE): Add CPP_ATSIGN, drop CPP_OSTRING. * c-lex.c, c-parse.in, cppmacro.c, cpplex.c, cp/spew.c: Remove references to CPP_OSTRING. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40279 138bc75d-0d04-0410-961f-82ee72b054a4
* * spew.c (yylex): Correct handling of friends.mmitchel2001-02-231-3/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39990 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lex.c (init_c_lex): Use cpp_get_callbacks to setneil2001-01-131-2/+1
| | | | | | | | | | | callbacks. * c-parse.in (finish_parse): Use cpp_errors. (__yylex): Use return value of cpp_pop_buffer. * cp/lex.c (finish_parse): Use cpp_errors. * cp/spew.c (read_token): Use return value of cpp_pop_buffer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38982 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2001-01-111-8/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * call.c (convert_default_arg): Check for unprocessed DEFAULT_ARG. * cp-tree.h (replace_defarg): Move to spew.c. (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to spew.c, which is where they really are. (done_pending_defargs): Declare. (unprocessed_defarg_fn): Declare. * decl.c (replace_defarg): Move to spew.c * parse.y (structsp): Call done_pending_defargs. * spew.c (defarg_fns): Rearrange list structure. (defarg_fnsdone): New static variable. (defarg_depfns): New static variable. (init_spew): Adjust. (add_defarg_fn): Store the type in TREE_TYPE. (do_pending_defargs): Detect and deal with ordering constraints and circularity. (done_pending_defargs): New function. (unprocessed_defarg_fn): New function. (replace_defarg): Moved from decl.c. Robustify. Don't save if circularity detected. testsuite: * g++.old-deja/g++.other/defarg7.C: New test. * g++.old-deja/g++.other/defarg8.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38903 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lex.h (parse_in): Change parse_in to a cpp_reader *.neil2000-11-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | * 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
* cp:nathan2000-11-281-4/+8
| | | | | | | | | * spew.c (yyerror): Cope if yylval.ttype is NULL. testsuite: * g++.old-deja/g++.other/parse2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37816 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib.neil2000-11-261-2/+0
| | | | | | | | | | | | | | | | | | | | * 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
* * c-common.c: Remove USE_CPPLIB conditional inclusions.neil2000-11-251-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.h: Similarly. * c-decl.c: Similarly. * c-lang.c: Similarly. * c-lex.c: Similarly. * c-parse.in: Similarly. * c-pragma.c: Similarly. * c-pragma.h: Similarly. * gcc.c: Similarly. * toplev.c: Similarly. * cp/cp-tree.h: Similarly. * cp/decl2.c: Similarly. * cp/lang-specs.h: Similarly. * cp/lex.c: Similarly. * cp/lex.h: Similarly. * cp/spew.c: Similarly. * java/lang-options.h: Similarly. * objc/lang-specs.h: Similarly. * objc/objc-act.c: Similarly. * configure.in: Remove configure option. * config.in: Regenerate. * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37742 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2000-11-201-11/+0
| | | | | | | | | | | * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword. * parse.y (extdef): Add EXPORT reduction. * spew.c (yylex): Don't skip export here. testsuite: * g++.old-deja/g++.pt/export1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37585 138bc75d-0d04-0410-961f-82ee72b054a4
* gcp/ChangeLog:nathan2000-11-091-1/+2
| | | | | | | | | | | | * lex.c (do_identifier): Don't lookup_name for operators. * parse.y (operator): Save looking_for_typename. (unoperator): Restore it. * spew.c (frob_opname): Use nth_token for lookahead. testsuite/ChangeLog: * g++.old-deja/g++.pt/operator1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37340 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-parse.in (_yylex): Remove CPP_BACKSLASH case.neil2000-11-011-4/+0
| | | | | | | | | | * cp/spew.c: Similarly. * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER. * cppmacro.c (stringify_arg): Similarly. * cpplib.h (CPP_BACKSLASH): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37182 138bc75d-0d04-0410-961f-82ee72b054a4
* * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).law2000-10-181-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36921 138bc75d-0d04-0410-961f-82ee72b054a4
* * pt.c (lookup_template_class): Set current access for enum.nathan2000-10-061-1/+0
| | | | | | | | | (tsubst_enum): Set file & line for enum decl. * spew.c (yylex): Remove unused variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36755 138bc75d-0d04-0410-961f-82ee72b054a4
* * spew.c (frob_id): New static function.nathan2000-10-051-50/+41
| | | | | | | | (frob_opname): Use it. (yylex): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36719 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (frob_opname): Declare.nathan2000-09-111-0/+36
| | | | | | | | | | | | | * parse.y (saved_scopes): New static variable. (cp_parse_init): Adjust. (do_id): If lastiddecl is NULL, do do_identifier. (operator): Save scope information. (unoperator): new reduction. Restore scope information. (operator_name): Append unoperator. Call frob_opname. * spew.c (frob_opname): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36315 138bc75d-0d04-0410-961f-82ee72b054a4
* Integrated preprocessor.zack2000-09-071-188/+1123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | top level: * Makefile.in: Remove all references to c-parse.gperf, c-gperf.h, and c-parse.h. Remove -d from yacc command line generating c-parse.c. Update dependencies. * c-parse.gperf, c-gperf.h: Delete. * c-common.c: Don't define parse_options, cpp_token, yy_cur, yy_lim, or yy_get_token. Don't define get_directive_line if USE_CPPLIB. * c-common.h: Add multiple include guard. Define RID values for every keyword in C, C++, and Objective C. Put all the modifiers first. (struct c_fileinfo, get_fileinfo, dump_time_statistics): New. * c-decl.c (c_decode_option): Handle -lang-objc here. (print_lang_identifier): Handle C_IS_RESERVED_WORD case. (grokdeclarator): Adjust for new RID scheme. (extract_interface_info): New stub. * c-lang.c: Don't declare yy_cur or parse_options. (lang_init_options): Call cpp_init. Don't call cpp_options_init. (lang_init): Don't call check_newline if USE_CPPLIB. * c-lex.c: Don't include c-parse.h. Do include timevar.h. Elide lots of unnecessary code if USE_CPPLIB. Delete code rendered unnecessary by new architecture. Move routines not shared with C++ to c-parse.in. Maintain a local idea of the line number. Handle C++ as well as C. [USE_CPPLIB]: Declare and register callbacks for #ident and for entering/leaving files. (init_c_lex, c_lex): Are now the entry points to this file. (check_newline): Break out directive handling to process_directive. (read_ucs, is_extended_char, utf8_extend_token): Moved here from C++ front end. (readescape, parse_float): Overhaul. (lex_number, lex_string, lex_charconst): Break out of c_lex (n'ee yylex). (get_fileinfo, update_header_times, dump_one_header, dump_time_statistics): New and/or moved here from C++. Support per-file data needed by C++ and per-header timing statistics (C++ only, at the moment). * c-lex.h: Update prototypes. Add multiple include guard. * c-tree.h (struct lang_identifier): Add rid_code field. (C_IS_RESERVED_WORD, C_RID_CODE): New. * c-parse.in: Include c-pragma.h. Remove unnecesary calls to reinit_parse_for_function and/or position_after_white_space. (save_filename, save_lineno): Look ahead before saving. (label -> identifier ':'): Save file and line before shifting ':'. (reservedwords): No need to call get_identifier. (init_parse, finish_parse, yyerror, yylex, yyprint, make_pointer_declarator): Are now here for C/ObjC. (rid_to_yy): Conversion table from RID constants to Yacc codes. * c-pragma.c: Rewrite parsing logic to fit with cpplib's #pragma registry. Provide dummy implementation of that interface if !USE_CPPLIB. * c-pragma.h: Update to match. * flags.h: Add multiple include guard. (flag_detailed_statistics): Moved here from C++. * toplev.c: Define flag_detailed_statistics. * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case #if USE_CPPLIB. * timevar.def (TV_CPP, TV_LEX): New. * timevar.h: Add multiple include guard. * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case #if USE_CPPLIB. * objc/objc-act.c: Don't mention yy_cur or parse_options. Initialize cpplib properly. Force lineno to 0 after first call to check_newline. Don't handle -lang-objc here. Move forget_protocol_qualifiers and remember_protocol_qualifiers here. cp: * Make-lang.in, Makefile.in: Remove all references to input.c, gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. * gxx.gperf, hash.h, input.c: Delete. * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is initialized properly. * class.c (fixup_pending_inline): Take a tree, not a struct pending_inline *. All callers changed. (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, RID_PROTECTED entries in ridpointers[] array here. * decl.c (duplicate_decls): Do not refer to struct pending_inline. (record_builtin_type, init_decl_processing): Use RID_MAX not CP_RID_MAX. (grokdeclarator): Use C_IS_RESERVED_WORD. * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of cpplib. (grok_x_components): Do not inspect pending_inlines chain. * cp-tree.h (struct lang_identifier): Add rid_code entry. (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, TIME_IDENTIFIER_FILEINFO): Kill. Update prototypes. * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a single 32-bit word. * parse.y: Call do_pending_inlines unconditionally. reinit_parse_for_method is now snarf_method. fn.defpen is no longer necessary. Remove unnecessary <itype> annotation on SCOPE. Do not refer to end_of_file or struct pending_inline. * semantics.c (begin_inline_definitions): Call do_pending_inlines unconditionally. * lex.c: Remove all code now shared with C front end. Initialize cpplib properly if USE_CPPLIB. Put reserved words into the get_identifier table. Rewrite pragma handling to work with the registry. Move code to save tokens for later processing to spew.c. * spew.c: Rewrite everything in terms of token streams instead of text. Move routines here from lex.c / input.c as appropriate. GC-mark trees hanging off the pending inlines chain. testsuite: * g++.old-deja/g++.benjamin/13478.C: Put meaningful tags on ERROR markers. * g++.old-deja/g++.brendan/crash8.C: Move ERROR marker up one line. * gcc.dg/c99-array-nonobj-1.c: Don't expect func[] cases to fail. * gcc.dg/wtr-label-1.c: Don't use unconstrained .* in error regexps. * gcc.dg/wtr-suffix-1.c: Correct error regexps. * gcc.dg/cpp/unc1.c, gcc.dg/cpp/unc2.c, gcc.dg/cpp/unc3.c: Preprocess only. * gcc.dg/cpp/unc4.c: Adjust line number in dg-error line. * gcc.dg/noncompile/const-ll-1.c: Generalize error regexp. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36216 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.mmitchel2000-06-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c (ridpointers): Declare. * c-common.h (enum rid): Declare. (NORID): Likewise. (ridpointers): Likewise. * c-lex.c (ridpointers): Don't declare. (init_lex): Initialize ridpointers. * c-lex.h (enum rid): Don't declare. (NORID): Likewise. (RID_FIRST_MODIFIER): Likewise. (ridpointers): Likewise. * cp-tree.h (ridpointers): Don't declare. * decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX. (record_builtin_java_type): Likewise. (init_decl_processing): Likewise. * lex.c: Move inclusion of lex.h. (ridpointers): Don't define. (init_parse): Initialize ripdointers. Use CP_RID_MAX instead of RID_MAX. * lex.h (enum rid): Rename to ... (enum cp_rid): ... this. (ridpointers): Don't declare. * parse.y: Move inclusion of lex.h. * parse.c: Regenerated. * spew.c: Move inclusion of lex.h. * cp-tree.h (struct language_function): Remove temp_name_counter. (temp_name_counter): Remove. (get_temp_name): Change prototype. (get_guard): New function. (get_guard_cond): Likewise. (set_guard): Likewise. * cvt.c (build_up_reference): Adjust call to get_temp_name. * decl.c (expand_static_init): Use get_guard and friends to implement guard variables. * decl2.c (get_temp_name): Assume that the variables created are always static. (get_sentry): Rename to ... (get_guard): ... this. Implement new ABI guard variables. (get_guard_bits): New function. (get_guard_cond): Likewise. (set_guard): Likewise. (start_static_initialization_or_destruction): Use them. (do_static_initialization): Replace sentry with guard throughout. (do_static_destruction): Likewise. * init.c (create_temporary_var): Add comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34815 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix copyrightslaw2000-02-261-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32185 138bc75d-0d04-0410-961f-82ee72b054a4
* tweak wordingjason2000-02-071-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31835 138bc75d-0d04-0410-961f-82ee72b054a4
* * call.c: PROTO -> PARAMS.ghazi2000-01-261-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * class.c: Likewise. * cp-tree.h: Likewise. * cvt.c: Likewise. * decl.c: Likewise. * decl.h: Likewise. * decl2.c: Likewise. * dump.c: Likewise. * errfn.c: Likewise. * error.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * init.c: Likewise. * input.c: Likewise. * lex.c: Likewise. * lex.h: Likewise. * method.c: Likewise. * optimize.c: Likewise. * parse.y: Likewise. * pt.c: Likewise. * repo.c: Likewise. * rtti.c: Likewise. * search.c: Likewise. * semantics.c: Likewise. * spew.c: Likewise. * tree.c: Likewise. * typeck.c: Likewise. * typeck2.c: Likewise. * xref.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31632 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (min_tree_cons): Remove.mmitchel1999-12-011-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | (scratch_ovl_cons): Likewise. * decl.c (saveable_obstack): Don't declare. (duplicate_decls): Tweak error-message. (initialize_local_var): Explicitly mark the definition as static. (finish_function): Call permanent_allocation, just so that the middle-end sees the obstacks it expects. (mark_cp_function_context): Likewise. * init.c (build_new): Don't use min_tree_cons. * lex.c (permanent_obstack): Don't declare. (current_obstack, saveable_obstack): Likewise. * spew.c (current_obstack, saveable_obstack): Likewise. * tree.c (current_obstack, saveable_obstack): Likewise. (scratch_ovl_cons): Remove. (build_min_nt): Don't mess with obstacks. (build_min): Likewise. (min_tree_cons): Remove * typeck.c (build_component_ref): Don't use scratch_ovl_cons. (build_x_function_call): Likewise. (build_c_cast): Don't use min_tree_cons. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30743 138bc75d-0d04-0410-961f-82ee72b054a4
* * call.c (implicit_conversion): Robustify. Handle OFFSET_REFs.mmitchel1999-09-131-25/+0
| | | | | | | | | | | | * cvt.c (ocp_convert): Complete the from and destination types. Adjust warning about functions always being `true' in conditionals. * decl.c (duplicate_decls): Don't play funny games with abort. * error.c (dump_expr): Handle OVERLOADs. * spew.c (probe_obstack): Remove. * typeck.c (condition_conversion): Use perform_implicit_conversion. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29366 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (add_decl_to_level): Remove TREE_PERMANENT assertion.mmitchel1999-09-121-13/+1
| | | | | | | | | | | | | | | | | | | | | (init_decl_processing): Don't set TREE_PERMANENT for the error_mark_node. (start_decl): Don't rebuild non-permanent ARRAY_TYPEs. (grokdeclarator): Likewise. (grokparms): Don't check TREE_PERMANENT when building up lists. * decl2.c (grokfield): Don't assert TREE_PERMANENT. (mark_inline_for_output): Likewise. * expr.c (cplus_expand_expr): Don't check TREE_PERMANENT. * init.c (build_offset_ref): Don't check TREE_PERMANENT. * lex.c (check_newline): Don't check ggc_p; it is always one. * pt.c (process_template_parm): Don't check TREE_PERMANENT. * spew.c (yylex): Don't copy_node or probe_obstacks for non-permanent CONSTANTs and STRINGs. * tree.c (build_cplus_array_type_1): Don't fuss with TREE_PERMANENT on ARRAY_TYPEs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29350 138bc75d-0d04-0410-961f-82ee72b054a4
* * lex.c: Sync with C frontend.jason1999-07-241-0/+3
| | | | | | | | | | | | | | | | | | | | | (whitespace_cr): New fn. (skip_white_space): Use it. (init_parse): Reorder. (yyprint): Support CONSTANT. (pragma_getc, pragma_ungetc): Bring back. (read_line_number): Change in_system_header directly. (handle_generic_pragma, handle_cp_pragma, yyerror): Move up in file. (parse_float): Update to C version. (yylex): Handle '$' under the letter case. Remove looking_for_typename handling. Support hex floating point constants. Follow C's lead for choosing type of integer constants. Rearrange stuff to match C frontend. (yyungetc, reinit_parse_for_block, yylex): Support indent_level. * spew.c (yylex): Clear looking_for_typename if we see a TYPESPEC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28230 138bc75d-0d04-0410-961f-82ee72b054a4
* * lang-specs.h (c++-cpp-output): Pass -fpreprocessed.jason1999-07-201-8/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lex.c (token_getch, token_put_back): New fns. (real_yylex): Use them. * lex.c (lang_init): Generalize. (lang_init_options): Tell cpplib this is C++. (nextchar): Remove. Replace uses with put_back. (skip_white_space): Handle linemode here. Optimize for cpplib. (extend_token_buffer_to): New fn. (extend_token_buffer): Use it. (read_line_number, check_newline): Just deal with tokens. (real_yylex): More cpplib optimizations. Simplify. Don't produce EXTERN_LANG_STRING, LEFT_RIGHT or PAREN_STAR_PAREN here. * spew.c (yylex): Produce LEFT_RIGHT and EXTERN_LANG_STRING. * parse.y (PAREN_STAR_PAREN): Remove. * input.c: Don't use the putback machinery with cpplib. (sub_getch): Fold back into getch. (getch): Don't handle linemode here. (feed_input): Unget any text in the token buffer. * lex.c (set_typedecl_interface_info, set_vardecl_interface_info, nextyychar, nextyylval): Remove. * lex.c (indent_level): New variable. (init_parse): Set cpp_token to CPP_DIRECTIVE. (consume_string): Make this smart about USE_CPPLIB. (yyungetc): Use put_back function. (pragma_getc, pragma_ungetc): Functions deleted. (check_newline): Rewrite to be intelligent about USE_CPPLIB. Also, call HANDLE_PRAGMA with getch, yyungetc, not pragma_getc and pragma_ungetc. (real_yylex): Rewrite to be intelligent about USE_CPPLIB. Also, clean up cases where we redundantly set token_buffer[0]. (read_line_number): New fn. * input.c (feed_input): Use integrated cpplib if USE_CPPLIB. (end_input): Call cpp_pop_buffer if USE_CPPLIB. (sub_getch): Conditionalize out code that's not appropriate if USE_CPPLIB. (put_back): Rewrite in case USE_CPPLIB is defined. (input_redirected): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28193 138bc75d-0d04-0410-961f-82ee72b054a4
* update copyrightsjason1998-11-231-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23764 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (grokfndecl): ::main and __builtin_* get C linkage.jason1998-10-151-0/+5
| | | | | | | | | | | | | Do mangling here. (grokdeclarator): Instead of here. * friend.c (do_friend): Lose special handling of ::main and __builtin_*. * cp-tree.h (DECL_MAIN_P): Check for C linkage. * spew.c (yylex): Clear looking_for_typename if we got 'enum { ... };'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23117 138bc75d-0d04-0410-961f-82ee72b054a4
* Warning fixes:ghazi1998-10-061-0/+1
| | | | | | | | | | | | | * Makefile.in (spew.o): Depend on toplev.h. * call.c (compare_ics): Initialize variables `deref_from_type2', `deref_to_type1' and `deref_to_type2'. * except.c (get_eh_type): Hide prototype and definition. (process_start_catch_block_old): Remove unused static prototype. * pt.c (tsubst_decl): Initialize variable `argvec'. * spew.c: Include toplev.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22864 138bc75d-0d04-0410-961f-82ee72b054a4
* Warning fixes:ghazi1998-09-251-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cp-tree.h (define_case_label): Remove unused parameter. (check_java_method): Likewise. (grokclassfn): Likewise. (expand_aggr_init): Likewise. (build_x_delete): Likewise. (maybe_end_member_template_processing): Likewise. (unshare_base_binfos): Add prototype. (string_conv_p): Likewise. (my_friendly_abort): Mark with ATTRIBUTE_NORETURN. * cvt.c (build_up_reference): Remove unused parameter `checkconst', all callers changed. (build_type_conversion): Mark parameter `code' with ATTRIBUTE_UNUSED. (build_expr_type_conversion): Initialize variable `conv'. * decl.c (push_namespace): Initialize variable `d'. (define_case_label): Remove unused parameter `decl', all callers changed. * decl2.c (lang_decode_option): If !USE_CPPLIB, mark parameter `argc' with ATTRIBUTE_UNUSED. (grokclassfn): Remove unused parameter `cname', all callers changed. (check_java_method): Likewise for parameter `ctype'. (copy_assignment_arg_p): Mark parameter `virtualp' with ATTRIBUTE_UNUSED. (finish_prevtable_vardecl): Likewise for parameter `prev'. * expr.c (extract_init): Likewise for parameters `decl' and `init'. * init.c (expand_aggr_init_1): Remove unused parameter `alias_this', all callers changed. (expand_aggr_init): Likewise. (expand_default_init): Likewise. (build_new_1): Initialize variable `susp'. (build_x_delete): Remove unused parameter `type', all callers changed. * lex.c (set_typedecl_interface_info): Mark parameter `prev' with ATTRIBUTE_UNUSED. (readescape): Use (unsigned) value in shift. (real_yylex): Likewise. Likewise. Also cast `sizeof' to int when comparing to a signed quantity. * pt.c (maybe_end_member_template_processing): Remove unused parameter `decl', all callers changed. (check_explicit_specialization): Add braces around empty body in an else-statement. (current_template_args): Initialize variable `args'. (lookup_template_class): Likewise for variable `prev_local_enum'. (tsubst_decl): Likewise for variable `r'. (set_mangled_name_for_template_decl): Initialize variable `context'. * spew.c (scan_tokens): Change type of parameter `n' to unsigned. Likewise for variable `i'. (yylex): Initialize variable `trrr'. * typeck.c (compparms): Mark variable `strict' with ATTRIBUTE_UNUSED. * xref.c (simplify_type): Cast argument of ctype function to `unsigned char'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22587 138bc75d-0d04-0410-961f-82ee72b054a4
* bkoz1998-09-241-0/+13
| | | | | | | | | | | | 1998-09-24 Benjamin Kosnik <bkoz@loony.cygnus.com> * spew.c (yylex): Give diagnostic. * hash.h (is_reserved_word): Add export. * gxx.gperf: Ditto. * lex.h (rid): Add RID_EXPORT. * lex.c (init_parse): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22577 138bc75d-0d04-0410-961f-82ee72b054a4
* * spew.c (yylex): Also return the TYPE_DECL if got_object.jason1998-06-051-2/+9
| | | | | | | | | | | | | Don't clear got_object after '~'. * call.c (build_scoped_method_call): Tweak destructor handling. (build_method_call): Likewise. * pt.c (tsubst_copy, case METHOD_CALL_EXPR): Don't mess with TYPE_MAIN_VARIANT for destructors. * semantics.c (finish_object_call_expr): Complain about calling a TYPE_DECL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20256 138bc75d-0d04-0410-961f-82ee72b054a4
* massive namespace patchjason1998-05-081-5/+10
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19631 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud