Nathanael Nerode [Fri, 13 Aug 2004 22:31:45 +0000 (22:31 +0000)]
2004-08-13 Nathanael Nerode <neroden@gcc.gnu.org>
* Add ACX_{TARGET,HOST,BUILD}_NONCANONICAL,
which do an automatic AC_SUBST on _GCC_TOPLEV_*_NONCANONICAL.
The intention is that we will migrate to these bit by bit.
* dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
(dbxout_function_end): Remove ifdefs for it.
(dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
Paolo Carlini [Fri, 13 Aug 2004 16:47:43 +0000 (16:47 +0000)]
std_fstream.h (class basic_ifstream, [...]): Add const overloads of is_open, as per DR 365 [WP].
2004-08-13 Paolo Carlini <pcarlini@suse.de>
* include/std/std_fstream.h (class basic_ifstream,
class basic_ofstream, class basic_fstream): Add const overloads
of is_open, as per DR 365 [WP].
* docs/html/ext/howto.html: Add an entry for DR 365.
* genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
fields with a pointer to the instruction definition.
(get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
(insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
(write_attr_case, write_const_num_delay_slots): Update accordingly.
(write_attr_case, write_const_num_delay_slots): Write the name of
an insn next to its case statement.
* genoutput.c (data): Add a filename field.
(gen_insn, gen_peephole, gen_expand, gen_split): Set it.
(output_insn_data): Print the location of each insn definition.
* genrecog.c (write_action): Print the name of an insn above
the statement that returns its code.
* decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
for a global aliased object with a variable size and an unconstrained
nominal subtype, pretend there is no initializer if the one we have is
incomplete, and avoid referencing an inexistant component in there. The
part we have will be rebuilt anyway and the reference may confuse
further operations.
2004-08-13 Thomas Quinot <quinot@act-europe.fr>
* einfo.ads: Minor reformatting
* lib-writ.adb (Output_Main_Program_Line): Do not set parameter
restrictions in the ALI if we only want to warn about violations.
2004-08-13 Vincent Celier <celier@gnat.com>
* ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
when creating a new Unit_Record in table Units.
* gnatls.adb (Output_Unit): In verbose mode, output the restrictions
that are violated, if any.
* prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
add directory separator if path already ends with a directory separator.
2004-08-13 Ed Schonberg <schonberg@gnat.com>
* rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
unit, this is an attempt to inline a construct that is not available in
the current restricted mode, so abort rather than trying to continue.
* sem_ch3.adb (Build_Underlying_Full_View): If the new type has
discriminants that rename those of the parent, recover names of
original discriminants for the constraint on the full view of the
parent.
(Complete_Private_Subtype): Do not create a subtype declaration if the
subtype is an itype.
* gnat_rm.texi: Added section on implementation of discriminated
records with default values for discriminants.
2004-08-13 Ed Schonberg <schonberg@gnat.com>
PR ada/15601
* sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
the second operand is overloaded.
Zack Weinberg [Fri, 13 Aug 2004 06:36:21 +0000 (06:36 +0000)]
genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL...
* genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
if pred->singleton != PARALLEL, issue a warning and pretend it was.
Also issue a warning for any predicate we don't know about.
Paolo Carlini [Thu, 12 Aug 2004 22:26:32 +0000 (22:26 +0000)]
re PR libstdc++/16956 ([3.4 only] std::stringbuf::seekoff return wrong position value)
2004-08-12 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/16956
* include/bits/sstream.tcc (basic_stringbuf<>::seekoff): Add __off
to the returned value, reorganize a bit.
* testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc: New.
* testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc: New.
Devang Patel [Thu, 12 Aug 2004 21:32:56 +0000 (14:32 -0700)]
dbxout.c (dbxout_begin_prologue): New function.
* dbxout.c (dbxout_begin_prologue): New function.
(dbx_debug_hooks): Use new begin prologue hook.
(dbxout_function_end): Emit N_ENSYM.
* stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
Mark Mitchell [Thu, 12 Aug 2004 17:58:24 +0000 (17:58 +0000)]
re PR c++/16273 (Memory exhausted when using nested classes and virtual functions)
PR c++/16273
* class.c (count_depth_data): New type.
(dfs_depth_post): New function.
(dfs_depth_q): Likewise.
(find_final_overrider_data_s): Change type of vpath.
Add vpath_list.
(dfs_find_final_overrider_1): New function.
(dfs_find_final_overrider): Use it.
(dfs_find_final_overrider_q): Adjust use of vpath.
(dfs_find_final_overrider_post): Likewise.
(find_final_overrider): Use dfs_depth. Allocate and deallocate
vpath_list.
Hans Boehm [Thu, 12 Aug 2004 17:56:32 +0000 (17:56 +0000)]
re PR libgcj/16662 (IllegalMonitorStateException in EventQueue.getNextEvent(): possible hash synchronization bug?)
PR libgcj/16662
* java/lang/natObject.cc (LOCK_LOG, LOG): Add debug tracing.
(Almost everywhere): add LOG calls, fix, add comments.
(_Jv_MonitorEnter): Replace masking of LOCKED bit with assertion.
Add explicit check for LOCKED bit in slow case (PR 16662).
(_Jv_MonitorExit): Add casts in debug-only code.
Always release LOCKED bit before throwing exception.
(_Jv_ObjectCheckMonitor): Lock may be held if lightweight lock
isn't. Handle easy cases without lock acquisition.
(Object::wait): Use NotifyAll for lock inflation.
Andreas Krebbel [Thu, 12 Aug 2004 17:40:02 +0000 (17:40 +0000)]
s390.c (struct s390_frame_layout): New struct as element of struct machine_function.
2004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (struct s390_frame_layout): New struct as element
of struct machine_function.
(cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
changed all uses.
(cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
changed all uses.
(cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
(cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
(s390_frame_area, s390_register_info): New functions.
(s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check
for base register.
(s390_return_addr_rtx, s390_return_address_offset)
(s390_va_start, s390_gimplify_va_arg)
(s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
layouts.
(s390_frame_info): Functionality partly moved to s390_register_info.
Made adaptions for new stack layout.
(save_gprs, restore_gprs): Changed meaning of second parameter and
adapted all callers.
* config/s390/s390.h (s390_backchain_string): New global variable.
(MASK_BACKCHAIN): Removed definition.
(TARGET_BACKCHAIN): Changed check.
(TARGET_KERNEL_BACKCHAIN): New macro.
(TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
(TARGET_OPTIONS): Added "backchain", "no-backchain" and
"kernel-backchain".
(DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
* config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
as condition. Adjusted for new stack layout.
* doc/invoke.texi: Added documentation for new option
"-mkernel-backchain" and adjusted documentation of "-mbackchain" and
"-mno-backchain".
David Edelsohn [Thu, 12 Aug 2004 15:05:38 +0000 (15:05 +0000)]
expr.c (move_by_pieces): Set alignment for move to minimum of MOVE_MAX_PIECES mode alignment and the...
* expr.c (move_by_pieces): Set alignment for move to minimum of
MOVE_MAX_PIECES mode alignment and the largest non-slow mode
alignment, but not less than the original alignment.
(move_by_pieces_ninsns): Same.
(can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
(store_by_pieces_1): Same.
Diego Novillo [Thu, 12 Aug 2004 14:34:11 +0000 (14:34 +0000)]
re PR tree-optimization/16867 (Inline array initializer miscompilation at -O)
PR tree-optimization/16867
* tree.c (is_global_var): New function.
(needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
Call is_global_var.
* tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
Update all users.
(is_global_var): Declare.
* tree-dfa.c (dump_variable): Display global and addressable
attributes.
(add_referenced_var): Clarify documentation when marking
variables call-clobbered.
* tree-flow-inline.h (is_call_clobbered): Call is_global_var
instead of needs_to_live_in_memory.
(mark_call_clobbered): If the variable is a tag, mark it
DECL_EXTERNAL.
* tree-gimple.c (is_gimple_reg): Don't check for
TREE_ADDRESSABLE.
(is_gimple_non_addressable): Likewise.
* tree-ssa-alias.c (get_nmt_for): Always check whether the tag
needs to be marked call-clobbered.
(setup_pointers_and_addressables): Call is_global_var instead
of needs_to_live_in_memory.
* tree-ssa-dce.c (need_to_preserve_store): Remove.
Update all users with is_global_var.
(mark_stmt_if_obviously_necessary): Fix processing of aliased
stores. Don't check the virtual definitions. Rather, check
whether the store is going into global memory.
(find_obviously_necessary_stmts): Get the symbol from the PHI
result.
* tree-ssa-operands.c (get_call_expr_operands): Do not add
clobbering may-defs if the call does not have side effects.
libjava/ChangeLog
PR tree-optimization/16867
* testsuite/libjava.lang/PR16867.java: New test.
Jan Beulich [Thu, 12 Aug 2004 09:46:39 +0000 (09:46 +0000)]
2004-08-12 Jan Beulich <jbeulich@novell.com>
* config/locale/generic/ctype_members.cc
(ctype<wchar_t>::_M_convert_to_wmask): Default case must not use 0 as
initializer for return value, as that is invalid for enumerated types.
* config/locale/gnu/ctype_members.cc
(ctype<wchar_t>::_M_convert_to_wmask): Likewise.
Jan Beulich [Thu, 12 Aug 2004 09:34:16 +0000 (09:34 +0000)]
parser.c (cp_parser_asm_definition): Properly consume scope operator tokens preceding the clobbers.
cp/
2004-08-12 Jan Beulich <jbeulich@novell.com>
* parser.c (cp_parser_asm_definition): Properly consume scope operator
tokens preceding the clobbers. Don't check for scope operator
following inputs. Simplify inputs handling to match that now used for
clobbers.
testsuite/
2004-08-12 Jan Beulich <jbeulich@novell.com>
Zack Weinberg [Thu, 12 Aug 2004 07:49:00 +0000 (07:49 +0000)]
genpreds.c: Add capability to generate predicate bodies as well as function prototypes.
* genpreds.c: Add capability to generate predicate bodies as
well as function prototypes. Write function prototypes for
the generic predicates too.
(process_define_predicate, write_tm_preds_h, write_insn_preds_c)
(write_predicate_subfunction, mark_mode_tests, add_mode_tests)
(write_match_code, write_predicate_expr, write_one_predicate_function)
(parse_option): New functions.
(output_predicate_decls): Delete.
(main): Read the machine description, process DEFINE_PREDICATE or
DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
as appropriate.
* genrecog.c (struct decision_test): Replace index with
struct pred_data pointer.
(next_index): Remove, unused.
(pred_table, preds, special_mode_pred_table): Delete.
(compute_predicate_codes, process_define_predicate): New functions.
(validate_pattern, add_to_sequence, write_switch): Update for
new data structures.
(main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
Check both error_count and have_error.
* gensupport.c (in_fname, first_predicate): New globals.
(define_pred_queue, define_pred_tail): New RTL-pattern queue.
(predicate_table, last_predicate, old_pred_table)
(old_special_pred_table): New statics.
(hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
(add_predicate, init_predicate_table): New functions.
(process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
(init_md_reader_args_cb): Use the global in_fname. No need to zero
it or max_include_len. Call init_predicate_table.
(read_rtx): Run the predicate queue after the attribute queue
but before all the others.
* gensupport.h (in_fname, struct pred_data, first_predicate)
(lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
* rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
(DEFINE_SPECIAL_PREDICATE): New RTL codes.
* dummy-conditions.c: Don't include bconfig.h, system.h,
coretypes.h, tm.h, or system.h. Do include stddef.h.
Duplicate declaration of struct c_test from gensupport.h.
* recog.h: Delete prototypes of predicate functions.
* doc/md.texi (Predicates): New section with complete
documentation of operand/operator predicates. Remove some
incomplete documentation of predicates from other places.
* doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
PREDICATE_CODES; indicate that both are deprecated in favor
of define_predicate/define_special_predicate.
* config/ia64/ia64.c: All predicate function definitions moved
to ia64.md, except
(small_addr_symbolic_operand, tls_symbolic_operand): Delete.
(ia64_expand_load_address, ia64_expand_move):
Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
* config/ia64/ia64.md: All predicates now defined here.
(symbolic_operand): Is now a special predicate.
* c-common.h (STATEMENT_LIST_HAS_LABEL): New.
* c-semantics.c (add_stmt): Set it.
* c-decl.c (finish_decl): Use it to create a new BIND_EXPR
before instantiating a variable sized type.
Ziemowit Laski [Thu, 12 Aug 2004 01:53:01 +0000 (01:53 +0000)]
(This patch is part of merge of objc-improvements-branch into mainline.)
[gcc/ChangeLog]
2004-08-12 Ziemowit Laski <zlaski@apple.com>
(This patch is part of merge of objc-improvements-branch
into mainline.)
* doc/frontends.texi: Mention Objective-C++ in addition to
Objective-C.
* doc/install.texi: Add 'obj-c++' to list of configurable
languages.
* doc/invoke.texi: Rename Objective-C option headings to
indicate they also apply to Objective-C++. List file
extensions for Objective-C++ sources. Mention that
ObjC and ObjC++ compilations may also use C and C++ options,
respectively. Point users to doc/standards.texi for
further info on ObjC and ObjC++.
* doc/sourcebuild.texi: Mention the objcp/ directory and
the Objective-C++ sources it contains.
* doc/standards.texi: Update link to Apple ObjC site;
add link to gcc readings.html WWW doc.