Martin Sebor [Thu, 22 Oct 2015 23:48:17 +0000 (23:48 +0000)]
re PR driver/68043 (many undocumented options, missing punctuation)
gcc/ChangeLog:
2015-10-22 Martin Sebor <msebor@redhat.com>
PR driver/68043
* config/i386/i386.opt: Add missing periods to the ends of sentences.
* config/msp430/msp430.opt: Same.
gcc/testsuite/ChangeLog:
2015-10-22 Martin Sebor <msebor@redhat.com>
PR driver/68043
* gcc.misc-tests/help.exp: Verify that option descriptions
end in periods.
* lib/options.exp (check_for_options): Use the regexp --line option.
Print unexpected match on failure.
Jeff Law [Thu, 22 Oct 2015 19:18:05 +0000 (13:18 -0600)]
[PATCH] Fix abort in write_eligible_delay
[PATCH] Fix abort in write_eligible_delay
* genattrtab.c (main): If we do not have any annul-true or annul-false
slots, then write out a dummy eligible_for_annul_true or
eligible_for_annul_false as needed.
Nick Clifton [Thu, 22 Oct 2015 16:00:38 +0000 (16:00 +0000)]
msp430.opt: Add -msilicon-errata and -msilicon-errata-warn.
* config/msp430/msp430.opt: Add -msilicon-errata and
-msilicon-errata-warn.
* config/msp430/msp430.h (ASM_SPEC): Pass new options on to
assembler.
* doc/invoke.texi: Document new options.
Richard Biener [Thu, 22 Oct 2015 13:36:46 +0000 (13:36 +0000)]
re PR tree-optimization/58497 (SLP vectorizes identical operations)
2015-10-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/58497
* tree-vect-generic.c (ssa_uniform_vector_p): New helper.
(expand_vector_operations_1): Use it. Lower operations on
all uniform vectors to scalar operations if the HW supports it.
Richard Biener [Thu, 22 Oct 2015 13:33:17 +0000 (13:33 +0000)]
re PR tree-optimization/19049 (not vectorizing a fortran loop)
2015-10-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/19049
PR tree-optimization/65962
* tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
to strided accesses if single-element interleaving doesn't work.
Richard Biener [Thu, 22 Oct 2015 11:44:11 +0000 (11:44 +0000)]
re PR middle-end/68046 (-ftrapv doesn't catch leaq-based overflows on x86-64)
2015-10-22 Richard Biener <rguenther@suse.de>
PR middle-end/68046
PR middle-end/61893
* optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
(expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
(expand_unop): Likewise.
Max Ostapenko [Thu, 22 Oct 2015 09:47:17 +0000 (12:47 +0300)]
Fix bootstrap on x86_64-apple-darwin14 after r229119.
libsanitizer/
PR bootstrap/68041
* configure.ac (link_sanitizer_common): Link against librt only if it
contains shm_open, required by sanitizers.
(CXX_ABI_NEEDED): Remove variable.
* configure: Regenerate.
* ubsan/Makefile.am (libubsan_la_LIBADD): Do not add -lc++abi anymore.
* ubsan/Makefile.in: Regenerate.
Andre Vieira [Thu, 22 Oct 2015 05:12:32 +0000 (05:12 +0000)]
[PATCH][ARM] Fix for testcase after r228661
This patch addresses PR-67948 by changing the xor-and.c test,
initially written for a simplify-rtx pattern, to make it pass post
r228661 (see
https://gcc.gnu.org/ml/gcc-patches/2015-10/msg00676.html). This test
no longer triggered the simplify-rtx pattern it was written for prior
to r228661, though other optimizations did lead to the same assembly
the test checked for. The optimization added with r228661 matches the
pattern used in the test and optimizes it to a better and still valid
sequence. Being unable to easily change the test to trigger the
original simplify-rtx pattern, I chose to change it to pass with the
new produced assembly sequence.
This is correct because the transformation is valid and it yields a
more efficient pattern. However, as I pointed out before this test
doesn't test the optimization it originally was intended for.
Tested by running regression tests for armv6.
Is this OK to commit?
Thanks, Andre
2015-10-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
PR testsuite/67948
* gcc.target/arm/xor-and.c: Adjust test to check for eor
instead of orr.
[Patch AArch64 63304] Fix issue with global state.
Jiong pointed out privately that there was a thinko
in the way in which the global state was being
set and reset. I don't like adding such
global state but ....
Martin Sebor [Wed, 21 Oct 2015 22:24:41 +0000 (22:24 +0000)]
Improve --help output to generate references to option aliases.
gcc/
PR driver/68043
* opts.c (undocumented_msg, use_diagnosed_msg): New globals.
(print_filtered_help): Reference aliased option's name and encourage
readers to use it in preference to the alias if the former is not
documented. Mention when using an option is diagnosed.
* gcc.c (display_help): End each sentence with a period.
Aditya Kumar [Wed, 21 Oct 2015 21:18:27 +0000 (21:18 +0000)]
a scalar depending on vdefs in the current region is not invariant
When a scalar is defined in function of an array reference in the current scop,
it does variate. Graphite cannot represent the condition in scop-11.c, as a[*]
variates in the current region, and it is not an affine condition:
for (j = 0; j <= 20; j++)
a[j] = b + i;
if (a[12] == 23)
b = 3;
else
b = 1;
for (j = 0; j <= 20; j++)
a[j] = b + i;
* graphite-scop-detection.c (parameter_index_in_region): Update call to
invariant_in_sese_p_rec.
* graphite-sese-to-poly.c (extract_affine): Same.
* sese.c (invariant_in_sese_p_rec): Pass in an extra parameter has_vdefs.
(scalar_evolution_in_region): Return chrec_dont_know when the scalar variable
depends on virtual definitions in the current region.
* sese.h (invariant_in_sese_p_rec): Update declaration.
Aditya Kumar [Wed, 21 Oct 2015 21:18:17 +0000 (21:18 +0000)]
add an upper limit on the number of array references
* graphite-scop-detection.c (build_scops): Do not handle scops with more
than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
* params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r229150
Jan Hubicka [Wed, 21 Oct 2015 21:14:06 +0000 (23:14 +0200)]
re PR ipa/67056 (Wrong code generated)
PR ipa/67056
* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
is negative we don't know the type.
(check_stmt_for_type_change): Skip constructors of non-polymorphic
types as those won't help devirutalization.
* g++.dg/ipa/pr67056.C: New testcase.
Relax ADDR_SPACE_GENERIC_P checks for default address space hooks
If all address spaces use the same modes and forms, we would
be forced to replicate these hooks in the backend. Which would
then require the creation of a new hook to replace
target_default_pointer_address_modes_p.
Change default of non-overlapping address space conversion
The current default of making all undefined coversions being
set to null is not useful. It has caused all users to lie
and say that spaces are subsets when they are not, just so
that they can override the conversion.
* expr.c (expand_expr_real_2): Use convert_modes on disjoint
address spaces.
The fold code also expanded cabs(x+yi) to fsqrt(x*x+y*y) when optimising
for speed. tree-ssa-math-opts.c has this transformation too, but unlike
the fold code, it first checks whether the target implements the sqrt
optab. The patch simply removes the fold code and keeps the
tree-ssa-math-opts.c logic the same.
gcc.dg/lto/20110201-1_0.c was relying on us replacing cabs
with fsqrt even on targets where fsqrt is itself a library call.
The discussion leading up to that patch suggested that we only
want to test the fold on targets with a square root instruction,
so it would be OK to skip the test on other targets:
The patch does that using the sqrt_insn effective target.
It's possible that removing the tree folds renders the LTO trick
unnecessary, but since the test was originally for an ICE, it seems
better to leave it as-is.
Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. 20110201-1_0.c passes on all three.
This patch adds a pass that collects information that is common to
all uses of an SSA name X and back-propagates that information up
the statements that generate X. The general idea is to use the
information to simplify instructions (rather than a pure DCE) so
I've simply called it gimple-ssa-backprop.c, to go with
tree-ssa-forwprop.c.
At the moment the only use of the pass is to remove unnecessary
sign operations, so that it's effectively a global version of
fold_strip_sign_ops. I'm hoping it could be extended in future
to record which bits of an integer are significant. There are
probably other potential uses too.
A later patch gets rid of fold_strip_sign_ops.
Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
Aditya Kumar [Wed, 21 Oct 2015 18:53:35 +0000 (18:53 +0000)]
avoid generation of empty guards in trivial cases
We used to insert a trivial integer_onep condition around loops we know have
more than an iteration. This patch avoids generating those conditions.
* graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Do not call
create_empty_if_region_on_edge when cond_expr is true.
(translate_isl_ast_node_for): Check whether a guard has been generated.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r229137
Now that scop contains a list of all the basic blocks inside, it makes sense to
iterate over only those basic blocks in
graphite-sese-to-poly.c:rewrite_reductions_out_of_ssa,rewrite_cross_bb_scalar_deps_out_of_ssa
Passes regtest and bootstrap.
gcc/ChangeLog:
2015-10-20 Aditya Kumar <hiraditya@msn.com>
* graphite-poly.h (struct dr_info): Added invalid_alias_set number.
(operator=): Removed.
(dr_info): Make alias_set number the last argument with default value of invalid_alias_set.
* graphite-sese-to-poly.c (build_scop_drs): Update constructor of dr_info.
(rewrite_reductions_out_of_ssa): Iterate only through the basic blocks which are inside region.
(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
* sese.h (struct sese_l): Removed assignment operator.
(split_region_for_bb): Removed dead code.
Jan Hubicka [Wed, 21 Oct 2015 18:00:30 +0000 (20:00 +0200)]
re PR middle-end/67966 (ICE in convert_move, at expr.c:282)
PR middle-end/67966
* tree.c (verify_type): Verify that TYPE_MODE match
between TYPE_CANONICAL and type.
* expr.c (store_expr_with_bounds): Revert my previous change.
* expmed.c (store_bit_field_1): Revert prevoius change.
* gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
to match for all types.
Ilya Enkovich [Wed, 21 Oct 2015 16:01:43 +0000 (16:01 +0000)]
tm.texi: Regenerated.
gcc/
* doc/tm.texi: Regenerated.
* doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
* stor-layout.c (layout_type): Use mode to get vector mask size.
* target.def (get_mask_mode): New.
* targhooks.c (default_get_mask_mode): New.
* targhooks.h (default_get_mask_mode): New.
* gcc/tree-vect-stmts.c (get_same_sized_vectype): Add special case
for boolean vector.
* tree.c (MAX_BOOL_CACHED_PREC): New.
(nonstandard_boolean_type_cache): New.
(build_nonstandard_boolean_type): New.
(make_vector_type): Vector mask has no canonical type.
(build_truth_vector_type): New.
(build_same_sized_truth_vector_type): New.
(truth_type_for): Support vector masks.
* tree.h (VECTOR_BOOLEAN_TYPE_P): New.
(build_truth_vector_type): New.
(build_same_sized_truth_vector_type): New.
(build_nonstandard_boolean_type): New.
* tree-cfg.c (verify_gimple_comparison) Require boolean
vector type for vector comparison.
(verify_gimple_assign_ternary): Likewise.
* optabs.c (expand_vec_cond_expr): Accept boolean vector as
condition operand.
* tree-vect-stmts.c (vectorizable_condition): Use boolean
vector type for vector comparison.
* tree-vect-generic.c (elem_op_func): Add new operand to hold
vector type.
(do_unop): Adjust to modified function type.
(do_binop): Likewise.
(do_plus_minus): Likewise.
(do_negate); Likewise.
(expand_vector_piecewise): Likewise.
(do_cond): Likewise.
(do_compare): Use comparison instead of condition.
(expand_vector_divmod): Use boolean vector type for comparison.
(expand_vector_operations_1): Skip scalar mask operations.
gcc/c
* c-typeck.c (build_conditional_expr): Use boolean vector
type for vector comparison.
(build_vec_cmp): New.
(build_binary_op): Use build_vec_cmp for comparison.
gcc/cp
* call.c (build_conditional_expr_1): Use boolean vector
type for vector comparison.
* typeck.c (build_vec_cmp): New.
(cp_build_binary_op): Use build_vec_cmp for comparison.
This patch makes sure that, for every simplification that uses
fold_strip_sign_ops, there are associated match.pd rules for the
leaf sign ops, i.e. abs, negate and copysign. A follow-on patch
will add a pass to handle more complex cases.
Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
gcc/
* match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
and x*x in cases where the operands are sign ops. Extend these
rules to handle copysign as a sign op (including for cos, cosh
and pow, which already treated negate and abs as sign ops).
Uros Bizjak [Wed, 21 Oct 2015 08:43:44 +0000 (10:43 +0200)]
re PR target/68018 (ICE: in ix86_compute_frame_layout, at config/i386/i386.c:11308 with -mstackrealign)
PR target/68018
* config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
for 64-bit MS_ABI targets also when default incoming stack boundary
is overriden.
testsuite/ChangeLog:
PR target/68018
* gcc.target/i386/pr68018.c: New test.
Richard Biener [Wed, 21 Oct 2015 08:08:05 +0000 (08:08 +0000)]
re PR tree-optimization/68031 (cc1 crashes when compiling newlib / mktm_r.c)
2015-10-21 Richard Biener <rguenther@suse.de>
PR middle-end/68031
* fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
(tree_ssa_name_nonnegative_warnv_p): Fold into ...
(tree_single_nonnegative_warnv_p): ... here. For SSA names
make sure they are not registered for update.
Max Ostapenko [Wed, 21 Oct 2015 07:51:03 +0000 (10:51 +0300)]
sanitizer_stacktrace.cc (GetCanonicFrame): Assume we compiled code with GCC when extracting the caller PC for ARM if...
libsanitizer/
* sanitizer_common/sanitizer_stacktrace.cc (GetCanonicFrame): Assume we
compiled code with GCC when extracting the caller PC for ARM if no
valid frame pointer is available.
Max Ostapenko [Wed, 21 Oct 2015 07:44:35 +0000 (10:44 +0300)]
re PR sanitizer/63958 (bootstrap failure in the sanitizer libs on sparc-linux-gnu)
libsanitizer/
PR sanitizer/63958
Reapply:
2014-10-14 David S. Miller <davem@davemloft.net>
* sanitizer_common/sanitizer_platform_limits_linux.cc (time_t):
Define at __kernel_time_t, as needed for sparc.
(struct __old_kernel_stat): Don't check if __sparc__ is defined.
* libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
(__sanitizer): Define struct___old_kernel_stat_sz,
struct_kernel_stat_sz, and struct_kernel_stat64_sz for sparc.
(__sanitizer_ipc_perm): Adjust for sparc targets.
(__sanitizer_shmid_ds): Likewsie.
(__sanitizer_sigaction): Likewise.
(IOC_SIZE): Likewsie.
Max Ostapenko [Wed, 21 Oct 2015 07:40:54 +0000 (10:40 +0300)]
libsanitizer merge from upstream r250806, compiler part.
gcc/
* asan.c (asan_emit_stack_protection): Don't pass local stack to
asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
NULL and use local stack than.
(asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
in addition to __asan_init.
* sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
(BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
* asan.h (asan_intercepted_p): Handle new string builtins.
* ubsan.c (ubsan_use_new_style_p): New function.
(ubsan_instrument_float_cast): If location is unknown, assign
input_location to loc. Propagate loc to ubsan_create_data if
ubsan_use_new_style_p returned true.
config/
* bootstrap-asan.mk: Replace ASAN_OPTIONS=detect_leaks with
LSAN_OPTIONS=detect_leaks.
Jeff Law [Wed, 21 Oct 2015 05:56:37 +0000 (23:56 -0600)]
[PATCH] Move RTL printing code from sched-vis.c into print-rtl.c
* Makefile.in (OBJS): Remove sched-vis.c
* sched-vis.c: Removed. Code moved into...
* print-rtl.c: Here. Include cfg.h, pretty-print.h and print-rtl.h.
* rtl.h: Remove prototypes for functions now living in print-rtl.c
* print-rtl.h Add prototypes for new functions in print-rtl.c.
* auto-inc-dec.c: Include print-rtl.h
* cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
* ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
Richard Biener [Wed, 21 Oct 2015 02:22:04 +0000 (02:22 +0000)]
fold-const.c (fold_binary_loc): Move (-A) * (-B) -> A * B to match.pd.
2015-10-20 Richard Biener <rguenther@suse.de>
Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
* fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
to match.pd.
Move (a * (1 << b)) is (a << b) to match.pd.
Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
* match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
New simplifier.
(mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
(bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
(bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
: New simplifier.
(mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
New simplifier.
(match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
Ian Lance Taylor [Tue, 20 Oct 2015 20:44:23 +0000 (20:44 +0000)]
compiler: Report errors after evaluating invalid constant.
The fix for golang/go#11541 made the assertion that getting an invalid
Numeric_constant after evaluating an invalid constant must result in
an error in a binary expression. However, a Numeric_constant can be
invalid if it is unset, which occurs when either operand cannot be
converted to the right type. These errors are issued after the
Numeric_constant is lowered.
Kyrylo Tkachov [Tue, 20 Oct 2015 17:18:24 +0000 (17:18 +0000)]
[AArch64] Add support for 64-bit vector-mode ldp/stp
* config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
New function.
(fusion_load_store): Use it.
* config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
ldp and stp in VD modes.
* config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
(store_pair<mode>, VD): Likewise.
* gcc.target/aarch64/stp_vec_64_1.c: New test.
* gcc.target/aarch64/ldp_vec_64_1.c: Likewise.
to enable compressed debug sections for gas, gold or ld by default. At
the moment, this configure option is ignored by gold and ld. For x86
Linux targets, default to compressing debug sections in gas.
H.J. Lu [Tue, 20 Oct 2015 15:12:37 +0000 (15:12 +0000)]
Properly handle -miamcu and -march=lakemont
-miamcu specifies how parameters are passed to functions and how value
is returned from a function. Inside function, we can use instructions
supported by -march=XXX. -miamcu -march=haswell can generate x87, SSE
and AVX instructions as long as the IA MCU psABI is followed. But since
Lakemont processor doesn't support x87 instructions, we shouldn't
generate x87 instructions with -march=lakemont. This patch separates
code generation from -miamcu and makes -march=lakemont not to generate
x87 instructions.
gcc/
PR target/67963
PR target/67985
* common/config/i386/i386-common.c (ix86_handle_option): Remove
OPT_miamcu handling.
* config/i386/i386.c (PTA_NO_80387): New macro.
(processor_alias_table): Add PTA_NO_80387 to lakemont.
(ix86_option_override_internal): Update MASK_80387 from
PTA_NO_80387. Don't warn x87/MMX/SSE/AVX for -miamcu. Warn
SSE math only if 80387 is supported. Don't change
MASK_FLOAT_RETURNS.
(ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
80387 is supported.
* config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
if TARGET_80387 is true and TARGET_IAMCU is false.
(TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
is true and TARGET_IAMCU_P is false.
Yannick Moy [Tue, 20 Oct 2015 12:42:53 +0000 (12:42 +0000)]
fmap.adb, [...]: Fix coding style for marking start of processing of subprograms.
2015-10-20 Yannick Moy <moy@adacore.com>
* fmap.adb, a-cihama.adb, sem_ch5.adb, make.adb, inline.adb,
a-cfhase.adb, scng.adb, sem_ch12.adb, freeze.adb, tempdir.adb,
sem_util.adb, sem_res.adb, s-regexp.adb, a-clrefi.adb: Fix coding
style for marking start of processing of subprograms.
2015-10-20 Yannick Moy <moy@adacore.com>
* lib-xref-spark_specific.adb (Add_SPARK_File): Start traversal
by requesting info from stubs. (Traverse_All_Compilation_Units):
Remove unused procedure.
(Traverse_Declarations_Or_Statements): Handle protected and task units.
* lib-xref.ads (Traverse_All_Compilation_Units): Remove unused
procedure.
* restrict.adb (Check_Restriction): Do not ignore
restrictions in GNATprove_Mode.
Arnaud Charlet [Tue, 20 Oct 2015 12:32:21 +0000 (14:32 +0200)]
[multiple changes]
2015-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch11.adb (Analyze_Handled_Statements): If the scope is a
postcondition subprogram, do not check for useless assignments
because there are no source references in such a body, and the
call will lose deferred references from the enclosing subprogram.
2015-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb: nalyze_Attribute_Definition_Clause, case
'Address): If either object is controlled the overlay is
erroneous, but analysis must be completed so that back-end sees
address clause and completes code generation. Improve text
of warning.
Arnaud Charlet [Tue, 20 Oct 2015 12:24:52 +0000 (14:24 +0200)]
[multiple changes]
2015-10-20 Yannick Moy <moy@adacore.com>
* a-sytaco.ads (Ada.Synchronous_Task_Control): Package
now withs System.Task_Identification. The visible part
of the spec has SPARK_Mode. The private part has pragma
SPARK_Mode (Off).
(Set_True): Added Global and Depends aspects
(Set_False): Added Global and Depends aspects (Current_State):
Added Volatile_Function aspect and added external state
Ada.Task_Identification.Tasking_State as a Global input.
(Suspend_Until_True): Added Global and Depends aspects
* a-sytaco.adb (Ada.Synchronous_Task_Control):
Package body has SPARK_Mode => Off
* a-extiin.ads (Ada.Execution_Time.Interrupts):
Package now withs Ada.Real_Time and has SPARK_Mode.
(Clock): Added Volatile_Function aspect and added external state
Ada.Real_Time.Clock_Time as a Global input.
* a-reatim.ads (Ada.Real_Time): The visible part of the spec has
SPARK_Mode. The private part has pragma SPARK_Mode (Off). The package
declares external state Clock_Time with properties Async_Readers and
Async_Writers.
(Clock): Added Volatile_Function aspect and
added external state Clock_Time as a Global input.
* a-reatim.adb (Ada.Real_Time): Package body has SPARK_Mode => Off
* a-exetim-default.ads, a-exetim-mingw.ads (Ada.Execution_Time):
The visible part of the spec has SPARK_Mode. The private part
has pragma SPARK_Mode (Off).
(Clock): Added Volatile_Function
aspect and added external state Clock_Time as a Global input.
(Clock_For_Interrupts): Added Volatile_Function aspect and added
external state Ada.Real_Time.Clock_Time as a Global input.
* a-exetim-mingw.adb (Ada.Execution_Time): Package body has
SPARK_Mode => Off
* a-interr.ads (Ada.Interrupts): Package now
withs Ada.Task_Identification (Is_Reserved): Added
SPARK_Mode, Volatile_Function and external state
Ada.Task_Identification.Tasking_State as a Global input.
(Is_Attached): Added SPARK_Mode, Volatile_Function and external
state Ada.Task_Identification.Tasking_State as a Global input.
(Attach_Handler): Added SPARK_Mode => Off (Exchange_Handler):
Added SPARK_Mode => Off (Detach_Handler): Added SPARK_Mode
and external state Ada.Task_Identification.Tasking_State as a
Global In_Out. (Reference): Added SPARK_Mode => Off
* a-disedf.ads (Get_Deadline): Added SPARK_Mode, Volatile_Function
and external state Ada.Task_Identification.Tasking_State as a
Global input.
* a-taside.ads (Ada.Task_Identification): The visible part of
the spec has SPARK_Mode. The private part has pragma SPARK_Mode
(Off). The package declares external state Tasking_State with
properties Async_Readers and Async_Writers.
(Current_Task): Added
Volatile_Function aspect and added external state Tasking_State
as a Global input.
(Environment_Task): Added SPARK_Mode => Off
(Is_Terminated): Added Volatile_Function aspect and added external
state Tasking_State as a Global input. (Is_Callable): Added
Volatile_Function aspect and added external state Tasking_State as
a Global input.
(Activation_Is_Complete): Added Volatile_Function
aspect and added external state Tasking_State as a Global input.
* a-taside.adb (Ada.Task_Identification): Package body has
SPARK_Mode => Off.
2015-10-20 Ed Schonberg <schonberg@adacore.com>
* atree.ads, atree.adb: Enable List38 and List39 on entities.
* einfo.ads, einfo.adb (Class_Wide_Preconds) new attribute defined
on subprograms. Holds the list of class-wide precondition
functions inherited from ancestors. Each such function is an
instantiation of the generic function generated from an explicit
aspect specification for a class-wide precondition. A type is
an ancestor of itself, and therefore a root type has such an
instance on its own list.
(Class_Wide_Postconds): ditto for postconditions.
2015-10-20 Vincent Celier <celier@adacore.com>
* prj-attr.adb: Add packages Prove and GnatTest.
2015-10-20 Steve Baird <baird@adacore.com>
* a-conhel.adb: Add an Annotate pragma to help suppress CodePeer's
analysis of internals of container generic instances. This pragma
has no other effect.
* a-conhel.adb (Generic_Implementation) Add "pragma Annotate
(CodePeer, Skip_Analysis);".
Arnaud Charlet [Tue, 20 Oct 2015 12:21:37 +0000 (14:21 +0200)]
[multiple changes]
2015-10-20 Steve Baird <baird@adacore.com>
* pprint.adb: Code clean up.
2015-10-20 Bob Duff <duff@adacore.com>
* a-cfinve.ads, a-coboho.ads: Improve comments.
* a-coboho.adb (Size_In_Storage_Elements): Improve error message
in case of "Size is too big" exception.
2015-10-20 Bob Duff <duff@adacore.com>
* a-contai.ads: Remove check names (moved to snames.ads-tmpl).
* snames.ads-tmpl: Add check names that were previously in
a-contai.ads, so they are now visible in configuration files.
* types.ads: Add checks corresponding to snames.ads-tmpl.
Arnaud Charlet [Tue, 20 Oct 2015 12:20:20 +0000 (14:20 +0200)]
[multiple changes]
2015-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Loop_Statement): Attach generated loop
identifier to the tree, because it may be the root of a tree
traversal in Pop_Scope when freeze actions are pending.
2015-10-20 Steve Baird <baird@adacore.com>
* pprint.ads (Expression_Image) Add new generic formal flag
Hide_Parameter_Blocks.
* pprint.adb (Expression_Image) If new flag is set, then display
dereferences of parameter block components accordingly.
* exp_ch6.adb (Expand_N_Extended_Return_Statement): Code cleanup.
(Make_Build_In_Place_Call_In_Object_Declaration): Update the
parameter profile. Code cleanup. Request debug info for the
object renaming declaration.
(Move_Activation_Chain): Add new formal parameter and update the
comment on usage.
* exp_ch6.ads (Make_Build_In_Place_Call_In_Object_Declaration):
Update the parameter profile and comment on usage.
* sem_util.ads, sem_util.adb (Remove_Overloaded_Entity): New routine,
currently unused.
Ed Schonberg [Tue, 20 Oct 2015 12:16:37 +0000 (12:16 +0000)]
sem_ch13.adb (Analyze_One_Aspect, [...]): If expander is not active...
2015-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Analyze_One_Aspect, case
Aspect_Disable_Controlled): If expander is not active, pre-analyze
expression anyway for ASIS and other tools use.
* sem_prag.adb (Build_Generic_Class_Condition): Handle properly
anonymous access types in parameter specifications. Make the
formal type a formal derived type of the controlling type of
the subprogram.
* init.c: Fix build issue on arm-vx6 when building the RTP
run-time.
2015-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Object_Declaration): If the expression
is an aggregate and compilation is in -gnatI mode (ignore rep
clauses) do not delay resolution of aggregate, to prevent freeze
actions out of order in the backend.
2015-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_prag.ads, sem_prag.adb (Build_Generic_Class_Condition):
New procedure to construct a generic function for a class-wide
precondition, to implement AI12-0113 concerning the new semantics
of class-wide preconditions for overriding uperations.