Vincent Celier [Fri, 18 Mar 2005 11:53:34 +0000 (12:53 +0100)]
mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini" switch, not supported by the linker on Darwin.
2005-03-17 Vincent Celier <celier@adacore.com>
Nicolas Setton <setton@adacore.com>
* mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
switch, not supported by the linker on Darwin. Add '_' before
<library>init, as this character is added unconditionally by the
compiler.
(Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
correct one ".dylib". This fixes detection of the archive files when
building library projects.
Jose Ruiz [Fri, 18 Mar 2005 11:51:53 +0000 (12:51 +0100)]
s-taprob.adb (Initialize_Protection): Initialize the protected object's owner to Null_Task.
2005-03-17 Jose Ruiz <ruiz@adacore.com>
* s-taprob.adb (Initialize_Protection): Initialize the protected
object's owner to Null_Task.
(Lock): If pragma Detect_Blocking is in effect and the caller of this
procedure is already the protected object's owner then Program_Error
is raised. In addition the protected object's owner is updated.
(Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
of this procedure is already the protected object's owner then
Program_Error is raised.
In addition the protected object's owner is updated.
(Unlock): Remove the ownership of the protected object.
* s-taprob.ads (Protection): Add the field Owner, used to store the
protected object's owner.
This component is needed for detecting one type of potentially blocking
operations (external calls on a protected subprogram with the same
target object as that of the protected action). Document the rest of
the components.
* s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
Initialize the protected object's owner to Null_Task.
(Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
caller of this procedure is already the protected object's owner then
Program_Error is raised.
Do not raise Program_Error when this procedure is called from a
protected action.
(Unlock_Entries): Remove the ownership of the protected object.
(Lock_Entries): If pragma Detect_Blocking is in effect and the caller
of this procedure is already the protected object's owner then
Program_Error is raised.
Do not raise Program_Error when this procedure is called from
a protected action.
* s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
used to store the protected object's owner.
* s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
effect and this procedure (a potentially blocking operation) is called
from whithin a protected action, Program_Error is raised.
(Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
and this procedure (a potentially blocking operation) is called from
whithin a protected action, Program_Error is raised.
Javier Miranda [Fri, 18 Mar 2005 11:51:32 +0000 (12:51 +0100)]
sem_ch4.adb (Try_Primitive_Operation, [...]): Analyze the object that is accessible through the prefix of the subprogram call...
2005-03-17 Javier Miranda <miranda@adacore.com>
* sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
Try_Object_Operation): Analyze the object that is accessible
through the prefix of the subprogram call before we apply
the transformation of the object-operation notation.
Thomas Quinot [Fri, 18 Mar 2005 11:51:13 +0000 (12:51 +0100)]
sem_ch13.adb (New_Stream_Function, [...]): For a tagged limited type, the TSS is a newly built renaming declaration...
2005-03-17 Thomas Quinot <quinot@adacore.com>
* sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
tagged limited type, the TSS is a newly built renaming declaration:
insert it using Set_TSS, not Copy_TSS.
Thomas Quinot [Fri, 18 Mar 2005 11:49:26 +0000 (12:49 +0100)]
exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec...
2005-03-17 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
spec, to make this predicate available to other units.
* rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
reimplementing it.
* sem_ch8.adb: Disable expansion of remote access-to-subprogram types
when no distribution runtime library is available.
* sem_res.adb, sem_dist.adb: Disable expansion of remote
access-to-subprogram types when no distribution runtime library is
available.
(Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
predicate available to other units.
* sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
spec, to make this predicate available to other units.
Thomas Quinot [Fri, 18 Mar 2005 11:48:35 +0000 (12:48 +0100)]
exp_ch3.adb (Check_Attr): New subprogram.
2005-03-17 Thomas Quinot <quinot@adacore.com>
* exp_ch3.adb (Check_Attr): New subprogram.
(Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
into a new Check_Attr subprogram, in order to provide a more
explanatory error message (including the name of the missing attribute).
(Stream_Operation_OK): Renamed from Stream_Operations_OK. This
subprogram determines whether a default implementation exists for a
given stream attribute.
(Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
Determine whether to generate a default implementation for each stream
attribute separately, as this depends on the specific attribute.
* exp_strm.adb (Make_Field_Attribute): For the case of an illegal
limited extension where a stream attribute is missing for a limited
component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
generate a bogus reference to the missing attribute to prevent
cascaded errors. Instead, generate a null statement.
* sem_attr.adb (Check_Stream_Attribute): A stream attribute is
available for a limited type if it has been specified for an ancestor
of the type.
Javier Miranda [Fri, 18 Mar 2005 11:48:05 +0000 (12:48 +0100)]
einfo.adb (First_Private_Entity, [...]): Addition of one barrier to avoid wrong usage of this attribute.
2005-03-17 Javier Miranda <miranda@adacore.com>
* einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
of one barrier to avoid wrong usage of this attribute.
* sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
First_Private_Entity.
* sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
the subprogram against wrong usage.
Adapt the code to traverse the entities in the
scope of a record_type because in addition to its usage regarding
packages, this subprogram is also called by Expand_N_Freeze_Entity
to install the visible declarations of the enclosing scope of a
record_type_with_private to establish the proper visibility before
freezing the entity and related subprograms.
Eric Botcazou [Fri, 18 Mar 2005 11:47:18 +0000 (12:47 +0100)]
ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
* ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
(DECL_RENAMED_OBJECT): New accessor macro.
(SET_DECL_RENAMED_OBJECT): New setter macro.
* decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
object in all cases. Attach the renamed object to the VAR_DECL.
(gnat_to_gnu_field): Do not lift the record wrapper if the size of the
field is not prescribed.
* misc.c (gnat_handle_option): Handle -gnatO separately.
(gnat_print_decl) <VAR_DECL>: New case.
Print the DECL_RENAMED_OBJECT node.
* lang.opt: Declare separate -gnatO option.
* trans.c (tree_transform) <N_Identifier>: If the object is a renaming
pointer, replace it with the renamed object.
<N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
pointer type if the source is not a fat pointer type whose underlying
array has the same non-zero alias set as that of the destination array.
Pascal Obry [Fri, 18 Mar 2005 11:46:57 +0000 (12:46 +0100)]
adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is used.
2005-03-17 Pascal Obry <obry@adacore.com>
* adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
used.
* expect.c (__gnat_waitpid): Moved here from adaint.c.
Reimplement under Win32 using Win32 API.
(__gnat_kill) [Win32]: Properly close the process handle before leaving
this routine.
Jan Hubicka [Fri, 18 Mar 2005 10:00:53 +0000 (11:00 +0100)]
cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether function body should be released...
* cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
function body should be released; do not proactively release function
bodies in non-unit-at-a-time mode.
Dorit Naishlos [Thu, 17 Mar 2005 21:08:06 +0000 (21:08 +0000)]
re PR tree-optimization/20474 (ICE while compiling openmotif-2.2.3 with -ftree-vectorize)
PR tree-optimization/20474
* tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
Bryce McKinlay [Thu, 17 Mar 2005 15:54:20 +0000 (15:54 +0000)]
re PR java/20502 (gcj failure if .jar contains same .class twice)
2005-03-17 Bryce McKinlay <mckinlay@redhat.com>
PR java/20502
* jcf-parse.c (duplicate_class_warning): New function.
(java_parse_file): Call duplicate_class_warning if
CLASS_FROM_CURRENTLY_COMPILED_P is already set.
(parse_zip_file_entries): Likewise. Also set
CLASS_FROM_CURRENTLY_COMPILED_P.
Paolo Carlini [Thu, 17 Mar 2005 14:37:04 +0000 (14:37 +0000)]
re PR c++/19966 (Misleading message "must take exactly one argument")
2005-03-17 Paolo Carlini <pcarlini@suse.de>
PR c++/19966
* cp-tree.h (grok_op_properties): Change return type to void.
* decl.c (grok_op_properties): Return early - don't check the
arity - in case of a static member or an operator that cannot
be non-member; tidy a bit.
Nathan Sidwell [Thu, 17 Mar 2005 13:26:39 +0000 (13:26 +0000)]
re PR c++/20186 (ICE with static_cast and type dependent variable (templates))
cp:
PR c++/20186
* pt.c (contains_dependent_cast_p): Remove.
(fold_non_dependent_expr): Don't use it.
(value_dependent_expression_p): Use a switch statement.
reference_exprs can be dependent.
James E Wilson [Thu, 17 Mar 2005 03:51:09 +0000 (19:51 -0800)]
patch to fix extraneous nop at function start, bug from David Mosberger
patch to fix extraneous nop at function start, bug from David Mosberger
* config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
and return without creating new state if before_nops_num is nonzero.
* config/ia64/ia64.md (first_insn): New attribute.
(alloc): Set it to yes.
Dale Johannesen [Wed, 16 Mar 2005 20:42:37 +0000 (20:42 +0000)]
rtlanal.c (find_first_parameter_load): Rewrite to return actual first param load or the call if none...
2005-03-16 Dale Johannesen <dalej@apple.com>
* rtlanal.c (find_first_parameter_load): Rewrite to
return actual first param load or the call if none,
instead of first in block, when not all loads exist.
re PR middle-end/15700 ([unit-at-a-time] Inlining problem leads to miscompilation of glibc)
PR middle-end/15700
* varasm.c (struct alias_pair): Rename from struct output_def_pair.
(alias_pairs): Rename from output_defs.
(find_decl_and_mark_needed): Split out from assemble_alias.
(do_assemble_alias): New.
(assemble_output_def): Remove.
(finish_aliases_1, finish_aliases_2): New.
(process_pending_assemble_output_defs): Remove.
(assemble_alias): Defer aliases for which we don't yet have a
non-external decl for the target symbol.
* passes.c (rest_of_decl_compilation): Register variables with cgraph.
* cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1. * toplev.c (compile_file): Use finish_aliases_2 instead of
process_pending_assemble_output_defs.
* tree.h (finish_aliases_1, finish_aliases_2): Declare.
(process_pending_assemble_output_defs): Remove.
Kazu Hirata [Wed, 16 Mar 2005 14:45:15 +0000 (14:45 +0000)]
builtins.c (expand_movstr): Update a call to fold_builtin_strcpy.
* builtins.c (expand_movstr): Update a call to
fold_builtin_strcpy.
(expand_builtin_strncpy): Update a call to
fold_builtin_strncpy.
(fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
arguments of CALL_EXPR.
(fold_builtin_1): Update calls to fold_builtin_strcpy and
fold_builtin_strncpy.
* tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
* tree.h: Update the prototypes of fold_builtin_strcpy and
fold_builtin_strncpy.
Zack Weinberg [Wed, 16 Mar 2005 06:04:10 +0000 (06:04 +0000)]
gcc-version.m4: Delete.
config:
* gcc-version.m4: Delete.
fastjar:
* Makefile.am (fastjar_TEXINFOS): Add gcc-vers.texi.
(BASEVER, DEVPHASE): New variables.
(POD2MAN): Adjust setting of --release option.
(fastjar.1, grepjar.1, gcc-vers.texi): New rules.
* Makefile.in: Regenerate.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
* aclocal.m4, configure: Regenerate.
gcc:
* BASE-VER, DATESTAMP, DEV-PHASE: New files.
* Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
(BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
(BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
(version): Define using $(BASEVER_c).
(Makefile, config.status, build/gcov-iov.o): No longer depends on
version.c.
(version.o): Depend on version files; add custom generation command.
(prefix.o): Define BASEVER on command line.
(s-iov): Depend on version files; adjust command.
(TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
Add gcc-vers.texi.
(gcc-vers.texi): New rule.
(doc/%.info, doc/%.dvi): Add -I . to command line.
(doc/gccinstall.dvi): Likewise.
(PACKAGE): Delete. All uses replaced with "gcc".
* aclocal.m4: Do not include gcc-version.m4.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
Set is_release based on contents of DEV-PHASE.
Set gcc_version based on contents of BASE-VER.
Define WIN32_REGISTRY_KEY only if the user overrode the default.
* config.in, configure: Regenerate.
* gccbug.in: Determine version of GCC in use at runtime.
* gcov-iov.c: Get version number and development phase from
command line, not by including version.c.
* intl.c: Replace all uses of PACKAGE with "gcc".
* libada-mk.in: Delete unused "gcc_version" variable.
* prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
* version.c: (VERSUFFIX): New hook for redistributors; adjust
commentary to match.
(version_string): Put together from pieces.
* config/alpha/x-vms: Do not use $(gcc_version).
* config/i386/t-nwld: Likewise.
* doc/include/gcc-common.texi: Include gcc-vers.texi for
version-GCC and DEVELOPMENT.
gcc/ada:
* Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
(doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
to dependencies.
gcc/fortran:
* Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
gcc/java:
* Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
gcc/treelang:
* Make-lang.in (TEXI_TREELANG_FILES): Add gcc-vers.texi.
libstdc++-v3:
* include/Makefile.am (c++config.h): Depend on DATESTAMP from gcc
subdirectory. Generate #define of __GLIBCXX__ from contents of
that file.
* include/Makefile.in: Regenerate.
* include/bits/c++config: Do not define __GLIBCXX__.
maintainer-scripts:
* README: Update.
* gcc_release: Update gcc/DEV-PHASE if that file exists, instead
of gcc/version.c.
* update_version: Handle updating gcc/DATESTAMP.
* update_web_docs: Generate gcc-vers.texi first.
Roger Sayle [Wed, 16 Mar 2005 02:20:05 +0000 (02:20 +0000)]
re PR tree-optimization/17454 (ICE with --enable-checking=fold)
PR tree-optimization/17454
* tree.c (tree_size): Add case for TREE_BINFO.
* fold-const.c (fold_checksum_tree): Only clear the overloaded
field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
Vincent Celier [Wed, 16 Mar 2005 00:32:38 +0000 (01:32 +0100)]
mlib-tgt-darwin.adb (Library_Exist_For, [...]): Add new parameter In_Tree to specify the project tree...
* mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
Add new parameter In_Tree to specify the project tree: needed
by the project manager. Adapt to changes in project manager
using new parameter In_Tree.
Jakub Jelinek [Tue, 15 Mar 2005 20:51:17 +0000 (21:51 +0100)]
Make-lang.in (ada/treeprs.ads, [...]): Use unique subdirectories of ada/bldtools to avoid make -jN failures.
* ada/Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
ada/bldtools to avoid make -jN failures.
Roger Sayle [Tue, 15 Mar 2005 20:43:12 +0000 (20:43 +0000)]
real.c (c4x_single_format, [...]): Provide values for signbit_ro for c4x's single and extended floating point formats.
* real.c (c4x_single_format, c4x_extended_format): Provide values
for signbit_ro for c4x's single and extended floating point formats.
* optabs.c (expand_copysign): Use the floating point format's
signbit_ro for expanding via expand_copysign_absneg, and it's
signbit_rw field for expanding via expand_copysign_bit.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r96530
Dorit Naishlos [Tue, 15 Mar 2005 18:33:09 +0000 (18:33 +0000)]
tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by known_alignment_for_access_p.
* tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
known_alignment_for_access_p.
(known_alignment_for_access_p): New.
(do_peeling_for_alignment): Field made int instead of bool and renamed
to peeling_for_alignment.
(LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
* tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
functionality used to be in vect_analyze_operations.
(vect_analyze_operations): Code to determine vectorization factor was
moved to vect_determine_vectorization_factor.
(vect_enhance_data_refs_alignment): Update to correct alignment when it
is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
factor.
(vect_analyze_loop): Call vect_determine_vectorization_factor (used to
be part of vect_analyze_operations).
* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
creating the guard condition, as the number of iterations may be
constant.
(slpeel_tree_peel_loop_to_edge): Use new name of
LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
* tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
(vect_do_peeling_for_alignment): Use fold.
(vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
(vect_update_inits_of_dr): Renamed to
vect_update_init_of_dr.
(vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
(vectorizable_store): Fix assertion to use == instead of =.
* gnat_ugn.texi: Remove extended inline assembly example, as it was far
too specific and long-winded to be appropriate for the GNAT User's
Guide.
Warn about use of GCC switches not documented in the GNAT User's Guide,
as these may cause generated code to not conform to Ada semantics.
Remove mention of -gdwarf-2 for sparc64, since this is now the default.
Add documentation for -gnat95 and -gnat05 switches
Remove paragraph documenting obsolete way to refer to third party
libraries.
Add a few references to Ada_05 that were missing.
Update documentation on -gnatZ/-gnatL.
Document limitation when using -m64 under Solaris.
Change the "Name Casing" subsection of the pretty-printer section
according to the changes in the dictionary processing.
* gnat_rm.texi: Document the Ada_05 pragma.
Section on record representation clauses describes the new more
relaxed rules about placement of large packed bit array components.
Add documentation of GNAT.UTF_32
Gary Dismukes [Tue, 15 Mar 2005 16:18:42 +0000 (17:18 +0100)]
s-imgwch.adb: Add with and use of Interfaces.
2005-03-08 Gary Dismukes <dismukes@adacore.com>
* s-imgwch.adb: Add with and use of Interfaces.
(Img_Wide_Character): Change type of Val to Unsigned_16.
(Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
Ed Schonberg [Tue, 15 Mar 2005 16:18:01 +0000 (17:18 +0100)]
sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic...
2005-03-08 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
a renaming a body, check that the renamed subprogram in not intrinsic.
(Find_Direct_Name): If several use_visible entities hide
each other, and the context is a predefined file compiled through
rtsfind, keep only the entity that comes from a predefined file.
Ed Schonberg [Tue, 15 Mar 2005 16:17:37 +0000 (17:17 +0100)]
sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is attached to a list before checking whether it...
2005-03-08 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
attached to a list before checking whether it appears in the private
declarations of the current package.
(Make_Inequality_Operator): Insert declaration in proper declarative
list rather than just setting the Parent field, so that
Is_Private_Declaration can handle it properly.