2007-10-15 Vincent Celier <celier@adacore.com>
* snames.adb, snames.ads: Add new standard name runtime_library_dir
* prj.ads (Language_Config): Add new component Runtime_Library_Dir
* prj-attr.adb: Add project level attribute Runtime_Library_Dir
* 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.
From-SVN: r129329
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.
From-SVN: r129328
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.
From-SVN: r129327
2007-10-15 Vincent Celier <celier@adacore.com>
* mlib-tgt-specific.adb (Support_For_Libraries): New function,
returning None, used when there is no platform specific body for
MLib.Tgt.Specific.
From-SVN: r129326
2007-10-15 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
attempt to generate stubs for hidden primitive operations.
From-SVN: r129325
2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
* 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.
From-SVN: r129324
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.
From-SVN: r129323
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.
From-SVN: r129322
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.
From-SVN: r129320
2007-10-15 Geert Bosch <bosch@adacore.com>
* adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
* expect.c: Initial port to arm-mentor-nucleus.
Use kill for __gnat_kill() on VMS.
From-SVN: r129319
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.
From-SVN: r129318
2007-10-15 Eric Botcazou <ebotcazou@adacore.com>
* s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
Set the protection status of the guard page based on the value of On.
* s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
* s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
(Exit_Task): Pass False to Hide_Yellow_Zone.
From-SVN: r129317
PR target/33133
* haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
speculation type of insn can be changed before trying to do that.
* gcc.c-torture/compile/pr33133.c: New test.
From-SVN: r129315
* 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.
From-SVN: r129312
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.
From-SVN: r129309
2007-10-14 Andrew Pinski <pinskia@gmail.com>
PR c++/30303
* decl.c (grokfndecl): Return NULL after the "definition of
implicitly-declared" error happened.
2007-10-14 Andrew Pinski <pinskia@gmail.com>
PR c++/30303
* g++.dg/other/ctor1.C: New test.
* g++.dg/other/ctor2.C: New test.
* g++.dg/other/dtor1.C: New test.
From-SVN: r129298
* 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.
From-SVN: r129292
* 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.
From-SVN: r129276
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>
PR c++/26698
* g++.dg/conversion/op4.C: New test.
From-SVN: r129274
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.
From-SVN: r129269
2007-10-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33542
* resolve.c (resolve_actual_arglist): If the actual argument is
ambiguous, then there is an error.
2007-10-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33542
* gfortran.dg/ambiguous_specific_1.f90: New test.
From-SVN: r129268
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.
2007-10-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33664
* gfortran.dg/impure_spec_expr_1.f90: New test.
* gfortran.dg/char_result_7.f90: Remove illegal test.
From-SVN: r129267
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.
From-SVN: r129265
2007-10-12 Richard Guenther <rguenther@suse.de>
* tree-ssa-forwprop.c (forward_propagate_into_cond): For
combining both operands require either both have single uses
or combining to a constant.
From-SVN: r129261