* decl.c (grokdeclarator): Update the name of the TEMPLATE_DECL, as
well as the TYPE_DECL, when a typedef name is assigned to a
previously anonymous type.
From-SVN: r24218
* reload1.c (reload_combine, reload_combine_note_store):
Make USE_RUID always valid.
(reload_combine): Check if BASE is clobbered too early.
From-SVN: r24216
* except.h (struct handler_info): Add handler_number field
* except.c (gen_exception_label): EH labels no longer need to be
on the permanent obstack.
(get_new_handler): Set the label number field.
(output_exception_table_entry): Regenerate handler label reference
from the label number field.
(init_eh): Remove a blank line
* integrate.c (get_label_from_map): Labels no longer need to be
on the permanent obstack.
From-SVN: r24203
* loop.c (strength_reduce): If scan_start points to the loop exit
test, be wary of subversive use of gotos inside expression statements.
Don't set maybe_multiple for a backward jump that does not
include the label under consideration into its range.
* unroll.c (biv_total_increment): Make use of maybe_multiple field.
From-SVN: r24196
Tue Dec 8 15:32:56 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
See ChangeLog.. These are the files that were changed:
* eh-common.h (struct eh_context): Add table_index for rethrows.
* rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
* rtl.c (reg_note_name): Add strings for new reg_note enums.
* expr.h (rethrow_libfunc): New library decl.
* optabs.c (rethrow_libfunc): Initialize.
* except.h (struct eh_entry): Add new field 'rethrow_label'.
* except.c (create_rethrow_ref): New function to create a single
* flow.c (make_edges): Add different edges for rethrow calls,
* integrate.c (save_for_inline_eh_labelmap): New callback routine to
* libgcc2.c (find_exception_handler): Generalize to enable it to
* cp/except.c
* cp/exception.cc
From-SVN: r24194
* configure.in: Test for availability of putc_unlocked, fputc_unlocked,
and fputs_unlocked.
* configure: Rebuilt.
* system.h: If the *_unlocked functions are available use them
instead of the locked counterparts by defining macros.
* config.in: Regenerated.
From-SVN: r24175
* i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
wrong and should only be used for dump related things, not
debugging information, instead main_input_filename should be used.
Also, reuse output_file_directive if possible.
* i386/aix386ng.h (ASM_FILE_START): Likewise.
* i386/isc.h (ASM_FILE_START): Likewise.
* i386/win-nt.h (ASM_FILE_START): Likewise.
* i386/sun386.h (ASM_FILE_START): Likewise.
From-SVN: r24174
* demangle.h: (DMGL_EDG): new macro for Kuck and Associates
(DMGL_STYLE_MASK): modify to include Kuck and Assoc style
(demangling_styles): add new edg_demangling style
(EDG_DEMANGLING_STYLE_STRING): new macro
(EDG_DEMANGLING): new macro
* demangle.h (DMGL_HP): new macro, for HP/aCC compiler.
(DMGL_STYLE_MASK): modify to include new HP's style.
(demangling_styles): add new hp_demangling value.
(HP_DEMANGLING_STYLE_STRING): new macro.
(ARM_DEMANGLING): coerce to int.
(HP_DEMANGLING): new macro.
From-SVN: r24173
* local-alloc.c (block_alloc): Slightly retune heuristic to widen
qty lifetimes.
Actually check in the local-alloc patch that goes along with this ChangeLog
entry...
From-SVN: r24171
* cplus-dem.c
(main): Remove default to HP style demangling, set to EDG
demangling correctly when -edg specified; set the demangling style
when user specifies 'edg'. Set strip_underscore to
prepends_underscore, if not HPUXHPPA. Set
current_demangling_style to hp_demangling if HPUXHPPA. Set
current demangling style correctly if the switch is hp. Read
label correctly also in the HP style case.
(work_stuff): add temp_start field; add field for volatile member
function.
(arm_pt): handle ARM_DEMANGLING and EDG_DEMANGLING styles; HP
style for this case is the same as ARM.
(demangle_args): handle EDG_DEMANGLING style; support HP style.
(demangle_arm_hp_template): new function. (It was
demangle_arm_pt.); check and set value of temp_start field in
multiple places. Also, when ceching for end of template args,
check to see if at end of static member of template class.
(demangle_class): new local variable : save_class_name_end Don't
include template args in string defining class.
(demangle_class_name): use demangel_arm_hp_template.
(demangle_function_name): handle case where demangling style is
HP_DEMANGLING and currently point at an 'X' in the mangled name.
Handle EDG_DEMANGLING style. Handle constructor and destructor
ops for HP style.
(demangle_prefix): handle EDG_DEMANGLING and ARM_DEMANGLING
styles. global destructor and constructor for HP style are same
as for ARM style. Same for local variables.
(demangle_qualified): handle EDG_DEMANGLING style.
(demangle_signature): add case for volatile member function. For
cases '1' - '9' : initialize the temp_start field to -1 and handle
the EDG_DEMANGLING style. for case 'F' : handle EDG_DEMANGLING
and AUTO_DEMANGLING styles. If expecting a function and managed
to demangle the funct args, then handle the LUCID_DEMANGLING,
ARM_DEMANGLING, and EDG_DEMANGLING styles. Add case for local
class name after "Lnnn_ in HP style case. HP style too needs to
forget types. _nnn is OK for HP style, so don't report failure.
(do_hpacc_template_const_value): new function. Handle template's
value param for HP/aCC.
(do_hpacc_template_literal): new function. Handle a template's
literal parameter for HP aCC.
(recursively_demangle): new function
(snarf_numeric_literal): new function.
(usage): add 'edg' to the list of demangling styles; add hp switch
to message.
Co-Authored-By: Andrew MacLeod <amacleod@cygnus.com>
Co-Authored-By: Edith Epstein <eepstein@cygnus.com>
Co-Authored-By: Elena Zannoni <ezannoni@cygnus.com>
Co-Authored-By: Satish Pai <pai@apollo.hp.com>
Co-Authored-By: Stan Shebs <shebs@cygnus.com>
From-SVN: r24170
Mon Dec 7 15:13:52 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (array_initializer): Tagged <node>.
(variable_initializer:): Use default rule.
(array_initializer:): Defined actions.
(variable_initializers:): Likewise.
(resolve_qualified_expression_name): Use DECL_CONTEXT to build
non-static field accesses.
(patch_invoke): Fixed indentation typo.
(java_complete_tree): Likewise.
(build_labeled_block): Changed leading comment. Generate an error
in case of duplicate loop labels.
(patch_conditional_expr): Patch results of string concatenation
operations.
Fixes a ?: bug when string concatenation operator are in
operands. Makes duplicate loop label declaration an error. Fixes
random bugs.
From-SVN: r24164
d
* constants.c (find_methodref_index): When the class is an interface,
generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
* decl.c (finit_identifier_node): Use "$finit$", rather than
"<finit>" (which Sun's verifier rejects).
* parse.y (maybe_generate_finit): Leave out meaningless final flag.
(generate_field_initialization_code): Removed.
(fix_constructors) Don't add call to $finit$ here (wrong order).
(patch_method_invocation): Add $finit$ call here.
* java-tree.h (CALL_USING_SUPER): New macro.
* parse.y (patch_invoke): Remove im local variable.
(patch_method_invocation, patch_invoke): Don't pass super parameter.
(patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
(resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
* jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
* parse.y (java_complete_tree): Don't complain about unreachable
statement if it is empty_stmt_node.
* jcf-write.c (find_constant_wide): New function.
(push_long_const): Use find_constant_wide.
* jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
(generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
Emit invokeinterface when calling an interface method.
Emit invokespecial also when calling super or private methods.
* jcf-write.c (generate_classfile): Emit ConstantValue attributes.
From-SVN: r24163
a
* constants.c (find_methodref_index): When the class is an interface,
generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
* decl.c (finit_identifier_node): Use "$finit$", rather than
"<finit>" (which Sun's verifier rejects).
* parse.y (maybe_generate_finit): Leave out meaningless final flag.
(generate_field_initialization_code): Removed.
(fix_constructors) Don't add call to $finit$ here (wrong order).
(patch_method_invocation): Add $finit$ call here.
* java-tree.h (CALL_USING_SUPER): New macro.
* parse.y (patch_invoke): Remove im local variable.
(patch_method_invocation, patch_invoke): Don't pass super parameter.
(patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
(resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
* jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
* parse.y (java_complete_tree): Don't complain about unreachable
statement if it is empty_stmt_node.
* jcf-write.c (find_constant_wide): New function.
(push_long_const): Use find_constant_wide.
* jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
(generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
Emit invokeinterface when calling an interface method.
Emit invokespecial also when calling super or private methods.
* jcf-write.c (generate_classfile): Emit ConstantValue attributes.
From-SVN: r24162
T
* constants.c (find_methodref_index): When the class is an interface,
generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
* decl.c (finit_identifier_node): Use "$finit$", rather than
"<finit>" (which Sun's verifier rejects).
* parse.y (maybe_generate_finit): Leave out meaningless final flag.
(generate_field_initialization_code): Removed.
(fix_constructors) Don't add call to $finit$ here (wrong order).
(patch_method_invocation): Add $finit$ call here.
* java-tree.h (CALL_USING_SUPER): New macro.
* parse.y (patch_invoke): Remove im local variable.
(patch_method_invocation, patch_invoke): Don't pass super parameter.
(patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
(resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
* jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
* parse.y (java_complete_tree): Don't complain about unreachable
statement if it is empty_stmt_node.
* jcf-write.c (find_constant_wide): New function.
(push_long_const): Use find_constant_wide.
* jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
(generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
Emit invokeinterface when calling an interface method.
Emit invokespecial also when calling super or private methods.
* jcf-write.c (generate_classfile): Emit ConstantValue attributes.
From-SVN: r24161
/
* constants.c (find_methodref_index): When the class is an interface,
generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
* decl.c (finit_identifier_node): Use "$finit$", rather than
"<finit>" (which Sun's verifier rejects).
* parse.y (maybe_generate_finit): Leave out meaningless final flag.
(generate_field_initialization_code): Removed.
(fix_constructors) Don't add call to $finit$ here (wrong order).
(patch_method_invocation): Add $finit$ call here.
* java-tree.h (CALL_USING_SUPER): New macro.
* parse.y (patch_invoke): Remove im local variable.
(patch_method_invocation, patch_invoke): Don't pass super parameter.
(patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
(resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
* jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
* parse.y (java_complete_tree): Don't complain about unreachable
statement if it is empty_stmt_node.
* jcf-write.c (find_constant_wide): New function.
(push_long_const): Use find_constant_wide.
* jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
(generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
Emit invokeinterface when calling an interface method.
Emit invokespecial also when calling super or private methods.
* jcf-write.c (generate_classfile): Emit ConstantValue attributes.
From-SVN: r24160
* constants.c (find_methodref_index): When the class is an interface,
generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
* decl.c (finit_identifier_node): Use "$finit$", rather than
"<finit>" (which Sun's verifier rejects).
* parse.y (maybe_generate_finit): Leave out meaningless final flag.
(generate_field_initialization_code): Removed.
(fix_constructors) Don't add call to $finit$ here (wrong order).
(patch_method_invocation): Add $finit$ call here.
* java-tree.h (CALL_USING_SUPER): New macro.
* parse.y (patch_invoke): Remove im local variable.
(patch_method_invocation, patch_invoke): Don't pass super parameter.
(patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
(resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
* jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
* parse.y (java_complete_tree): Don't complain about unreachable
statement if it is empty_stmt_node.
* jcf-write.c (find_constant_wide): New function.
(push_long_const): Use find_constant_wide.
* jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
(generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
Emit invokeinterface when calling an interface method.
Emit invokespecial also when calling super or private methods.
* jcf-write.c (generate_classfile): Emit ConstantValue attributes.
From-SVN: r24159
Mon Dec 7 17:56:06 1998 Mike Stump <mrs@wrs.com>
* lex.c (check_newline): Add support for \ as `natural'
characters in file names in #line to be consistent with #include
handling. We support escape prcessing in the # 1 "..." version of
the command.
From-SVN: r24157
Mon Dec 7 17:55:06 1998 Mike Stump <mrs@wrs.com>
* cccp.c (ignore_escape_flag): Add support for \ as `natural'
characters in file names in #line to be consistent with #include
handling. We support escape prcessing in the # 1 "..." version of
the command. See also support in cp/lex.c.
(handle_directive): Likewise.
(do_line): Likewise.
From-SVN: r24156
1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu>
* cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
so it'll work on non-ASCII platforms. Always consider $ an
identifier character. Take no arguments.
(cpp_reader_init): Call initialize_char_syntax with no
arguments.
(cpp_start_read): Don't call initialize_char_syntax again.
Clear is_idchar['$'] and is_idstart['$'] if not
opts->dollars_in_ident.
* cpplib.h (struct cpp_reader): Replace void *data element by
cpp_options *opts. Rearrange elements to make gdb printout
less annoying (put buffer stack at end).
(CPP_OPTIONS): Get rid of now-unnecessary cast.
* cppmain.c: s/data/opts/ when initializing cpp_reader
structure.
* c-decl.c: Likewise.
* objc/objc-act.c: Likewise.
* fix-header.c: Likewise.
From-SVN: r24154
1998-11-26 01:17 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
* cpplib.h (struct cpp_buffer): Replace dir and dlen members
with a struct file_name_list pointer.
(struct cpp_reader): Add pointer to chain of `actual
directory' include searchpath entries.
(struct file_name_list): Add *alloc pointer for the sake of
the actual-directory chain.
Move definition of HOST_WIDE_INT here.
(cpp_parse_escape): Change prototype to match changes in
cppexp.c.
* cppfiles.c (actual_directory): New function.
(finclude): Use it to initialize the buffer's actual_dir
entry.
(find_include_file): We don't need to fix up max_include_len
here.
* cpplib.c (do_include): Don't allocate a file_name_list on
the fly for current directory "" includes, use the one that's
been preallocated in pfile->buffer->actual_dir. Hoist out
duplicate code from the search_start selection logic.
(cpp_reader_init): Initialize pfile->actual_dirs.
Remove definition of HOST_WIDE_INT. Change calls
to cpp_parse_escape to match changes in cppexp.c (note
hardcoded MASK, which is safe since this is the source
character set).
* cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
to handle wide character constants in #if directives. The
function now returns a HOST_WIDE_INT, and takes a third
argument which is a binary mask for all legal values (0x00ff
for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.) Define
MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK. Change callers of
cpp_parse_escape to match. [Fixes c-torture/execute/widechar-1.c]
From-SVN: r24153
Mon Dec 7 15:38:25 1998 Dave Brolley <brolley@cygnus.com>
* gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
* cppalloc.c: Move function `xcalloc' from cpplib.c to here.
* cpplib.c: Move function `xcalloc' from here to cppalloc.c.
From-SVN: r24152