2017-01-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/79088
PR tree-optimization/79188
* tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
resetting loop bounds after last path deletion. Reset loop
bounds of the target loop, make code match the comments.
* tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
Make sure loops need no fixups.
* gcc.dg/torture/pr79088.c: New testcase.
* gcc.dg/torture/pr79188.c: Likewise.
From-SVN: r244837
Fix a bug in the generation of the hash value in reflect.FuncOf.
The merge script missed a bunch of testdata files over the years.
Copy them over.
Reviewed-on: https://go-review.googlesource.com/35570
From-SVN: r244835
gcc/testsuite/ChangeLog:
2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
* gcc.target/powerpc/bfp/scalar-insert-exp-3.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-4.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-5.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-0.c: Adjust return
type of test function to reflect change in built-in function's
return type.
* gcc.target/powerpc/bfp/scalar-test-data-class-1.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-data-class-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-data-class-3.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-data-class-4.c: Adjust return
type and second argument type to reflect change in built-in
function's type signature.
* gcc.target/powerpc/bfp/scalar-test-data-class-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-data-class-6.c: Adjust return
type of test function to reflect change in built-in function's
return type.
* gcc.target/powerpc/bfp/scalar-test-data-class-7.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-0.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-1.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-3.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-exp-0.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-exp-1.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-exp-3.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-sig-0.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-sig-1.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-sig-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-sig-3.c: Likewise.
* gcc.target/powerpc/bfp/vec-insert-exp-4.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-5.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-6.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-7.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-0.c: Adjust return
type of test function to reflect change in built-in function's
return type.
* gcc.target/powerpc/bfp/vec-test-data-class-1.c: Likewise.
* gcc.target/powerpc/bfp/vec-test-data-class-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-test-data-class-3.c: Likewise.
* gcc.target/powerpc/bfp/vec-test-data-class-4.c: Likewise.
* gcc.target/powerpc/bfp/vec-test-data-class-5.c: Likewise.
* gcc.target/powerpc/bfp/vec-test-data-class-6.c: Adjust types of
test function's result and second argument to reflect change in
built-in function's type signature.
* gcc.target/powerpc/bfp/vec-test-data-class-7.c: Likewise.
gcc/ChangeLog:
2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
* config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
exponent support with double type for first argument.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
type returned by __builtin_vec_extract_sig,
__builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
functions from "vector int" to "vector unsigned int" or from
"vector long long int" to "vector unsigned long long int".
Changed type returned by __builtin_vec_extract_exp,
__builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
functions from "vector int" to "vector unsigned int" or from
"vector long long int" to "vector unsigned long long int".
Changed return type of __builtin_vec_test_data_class,
__builtin_vec_test_data_class_sp, and
__builtin_vec_test_data_class_dp from "vector int" to
"vector bool int" or from "vector long long int" to "vector bool
long long int" and changed second argument type from "unsigned
int" to "int". Added new overloaded function forms "vector float
__builtin_vec_insert_exp (vector float, vector unsigned int)" and
"vector float __builtin_vec_insert_exp_sp (vector float, vector
unsigned int)" and "vector double __builtin_vec_insert_exp (vector
double, vector unsigned long long int)" and "vector double
__builtin_vec_insert_exp_dp (vector double, vector unsigned long
long int)". Changed return type of
__builtin_scalar_test_data_class and
__builtin_scalar_test_data_class_sp and
__builtin_scalar_test_data_class_dp from "unsigned int" to "bool
int" and changed second argument from "unsigned int" to "int".
Changed type returned by __builtin_scalar_test_neg,
__builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
from "int" to "bool int". Added new overloaded function form
"double __builtin_scalar_insert_exp (double, unsigned long long int)".
* config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
exponent double-precision with floating point first argument.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
documentation of scalar_test_data_class, scalar_test_neg,
scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
vector_extract_exp, vec_extract_sig, vec_insert_exp, and
vec_test_data_class built-in functions to reflect refinements in
their type signatures.
From-SVN: r244834
2017-01-23 Thomas Koenig <tkoenig@netcologne.de>
* arith.c (arith_power): If simplifying integer power expression
to zero, warn if -Winteger-division is given.
2017-01-23 Thomas Koenig <tkoenig@netcologne.de>
* gfortran.dg/integer_exponentiation_7.f90: New test.
From-SVN: r244830
PR go/79037
compiler, runtime: align gc data for m68k
The current GC requires that the gc data be aligned to at least a 4
byte boundary, because it uses the lower two bits of the address for
flags (see LOOP and PRECISE in runtime/mgc0.c). As the gc data is
stored as a [...]uintptr, that is normally always true. However, on
m68k, that only guarantees 2 byte alignment. Fix it by forcing the
alignment.
The parfor code used by the current GC requires that the parfor data
be aligned to at least an 8 byte boundary. The code in parfor.c
verifies this. This is normally true, as the data uses uint64_t
values, but, again, this must be enforced explicitly on m68k.
Fixes GCC PR 79037.
Reviewed-on: https://go-review.googlesource.com/35478
From-SVN: r244824
PR rtl-optimization/71724
* combine.c (if_then_else_cond): Look for situations where it is
beneficial to undo the work of one of the recursive calls.
From-SVN: r244817
PR tree-optimization/70754
* tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
(reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
combined stmt before it if not NULL.
(combine_chains): Process refs reversely and compute dominance point
for root ref.
gcc/testsuite
PR tree-optimization/70754
* gfortran.dg/pr70754.f90: New test.
From-SVN: r244815
PR libstdc++/79195
* include/experimental/array (__make_array_elem): New class template
and partial specialization.
(__is_reference_wrapper): Move into __make_array_elem specialization.
(make_array): Use __make_array_elem to determine element type and move
static assertion into specialization. Qualify std::forward call.
(to_array): Add exception specifiation.
* testsuite/experimental/array/make_array.cc: Test argument types
without a common type.
* testsuite/experimental/array/neg.cc: Adjust expected error message.
From-SVN: r244813
2017-01-23 Javier Miranda <miranda@adacore.com>
* sem_util.adb (New_Copy_Tree): Code cleanup:
removal of the internal map (ie. variable Actual_Map, its
associated local variables, and all the code handling it).
* sem_ch9.adb (Analyze_Task_Type_Declaration): in GNATprove mode
force loading of the System package when processing a task type.
(Analyze_Protected_Type_Declaration): in GNATprove mode force
loading of the System package when processing a protected type.
* sem_ch10.adb (Analyze_Compilation_Unit): in GNATprove mode
force loading of the System package when processing compilation
unit with a main-like subprogram.
* frontend.adb (Frontend): remove forced loading of the System
package.
From-SVN: r244810
2017-01-23 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Default_Initial_Condition): If the desired type
declaration is a derived type declaration with discriminants,
it is rewritten as a private type declaration.
* sem_ch13.adb (Replace_Type_References_Generic,
Visible_Component): A discriminated private type with descriminnts
has components that must be rewritten as selected components
if they appear as identifiers in an aspect expression such as
a Default_Initial_Condition.
* sem_util.adb (Defining_Entity): support N_Iterator_Specification
nodes.
From-SVN: r244809
2017-01-23 Yannick Moy <moy@adacore.com>
* sem_ch4.adb (Analyze_Indexed_Component_Form):
Adapt to inlined prefix with string literal subtype.
* inline.adb (Expand_Inlined_Call): Keep unchecked
conversion inside inlined call when formal type is constrained.
2017-01-23 Javier Miranda <miranda@adacore.com>
* sem_util.adb (New_Copy_Tree): Code cleanup:
removal of global variables. All the global variables, global
functions and tables of this subprogram are now declared locally.
From-SVN: r244807
2017-01-23 Gary Dismukes <dismukes@adacore.com>
* exp_strm.ads: Minor reformatting and typo fixes.
2017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
* sem_aggr.adb, par_sco.adb, exp_util.adb, sem.adb, sem_ch4.adb,
exp_aggr.adb: Minor reformatting.
* g-diopit.adb: minor grammar/punctuation fix in comment.
* g-byorma.ads: minor fix of unbalanced parens in comment.
2017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
* par.adb: Update the documentation of component Labl.
* par-ch6.adb (P_Return_Statement): Set the expected label of
an extended return statement to Error.
2017-01-23 Tristan Gingold <gingold@adacore.com>
* s-boustr.ads, s-boustr.adb (Is_Full): New function.
2017-01-23 Ed Schonberg <schonberg@adacore.com>
* expander.adb: Handle N_Delta_Aggregate.
2017-01-23 Javier Miranda <miranda@adacore.com>
* exp_ch6.adb (Expand_Call): Improve the code that
checks if some formal of the called subprogram is a class-wide
interface, to handle subtypes of class-wide interfaces.
2017-01-23 Javier Miranda <miranda@adacore.com>
* checks.adb (Apply_Parameter_Aliasing_Checks):
Remove side effects of the actuals before generating the overlap
check.
From-SVN: r244806
2017-01-23 Justin Squirek <squirek@adacore.com>
* exp_strm.ads, exp_strm.ads
(Build_Record_Or_Elementary_Input_Function): Add an extra parameter so
as to avoid getting the underlying type by default.
* exp_attr.adb (Expand_N_Attribute_Reference): Remove use of
underlying type in the Iiput and output attribute cases when
building their respective functions.
2017-01-23 Gary Dismukes <dismukes@adacore.com>
* scng.adb: Minor reformatting of error message.
2017-01-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Expression_Function): Do not attempt
to freeze the return type of an expression funxtion that is a
completion, if the type is a limited view and the non-limited
view is available.
From-SVN: r244805
2017-01-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/79186
* tree-vrp.c (register_new_assert_for): Make sure we've seen
both incoming edges before moving an assert.
* gcc.dg/torture/pr79186.c: New testcase.
* gcc.dg/torture/pr79187.c: Likewise.
From-SVN: r244804
2017-01-23 Martin Jambor <mjambor@suse.cz>
* ipa-prop.c (load_from_param_1): Removed.
(load_from_unmodified_param): Bits from load_from_param_1 put back
here.
(load_from_param): Removed.
(compute_complex_assign_jump_func): Removed stmt2 and just replaced it
with stmt. Reverted back to use of load_from_unmodified_param.
testsuite/
* gcc.dg/ipa/vrp8.c: New test.
From-SVN: r244803
2017-01-23 Martin Jambor <mjambor@suse.cz>
PR ipa/79108
* ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
(ipa_node_params): Annotate with GTY((for_user)). Make descriptors
field a pointer to garbage collected vector, mark lattices and
ipcp_orig_node with GTY((skip)).
(ipa_get_param_count): Adjust to descriptors being a pointer.
(ipa_get_param): Likewise.
(ipa_get_type): Likewise.
(ipa_get_param_move_cost): Likewise.
(ipa_set_param_used): Likewise.
(ipa_get_controlled_uses): Likewise.
(ipa_set_controlled_uses): Likewise.
(ipa_is_param_used): Likewise.
(ipa_node_params_t): Move into garbage collector. New methods insert
and remove.
(ipa_node_params_sum): Annotate wth GTY(()).
(ipa_check_create_node_params): Adjust to ipa_node_params_sum being
garbage collected.
(ipa_load_from_parm_agg): Adjust declaration.
* ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
* ipa-profile.c (ipa_profile): Likewise.
* ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
(ipa_populate_param_decls): Make descriptors parameter garbage
collected.
(ipa_dump_param): Adjust to descriptors being a pointer.
(ipa_alloc_node_params): Likewise.
(ipa_initialize_node_params): Likewise.
(load_from_param_1): Make descriptors parameter garbage collected.
(load_from_unmodified_param): Likewise.
(load_from_param): Likewise.
(ipa_load_from_parm_agg): Likewise.
(ipa_node_params::~ipa_node_params): Removed.
(ipa_free_all_node_params): Remove call to delete operator.
(ipa_node_params_t::insert): New.
(ipa_node_params_t::remove): Likewise.
(ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
copy known_csts and known_contexts vectors.
(ipa_read_node_info): Adjust to descriptors being a pointer.
(ipcp_modif_dom_walker): Make m_descriptors field garbage
collected.
(ipcp_transform_function): Make descriptors variable garbage
collected.
testsuite/
* gfortran.dg/lto/pr79108_0.f90: New test.
From-SVN: r244802
PR testsuite/78421
* lib/target-supports.exp (check_effective_target_vect_hw_misalign):
If the target is ARM return the result of the
check_effective_target_arm_vect_no_misalign proc.
* gcc.dg/vect/vect-strided-a-u8-i2-gap.c: If the target does not
support unaligned vectors then only expect one of the loops to be
unrolled.
Co-Authored-By: Nick Clifton <nickc@redhat.com>
From-SVN: r244796
2017-01-23 Ed Schonberg <schonberg@adacore.com>
* par-ch4.adb (P_Aggregate_Or_Parent_Expr): Recognize delta
aggregate construct.
(P_Record_Or_Array_Component_Association): An array aggregate
can start with an Iterated_Component_Association.
* scng.adb: Modify error message on improper use of @ in earlier
versions of the language.
* sinfo.ads: New node kind N_Delta_Aggregate.
* sinfo.adb: An N_Delta_Aggregate has component associations and
an expression.
* sem_res.adb (Resolve): Call Resolve_Delta_Aggregate.
* sem_aggr.ads, sem_aggr.adb (Resolve_Iterated_Component_Association):
Create a new index for each one of the choices in the association,
to prevent spurious homonyms in the scope.
(Resolve_Delta_Aggregate): New.
* sem.adb: An N_Delta_Aggregate is analyzed like an aggregate.
* exp_util.adb (Insert_Actions): Take into account
N_Delta_Aggregate.
* exp_aggr.ads: New procedure Expand_N_Delta_Aggregate.
* exp_aggr.adb: New procedure Expand_N_Delta_Aggregate,
and local procedures Expand_Delta_Array_Aggregate and
expand_Delta_Record_Aggregate.
* sprint.adb: Handle N_Delta_Aggregate.
2017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch11.adb (Expand_N_Exception_Declaration): Generate an
empty name when the exception declaration is subject to pragma
Discard_Names.
(Null_String): New routine.
2017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
* par-ch9.adb (P_Protected_Definition): Parse
any optional and potentially illegal pragmas which appear in
a protected operation declaration list.
(P_Task_Items): Parse
any optional and potentially illegal pragmas which appear in a
task item list.
From-SVN: r244794
2017-01-23 Martin Liska <mliska@suse.cz>
* gcc.dg/asan/use-after-scope-10.c: New test.
* gcc.dg/asan/use-after-scope-11.c: New test.
* g++.dg/asan/use-after-scope-5.C: New test.
2017-01-23 Jakub Jelinek <jakub@redhat.com>
Martin Liska <mliska@suse.cz>
* asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
* asan.c (asan_expand_poison_ifn): Support stores and use
appropriate ASAN report function.
* internal-fn.c (expand_ASAN_POISON_USE): New function.
* internal-fn.def (ASAN_POISON_USE): Declare.
* tree-into-ssa.c (maybe_add_asan_poison_write): New function.
(maybe_register_def): Create ASAN_POISON_USE when sanitizing.
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
ASAN_POISON calls w/o LHS.
* tree-ssa.c (execute_update_addresses_taken): Create clobber
for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
* gimplify.c (asan_poison_variables): Add attribute
use_after_scope_memory to variables that really needs to live
in memory.
* tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
having the attribute.
From-SVN: r244793
2017-01-23 Pascal Obry <obry@adacore.com>
* s-taprop-mingw.adb (Enter_Task): Initialize the Thread handle which
is needed when a foreign thread call a Win32 API using a thread handle
like GetThreadTimes() for example.
2017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
allow an 'Address clause to be specified on a prefix of a
class-wide type.
2017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
* checks.adb (Insert_Valid_Check): Ensure that the prefix of
attribute 'Valid is a renaming of the original expression when
the expression denotes a name. For all other kinds of expression,
use a constant to capture the value.
* exp_util.adb (Is_Name_Reference): Moved to Sem_Util.
* sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util.
2017-01-23 Justin Squirek <squirek@adacore.com>
* sem_eval.adb (Eval_Integer_Literal): Add special
case to avoid optimizing out check if the literal appears in
an if-expression.
From-SVN: r244792
2017-01-23 Martin Liska <mliska@suse.cz>
* asan.c (create_asan_shadow_var): New function.
(asan_expand_poison_ifn): Likewise.
* asan.h (asan_expand_poison_ifn): New declaration.
* internal-fn.c (expand_ASAN_POISON): Likewise.
* internal-fn.def (ASAN_POISON): New builtin.
* sanopt.c (pass_sanopt::execute): Expand
asan_expand_poison_ifn.
* tree-inline.c (copy_decl_for_dup_finish): Make function
external.
* tree-inline.h (copy_decl_for_dup_finish): Likewise.
* tree-ssa.c (is_asan_mark_p): New function.
(execute_update_addresses_taken): Rewrite local variables
(identified just by use-after-scope as addressable) into SSA.
2017-01-23 Martin Liska <mliska@suse.cz>
* gcc.dg/asan/use-after-scope-3.c: Add additional flags.
* gcc.dg/asan/use-after-scope-9.c: Likewise and grep for
sanopt optimization for ASAN_POISON.
From-SVN: r244791
2017-01-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Try_Primitive_Operations,
Is_Valid_First_Argument_Of): argument is valid if it is a derived
type with unknown discriminants that matches its underlying
record view.
* exp_util.adb (Expand_Subtype_From_Expr): Do not expand
expression if its type is derived from a limited type with
unknown discriminants, because the expansion (which is a call)
must be expanded in the enclosing context to add the proper build-
in-place parameters to the call.
* lib.ads, exp_ch9.adb: Minor fixes in comments.
From-SVN: r244790
2017-01-23 Yannick Moy <moy@adacore.com>
* frontend.adb (Frontend): Do not load runtime
unit for GNATprove when parsing failed.
* exp_ch9.adb: minor removal of extra whitespace
* exp_ch6.adb: minor typo in comment
* sem_util.adb: Code cleanup.
* exp_ch9.ads, par-ch2.adb: minor style fixes in whitespace and comment
* a-ngcefu.adb: minor style fix in whitespace
2017-01-23 Thomas Quinot <quinot@adacore.com>
* scos.ads: Document usage of 'd' as default SCO kind for
declarations.
* par_sco.adb (Traverse_Declarations_Or_Statements.
Traverse_Degenerate_Subprogram): New supporting routine for expression
functions and null procedures.
(Traverse_Declarations_Or_Statements.Traverse_One): Add
N_Expression_Function to the subprogram case; add required
support for null procedures and expression functions.
2017-01-23 Bob Duff <duff@adacore.com>
* namet.ads (Bounded_String): Decrease the size of type
Bounded_String to avoid running out of stack space.
* namet.ads (Append): Don't ignore buffer overflow; raise
Program_Error instead.
From-SVN: r244789
2017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch5.adb, freeze.adb, par-ch4.adb, scng.adb, sem_ch13.adb,
sem_ch3.adb, sem_ch5.adb, sem_ch5.ads, sem_util.adb, sinfo.ads: Minor
reformatting.
* exp_ch9.adb: minor style fix in comment.
2017-01-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Allocator): Handle properly a type derived
for a limited record extension with unknown discriminants whose
full view has no discriminants.
2017-01-23 Yannick Moy <moy@adacore.com>
* exp_spark.adb: Alphabetize with clauses.
From-SVN: r244788
2017-01-23 Gary Dismukes <dismukes@adacore.com>
* a-calend.adb, prep.adb, debug.adb, prj.ads, prepcomp.adb,
exp_disp.adb, s-imgrea.adb, g-socket.adb, g-socket.ads, sem_ch13.adb,
prj-tree.ads: Minor spelling change for consistency (behaviour ->
behavior).
2017-01-23 Ed Schonberg <schonberg@adacore.com>
* scng.adb (Scan): Use Ada version Ada_2020 to flag use of
Target_Name.
* par-ch4.adb (P_Primary): Ditto.
* opt.ads: Add Ada_2020 (optimistically) to enumeration list of
Ada_Version_Type.
* switch-c.adb (Scan_Front_End_Switches): Recognize -gnat2020 for
new Ada version Ada_2020.
2017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
* exp_attr.adb (Expand_Loop_Entry_Attribute): Force the generation
of a nominal type for the constant which captures the value of
the attribute prefix. Various clean ups.
* sem_attr.adb (Analyze_Attribute): Clean up the processing of
'Loop_Entry.
2017-01-23 Yannick Moy <moy@adacore.com>
* sem_util.adb (Has_Enabled_Property): Treat
protected objects and variables differently from other variables.
From-SVN: r244787
2017-01-23 Thomas Quinot <quinot@adacore.com>
* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
Split original Ada 95 part off into new subprogram
below. Call that subprogram (instead of proceeding with
AI95-0133 behaviour) if debug switch -gnatd.p is in use.
(Adjust_Record_For_Reverse_Bit_Order_Ada_95): ... new subprogram
* debug.adb Document new switch -gnatd.p
* freeze.adb (Freeze_Entity.Freeze_Record_Type): Do not adjust
record for reverse bit order if an error has already been posted
on the record type. This avoids generating extraneous "info:"
messages for illegal code.
From-SVN: r244786
2017-01-23 Justin Squirek <squirek@adacore.com>
* sem_ch3.adb (Analyze_Declarations): Correct comments
* freeze.adb (Find_Constant): Add detection of deferred constants
so they are not incorrectly flagged as premature.
From-SVN: r244785
2017-01-23 Ed Schonberg <schonberg@adacore.com>
* scans.ads: New token At_Sign. Remove '@' from list of illegal
characters for future version of the language. '@' is legal name.
* scng.ads, scng.adb (Scan): Handle '@' appropriately.
* scn.adb (Scan_Reserved_Identifier): An occurrence of '@'
denotes a Target_Name.
* par-ch4.adb (P_Name, P_Primary): Handle Target_Name.
* sinfo.ads, sinfo.adb (N_Target_Name): New non-terminal node.
(Has_Target_Names): New flag on N_Assignment_Statement, to
indicate that RHS has occurrences of N_Target_Name.
* sem.adb: Call Analyze_Target_Name.
* sem_ch5.ads, sem_ch5.adb (Analyze_Target_Name): New subpogram.
(urrent_LHS): Global variable that denotes LHS of assignment,
used in the analysis of Target_Name nodes.
* sem_res.adb (Resolve_Target_Name): New procedure.
* exp_ch5.adb (Expand_Assign_With_Target_Names): (AI12-0125):
N is an assignment statement whose RHS contains occurences of @
that designate the value of the LHS of the assignment. If the
LHS is side-effect free the target names can be replaced with
a copy of the LHS; otherwise the semantics of the assignment
is described in terms of a procedure with an in-out parameter,
and expanded as such.
(Expand_N_Assignment_Statement): Call
Expand_Assign_With_Target_Names when needed.
* exp_util.adb (Insert_Actions): Take into account N_Target_Name.
* sprint.adb: Handle N_Target_Name.
From-SVN: r244783
2017-01-23 Eric Botcazou <ebotcazou@adacore.com>
* checks.adb: Minor fix in comment.
2017-01-23 Philippe Gil <gil@adacore.com>
* g-debpoo.adb (Do_Report) remove freed chunks from chunks
count in Sort = Memory_Usage or Allocations_Count
2017-01-23 Justin Squirek <squirek@adacore.com>
* sem_ch3.adb: Code cleanup.
2017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Move all global
variables to the local variable section. Update the profile
of various nested routine that previously had visibility
of those globals. One the matching phase has completed,
remove certain classes of clauses which are considered noise.
(Check_Dependency_Clause): Properly detect a match between two
'Result attributes. Update the various post-match cases to use
Is_Already_Matched as this routine now automatically recognizes
a previously matched 'Result attribute.
(Is_Already_Matched): New routine.
(Remove_Extra_Clauses): New routine.
(Report_Extra_Clauses): Remove the detection of ... => null
clauses as this is now done in Remove_Extra_Clauses.
From-SVN: r244782
2017-01-23 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Array_Aggregate): In ASIS mode do not
report on spurious overlaps between values involving a subtype
with a static predicate, because the expansion of such a subtype
into individual ranges in inhibited in ASIS mode.
2017-01-23 Justin Squirek <squirek@adacore.com>
* sem_ch3.adb (Analyze_Declarations): Add detection
of an edge case and delay freezing if it is present.
From-SVN: r244780