Paolo Bonzini [Tue, 16 Oct 2007 09:13:47 +0000 (09:13 +0000)]
target.h (unspec_may_trap_p): New target hook.
2007-10-16 Paolo Bonzini <bonzini@gnu.org>
Maxim Kuvyrkov <maxim@codesourcery.com>
* target.h (unspec_may_trap_p): New target hook.
* target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
* targhooks.c (default_unspec_may_trap_p): Default implementation of
the hook.
* targhooks.h (default_unspec_may_trap_p): Declare it.
* doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
* rtlanal.c (may_trap_p_1): Use new hook. Make global.
* rtl.h (may_trap_p_1): Declare.
* config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
override default hook implementation.
(TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
hook.
Makefile.def: To avoid problems running with parallel makes...
2007-10-15 Patrick Mansfield <patmans@us.ibm.com>
* Makefile.def: To avoid problems running with parallel makes,
build newlib before libgloss so that target specific header
files are availble.
* Makefile.in: Regenerate
Richard Guenther [Mon, 15 Oct 2007 14:49:55 +0000 (14:49 +0000)]
fold-const.c (extract_array_ref): Remove.
2007-10-15 Richard Guenther <rguenther@suse.de>
* fold-const.c (extract_array_ref): Remove.
(fold_comparison): Handle POINTER_PLUS_EXPR with the
generic address expression comparison folding. Remove
the folding that used extract_array_ref.
Jerry DeLisle [Mon, 15 Oct 2007 13:59:02 +0000 (13:59 +0000)]
re PR libfortran/33055 (Runtime error in INQUIRE unit existance with -fdefault-integer-8)
2007-10-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/33055
* io/inquire.c (inquire_via_unit): If inquiring by unit, check for
an error condition from the IOSTAT variable and set EXIST to false if
there was a bad unit number.
Vincent Celier [Mon, 15 Oct 2007 13:57:59 +0000 (15:57 +0200)]
gnat_ugn.texi: Add documentation for switches --version and --help for the GNAT tools gnatbind...
2007-10-15 Vincent Celier <celier@adacore.com>
Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Add documentation for switches --version and --help
for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
gnatxref, gnatfind, gnatls, and gnatclean.
Document -gnatw.o.
Mention attribute Excluded_Source_Dirs
Replace obsolescent attribute Locally_Removed_Files with attribute
Excluded_Source_Files.
Improve documentation of -u (gnatbind)
Document how to do reliable stack checking for the environmental task
on iVMS.
* gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
Document attribute Excluded_Source_Files and indicate that attribute
Locally_Removed_Files is obsolescent.
Olivier Hainque [Mon, 15 Oct 2007 13:57:26 +0000 (15:57 +0200)]
tb-alvms.c (tb_entry_t, [...]): Store a frame pointer instead of a procedure value in each traceback entry.
2007-10-15 Olivier Hainque <hainque@adacore.com>
* tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
instead of a procedure value in each traceback entry.
* g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
instead of procedure value to TBK$SYMBOLIZE.
* s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
field.
(TB_Entry_For): Account for the PV/FP renaming.
* s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
add comment.
(Null_TB_Entry): Account for change of component name.
(PV_For): Rename as FP_For.
Ed Schonberg [Mon, 15 Oct 2007 13:57:17 +0000 (15:57 +0200)]
sem_disp.adb (Find_Controlling_Arg): Examine the call node before examining its original form...
2007-10-15 Ed Schonberg <schonberg@adacore.com>
* sem_disp.adb (Find_Controlling_Arg): Examine the call node before
examining its original form, to handle properly operator calls that
have been rewritten.
Ed Schonberg [Mon, 15 Oct 2007 13:57:06 +0000 (15:57 +0200)]
sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a body generated for a function with a controlling...
2007-10-15 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
body generated for a function with a controlling result that is a null
extension, discard the generated body in favor of the current explicit
one.
* sem_ch4.adb: Minor code and comment reformatting.
(Analyze_Allocator): When the designated type of an unconstrained
allocator is a record with unknown discriminants or an array with
unknown range bounds, emit a detailed error message depending on the
compilation mode and whether the designated type is limited.
Gary Dismukes [Mon, 15 Oct 2007 13:56:36 +0000 (15:56 +0200)]
sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained flag of derived concurrent types...
2007-10-15 Gary Dismukes <dismukes@adacore.com>
* sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
flag of derived concurrent types, taking into account the flag setting
on the parent subtype and any new set of discriminants.
* sem_ch12.adb: Minor code reformatting.
(Check_Generic_Child_Unit): Iterate over the homonym chain in order to
find the parent package which may have been hidden by local
declarations.
Gary Dismukes [Mon, 15 Oct 2007 13:56:15 +0000 (15:56 +0200)]
sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box association for an access component...
2007-10-15 Gary Dismukes <dismukes@adacore.com>
* sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
association for an access component, add an association with null as
the expression. Remove testing for array subtypes and the setting in
that case of Ctyp to the array component type, which prevented proper
inclusion of an association for null-initialized arrays. Collapse
condition that tests for array subtypes into just a test of
Is_Partially_Initialized_Type (which already covers arrays anyway).
* prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
the source is unknown.
* prj-ext.adb: Spelling error fix
* prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
95 reserved word in its name.
(Process_Project_Level_Array_Attributes): Process new attribute
Runtime_Library_Dir.
* prj-part.adb (Parse_Single_Project): Do not check the name of the
config project against the user project names.
* prj-proc.adb (Expression): In multi-language mode, indexes that do
not include a dot are always case insensitive.
(Process_Declarative_Items): Ditto
(Process_Project_Tree_Phase_1): Set Success to False in case an error is
detected.
* prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
True, compare both indexes in lower case.
Jerry DeLisle [Mon, 15 Oct 2007 13:55:47 +0000 (13:55 +0000)]
re PR libfortran/33055 (Runtime error in INQUIRE unit existance with -fdefault-integer-8)
2007-10-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/33055
* trans-io.c (create_dummy_iostat): New function to create a unique
dummy variable expression to use with IOSTAT.
(gfc_trans_inquire): Use the new function to pass unit number error info
to run-time library if a regular IOSTAT variable was not given.
Bob Duff [Mon, 15 Oct 2007 13:55:27 +0000 (15:55 +0200)]
sem_case.adb, [...]: Replace use of Heap_Sort_A (passing'Unrestricted_Access of nested subprograms...
2007-10-15 Bob Duff <duff@adacore.com>
* sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
(passing'Unrestricted_Access of nested subprograms to Sort) with use of
the generic Heap_Sort_G, in order to avoid trampolines.
* exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
inside a generic body, retrieve the full view of the entry family
discrete subtype if available.
Ed Schonberg [Mon, 15 Oct 2007 13:54:47 +0000 (15:54 +0200)]
exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization of tagged types whose ultimate ancestor is a...
2007-10-15 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
of tagged types whose ultimate ancestor is a CPP type.
(Freeze_Array_Type): For a packed array type, generate an initialization
procedure if the type is public, to handle properly a client that
specifies Normalize_Scalars.
Javier Miranda [Mon, 15 Oct 2007 13:54:33 +0000 (15:54 +0200)]
exp_attr.adb (Expand_N_Attribute_Reference): Case Access, Unchecked_Access, and Unrestricted_Access.
2007-10-15 Javier Miranda <miranda@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
care of access to class-wide interface types plus removal of bizarre
conversion of tagged object to access type (reported by Gary
Dismukes). After this patch there is no need to perform any
additional management on these nodes in Expand_Interface_Actuals.
* exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
that handles use of 'Access and 'Unchecked_Access applied to
actuals covering interface types. Such code is now
centralized in Expand_N_Attribute_Reference.
Emmanuel Briot [Mon, 15 Oct 2007 13:54:12 +0000 (15:54 +0200)]
ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default value.
2007-10-15 Emmanuel Briot <briot@adacore.com>
* ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
value.
(Xref_Record): Change type for Line, since in the case of a reference to
a predefined entity (as happens for array index types), the line is set
to 0.
Add support for parsing multiple array index types info, or
multiple inherited interfaces info. This information cannot be stored
in Xref_Entity_Record, which only supports a single instance of Tref_*,
and is therefore stored in the list of references instead. It has a
special treatement later on in tools that use this information.
Robert Dewar [Mon, 15 Oct 2007 13:53:48 +0000 (15:53 +0200)]
s-taprop-solaris.adb, [...]: Minor reformatting.
2007-10-15 Robert Dewar <dewar@adacore.com>
* s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
Minor reformatting.
Add Unreferenced and Warnings (Off) pragmas for cases of
variables modified calls where they are IN OUT or OUT parameters and
the resulting values are not subsequently referenced. In a few cases,
we also remove redundant code found by the new warnings.
* ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
warning controlled by -gnatw.o that warns on cases of out parameter
values being ignored.
Eric Botcazou [Mon, 15 Oct 2007 07:41:28 +0000 (09:41 +0200)]
dse.c (struct insn_info): Add 'frame_read' field.
* dse.c (struct insn_info): Add 'frame_read' field.
(scan_insn): For the call to a const function, set frame_read if
reload has been run.
If the insn reads the frame, kill the frame related stores.
(scan_reads_nospill): Likewise.
Jerry DeLisle [Mon, 15 Oct 2007 01:33:16 +0000 (01:33 +0000)]
re PR libfortran/33672 (Additional runtime checks needed for namelist reads)
2007-10-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/33672
* io/list_read.c (nml_parse_qualifier): Add character specific error
messages. Check for proper form of sub-string qualifiers. Return the
parsed_rank flag indicating a non-zero rank qualifier.
(nml_get_obj_data): Count the instances of non-zero rank qualifiers.
Issue an error if more that one non-zero rank qualifier is found.
Kazu Hirata [Sun, 14 Oct 2007 02:15:39 +0000 (02:15 +0000)]
c-common.h: Remove the prototype for c_expand_body.
* c-common.h: Remove the prototype for c_expand_body.
* c-tree.h: Remove the prototype for c_disregard_inline_limits.
* tree.h: Remove the prototype for fold_build_call_expr.
Nathan Froyd [Fri, 12 Oct 2007 21:21:28 +0000 (21:21 +0000)]
i386.md (SI_REG, DI_REG): New constants.
* config/i386/i386.md (SI_REG, DI_REG): New constants.
(strmov): Use defined constants.
(cmpstrnsi): Likewise.
* config/i386/i386.c (decide_alg): Use defined constants.
(ix86_expand_strlen): Likewise.
Simon Martin [Fri, 12 Oct 2007 18:43:33 +0000 (18:43 +0000)]
re PR c++/26698 (g++ accepts const-incorrect code due to conversion function)
gcc/cp/
2007-10-12 Simon Martin <simartin@users.sourceforge.net>
PR c++/26698
* call.c (build_user_type_conversion_1): Do not consider conversion
functions to convert a (possibly cv-qualified) object to the (possibly
cv-qualified) same object type (or a reference to it), to a (possibly
cv-qualified) base class of that type (or a reference to it).
gcc/testsuite/
2007-10-12 Simon Martin <simartin@users.sourceforge.net>
gcc/
* dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
* var-tracking.c (micro_operation_def): Update comment on u.loc.
(mode_for_reg_attrs, var_lowpart): New functions.
(add_uses): Consider recording a lowpart of LOC for MO_USE.
(add_stores): Likewise MO_SET and MO_COPY. If the source of a set
or copy is known, set LOC to the SET that performs the set, instead
of the destination.
(find_src_status, find_src_set_src): Remove LOC parameter.
Replace INSN with the source value.
(compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
handling MO_SET and MO_COPY. Update the calls to find_src_status
and find_src_set_src.
Paul Thomas [Fri, 12 Oct 2007 16:45:46 +0000 (16:45 +0000)]
re PR fortran/33664 (crash on invalid program)
2007-10-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33664
* expr.c (gfc_specification_expr): If a function is not
external, intrinsic or pure is an error. Set the symbol pure
to prevent repeat errors.
Nathan Froyd [Fri, 12 Oct 2007 16:12:45 +0000 (16:12 +0000)]
re PR rtl-optimization/11001 (global register %edi versus string builtins)
gcc/
PR 11001
* config/i386/i386.md (strmov): Check for esi and edi usage.
* config/i386/i386.c (decide_alg): Check whether we can use a
rep prefix and adjust algorithm choice accordingly.
(ix86_expand_strlen): Check for eax, ecx, and edi usage.
gcc/testsuite/
PR 11001
* gcc.target/i386/pr11001-strlen-1.c: New testcase.
* gcc.target/i386/pr11001-strlen-2.c: New testcase.
* gcc.target/i386/pr11001-strlen-3.c: New testcase.
* gcc.target/i386/pr11001-memset-1.c: New testcase.
* gcc.target/i386/pr11001-memset-2.c: New testcase.
* gcc.target/i386/pr11001-memset-3.c: New testcase.
* gcc.target/i386/pr11001-memcpy-1.c: New testcase.
* gcc.target/i386/pr11001-memcpy-2.c: New testcase.
* gcc.target/i386/pr11001-memcpy-3.c: New testcase.
Richard Guenther [Fri, 12 Oct 2007 08:42:13 +0000 (08:42 +0000)]
re PR middle-end/26198 (Unfolded comparison after cfg_cleanup)
2007-10-12 Richard Guenther <rguenther@suse.de>
PR middle-end/26198
* tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
a rhs with side-effects or which is a load.
(forward_propagate_into_cond): Also try combining both operands.
* gcc.dg/tree-ssa/forwprop-3.c: New testcase.
* gcc.c-torture/execute/20071011-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-9.c: Adjust.
Uros Bizjak [Fri, 12 Oct 2007 08:37:17 +0000 (10:37 +0200)]
re PR tree-optimization/33742 (Segfault in vectorizable_operation)
PR tree-optimization/33742
* tree-vect-transform.c (vectorizable_operation): Return false
if get_vectype_for_scalar_type for scalar_dest can't be determined.
(vectorizable_call): Same for rhs_type and lhs_type.
testsuite/ChangeLog:
PR tree-optimization/33742
* gcc.dg/pr33742.c: New testcase.
Jakub Jelinek [Fri, 12 Oct 2007 07:10:22 +0000 (09:10 +0200)]
re PR tree-optimization/33645 (undefined static variable in vortex for -fno-unit-at-a-time)
PR tree-optimization/33645
* tree-ssa-live.c (mark_all_vars_used): Add data argument,
pass it to walk_tree.
(mark_all_vars_used_1): Pass data through to mark_all_vars_used.
When calling set_is_used on a VAR_DECL, if data is not NULL and
its DECL_UID is in the bitmap, call mark_all_vars_used on its
DECL_INITIAL after clearing the bit in bitmap.
(remove_unused_locals): Adjust mark_all_vars_used callers.
Instead of removing unused global vars from unexpanded_var_list
immediately record them in bitmap, call mark_all_vars_used on
all used global vars from unexpanded_var_list and only purge
global vars that weren't found used even during that step.
* gcc.dg/pr33645-1.c: New test.
* gcc.dg/pr33645-2.c: New test.
* gcc.dg/pr33645-3.c: New test.
Jakub Jelinek [Fri, 12 Oct 2007 07:07:46 +0000 (09:07 +0200)]
re PR c++/32121 (C++ front-end accepts invalid __label__ declarations)
PR c++/32121
* parser.c (cp_parser_compound_statement): Handle label-declarations
at the beginning of the compound statement.
(cp_parser_block_declaration): Issue diagnostics about __label__
not at the beginning of a block.
* g++.dg/ext/label4.C: Adjust error regexp.
* g++.dg/ext/label6.C: Adjust error regexp.
* g++.dg/ext/label7.C: New test.
* g++.dg/ext/label8.C: New test.
* g++.dg/ext/label9.C: New test.
gthr-posix.h (__gthread_active_init): Create detached instead of joinable thread when...
* gthr-posix.h (__gthread_active_init): Create detached instead of
joinable thread when testing whether threads are active on hppa-hpux.
* gthr-posix95.h (__gthread_active_init): Likewise.