David S. Miller [Mon, 13 Jul 1998 03:34:12 +0000 (03:34 +0000)]
More efficient version of Jul 10 bugfix of mine, as discussed on egcs-patches.
More efficient version of Jul 10 bugfix of mine, as
discussed on egcs-patches.
* regclass.c (reg_scan_mark_refs): New arg min_regno. Only update
regscan information for REGs with numbers greater than or equal to
this. All callers changed.
(reg_scan_update): New function to efficiently update regscan
information on the fly.
* rtl.h: Add prototype.
* jump.c (jump_optimize): Call it when we make a transformation
which generates new pseudo-REGs.
Martin v. Löwis [Sun, 12 Jul 1998 15:41:22 +0000 (11:41 -0400)]
decl.c (struct binding_level): New field using_directives.
* decl.c (struct binding_level): New field using_directives.
(push_using_decl): Not sorry anymore.
(push_using_directive): New function.
(lookup_tag): Use CP_DECL_CONTEXT to iterate.
(unqualified_namespace_lookup): New function, code from ...
(lookup_name_real): ... here.
* decl2.c (lookup_using_namespace): Pass using list instead of
initial scope.
(validate_nonmember_using_decl): New function.
(do_nonmember_using_decl): New function.
(do_toplevel_using_decl): Use them.
(do_local_using_decl): New function.
(do_using_directive): Support block-level directives.
* parse.y (simple_stmt): Support using declarations and
directives.
(namespace_qualifier, namespace_using_decl): New non-terminals.
Martin v. Löwis [Sun, 12 Jul 1998 15:20:42 +0000 (11:20 -0400)]
xref.c (classname): New function.
* xref.c (classname): New function.
(GNU_xref_hier): Change class and base parameters to tree.
* decl.c (xref_baseypes): Change caller.
* friend.c (make_friend_class): Likewise.
Dave Love [Sun, 12 Jul 1998 05:02:03 +0000 (05:02 +0000)]
Makefile.in: Re-write build procedure mainly to honour dependencies correctly but also allow...
1998-07-10 Dave Love <d.love@dl.ac.uk>
* Makefile.in: Re-write build procedure mainly to honour
dependencies correctly but also allow making in the build
directory by configuring the relevant variables. The lib[FIU]77
subdirs do dependency checking of their objects. Stamp files
dictate when to run (new) archive targets in subdirs. Some
tidying of variables. Supply full set of standard targets.
* configure.in: Move much of testing to new configures in
subdirs. Tidy up handling of RANLIB etc.
* stamp-h.in, libF77/configure.in, libI77/configure.in,
libF77/configure, libI77/configure: New files.
* libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in:
Change in step with libf2c/Makefile.in.
com.c (ffecom_expr_): Die if padding for constant is non-zero.
Sat Jul 11 18:24:37 1998 Craig Burley <burley@gnu.org>
* com.c (ffecom_expr_) [FFEBLD_opCONTER]: Die if padding
for constant is non-zero.
* com.c (__eprintf): Delete this function, it is obsolete.
* typeck.c (comptypes, case TEMPLATE_TEMPLATE_PARM): Add parameter
comparison.
* pt.c (for_each_template_parm, case TEMPLATE_DECL): If it is a
template template parameter, record its use.
(for_each_template_parm, case TEMPLATE_TEMPLATE_PARM): Traverse
its template arguments if exists.
* pt.c (coerce_template_template_parms): New function equivalent
to coerce_template_parms when IS_TMPL_PARM is true.
(coerce_template_parms): Use it. Remove the IS_TMPL_PARM parameter,
all callers changed.
(coerce_template_parms): Access ARGLIST properly when creating a
new vector. Only accept implicit TYPE_DECL as valid argument for
a template template parameter when it is a base class of
current_class_type. Don't display error message when COMPLAIN is
false.
Jason Merrill [Sun, 12 Jul 1998 01:30:11 +0000 (01:30 +0000)]
friend.c (do_friend): Pull the identifier out of declarator.
* friend.c (do_friend): Pull the identifier out of declarator.
Use cp_error and friends.
* decl2.c (qualified_lookup_using_namespace): Fix call to
purpose_member.
* decl.c (lookup_name_real): Don't call complete_type on a namespace.
(grokvardecl): Use DECL_CLASS_SCOPE_P.
(xref_basetypes): Fix call to GNU_xref_hier.
* cvt.c (convert_pointer_to_real): Check for error_mark_node sooner.
* class.c (warn_hidden): Fix for OVERLOAD.
From grahams@rcp.co.uk:
* cp-tree.h (DEFARG_NODE_CHECK): New macro.
(DEFARG_LENGTH, DEFARG_POINTER): Use it.
Mark Mitchell [Sat, 11 Jul 1998 16:20:54 +0000 (16:20 +0000)]
cplus-dem.c (string): Move definition before work_stuff.
* cplus-dem.c (string): Move definition before work_stuff.
(work_stuff): Add volatile_type, forgetting_types,
previous_argument, and nrepeats fields.
(SCOPE_STRING): New macro.
(demangle_template): Add `remember' parameter. Add comment.
Register the `B' code type here, if remembering. Tidy. Fix crash
on NULL tmpl_argvec. Be consistent with use of tname/trawname.
(demangle_nested_args): New function.
(internal_cplus_demangle): Handle volatile-qualified member
functions.
(mop_up): Delete the previous_argument string if present.
(demangle_signature): Tidy. Handle volatile-qualified member
functions. Handle back-references using the `B' code. Use extra
parameter to demangle_template and SCOPE_STRING where appropriate.
(demangle_template_value_parm): Fix thinko; 'B' is not an integral
code.
(demangle_class): Use SCOPE_STRING.
(gnu_special): Pass additional argument to demangle_template.
Use SCOPE_STRING.
(demangle_qualified): Save qualified types for later
back-references. Handle constructors and destructors for template
types correctly.
(do_type): Tidy. Use SCOPE_STRING. Pass extra argument to
demangle_template. Use demangled_nested_args. Don't remember
qualified types here; that's now done in demangle_qualified.
Similarly for templates.
(do_arg): Improve commment. Handle 'n' repeat code.
(remember_type): Check forgetting_types.
(demangle_args): Deal with 'n' repeat codes. Tidy.
* method.c (flush_repeats): Add nrepeats parameter.
(issue_nrepeats): Likewise.
(is_back_referenceable_type): New function. Don't back-reference
TEMPLATE_TYPE_PARMs as well as simple types like integers.
(build_mangled_name_for_type): Likewise.
(build_mangled_name_for_type_with_Gcode): Likewise.
(lasttype): Remove.
(nrepeats): Likewise.
(Nrepeats): Likewise.
(start_squangling): Don't clear the variables removed above.
(end_squangling): Likewise.
(flush_repeats): Tidy. Use nrepeats parameter rather than
Nrepeats global.
(issue_nrepeats): Likewise, but with nrepeats global. Use
is_backreferenceable_type.
(build_overload_nested_name): Tidy. Add comment. Use
build_mangled_name_for_type.
(build_underscore_int): Comment.
(build_overload_scope_ref): Use build_mangled_name_for_type.
(build_overload_int): Likewise.
(build_template_template_parm_names): Tidy.
(build_template_parm_names): Use build_mangled_name_for_type.
(build_overload_identifier): Add comments.
(build_mangled_name_for_type_with_Gcode): Split out from
build_mangled_name.
(build_mangled_name_for_type): Use it.
(build_mangled_name): Rework to use build_mangled_name_for_type
and to not use global nrepeats/Nrepeats. Tidy.
(process_modifiers): Tidy.
(check_btype): Use is_backreferenceable_type. Add comment.
Rename `node' to `type'.
(process_overload_item): Set numeric_output_need_bar here.
Use build_mangled_name_for_type. Tidy.
(build_decl_overload_real): Tidy. Don't use Nrepeats. Use
build_mangled_name_for_type.
Richard Earnshaw [Sat, 11 Jul 1998 03:04:39 +0000 (03:04 +0000)]
arm.md (extendhisi2_mem, [...]): Propagate the volatile and structure attribute flags to MEMs generated.
* arm.md (extendhisi2_mem, movhi, movhi_bytes): Propagate the volatile
and structure attribute flags to MEMs generated.
(splits for sign-extended HI & QI mode from memory): Also propagate
the volatile flag.
reload1.c (choose_reload_regs): If using an equivalence from find_equiv_reg and reg_reloaded_valid is not set...
* reload1.c (choose_reload_regs): If using an equivalence from
find_equiv_reg and reg_reloaded_valid is not set for this register,
clear the associated spill_reg_store.
reload1.c (emit_reload_insns): If an output reload copies only to a secondary reload register...
* reload1.c (emit_reload_insns): If an output reload copies only
to a secondary reload register, indicate that the secondary reload
does the actual store.
Joel Sherrill [Thu, 9 Jul 1998 00:37:05 +0000 (00:37 +0000)]
rtemself.h: Updated to keep in sync with config/i386/linux.h.
* config/i386/rtemself.h: Updated to keep in sync with
config/i386/linux.h.
* configure.in: Added sh-rtemself.
* configure: Rebuilt.
* config/sh/rtems.h: Removed -D__ELF__ since it is now COFF.
* config/sh/rtemself.h: New file.
* config/rs6000/rtems.h: Defined STARTFILE_DEFAULT_SPEC.
Jeffrey A Law [Thu, 9 Jul 1998 00:27:21 +0000 (00:27 +0000)]
configure.in: Check if the assembler supports ".balign" and ".p2align" and define...
* configure.in: Check if the assembler supports ".balign" and
".p2align" and define HAVE_GAS_BALIGN_AND_P2ALIGN appropriately.
* acconfig.h (HAVE_GAS_BALIGN_AND_P2ALIGN): New tag.
* i386/gas.h (ASM_OUTPUT_ALIGN): If the assembler has support for
".balign" then use it.
Jeff Law [Wed, 8 Jul 1998 23:47:57 +0000 (17:47 -0600)]
Fix debugging of CHARACTER*(*), etc., which requires emitting debug info on types like `ftnlen':
Fix debugging of CHARACTER*(*), etc., which requires
emitting debug info on types like `ftnlen':
* com.c (ffecom_start_progunit_): Don't bother
resetting "invented" flag for identifier.
(ffecom_transform_equiv_): Don't bother zeroing
"ignored" flag for decl.
(pushdecl): No longer set "ignored", "used", or
"suppressed debug" flags for decls having "invented"
identifiers.
Fix debugging of CHARACTER*(*), etc., which requires emitting debug info on types like `ftnlen':
d
Fix debugging of CHARACTER*(*), etc., which requires
emitting debug info on types like `ftnlen':
* com.c (ffecom_start_progunit_): Don't bother
resetting "invented" flag for identifier.
(ffecom_transform_equiv_): Don't bother zeroing
"ignored" flag for decl.
(pushdecl): No longer set "ignored", "used", or
"suppressed debug" flags for decls having "invented"
identifiers.
Fix debugging of CHARACTER*(*), etc., which requires emitting debug info on types like `ftnlen':
�
Fix debugging of CHARACTER*(*), etc., which requires
emitting debug info on types like `ftnlen':
* com.c (ffecom_start_progunit_): Don't bother
resetting "invented" flag for identifier.
(ffecom_transform_equiv_): Don't bother zeroing
"ignored" flag for decl.
(pushdecl): No longer set "ignored", "used", or
"suppressed debug" flags for decls having "invented"
identifiers.
Jeffrey A Law [Wed, 8 Jul 1998 22:05:40 +0000 (22:05 +0000)]
pa.h (LEGITIMIZE_RELOAD_ADDRESS): Handle addresses created by LEGITIMIZE_RELOAD_ADDRESS.
* pa.h (LEGITIMIZE_RELOAD_ADDRESS): Handle addresses created by
LEGITIMIZE_RELOAD_ADDRESS.
* tm.texi (LEGITIMIZE_RELOAD_ADDRESS): Note that this macro must be
able to handle addresses created by previous invocations of the macro.
Robert Lipe [Wed, 8 Jul 1998 13:02:30 +0000 (13:02 +0000)]
Remove '#line' directives from file.
Remove '#line' directives from file. They were tormenting some Solaris
builds. Strangely, they were unnoticed on other hosts including linux/x86
and ix86-pc-sco3.2v5*.
* toplev.c (lang_options): Add -Wlong-long, -Wno-long-long
options.
* c-decl.c (warn_long_long): Define.
(c_decode_option): Parse -Wlong-long, -Wno-long-long options.
(grokdeclarator): Add flag `warn_long_long' as guard for
warning "ANSI C does not support `long long'".
* invoke.texi: Add description of options -Wlong-long,
-Wno-long-long.
* gcc.1: The same as above.
* cp-tree.h (warn_long_long): Define.
* decl.c (grokdeclarator): Add flag `warn_long_long' as guard for
warning "ANSI C++ does not support `long long'".
* decl2.c (warn_long_long): Define.
(lang_decode_option): Parse -Wlong-long, -Wno-long-long options.
* rtlanal.c (reg_overlap_mentioned_p): Handle STRICT_LOW_PART. If
either argument is CONSTANT_P, then return zero.
* reload.c (reg_overlap_mentioned_for_reload_p): Similarly.