Thomas Quinot [Wed, 27 Oct 2004 13:02:12 +0000 (15:02 +0200)]
exp_dist.adb (Build_General_Calling_Stubs): New formal parameter RACW_Type, used in the PolyORB version.
2004-10-26 Thomas Quinot <quinot@act-europe.fr>
* exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
RACW_Type, used in the PolyORB version.
Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
version and the GARLIC version.
* snames.ads, snames.adb, s-parint.ads, s-parint.adb:
Rename RCI_Info to RCI_Locator for better consistency between the
GARLIC and PolyORB versions of the distributed systems annex.
(DSA_Implementation_Name): This enumeration lists the possible
implementations of the Partition Communication Subsystem for the
Distributed Systems Annex (DSA). The three available implementations
are the dummy stub implementation (No_DSA), and two versions based on
two different distribution runtime libraries: GARLIC and PolyORB. Both
the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
technology.
Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
that organization.
* rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
between the GARLIC and PolyORB versions of the distributed systems
annex.
Remove RE_Unbounded_Reclaim_Pool since it is unused.
Ed Schonberg [Wed, 27 Oct 2004 13:01:55 +0000 (15:01 +0200)]
exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter is aliased and is a by_reference type...
2004-10-26 Ed Schonberg <schonberg@gnat.com>
Eric Botcazou <ebotcazou@act-europe.fr>
* exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
is aliased and is a by_reference type, do not pass by copy.
(Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
detect whether the call is in the right side of an assignment or
the expression of an object declaration. Recurse on component
association within aggregates.
Call it in the condition that determines whether the temporary is
necessary for correct stack-checking.
Ed Schonberg [Wed, 27 Oct 2004 13:01:17 +0000 (15:01 +0200)]
exp_aggr.adb (Safe_Component): An aggregate component that is an unchecked conversion is safe for in-place use...
2004-10-26 Ed Schonberg <schonberg@gnat.com>
* exp_aggr.adb (Safe_Component): An aggregate component that is an
unchecked conversion is safe for in-place use if the expression of the
conversion is safe.
(Expand_Array_Aggregate): An aggregate that initializes an allocator may
be expandable in place even if the aggregate does not come from source.
(Convert_Array_Aggr_In_Allocator): New procedure to initialize the
designated object of an allocator in place, rather than building it
first on the stack. The previous scheme forces a full copy of the array,
and may be altogether unsusable if the size of the array is too large
for stack allocation.
Geert Bosch [Wed, 27 Oct 2004 13:01:02 +0000 (15:01 +0200)]
eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
2004-10-26 Geert Bosch <bosch@gnat.com>
* eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
(Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
(Pred): Implement in terms of Succ.
Eric Botcazou [Wed, 27 Oct 2004 12:29:59 +0000 (14:29 +0200)]
decl.c (gnat_to_gnu_field): Use the type of the inner object for a JM type only if...
2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
* decl.c (gnat_to_gnu_field): Use the type of the inner object for a
JM type only if its size matches that of the wrapper. When a size is
prescribed and the field is not aliased, remove the wrapper of a JM
type only if the size is not greater than that of the packed array.
(gnat_to_gnu_entity): Change the extension of packed array wrappers
from LJM to JM.
Vincent Celier [Wed, 27 Oct 2004 12:29:44 +0000 (14:29 +0200)]
clean.adb (Delete): Do not output warnings when in quiet output and not in verbose mode.
2004-10-26 Vincent Celier <celier@gnat.com>
* clean.adb (Delete): Do not output warnings when in quiet output and
not in verbose mode.
(Force_Deletions): New Boolean flag, defaulted to False
(Delete): Only delete a file if it is writable, and when
Force_Deletions is True.
(Parse_Cmd_Line): New switch -f: set Force_Deletions to True
(Usage): Line for new switch -f
(Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
own.
Ed Schonberg [Wed, 27 Oct 2004 12:29:32 +0000 (14:29 +0200)]
checks.adb (Expr_Known_Valid): If floating-point validity checks are enabled...
2004-10-26 Ed Schonberg <schonberg@gnat.com>
* checks.adb (Expr_Known_Valid): If floating-point validity checks are
enabled, check the result of unary and binary operations when the
expression is the right-hand side of an assignment.
Olivier Hainque [Wed, 27 Oct 2004 12:28:44 +0000 (14:28 +0200)]
expect.c, [...] (unix sections): Guard with "__unix__" instead of "unix".
2004-10-26 Olivier Hainque <hainque@act-europe.fr>
Nicolas Setton <setton@act-europe.fr>
* expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
"__unix__" instead of "unix".
The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
sections were just mistakenly ignored. The former is
implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
of hpux. This prevents an unwanted definition of the symbol
convert_addresses in adaint.o.
Pascal Obry [Wed, 27 Oct 2004 12:28:25 +0000 (14:28 +0200)]
s-parame-mingw.adb (Default_Stack_Size): Add some comments.
2004-10-26 Pascal Obry <obry@gnat.com>
* s-parame-mingw.adb (Default_Stack_Size): Add some comments.
* s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
Windows only the initial thread stack size can be set so it is good to
start we a low stack size.
The OS will adjust the size as needed.
* Makefile.in: Add support for building shared libraries under Darwin.
(EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
the low level EH init subprogram to be called from __gnat_initialize.
* mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
indicates which options to pass to the archive indexer.
* mlib-utl.adb: Add support for calling ranlib with additional
options. This is needed for instance under Mac OS X.
(Ranlib_Options): New global variable, used to store the potential
options to pass to ranlib.
(Ar): Use Ranlib_Options when spawning ranlib.
(Initialize): Set the value of ranlib option.
Vincent Celier [Wed, 27 Oct 2004 12:27:16 +0000 (14:27 +0200)]
2004-10-26 Vincent Celier <celier@gnat.com>
Thomas Quinot <quinot@act-europe.fr>
* g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
(C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
there is no use of GNAT.Sockets.Constants.
Remove remaining pragma Import for C_Write
Remove C_Read and C_Write from internal implementation unit
GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
the read and write functions from the system runtime library is fine
on UNIX but won't work under Windows).
* g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
(Check_Selector): Use C_Recv instead of C_Read.
Selectors are the GNAT.Sockets abstraction to perform a select()
call on a set of descriptors. To allow abortion of an ongoing
select operation, some data is written to a dedicated socket that
is always monitored.
Under Windows, the write and read library functions cannot operate
on sockets, so we need to use send and recv instead, which is portable
across all supported platforms.
* g-socthi.ads: Remove C_Read and C_Write from internal implementation
unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
(using the read and write functions from the system runtime library is
fine on UNIX but won't work under Windows).
Mark Mitchell [Wed, 27 Oct 2004 02:23:16 +0000 (02:23 +0000)]
re PR c++/18093 (bogus conflict in namespace aliasing)
PR c++/18093
* search.c (current_scope): Return the innermost non-block scope,
not the innermost non-block, non-namespace scope.
(at_namespace_scope_p): Adjust accordingly.
(dfs_accessible_post): Do not pass namespaces to is_friend.
(dfs_walk_once_accessible_r): Likewise.
* decl.c (grokvardecl): Adjust call to current_scope.
(build_enumerator): Likewise.
* parser.c (cp_parser_using_declaration): Likewise.
(cp_parser_direct_declarator): Use at_namespace_scope_p instead of
current_scope.
(cp_parser_class_head): Adjust call to current_scope.
* name-lookup.c (do_namespace_alias): Set the DECL_CONTEXT for the
alias.
PR c++/18020
* pt.c (tusbst_copy_and_build): Resolve enumeration constants to
their underlying values.
PR c++/18161
* typeck.c (build_binary_op): Honor build_type, even when in a
template.
Zack Weinberg [Wed, 27 Oct 2004 01:29:42 +0000 (01:29 +0000)]
dbxout.c: Include obstack.h.
* dbxout.c: Include obstack.h.
(ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
default definition.
(ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
Default-define here.
(DBX_CONTIN_LENGTH): Move definition with others.
(DBX_FINISH_STABS): New target macro.
(current_sym_code, current_sym_value, current_sym_addr)
(current_sym_nchars, CHARS, dbxout_continue)
(print_int_cst_octal, print_octal, print_wide_int)
(dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
(stabstr_ob, stabstr_last_contin_point): New variables.
(NUMBER_FMT_LOOP): New improper macro.
(dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
(dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
(dbxout_stab_value_internal_label_diff, dbxout_stabd)
(dbxout_begin_stabn, dbxout_begin_stabn_sline)
(dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
(dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
(stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
(stabstr_continue, DECL_ACCESSIBILITY_CHAR)
New functions and/or proper function-like macros.
(CONTIN): Use stabstr_continue, unconditionally.
(get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
(dbxout_init): Initialize stabstr_ob. Check
NO_DBX_MAIN_SOURCE_DIRECTORY. Only write out the Ltext label
if it was used. Use the new interfaces.
(dbxout_source_file): Remove file argument; always write to
asm_out_file. Use the new interfaces.
(dbxout_type_method_1): Remove second argument which is always
DECL_ASSEMBLER_NAME of the first argument. Use the new interfaces.
(dbxout_type_methods): Remove write-only variables. Use the
new interfaces.
(dbxout_parms): Refactor to remove code duplicated in each of
several successive if-else-if blocks. Use the new interfaces.
(dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
(dbxout_source_line, dbxout_finish, dbxout_type_index)
(dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
(dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
(dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
(dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
Use the new interfaces.
* Makefile.in (dbxout.o): Update dependencies.
* defaults.h: Don't define ASM_STABD_OP.
* output.h: Prototype new dbxout_* interfaces.
* system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
* varasm.c: Don't define ASM_STABS_OP.
(default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
Use the new dbxout.c interfaces. Call sorry if neither
DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
* xcoffout.h: Don't define ASM_STABS_OP.
(DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
(DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
(NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
(DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
do { ... } while (0) idiom.
* config/alpha/alpha.c (num_source_filenames): Export.
* config/alpha/alpha.h (num_source_filenames): Declare.
(DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
(SDB_OUTPUT_SOURCE_LINE): Add missing newline.
* config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
Always use .debugsym. Update commentary.
* config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
(SDB_OUTPUT_SOURCE_LINE): Add missing newline.
* config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
Use new interfaces.
* config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
(macho_branch_islands): Use new interfaces.
Paolo Carlini [Tue, 26 Oct 2004 21:16:58 +0000 (21:16 +0000)]
basic_string.h (erase(size_type, size_type), [...]): Call _M_mutate instead of _M_replace_safe...
2004-10-26 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.h (erase(size_type, size_type),
erase(iterator), erase(iterator, iterator)): Call _M_mutate
instead of _M_replace_safe, equivalent when the fourth argument
is zero and simpler.
re PR bootstrap/15747 (/bin/sh hangs during bootstrap)
PR bootstrap/15747
* doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
can be used to work around this.
Benjamin Kosnik [Tue, 26 Oct 2004 06:37:10 +0000 (06:37 +0000)]
array_allocator.h (array::allocate): Check for valid array object, use its size member function directly.
2004-10-26 Benjamin Kosnik <bkoz@redhat.com>
* include/ext/array_allocator.h (array::allocate): Check for valid
array object, use its size member function directly.
* testsuite/ext/array_allocator/3.cc: New.
* docs/html/20_util/allocator.html: Add docs.
* config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
to 'non-weak'.
(MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
(ASM_MAKE_LABEL_LINKONCE): Delete.
(ASM_WEAKEN_DECL): New.
(ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
(ASM_DECLARE_FUNCTION_NAME): Likewise.
(TEXT_SECTION_ASM_OP): Add a tab.
(DATA_SECTION_ASM_OP): Likewise.
(SECTION_FUNCTION): Add a tab. Use fputs. Don't call
data_section on every section change.
(EXTRA_SECTIONS): Add a bunch of new extra sections.
(EXTRA_SECTION_FUNCTIONS): Likewise.
(USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
(JCR_SECTION_NAME): Define.
(TARGET_SECTION_TYPE_FLAGS): Don't define.
* config/darwin.c (darwin_encode_section_info): A symbol is defined
in this file if it is not weak.
(textcoal_section): Delete.
(datacoal_section): Delete.
(darwin_make_decl_one_only): Delete.
(machopic_select_section): Handle functions.
(darwin_asm_named_section): Add a tab.
(darwin_section_type_flags): Delete.
(darwin_unique_section): Delete contents.
(darwin_emit_unwind_label): Add a tab. Make decls weak if
DECL_WEAK is set.
* config/darwin-protos.h (darwin_section_type_flags): Delete.
(darwin_make_decl_one_only): Delete.
(text_coal_section): New.
(text_unlikely_section): New.
(text_unlikely_coal_section): New.
(const_coal_section): New.
(data_coal_section): New.
(const_data_coal_section): New.
* varasm.c (function_section): Honour
USE_SELECT_SECTION_FOR_FUNCTIONS.
* dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
TARGET_USES_WEAK_UNWIND_INFO is in effect.
* dbxout.c (dbxout_source_file): Don't change sections while
a function is being output.
* libsupc++/new_op.cc (new): Make weak.
* libsupc++/new_opnt.cc (new): Make weak.
* libsupc++/new_opv.cc (new): Make weak.
* libsupc++/new_opvnt.cc (new): Make weak.
* libsupc++/delete_op.cc (delete): Make weak.
* libsupc++/delete_opnt.cc (delete): Make weak.
* libsupc++/delete_opv.cc (delete): Make weak.
* libsupc++/delete_opvnt.cc (delete): Make weak.
Ziemowit Laski [Mon, 25 Oct 2004 22:55:25 +0000 (22:55 +0000)]
c-common.h: Remove RID_ID.
[gcc/ChangeLog]
2004-10-25 David Ayers <d.ayers@inode.at>
* c-common.h: Remove RID_ID.
* c-parse.in: Remove OBJECTNAME and references to RID_ID.
(typespec_reserved_attr): Add rule for TYPENAME
non_empty_protocolrefs.
(yylexname): Remove special handling of RID_ID.
[gcc/objc/ChangeLog]
2004-10-25 Ziemowit Laski <zlaski@apple.com>
David Ayers <d.ayers@inode.at>
* objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
'Class <Protocol> == id' and 'Class <Protocol> == Class'.
(objc_is_id): Add test for 'super'.
(objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
receivers; if class methods are not found in protocol lists, search
for instance methods therein and warn if one is found. Look in
global hash tables for suitable method as a last resort when messaging
'id <Proto>', 'Class <Proto>' and invalid receiver types.
(objc_add_method): Insert instance methods listed in protocols into
the global class method hash table.
* objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
addition to 'id <Proto>'.
[gcc/testsuite/ChangeLog]
2004-10-25 David Ayers <d.ayers@inode.at>
Ziemowit Laski <zlaski@apple.com>
* objc.dg/call-super-2.m: Add messages to 'Class <Proto>'; update
diagnostics when messaging 'id <Proto>'.
* objc.dg/class-protocol-1.m: New test.
* objc.dg/desig-init-1.m: Add message to an invalid receiver using
a non-existent method signature.
* objc.dg/method-5.m, objc.dg/method-6.m, objc.dg/proto-hier-1.m:
Update diagnostics when messaging with non-existent method signature.
* objc.dg/proto-hier-2.m: Adjust wording of diagnostic.
* objc.dg/proto-lossage-1.m, objc.dg/proto-lossage-4.m: Messages to
invalid receivers are now resolved as if messaging 'id'; remove
extraneous diagnostics.
Kazu Hirata [Mon, 25 Oct 2004 21:46:18 +0000 (21:46 +0000)]
cfgloopmanip.c (loopify): Take two more arguments true_edge and false_edge.
* cfgloopmanip.c (loopify): Take two more arguments true_edge
and false_edge.
* cfgloop.h: Adjust the corresponding prototype.
* loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
* tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
Roger Sayle [Mon, 25 Oct 2004 17:23:15 +0000 (17:23 +0000)]
cse.c: Change encoding of quantity numbers to avoid undefined pointer arithmetic on...
* cse.c: Change encoding of quantity numbers to avoid undefined
pointer arithmetic on qty_table.
(REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
(get_cse_reg_info): Initialize reg_qty to a unique negative value.
(new_basic_block): Assign "real" quantity numbers from zero.
(delete_reg_equiv): Do nothing if quantity is invalid. Reset the
REG_QTY to its unique negative value.
(merge_equiv_classes): Calculate need_rehash if quantity is valid.
(cse_main): Don't include max_reg when determining max_qty.
(cse_basic_block): Avoid subtracting a large offset from qty_table,
which causes undefined C99 behaviour. Only allocate needed memory.
Co-Authored-By: John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
From-SVN: r89543
Paolo Carlini [Mon, 25 Oct 2004 15:16:49 +0000 (15:16 +0000)]
basic_string.h (_Rep::_M_is_safe): Move to basic_string as _M_disjunct, adjust to take only __s.
2004-10-25 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.h (_Rep::_M_is_safe): Move to
basic_string as _M_disjunct, adjust to take only __s.
* include/bits/basic_string.tcc: Adjust consistently callers.
Andrew Pinski [Mon, 25 Oct 2004 13:27:32 +0000 (13:27 +0000)]
re PR middle-end/17407 (ICE in int_mode_for_mode)
2004-10-25 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/17407
* c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
layout_type as it is already done by build_array_type.
* tree.c (build_array_type): Layout the type even
2004-10-25 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/18121
* decl.c (grokdeclarator) <case cdk_array>: Remove the call
layout_type as it is already done by create_array_type_for_decl.
2004-10-25 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/17407
* gcc.c-torture/compile/pr17407.c: New test.
PR c++/18121
* g++.dg/template/array8.C: New test.