Arnaud Charlet [Mon, 4 Aug 2008 09:38:06 +0000 (11:38 +0200)]
gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
2008-08-04 Doug Rupp <rupp@adacore.com>
* gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
* trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
* utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
use it. Calculate pointer range overflow using 64bit types.
Ed Schonberg [Mon, 4 Aug 2008 09:36:10 +0000 (11:36 +0200)]
sem_ch3.adb (Access_Definition): A formal object declaration is a legal context for an anonymous access to...
2008-08-04 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Access_Definition): A formal object declaration is a
legal context for an anonymous access to subprogram.
* sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
indirect call, report success to the caller to include possible
interpretation.
* sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
check when the type
of the extended return is an anonymous access_to_subprogram type.
* sem_res.adb:
(Resolve_Call): Insert a dereference if the type of the subprogram is an
access_to_subprogram and the context requires its return type, and a
dereference has not been introduced previously.
Vincent Celier [Mon, 4 Aug 2008 09:17:44 +0000 (09:17 +0000)]
gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean variable...
2008-08-04 Vincent Celier <celier@adacore.com>
* gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
variable, but don't check the resulting value as it has no impact on
the processing.
* opt.ads:
(Generate_Processed_File): New Boolean flag, set to True in the compiler
when switch -gnateG is used.
* prep.adb:
(Preprocess): new Boolean out parameter Source_Modified. Set it to True
when the source is modified by the preprocessor and there is no
preprocessing errors.
* prep.ads (Preprocess): new Boolean out parameter Source_Modified
* sinput-l.adb:
(Load_File): Output the result of preprocessing if the source text was
modified.
Ed Schonberg [Mon, 4 Aug 2008 08:38:06 +0000 (10:38 +0200)]
sem_prag.adb (Check_Precondition_Postcondition): When scanning the list of declaration to find previous subprogram...
2008-08-04 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Check_Precondition_Postcondition): When scanning the
list of declaration to find previous subprogram, do not go to the
original node of a generic unit.
Uros Bizjak [Sun, 3 Aug 2008 18:45:17 +0000 (20:45 +0200)]
mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
* config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
(*movv2sf_internal_rex64): Ditto.
Uros Bizjak [Sun, 3 Aug 2008 06:13:04 +0000 (08:13 +0200)]
re PR target/36992 (Very stange code for _mm_move_epi64)
PR target/36992
* config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
alternative 0 of operand 1.
(*vec_concatv2di_rex64_sse): Ditto.
(*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
of operand 1.
(*sse2_storeq_rex64): Penalize allocation of "r" registers.
* config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
(*movv2sf_internal_rex64): Ditto.
testsuite/ChangeLog:
PR target/36992
* gcc.target/i386/pr36992-1.c: New test.
* gcc.target/i386/pr36992-2.c: Ditto.
Jakub Jelinek [Fri, 1 Aug 2008 20:30:09 +0000 (22:30 +0200)]
dwarf2out.c (compute_barrier_args_size): Set barrier_args_size for labels for which it hasn't been set yet.
* dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
for labels for which it hasn't been set yet. If it has been set,
stop walking insns and continue with next worklist item.
(dwarf2out_stack_adjust): Don't call compute_barrier_args_size
if the only BARRIER is at the very end of a function.
* tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free
loop information only if we initialized it.
(execute_pre): Call fini_pre with in_fre.
* tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
if we do not unroll because we hit max-completely-peeled-insns.
Use our estimation for consistency, do allow shrinking.
Eric Botcazou [Fri, 1 Aug 2008 14:02:10 +0000 (14:02 +0000)]
ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
* gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
* gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
and adjust for above renaming.
* gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
gnu_expr_alt_type parameter. Convert the expression to it instead
of changing its type in place.
(build_function_stub): Adjust call to above function.
Eric Botcazou [Fri, 1 Aug 2008 12:39:57 +0000 (12:39 +0000)]
decl.c (gnat_to_gnu_entity): Remove dead code.
2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
code. Â Do not get full definition of deferred constants with address
clause for a use. Â Do not ignore deferred constant definitions with
address clause. Â Ignore constant definitions already marked with the
error node.
<object>: Remove obsolete comment. Â For a deferred constant with
address clause, get the initializer from the full view.
* gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
Rework and remove obsolete comment.
<N_Object_Declaration>: For a deferred constant with address clause,
mark the full view with the error node.
* Â gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
formatting nits.
* s-rident.ads: Add new restriction No_Stream_Optimizations.
* s-ststop.ads, s-ststop.adb: Comment reformatting.
Define enumeration type to designate different IO mechanisms.
Enchance generic package Stream_Ops_Internal to include an
implementation of Input and Output.
* exp_attr.adb (Find_Stream_Subprogram): If restriction
No_Stream_Optimization is active, choose the default byte IO
implementations of stream attributes for Strings.
Otherwise use the corresponding block IO version.
Gary Dismukes [Fri, 1 Aug 2008 09:29:30 +0000 (11:29 +0200)]
exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing correct accessibility levels.
2008-08-01 Gary Dismukes <dismukes@adacore.com>
* exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
correct accessibility levels. In the "when others" case, retrieve the
access level of the Etype of Prev rather than Prev_Orig, because the
original exression has not always been analyzed.
* gcc-interface/utils.c (convert_vms_descriptor): Add gnu_expr_alt_type
parameter.
Convert the expression to it instead of changing its type in place.
(build_function_stub): Adjust call to above function.
Arnaud Charlet [Fri, 1 Aug 2008 09:04:06 +0000 (11:04 +0200)]
sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a procedure call whose prefix is a parameterless...
2008-08-01 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
procedure call whose prefix
is a parameterless function call that returns an access_to_procedure.
Gary Dismukes [Fri, 1 Aug 2008 09:03:35 +0000 (11:03 +0200)]
exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets Orig_Prev to Prev in the case where...
2008-08-01 Gary Dismukes <dismukes@adacore.com>
* exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
Orig_Prev to Prev in the case where the actual is N_Function_Call or
N_Identifier. This was interfering with other cases that are rewritten
as N_Identifier, such as allocators, resulting in passing of the wrong
accessibility level, and based on testing this code is apparently no
longer needed at all.
Ed Schonberg [Fri, 1 Aug 2008 09:03:23 +0000 (11:03 +0200)]
2008-08-01 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb:
(Check_Precondition_Postcondition): If not generating code, analyze the
expression in a postcondition that appears in a subprogram body, so that
it is properly decorated for ASIS use.
Vincent Celier [Fri, 1 Aug 2008 09:03:11 +0000 (11:03 +0200)]
2008-08-01 Vincent Celier <celier@adacore.com>
* mlib-utl.adb:
(Adalib_Path): New variable to store the path of the adalib directory
when procedure Specify_Adalib_Dir is called.
(Lib_Directory): If Adalib_Path is not null, return its value
(Specify_Adalib_Dir): New procedure
* mlib-utl.ads (Specify_Adalib_Dir): New procedure
* prj.adb (Object_Exist_For): Use Object_Generated, not
Objects_Generated that is removed and was never modified anyway.
* prj.ads:
(Path_Syntax_Kind): New enumeration type
(Language_Config): New component Path_Syntax, defaulted to Host.
Components PIC_Option and Objects_Generated removed, as they are not
used.
Ed Schonberg [Fri, 1 Aug 2008 09:02:44 +0000 (11:02 +0200)]
checks.adb (Apply_Float_Conversion_Check): If the expression to be converted is a real literal and the target type has...
2008-08-01 Ed Schonberg <schonberg@adacore.com>
* checks.adb (Apply_Float_Conversion_Check): If the expression to be
converted is a real literal and the target type has static bounds,
perform the conversion exactly to prevent floating-point anomalies on
some targets.
Arnaud Charlet [Fri, 1 Aug 2008 08:19:04 +0000 (10:19 +0200)]
sem_ch12.ads (Need_Subprogram_Instance_Body): new function...
2008-08-01 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
a pending instantiation for the body of a subprogram that is to be
inlined.
* sem_ch12.adb:
(Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
* sem_prag.adb (Make_Inline): If the pragma applies to an instance,
create a pending instance for its body, so that calls to the subprogram
can be inlined by the back-end.
Paolo Bonzini [Fri, 1 Aug 2008 08:18:13 +0000 (08:18 +0000)]
configure.ac: Do not generate libada-mk.
gcc:
2008-08-01 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Do not generate libada-mk. Do not subst
host_cc_for_libada.
* libada-mk.in: Remove.
* Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
* configure: Regenerate.
libada:
2008-08-01 Paolo Bonzini <bonzini@gnu.org>
* configure.ac (warn_cflags): Substitute.
* configure: Regenerate.
* Makefile.in (libdir, WARN_CFLAGS): Substitute.
(GCC_WARN_CFLAGS): Remove NOCOMMON_FLAG.
(ADA_CFLAGS, T_ADA_CFLAGS, X_ADA_CFLAGS, ALL_ADA_CFLAGS): Remove,
they were unused.
(libada-mk): Do not include. Include libgcc.mvars instead.
(tmake_file): Remove, do not include.
(FLAGS_TO_PASS): Pass dummy values for exeext and CC.
* configure: Regenerate.
gnattools:
2008-08-01 Paolo Bonzini <bonzini@gnu.org>
* configure.ac (warn_cflags): Substitute.
* configure: Regenerate.
* Makefile.in (libdir, exeext, WARN_CFLAGS): Substitute.
(GCC_WARN_CFLAGS): Remove NOCOMMON_FLAG.
(ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Remove as they were unused.
(libsubdir): Remove.
(libada-mk): Do not include. Include libgcc.mvars instead.
(xmake_file): Remove, do not include.
* gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
argument in call fill_vms_descriptor.
* gcc-interface/utils.c (build_vms_descriptor32): Renamed from
build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
(build_vms_descriptor): Renamed from build_vms_descriptor64.
(convert_vms_descriptor32): New function.
(convert_vms_descriptor64): New function.
(convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
descriptors.
* gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
no longer needed.
tree-pass.h: Added comment about not dumping passes with name starting with star in struct...
2008-08-01 Basile Starynkevitch <basile@starynkevitch>
* gcc/tree-pass.h: Added comment about not dumping passes with name
starting with star in struct opt_pass.
* gcc/passes.c (register_dump_files_1): Don't do dump for a pass with
name starting with star.
* gcc/doc/passes.texi (Pass manager): Mention pass names and special
meaning of star prefix to avoid dump.