* 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 (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.
* cpplib.h (struct cpp_buffer): Added manual_pop for
better C++ tokenization.
* cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
Also, support C++ tokenization for ->*, .*, <?, and >? operators.
* c-common.c (cpp_token): Make non-static.
* c-common.h: New file.
* c-common.c (permanent_obstack): Delete unused declaration.
(c_global_trees): New array.
(c_common_nodes_and_builtins): New function; split off common code
from init_decl_processing in both c-decl.c and cp/decl.c.
* c-tree.h: Delete lots of declarations of tree nodes; replaced by
c_global_trees and accessor macros defined in c-common.h.
Include c-common.h.
* c-decl.c: Delete definitions for tree nodes that were replaced by
c_global_trees.
(init_decl_processing): Build void_list_node.
Call c_common_nodes_and_builtins; delete code to generate the common
builtins here.
* objc/objc-act.c (build_module_descriptor): Rename variable
void_list_node to avoid clash with c-common.h.
* cp/cp-tree.h: Delete lots of declarations of tree nodes; replaced by
c_global_trees and accessor macros defined in c-common.h.
(cp_tree_index): New enumeration.
(cp_global_trees): Declare new array. Add accessor macros for it, and
delete declarations of tree nodes replaced by it.
(builtin_function): Delete macro, add declaration for new function.
Include c-common.h.
* cp/decl.c: Delete definitions for tree nodes that were replaced by
cp_global_trees and c_global_trees.
(init_decl_processing): Call c_common_nodes_and_builtins; delete code
to generate the common builtins here.
(builtin_function): New function.
* cp/decl2.c (abort_fndecl): Delete declaration.
* cp/except.c (expand_builtin_return_address): Delete declaration.
(builtin_return_address_fndecl): Delete variable.
(const_ptr_type_node): Delete declaration.
* cp/lex.c (cons_up_default_function): Delete declaration of
void_list_node.
* cp/parse.y (void_list_node): Delete declaration.
* cp/rtti.c (type_info_type_node, tinfo_fn_id, tinfo_fn_type):
Delete variables.
(const_string_type_node): Delete declaration.
* cp/search.c (abort_fndecl): Delete declaration.
* rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
Disable patterns performing SImode comparisons with SImode values
if TARGET_POWERPC64 and instruction does not sign-extend or does
not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
differ for signed quantities.
(indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
(tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
(decrement_and_branch_on_count): Add 64-bit variant.
gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
* gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
Removed paragraph about compression of files and size limitation,
duplicated in the FAQ. Use gcc-patches for posting patches.
* gcc.c (main): Updated URL with bug reporting instructions to
gcc.gnu.org. Removed e-mail address.
* system.h (abort): Likewise.
Jeffrey A Law [Fri, 16 Jul 1999 20:35:08 +0000 (20:35 +0000)]
pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired value of 4.
* pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
value of 4. Allocate 8 bytes for each FP register save.
(hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
value of 4.
(hppa_expand_prologue): Likewise.
* pa.h (PROMOTE_MODE): Likewise.
(HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
(FUNCTION_ARG_BOUNDARY): Likewise.
David Edelsohn [Thu, 15 Jul 1999 12:39:30 +0000 (12:39 +0000)]
rs6000.md (insv, extzv): Remove SImode dependence in named patterns.
* rs6000.md (insv, extzv): Remove SImode dependence in named
patterns. Explicitly generate DImode RTL if PowerPC64 and
operand is DImode.
(insvdi): Reverse start and size in instruction template.
Tom Tromey [Thu, 15 Jul 1999 09:15:26 +0000 (09:15 +0000)]
G19990217_02.no-link: New file.
* libjava.compile/G19990217_02.no-link: New file.
* libjava.compile/test.exp: Look for `.no-link' file.
* lib/libjava.exp (test_libjava_from_source): Added `no-link'
option.
(test_libjava_from_javac): Likewise. Also, handle package
information from class name when creating class file name.
Jeffrey A Law [Wed, 14 Jul 1999 23:04:45 +0000 (23:04 +0000)]
emit-rtl.c (gen_realpart): Issue an error for cases GCC can not handle at this time instead of silently...
* emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
handle at this time instead of silently generating incorrect code.
(gen_imagpart): Likewise.
Tom Tromey [Tue, 13 Jul 1999 16:20:44 +0000 (16:20 +0000)]
test.exp: New file.
* libjava.lang/test.exp: New file.
* libjava.lang/err9.out: New file.
* libjava.lang/err9.java: New file.
* libjava.lang/err8.out: New file.
* libjava.lang/err8.java: New file.
* libjava.lang/err7.out: New file.
* libjava.lang/err7.java: New file.
* libjava.lang/err6.out: New file.
* libjava.lang/err6.java: New file.
* libjava.lang/err5.out: New file.
* libjava.lang/err5.java: New file.
* libjava.lang/err4.out: New file.
* libjava.lang/err4.java: New file.
* libjava.lang/err3.out: New file.
* libjava.lang/err3.java: New file.
* libjava.lang/err2.out: New file.
* libjava.lang/err2.java: New file.
* libjava.lang/err13.out: New file.
* libjava.lang/err13.java: New file.
* libjava.lang/err12.out: New file.
* libjava.lang/err12.java: New file.
* libjava.lang/err11.out: New file.
* libjava.lang/err11.java: New file.
* libjava.lang/err10.out: New file.
* libjava.lang/err10.java: New file.
* libjava.lang/err1.out: New file.
* libjava.lang/err1.java: New file.
* libjava.lang/N19990310_5.out: New file.
* libjava.lang/N19990310_5.java: New file.
* libjava.lang/N19990310_4.out: New file.
* libjava.lang/N19990310_4.java: New file.
* libjava.lang/N19990310_3.out: New file.
* libjava.lang/N19990310_3.java: New file.
* libjava.lang/N19990310_02.out: New file.
* libjava.lang/N19990310_02.java: New file.
* libjava.lang/G19990303_02.out: New file.
* libjava.lang/G19990303_02.java: New file.
* libjava.lang/G19990303_01.out: New file.
* libjava.lang/G19990303_01.java: New file.
* libjava.lang/G19990302_02.out: New file.
* libjava.lang/G19990302_02.java: New file.
* libjava.lang/G19990301_01.out: New file.
* libjava.lang/G19990301_01.java: New file.
* libjava.compile/N19990317.java: New file.
* libjava.compile/N19990310_01.java: New file.
* libjava.compile/G19990225_01.java: New file.
* libjava.compile/G19990217_02.java: New file.
* libjava.compile/G19990217_01.java: New file.
* libjava.compile/G19990210_3.java: New file.
* libjava.compile/G19990210_2.java: New file.
* libjava.compile/G19990210_1.java: New file.
Michael Tiemann [Fri, 9 Jul 1999 16:15:04 +0000 (16:15 +0000)]
cp-tree.h (struct lang_decl): Added field for storing sorted FIELD_DECLs (used in TYPE_DECLs).
* cp-tree.h (struct lang_decl): Added field for storing sorted
FIELD_DECLs (used in TYPE_DECLs).
(DECL_PENDING_INLINE_INFO): Adjusted to use 'u' union.
(DECL_SORTED_FIELDS): New macro.
* class.c (method_name_cmp): New function.
(finish_struct_methods): Modified to support sorting and searching
methods.
(finish_struct_anon): Changed code in inner loop to use ELT rather
than UELT (which required an extra indirection for every reference).
(field_decl_cmp): New function to support sorting FIELD_DECLs.
(finish_struct_1): Sort fields.
* search.c (lookup_field_1): Use DECL_SORTED_FIELDS if we have them.
(lookup_fnfields_1): Search sorted methods in METHOD_VEC.
Also, switch to using array indexing rather than a changing pointer.
* ptree.c (print_lang_decl): Handle TYPE_DECLs that have
DECL_SORTED_FIELDS.
Co-Authored-By: Jason Merrill <jason@yorick.cygnus.com>
From-SVN: r28046
Jason Merrill [Fri, 9 Jul 1999 11:05:23 +0000 (07:05 -0400)]
pt.c (do_decl_instantiation): Downgrade duplicate instantiation errors to pedwarn.
* pt.c (do_decl_instantiation): Downgrade duplicate instantiation
errors to pedwarn.
* typeck.c (comptypes): Simplify C code in look_hard.
* xref.c (PALLOC): Use xcalloc, not calloc.
(SALLOC): Use xmalloc, not malloc.
* rtti.c (synthesize_tinfo_fn): Add missing call to pop_momentary.
* search.c (note_debug_info_needed): Don't search if WRITE_SYMBOLS
is NO_DEBUG.
* decl.c (duplicate_decls): If a redeclaration doesn't match the
initial declaration, then don't save the inline info and by all
means don't mark the function as a builtin function.
* decl.c (lookup_name_real): Set NONCLASS to 1 if
CURRENT_CLASS_TYPE is 0.
* class.c (duplicate_tag_error): Set TYPE_NONCOPIED_PARTS to
NULL_TREE.
loop.c (check_dbra_loop): When reversing a loop...
* loop.c (check_dbra_loop): When reversing a loop, delete all
REG_EQUAL notes referencing the reversed biv except those which are
for a giv based on it.