gcc.git
7 years agore PR middle-end/80539 (gcc ICE at -O2 and above on valid code on x86_64-linux-gnu...
Richard Biener [Thu, 27 Apr 2017 11:42:57 +0000 (11:42 +0000)]
re PR middle-end/80539 (gcc ICE at -O2 and above on valid code on x86_64-linux-gnu in "chrec_fold_plus_poly_poly")

2017-04-27  Richard Biener  <rguenther@suse.de>

PR middle-end/80539
* tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
being in loop-closed SSA form conservatively.
(chrec_fold_multiply_poly_poly): Likewise.

* gcc.dg/torture/pr80539.c: New testcase.

From-SVN: r247322

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 11:01:32 +0000 (13:01 +0200)]
[multiple changes]

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb Add new type Visited_Element
and update the contents of table Elab_Visited. Various code clean up.
(Check_Elab_Call): Determine whether a prior call to
the same subprogram was already examined within the same context.
(Check_Internal_Call_Continue): Register the subprogram being
called as examined within a particular context. Do not suppress
elaboration warnings.

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* xoscons.adb, osint.ads: Minor reformatting.

2017-04-27  Bob Duff  <duff@adacore.com>

* g-dyntab.ads, g-dyntab.adb: Misc cleanup. Rename
Table_Count_Type --> Table_Last_Type, because the name
was confusing (a "count" usually starts at zero).  Add
functionality supported or needed by other tables packages
(Move, Release_Threshold).
* g-table.ads, g-table.adb: This is now just a thin wrapper
around g-dyntab.ads/g-dyntab.adb.  Add functionality supported
or needed by other tables packages (Save, Restore).
* table.ads, table.adb: This is now just a thin wrapper around
* g-table.ads/g-table.adb.
* namet.h, scos.h, uintp.h: These files are reaching into the
private data of some instances of g-table, whose names changed,
so the above change requires some adjustment here. It now uses
public interfaces.

2017-04-27  Bob Duff  <duff@adacore.com>

* namet.adb, namet.ads: Minor: remove unused procedures.

2017-04-27  Eric Botcazou  <ebotcazou@adacore.com>

* checks.adb (Apply_Scalar_Range_Check): Initialize Ok variable too.
(Minimize_Eliminate_Overflows): Initialize Llo and Lhi.
Add pragma Warnings on Rtype variable in nested block. *
* exp_ch3.adb (Build_Init_Statements): Initialize VAR_LOC.
* exp_ch4.adb (Expand_Concatenate): Initialize 3 variables.
(Size_In_Storage_Elements): Add pragma Warnings on Res variable.
* exp_ch7.adb (Build_Adjust_Statements): Initialize Bod_Stmts.
(Process_Component_List_For_Finalize): Initialize Counter_Id.
(Build_Finalize_Statements): Initialize Bod_Stmts.
* exp_disp.adb (Expand_Dispatching_Call): Initialize SCIL_Node.

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cfhama.adb, a-cfhamai.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions that are
used in subprogram contracts.
(Current_To_Last): Removed, model
functions should be used instead.
(First_To_Previous): Removed, model functions should be used instead.
(Strict_Equal): Removed, model functions should be used instead.
(No_Overlap): Removed, model functions should be used instead.
(Equivalent_Keys): Functions over cursors are removed. They were
awkward with explicit container parameters.
* a-cofuma.adb, a-cofuma.ads (Lift_Equivalent_Keys): New lemma
(proof only) procedure to help GNATprove when equivalence over
keys is not equality.

From-SVN: r247320

7 years agoexp_util.adb, [...]: Minor reformatting and code cleanups.
Hristian Kirtchev [Thu, 27 Apr 2017 10:58:25 +0000 (10:58 +0000)]
exp_util.adb, [...]: Minor reformatting and code cleanups.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_util.adb, a-cfdlli.adb, a-cfdlli.ads, exp_ch9.adb, g-dyntab.adb,
sem_dim.adb, a-cfinve.adb, a-cfinve.ads, a-cofove.adb, a-cofove.ads:
Minor reformatting and code cleanups.

From-SVN: r247319

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:56:46 +0000 (12:56 +0200)]
[multiple changes]

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* freeze.adb (Build_Inherited_Condition_Pragmas): New procedure,
subsidiary of Check_Inherited_Conditions, to build pragmas for an
operation whose ancestor has classwide pre/postconditions. This
is used both to check the legality of the inheritance in Ada
and in SPARK, and to determine whether a wrapper is needed for
an inherited operation.
* exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
Improve placement of error message for inherited classwide
conditions that become illegal on type derivation.

2017-04-27  Yannick Moy  <moy@adacore.com>

* sem_ch12.adb (Analyze_Generic_Package_Declaration): Set
SPARK_Mode from context on generic package.
* sem_ch7.adb (Analyze_Package_Declaration): Simplify code to remove
useless test.

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cofuve.ads (Range_Shifted): Rewrite precondition to avoid
overflows in computations.
* a-cofove.ads (Capacity_Range): Rewrite last bound to avoid
overflows in computations.
(Insert): Rewrite precondition to avoid overflows in computations.
* a-cfinve.ads (Capacity_Range): Rewrite last bound to avoid
overflows in computations.
(Insert): Rewrite precondition to avoid overflows in computations.

From-SVN: r247318

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:55:17 +0000 (12:55 +0200)]
[multiple changes]

2017-04-27  Steve Baird  <baird@adacore.com>

* exp_ch9.adb (Expand_N_Asynchronous_Select): Initialize the Cancel
flag when it is declared in order to avoid confusing CodePeer about
the possibility of an uninitialized variable read.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_dim.adb (Analyze_Dimension_Object_Declaration): There is
no dimensionality error if the subtype of the expression is
identical to the nominal subtype in the declaration, even though
the expression itself may have been constant-folded and lack a
dimension vector.
* sem_dim.ads: Add comments on setting of dimension vectors and
its interaction with node rewritings and side-effect removal.

2017-04-27  Bob Duff  <duff@adacore.com>

* debug.adb: Minor comment correction.
* sem_dim.ads: Minor reformatting and typo fixes.

2017-04-27  Bob Duff  <duff@adacore.com>

* g-table.adb, g-table.adsa, scos.h: From the C side, access First and
Last of the tables via function calls, rather than relying on layout
of data structures.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* exp_util.adb: No wrapper in GNATprove mode.

2017-04-27  Yannick Moy  <moy@adacore.com>

* sem_res.adb (Resolve_Comparison_Op): Always
evaluate comparisons between values of universal types.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb (Check_Internal_Call_Continue): Do not generate
an elaboration counter nor a check when in GNATprove mode.
* sem_util.adb (Build_Elaboration_Entity): Do not create an
elaboration counter when in GNATprove mode.

From-SVN: r247317

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:52:44 +0000 (12:52 +0200)]
[multiple changes]

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* freeze.adb: copy-paste typo.

2017-04-27  Yannick Moy  <moy@adacore.com>

* sem_prag.adb (Analyze_Pre_Post_In_Decl_Part):
Use correct test to detect call in GNATprove mode instead of
compilation.

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cfdlli.adb, a-cfdlli.ads (Formal_Model.M_Elements_In_Union):
New property function expressing that the element of a
sequence are contained in the union of two sequences.
(Formal_Model.M_Elements_Included): New property function
expressing that the element of a sequence are another sequence.
(Generic_Sorting): Use new property functions to state that
elements are preserved by Sort and Merge.
* a-cofove.adb, a-cofove.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions
that are used in subprogram contracts. (Capacity):
On unbounded containers, return the maximal capacity.
(Current_To_Last): Removed, model functions should be used instead.
(First_To_Previous): Removed, model functions should be used instead.
(Append): Default parameter value replaced
by new wrapper to allow more precise contracts.
(Insert): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Delete): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Prepend): Subprogram restored, it seems it was useful to users even
if it is inefficient.
(Delete_First): Subprogram restored, it seems it
was useful to users even if it is inefficient. (Delete_Last):
Default parameter value replaced by new wrapper to allow more
precise contracts.
(Generic_Sorting.Merge): Subprogram restored.
* a-cfinve.adb, a-cfinve.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions
that are used in subprogram contracts. (Capacity):
On unbounded containers, return the maximal capacity.
(Current_To_Last): Removed, model functions should be used
instead.
(First_To_Previous): Removed, model functions should be used instead.
(Append): Default parameter value replaced
by new wrapper to allow more precise contracts.
(Insert): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Delete): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Prepend): Subprogram restored, it seems it was useful to users even
if it is inefficient.
(Delete_First): Subprogram restored, it seems it
was useful to users even if it is inefficient. (Delete_Last):
Default parameter value replaced by new wrapper to allow more
precise contracts.
(Generic_Sorting.Merge): Subprogram restored.
(Vector): Do not reuse formal vectors, as it is no longer possible
to supply them with an equality function over elements.

2017-04-27  Bob Duff  <duff@adacore.com>

* g-dyntab.adb (Release): When allocating the new
table, use the correct slice of the old table to initialize it.

From-SVN: r247316

7 years agoeinfo.ads: Minor fixes in comments.
Arnaud Charlet [Thu, 27 Apr 2017 10:32:23 +0000 (12:32 +0200)]
einfo.ads: Minor fixes in comments.

* einfo.ads: Minor fixes in comments.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb: disable clones in SPARK_Mode.

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* sem_util.ads, contracts.adb: Minor reformatting.

From-SVN: r247315

7 years agoMinor reformatting.
Arnaud Charlet [Thu, 27 Apr 2017 10:20:52 +0000 (12:20 +0200)]
Minor reformatting.

From-SVN: r247314

7 years agosem_util.adb, [...] (Build_Class_Wide_Clone_Body): Build body of subprogram that...
Ed Schonberg [Thu, 27 Apr 2017 10:20:36 +0000 (10:20 +0000)]
sem_util.adb, [...] (Build_Class_Wide_Clone_Body): Build body of subprogram that has a class-wide condition that contains calls to...

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb, sem_util.ads (Build_Class_Wide_Clone_Body):
Build body of subprogram that has a class-wide condition that
contains calls to other primitives.
(Build_Class_Wide_Clone_Call); Build a call to the common
class-wide clone of a subprogram with classwide conditions. The
body of the subprogram becomes a wrapper for a call to the
clone. The inherited operation becomes a similar wrapper to which
modified conditions apply, and the call to the clone includes
the proper conversion in a call the parent operation.
(Build_Class_Wide_Clone_Decl (Spec_Id : Entity_Id): For a
subprogram that has a classwide condition that contains calls to
other primitives, build an internal subprogram that is invoked
through a type-specific wrapper for all inherited subprograms
that may have a modified condition.
* sem_prag.adb (Check_References): If subprogram has a classwide
condition, create entity for corresponding clone, to be invoked
through wrapper subprograns.
(Analyze_Pre_Post_Condition_In_Decl_Part): Do not emit error
message about placement if pragma isi internally generated.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If subprogram has
a classwide clone, build body of clone as copy of original body,
and rewrite original body as a wrapper as a wrapper for a call to
the clone, so that it incorporates the original pre/postconditions
of the subprogram.
* freeze.adb (Check_Inherited_Conditions): For an inherited
subprogram that inherits a classwide condition, build spec and
body of corresponding wrapper so that call to inherited operation
gets the modified conditions.
* contracts.adb (Analyze_Contracts): If analysis of classwide
condition has created a clone for a primitive operation, analyze
declaration of clone.

From-SVN: r247313

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:17:42 +0000 (12:17 +0200)]
[multiple changes]

2017-04-27  Steve Baird  <baird@adacore.com>

* exp_util.adb (Build_Allocate_Deallocate_Proc):
Add "Suppress => All_Checks" to avoid generating unnecessary
checks.

2017-04-27  Yannick Moy  <moy@adacore.com>

* debug.adb: Reserve debug flag 'm' for no inlining in GNATprove.
* sem_ch6.adb (Anayze_Subprogram_Body_Helper): Skip creation of
inlining body in GNATprove mode when switch -gnatdm used.
* sem_res.adb (Resolve_Call): Skip detection of lack of inlining
in GNATprove mode when switch -gnatdm used.

2017-04-27  Arnaud Charlet  <charlet@adacore.com>

* sem_ch13.adb (Analyze_Attribute_Definition_Clause
[Attribute_Address]): Call Set_Address_Taken when ignoring rep
clauses, so that we keep an indication of the address clause
before removing it from the tree.

From-SVN: r247312

7 years agoexp_util.ads, [...] (Evaluate_Name): Force evaluation of expression being qualified...
Yannick Moy [Thu, 27 Apr 2017 10:14:56 +0000 (10:14 +0000)]
exp_util.ads, [...] (Evaluate_Name): Force evaluation of expression being qualified...

2017-04-27  Yannick Moy  <moy@adacore.com>

* exp_util.ads, exp_util.adb (Evaluate_Name): Force evaluation
of expression being qualified, when not an object name, or else
evaluate the underlying name.

From-SVN: r247311

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:12:12 +0000 (12:12 +0200)]
[multiple changes]

2017-04-27  Jerome Lambourg  <lambourg@adacore.com>

* bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: add -nognarl switch.

2017-04-27  Justin Squirek  <squirek@adacore.com>

* exp_ch7.adb (Build_Finalize_Statements): Move Num_Comps to
Process_Component_List_For_Finalization as a local variable.
(Process_Component_For_Finalize): Add an extra parameter to avoid
global references.
(Process_Component_List_For_Finalization): Correct calls to
Process_Component_For_Finalize to take Num_Comps as a parameter.

From-SVN: r247310

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:00:42 +0000 (12:00 +0200)]
[multiple changes]

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch8.adb (Find_Direct_Name): Account for the case where
a use-visible entity is defined within a nested scope of an
instance when giving priority to entities which were visible in
the original generic.
* sem_util.ads, sem_util.adb (Nearest_Enclosing_Instance): New routine.

2017-04-27  Tristan Gingold  <gingold@adacore.com>

* raise-gcc.c: Don't use unwind.h while compiling
for the frontend, but mimic host behavior.

2017-04-27  Javier Miranda  <miranda@adacore.com>

* sem_ch3.adb (Build_Discriminated_Subtype):
Propagate Has_Pragma_Unreferenced_Objects to the built subtype.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Analyze_Global_Item):
Do not consider discriminants because they are not "entire
objects". Remove the discriminant-related checks because they are
obsolete.
(Analyze_Input_Output): Do not consider discriminants
because they are not "entire objects".

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not
perform check if the current scope does not come from source,
as is the case for a rewritten task body, because check has
been performed already, and may not be doable because of changed
visibility.

From-SVN: r247309

7 years agore PR middle-end/79665 (gcc's signed (x*x)/200 is slower than clang's)
Tamar Christina [Thu, 27 Apr 2017 09:58:27 +0000 (09:58 +0000)]
re PR middle-end/79665 (gcc's signed (x*x)/200 is slower than clang's)

2017-04-26  Tamar Christina  <tamar.christina@arm.com>

PR middle-end/79665
* expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.

From-SVN: r247307

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 09:57:00 +0000 (11:57 +0200)]
[multiple changes]

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* a-cofuse.adb, a-cfdlli.adb, a-cofuse.ads, a-cfdlli.ads, a-cofuve.adb,
a-cofuve.ads, a-cofuma.adb, a-cofuma.ads, sem_eval.adb, a-cofuba.adb:
Minor reformatting.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Analyze_Call): If the return type of a function
is incomplete in an context in which the full view is available,
replace the type of the call by the full view, to prevent spurious
type errors.
* exp_disp.adb (Check_Premature_Freezing): Disable check on an
abstract subprogram so that compiler does not reject a parameter
of a primitive operation of a tagged type being frozen, when
the untagged type of that parameter cannot be frozen.

2017-04-27  Bob Duff  <duff@adacore.com>

* sem_attr.adb (Compute_Type_Key): Don't walk
representation items for irrelevant types, which could be in a
different source file.

2017-04-27  Steve Baird  <baird@adacore.com>

* exp_attr.adb (Expand_N_Attribute_Reference):
Don't expand Image, Wide_Image, Wide_Wide_Image attributes
for CodePeer.

From-SVN: r247305

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 09:52:18 +0000 (11:52 +0200)]
[multiple changes]

2017-04-27  Yannick Moy  <moy@adacore.com>

* exp_unst.ads: Fix typos in comments.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_eval.adb (Choice_Matches): Handle properly a real literal
whose type has a defined static predicate.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch4.adb (Insert_Dereference_Action):
Do not adjust the address of a controlled object when the
associated access type is subject to pragma No_Heap_Finalization.
Code reformatting.

From-SVN: r247304

7 years agoutils.c (gnat_type_for_size): Set TYPE_ARTIFICIAL on created types.
Pierre-Marie de Rodat [Thu, 27 Apr 2017 09:49:49 +0000 (09:49 +0000)]
utils.c (gnat_type_for_size): Set TYPE_ARTIFICIAL on created types.

2017-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>

* gcc-interface/utils.c (gnat_type_for_size): Set
TYPE_ARTIFICIAL on created types.

From-SVN: r247303

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 09:48:45 +0000 (11:48 +0200)]
[multiple changes]

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to
modifications in functional containers.
* a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat
to improve readablity. Subprograms are separated between basic
operations, constructors and properties. Universally quantified
formulas in contracts are factorized in independant functions
with a name and a comment.  Names of parameters are improved.

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_res.adb (Resolve_Type_Conversion): Do not
install a predicate check here since this is already done during
the expansion phase. Verify whether the operand satisfies the
static predicate (if any) of the target type.
* sem_ch3.adb (Analyze_Object_Declaration): Do
not install a predicate check if the object is initialized by
means of a type conversion because the conversion is subjected
to the same check.

2017-04-27  Tristan Gingold  <gingold@adacore.com>

* raise.c (__gnat_builtin_longjmp): Remove.
(__gnat_bracktrace):
Add a dummy definition for the compiler (__gnat_eh_personality,
__gnat_rcheck_04, __gnat_rcheck_10) (__gnat_rcheck_19,
__gnat_rcheck_20, __gnat_rcheck_21) (__gnat_rcheck_30,
__gnat_rcheck_31, __gnat_rcheck_32): Likewise.
* a-exexpr.adb: Renamed from a-exexpr-gcc.adb
* a-except.ads, a-except.adb: Renamed from a-except-2005.ads
and a-except-2005.adb.
* raise-gcc.c: Allow build in compiler, compiled as a C++
file.
(__gnat_Unwind_ForcedUnwind): Adjust prototype.
(db): Constify msg_format.
(get_call_site_action_for): Don't use void arithmetic.
* system.ads (Frontend_Exceptions): Set to False.
(ZCX_By_Default): Set to True.
(GCC_ZC_Support): Set to True.
* gcc-interface/Makefile.in: No more variants for a-exexpr.adb and
a-except.ad[sb].
* gcc-interface/Make-lang.in: Add support for backend zcx exceptions
in gnat1 and gnatbind.
* gnat1, gnatbind: link with raise-gcc.o, a-exctra.o, s-addima.o,
s-excmac.o, s-imgint.o, s-traceb.o, s-trasym.o, s-wchstw.o
* s-excmac.ads, s-excmac.adb: Copy of variants.
* a-except.o: Adjust preequisites.
Add handling of s-excmac-arm.adb and s-excmac-gcc.adb.

From-SVN: r247301

7 years agoPR demangler/80513 check for overflows and invalid characters in thunks
Jonathan Wakely [Thu, 27 Apr 2017 09:44:28 +0000 (10:44 +0100)]
PR demangler/80513 check for overflows and invalid characters in thunks

PR demangler/80513
* cp-demangle.c (d_number): Check for overflow.
* cplus-dem.c (consume_count): Fix overflow check.
(gnu_special): Check for underscore after thunk delta.
* testsuite/demangle-expected: Add tests for overflows and invalid
characters in thunks.

From-SVN: r247300

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 09:28:25 +0000 (11:28 +0200)]
[multiple changes]

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_prag.adb, a-cofuse.adb, a-cofuse.ads, einfo.adb, sem_prag.adb,
cstand.adb, par-prag.adb, a-cofuve.adb, a-cofuve.ads, a-cofuma.adb,
a-cofuma.ads, a-cofuba.adb, a-cofuba.ads: Minor reformatting.

2017-04-27  Tristan Gingold  <gingold@adacore.com>

* s-excmac-gcc.ads, s-excmac-gcc.adb,
s-excmac-arm.ads, s-excmac-arm.adb (New_Occurrence): Rewrite it in
Ada95.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch7.adb (Establish_Transient_Scope): Rewrite
the loop which detects potential enclosing transient scopes. The
loop now terminates much earlier as transient scopes are bounded
by packages and subprograms.

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cfdlli.adb, a-cfdlli.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Cursor): Type is now public so that it can be used in
model functions.
(Formal_Model): Ghost package containing
model functions that are used in subprogram contracts.
(Current_To_Last): Removed, model functions should be used
instead.
(First_To_Previous): Removed, model functions should
be used instead.
(Strict_Equal): Removed, model functions
should be used instead.
(Append): Default parameter value
replaced by new wrapper to allow more precise contracts.
(Insert): Default parameter value replaced by new wrapper to
allow more precise contracts.
(Delete): Default parameter
value replaced by new wrapper to allow more precise contracts.
(Prepend): Default parameter value replaced by new wrapper to
allow more precise contracts.
(Delete_First): Default parameter
value replaced by new wrapper to allow more precise contracts.
(Delete_Last): Default parameter value replaced by new wrapper
to allow more precise contracts.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_spark.adb (Expand_SPARK): Perform specialized expansion
for object declarations.
(Expand_SPARK_N_Object_Declaration): New routine.
* sem_elab.adb (Check_A_Call): Include calls to the
Default_Initial_Condition procedure of a type under the SPARK
elaboration checks umbrella.

From-SVN: r247299

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 09:22:04 +0000 (11:22 +0200)]
[multiple changes]

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem.adb (Analyze): Diagnose an illegal iterated component
association.
* sem_util.ads, sem_util.adb
(Diagnose_Iterated_Component_Association): New routine.

2017-04-27  Bob Duff  <duff@adacore.com>

* adaint.c (__gnat_get_current_dir): Return 0 in length if
getcwd fails.
* a-direct.adb, g-dirope.adb, osint.adb, s-os_lib.adb: Raise
exception if getcwd failed.

2017-04-27  Yannick Moy  <moy@adacore.com>

* exp_dbug.adb, exp_dbug.ads (Get_External_Name): Prefix ghost
entities with special prefix.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* debug.adb Change the documentation of switch -gnatd.s.
* exp_ch7.adb (Make_Transient_Block): Transient blocks do not need
to manage the secondary stack when an enclosing scope already
performs this functionality (aka relaxed management). Switch
-gnatd.s may be used to force strict management in which case
the block will manage the secondary stack unconditionally. Add
a guard to stop the traversal when encountering a package or a
subprogram scope.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (Resolve_Call): Refine further the handling of
limited views of return types in function calls. If the function
that returns a limited view appears in the current unit,
we do not replace its type by the non-limited view because
this transformation is performed int the back-end. However,
the type of the call itself must be the non-limited view, to
prevent spurious resolution errors.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* einfo,ads, einfo.adb (Class_Wide_Preconds, Class_Wide_Postconds):
Removed, proposed implementation using generics for class-wide
preconditions proved impractical.
(Class_Wide_Clone): New attribute of subprogram. Designates
subprogram created for primitive operations with class-wide
pre/postconditions that contain calls to other primitives. The
clone holds the body of the original primitive, but the
pre/postonditions do not apply to it. The original body is
rewritten as a wrapper for a call to the clone.
(Is_Class_Wide_Clone): New flag to identify a Class_Wide_Clone. If
the flag is set, no code for the corresponding pre/postconditions
is inserted into its body.

2017-04-27  Bob Duff  <duff@adacore.com>

* exp_prag.adb, par-prag.adb, sem_ch13.adb: Ignore
Scalar_Storage_Order if -gnatI is given.
* sem_prag.adb (Analyze_Pragma): Ignore
Default_Scalar_Storage_Order if -gnatI is given.

From-SVN: r247298

7 years agoa-cofuba.ads (Add): Take as an additional input parameter the position where the...
Claire Dross [Thu, 27 Apr 2017 09:10:44 +0000 (09:10 +0000)]
a-cofuba.ads (Add): Take as an additional input parameter the position where the element should be...

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cofuba.ads (Add): Take as an additional input parameter
the position where the element should be inserted.
(Remove): New function that removes an element from the container.
* a-cofuma.ads (Add): Adapt to the new API of Base.Add.
* a-cofuse.ads (Add): Adapt to the new API of Base.Add.
(Remove): New function that removes an element from a set.
* a-cofuve.ads (Add): Adapt to the new API of Base.Add.
(Remove): New function that removes an element from a sequence.
(Insert): New function that adds anywhere in a sequence.

From-SVN: r247297

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 09:06:47 +0000 (11:06 +0200)]
[multiple changes]

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Generate_Range_Check): Revert previous change.

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* sem_util.adb: Minor reformatting/rewording.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* lib-xref.adb (Generate_Reference): The use
of attribute 'Result is not considered a violation of pragma
Unreferenced.

2017-04-27  Justin Squirek  <squirek@adacore.com>

* cstand.adb (Create_Standard): Correctly set
Directly_Designated_Type for Any_Access.
* sem_type.adb (Covers): Minor grammar fixes.

2017-04-27  Bob Duff  <duff@adacore.com>

* sem_attr.adb: Minor cleanup.

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cofuba.ads, a-cofuba.adb (Ada.Containers.Functional_Base): New
private child of Ada.Containers used to implement all functional
containers.
* a-cofuma.ads, a-cofuma.adb (Ada.Containers.Functional_Maps): New
child of Ada.Containers. It provides functional indefinite unbounded
maps which can be used as high level models for specification
of data structures.
* a-cofuse.ads, a-cofuse.adb (Ada.Containers.Functional_Sets): New
child of Ada.Containers. It provides functional indefinite unbounded
sets which can be used as high level models for specification
of data structures.
* a-cofuve.ads, a-cofuve.adb (Ada.Containers.Functional_Vectors): New
child of Ada.Containers.  It provides functional indefinite unbounded
vectors which can be used as high level models for specification
of data structures.
* Makefile.rtl: Add new packages.
* impunit.adb: Add new packages.

From-SVN: r247296

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 08:51:18 +0000 (10:51 +0200)]
[multiple changes]

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* sem_ch4.adb: Minor reformatting.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Analyze_Associations): minor reformatting.
(Check_Fixed_Point_Actual): Do not emit a warning on a fixed
point type actual that has user-defined arithmetic primitives,
when there is a previous actual for a formal package that defines
a fixed-point type with the parent user-defined operator.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Generate_Range_Check): Reinstate part of previous change.
* sem_attr.adb (Resolve_Attribute): Generate a range check when
the component type allows range checks.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_aux.adb (Is_Generic_Formal): Use original node to locate
corresponding declaration, because formal derived types are
rewritten as private extensions.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_dim.adb (Analyze_Dimension_Binary_Op): Do not check
dimensions of operands if node has been analyzed already, because
previous analysis and dimension checking will have removed the
dimension information from the operands.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* debug.adb: Document the use of switch -gnatd.s.
* einfo.ads Update the documentation on attribute
Sec_Stack_Needed_For_Return and attribute Uses_Sec_Stack. Remove
the uses of these attributes from certain entities.
* exp_ch7.adb (Make_Transient_Block): Reimplement the circuitry
which determines whether the block should continue to manage
the secondary stack.
(Manages_Sec_Stack): New routine.

2017-04-27  Bob Duff  <duff@adacore.com>

* atree.ads: Minor edit.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sinfo.ads: Update the section on Ghost mode. Add
a section on SPARK mode. Update the placement of section on
expression functions.

2017-04-27  Bob Duff  <duff@adacore.com>

* sinput.adb (Get_Source_File_Index): Don't
assert that S is in the right range in the case where this is
a .dg file under construction.

2017-04-27  Yannick Moy  <moy@adacore.com>

* sem_util.adb (Check_Result_And_Post_State):
Handle more precisely each conjunct in expressions formed by
and'ing sub-expressions.

From-SVN: r247295

7 years agoexp_ch4.adb, [...]: Minor typo fix and reformatting.
Gary Dismukes [Thu, 27 Apr 2017 08:45:22 +0000 (08:45 +0000)]
exp_ch4.adb, [...]: Minor typo fix and reformatting.

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* exp_ch4.adb, sem_ch4.adb: Minor typo fix and reformatting.

From-SVN: r247294

7 years agore PR target/77728 (Miscompilation multiple vector iteration on ARM)
Jakub Jelinek [Thu, 27 Apr 2017 07:13:10 +0000 (09:13 +0200)]
re PR target/77728 (Miscompilation multiple vector iteration on ARM)

PR target/77728
* config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
(aarch64_function_arg_alignment): Return unsigned int again, but still
ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
(aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
Don't emit -Wpsabi note.
(aarch64_function_arg_boundary): Likewise.
(aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
caller.
testsuite/
* g++.dg/abi/pr77728-2.C: Don't expect -Wpsabi notes.

From-SVN: r247292

7 years agoDaily bump.
GCC Administrator [Thu, 27 Apr 2017 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247291

7 years agodecl.c (grok_ctor_properties, [...]): Change return type to bool.
Paolo Carlini [Wed, 26 Apr 2017 22:47:20 +0000 (22:47 +0000)]
decl.c (grok_ctor_properties, [...]): Change return type to bool.

2017-04-26  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (grok_ctor_properties, ambi_op_p, unary_op_p): Change
return type to bool.
* cp-tree.h (grok_ctor_properties): Update.

From-SVN: r247286

7 years agoImprove tests for vector and deque move-assignment
Jonathan Wakely [Wed, 26 Apr 2017 19:25:30 +0000 (20:25 +0100)]
Improve tests for vector and deque move-assignment

* testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
comment. Ensure first test works because allocator type propagates and
not because is_always_equal is true.
* testsuite/23_containers/vector/52591.cc: Likewise. Restore original
testcase that instantiates the move-assignment operator.

From-SVN: r247284

7 years agoparser.c (cp_parser_nested_name_specifier_opt): Add fix-it information to diagnostic...
Volker Reichelt [Wed, 26 Apr 2017 16:57:25 +0000 (16:57 +0000)]
parser.c (cp_parser_nested_name_specifier_opt): Add fix-it information to diagnostic of invalid colon in nested-name-specifier.

        * parser.c (cp_parser_nested_name_specifier_opt): Add fix-it
        information to diagnostic of invalid colon in nested-name-specifier.

        * g++.dg/diagnostic/nested-name-1.C: New test.

From-SVN: r247282

7 years agotree.h (crc32_unsigned_n): Declare.
Nathan Sidwell [Wed, 26 Apr 2017 16:49:10 +0000 (16:49 +0000)]
tree.h (crc32_unsigned_n): Declare.

* tree.h (crc32_unsigned_n): Declare.
(crc32_unsigned, crc32_unsigned): Make inline.
* tree.c (crc32_unsigned_bits): Replace with ...
(crc32_unsigned_n): ... this.
(crc32_unsigned, crc32_byte): Remove.
(crc32_string): Remove unnecessary braces.

From-SVN: r247281

7 years agoipa-cp.c (estimate_local_effects): Convert sreal to int.
Jan Hubicka [Wed, 26 Apr 2017 10:31:08 +0000 (12:31 +0200)]
ipa-cp.c (estimate_local_effects): Convert sreal to int.

* ipa-cp.c (estimate_local_effects): Convert sreal to int.
* ipa-inline-analysis.c (MAX_TIME): Remove.
(account_size_time): Use sreal for time.
(dump_inline_summary): Update.
(estimate_function_body_sizes): Update.
(estimate_edge_size_and_time): Update.
(estimate_calls_size_and_time): Update.
(estimate_node_size_and_time): Update.
(inline_merge_summary): Update.
(inline_update_overall_summary): Update.
(estimate_time_after_inlining): Update.
(inline_read_section): Update.
(inline_write_summary): Update.
* ipa-inline.c (compute_uninlined_call_time): Update.
(compute_inlined_call_time): Update.
(recursive_inlining): Update.
(inline_small_functions): Update.
(dump_overall_stats): Update.
* ipa-inline.h: Include sreal.h.
(size_time_entry): Turn time to sreal.
(inline_summary): Turn self_time nad time to sreal.

From-SVN: r247277

7 years agosreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and data-streamer.h
Jan Hubicka [Wed, 26 Apr 2017 09:57:38 +0000 (11:57 +0200)]
sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and data-streamer.h

* sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
data-streamer.h
(sreal::stream_out, sreal::stream_in): New.
* sreal.h (sreal::stream_out, sreal::stream_in): Declare.

From-SVN: r247276

7 years agoAdd prefix to test verification in guality.h
Martin Liska [Wed, 26 Apr 2017 09:25:28 +0000 (11:25 +0200)]
Add prefix to test verification in guality.h

2017-04-26  Martin Liska  <mliska@suse.cz>

* gcc.dg/guality/guality.h: Add prefix to test verification.

From-SVN: r247275

7 years agoFix comment in contrib/gen_autofdo_event.py
Tom de Vries [Wed, 26 Apr 2017 08:53:31 +0000 (08:53 +0000)]
Fix comment in contrib/gen_autofdo_event.py

2017-04-26  Tom de Vries  <tom@codesourcery.com>

* gen_autofdo_event.py: Fix comment.

From-SVN: r247274

7 years agoDaily bump.
GCC Administrator [Wed, 26 Apr 2017 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247273

7 years ago* g++.dg/dg.exp (find-cxx-tests): Remove TCL 8.5-ism.
Nathan Sidwell [Tue, 25 Apr 2017 22:14:55 +0000 (22:14 +0000)]
* g++.dg/dg.exp (find-cxx-tests): Remove TCL 8.5-ism.

From-SVN: r247269

7 years agoMakefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the environment.
Jakub Jelinek [Tue, 25 Apr 2017 19:44:17 +0000 (21:44 +0200)]
Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the environment.

* Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
environment.

From-SVN: r247266

7 years agore PR target/70799 (STV pass does not convert DImode shifts)
Uros Bizjak [Tue, 25 Apr 2017 17:45:22 +0000 (19:45 +0200)]
re PR target/70799 (STV pass does not convert DImode shifts)

PR target/70799
* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
Handle ASHIFTRT.
(dimode_scalar_chain::compute_convert_gain): Ditto.
(dimode_scalar_chain::make_vector_copies): Ditto.
(dimode_scalar_chain::convert_reg): Ditto.
(dimode_scalar_chain::convert_insn): Ditto.
* config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
(VI248_AVX512BW_1): New mode iterator.
(<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
<mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
mode iterator.

testsuite/ChangeLog:

PR target/70799
* gcc.target/i386/pr70799-5.c: New test.

From-SVN: r247263

7 years agoPR tree-optimization/80497 - ICE at -O1 and above on valid code on x86_64-linux-gnu...
Martin Sebor [Tue, 25 Apr 2017 17:40:58 +0000 (17:40 +0000)]
PR tree-optimization/80497 - ICE at -O1 and above on valid code on x86_64-linux-gnu in tree_to_uhwi

gcc/ChangeLog:

PR tree-optimization/80497
* gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
constants are representable in HOST_WIDE_INT.
(parse_directive): Ditto.

gcc/testsuite/ChangeLog:

PR tree-optimization/80497
* gcc.dg/tree-ssa/builtin-sprintf-warn-17.c: New test.

From-SVN: r247262

7 years agoPR bootstrap/80486 - spurious -Walloc-size-larger-than and -Wstringop-overflow in...
Martin Sebor [Tue, 25 Apr 2017 17:18:39 +0000 (17:18 +0000)]
PR bootstrap/80486 - spurious -Walloc-size-larger-than and -Wstringop-overflow in dominance.c during profiledbootstrap

gcc/ChangeLog:

PR bootstrap/80486
* dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
(new_zero_array): Adjust signature.
(dom_info::dom_init): Used unsigned rather that size_t.
(dom_info::dom_info): Same.

From-SVN: r247261

7 years agore PR target/77728 (Miscompilation multiple vector iteration on ARM)
Ramana Radhakrishnan [Tue, 25 Apr 2017 16:46:34 +0000 (16:46 +0000)]
re PR target/77728 (Miscompilation multiple vector iteration on ARM)

PR target/77728
* config/arm/arm.c: Include gimple.h.
(aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
returns negative, increment ncrn only if it returned positive.
(arm_needs_doubleword_align): Return int instead of bool,
ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
members, but if there is any such non-FIELD_DECL
> PARM_BOUNDARY aligned decl, return -1 instead of false.
(arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
returns negative, increment nregs only if it returned positive.
(arm_setup_incoming_varargs): Likewise.
(arm_function_arg_boundary): Emit -Wpsabi note if
arm_needs_doubleword_align returns negative, return
DOUBLEWORD_ALIGNMENT only if it returned positive.
testsuite/
* g++.dg/abi/pr77728-1.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r247258

7 years agore PR sanitizer/80349 (UBSAN: compile time crash with "type mismatch in binary expres...
Marek Polacek [Tue, 25 Apr 2017 16:39:57 +0000 (16:39 +0000)]
re PR sanitizer/80349 (UBSAN: compile time crash with "type mismatch in binary expression" message)

PR sanitizer/80349
* fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
first argument to type.

* g++.dg/ubsan/pr80349-2.C: New test.

From-SVN: r247257

7 years agoparser.c (cp_parser_elaborated_type_specifier): Add fix-it to diagnostic of invalid...
Volker Reichelt [Tue, 25 Apr 2017 16:12:58 +0000 (16:12 +0000)]
parser.c (cp_parser_elaborated_type_specifier): Add fix-it to diagnostic of invalid class/struct keyword after enum.

        * parser.c (cp_parser_elaborated_type_specifier): Add fix-it to
        diagnostic of invalid class/struct keyword after enum.

        * g++.dg/cpp0x/enum34.C: New test.

From-SVN: r247254

7 years agognat_rm.texi, [...]: Update documentation.
Arnaud Charlet [Tue, 25 Apr 2017 15:59:28 +0000 (15:59 +0000)]
gnat_rm.texi, [...]: Update documentation.

* gnat_rm.texi, gnat_ugn.texi,
doc/gnat_ugn/building_executable_programs_with_gnat.rst,
doc/gnat_ugn/platform_specific_information.rst,
doc/gnat_ugn/gnat_and_program_execution.rst,
doc/gnat_ugn/gnat_utility_programs.rst,
doc/gnat_ugn/the_gnat_compilation_model.rst,
doc/gnat_rm/implementation_defined_attributes.rst,
doc/gnat_rm/the_gnat_library.rst,
doc/gnat_rm/implementation_defined_pragmas.rst,
doc/gnat_rm/representation_clauses_and_pragmas.rst,
doc/gnat_rm/implementation_of_specific_ada_features.rst,
doc/gnat_rm/implementation_defined_aspects.rst,
doc/gnat_rm/implementation_defined_characteristics.rst: Update
documentation.

From-SVN: r247253

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 15:54:39 +0000 (17:54 +0200)]
[multiple changes]

2017-04-25  Arnaud Charlet  <charlet@adacore.com>

* exp_ch4.adb (Expand_N_Case_Expression): Emit error message when
generating C code on complex case expressions.

2017-04-25  Arnaud Charlet  <charlet@adacore.com>

* sem_prag.adb (Analyze_Pragma): Generate a warning instead
of silently ignoring pragma Ada_xxx in Latest_Ada_Only mode.
* directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Use
Ada_2012 instead of Ada_2005 to be compatible with the above
change.
* bindgen.adb: Silence new warning on pragma Ada_95.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Generate_Range_Check): Revert part of previous change.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Try_Container_Indexing): Handle properly a
container indexing operation that appears as a an actual in a
parameter association in a procedure call.

2017-04-25  Olivier Ramonat  <ramonat@adacore.com>

* prj-proc.adb, sem_util.adb, s-stposu.adb, sem_attr.adb, prj-conf.ads:
Fix spelling mistakes.

2017-04-25  Bob Duff  <duff@adacore.com>

* types.ads, osint.adb, sinput-c.adb, sinput-d.adb, sinput-l.adb,
* sinput-p.adb: Use regular fat pointers, with bounds checking,
for source buffers.  Fix misc obscure bugs.
* sinput.ads, sinput.adb: Use regular fat pointers, with bounds
checking, for source buffers.  Modify representation clause for
Source_File_Record as appropriate.  Move Source_File_Index_Table
from spec to body, because it is not used outside the body.
Move Set_Source_File_Index_Table into the private part, because
it is used only in the body and in children.  Use trickery to
modify the dope in the generic instantiation case.  It's ugly,
but not as ugly as the previous method.  Fix documentation.
Remove obsolete code.
* fname-sf.adb, targparm.adb: Fix misc out-of-bounds
indexing in source buffers.
* fmap.adb: Avoid conversions from one string type to another.
Remove a use of global name buffer.
* osint.ads, sfn_scan.ads, sfn_scan.adb, sinput-c.ads: Comment
fixes.

From-SVN: r247252

7 years agoAdd dg-line
Tom de Vries [Tue, 25 Apr 2017 15:42:35 +0000 (15:42 +0000)]
Add dg-line

Context: there are currently two types of line number supported in
dg-{error,warning,message,bogus} directives: absolute and relative.  With an
absolute line number, it's immediately clear what line number is meant, but
when a line is added at the start of the file, the line number needs to be
updated.  With a relative line number, that problem is solved, but when relative
line numbers become large, it becomes less clear what line it refers to, and
when adding a line inbetween the directive using the relative line number and
the line it refers to, the relative line number still needs to be updated.

Add a directive dg-line with argument varname, that saves the line number
of the directive in a variable varname, which can be used as line number in dg
directives.

2017-04-25  Tom de Vries  <tom@codesourcery.com>

* lib/gcc-dg.exp (cleanup-after-saved-dg-test): Cleanup line number
variables.
(dg-line): New proc.
(process-message): Handle line number variables.
* objc.dg/try-catch-12.m: Use dg-line.

From-SVN: r247251

7 years ago[PATCH, rs6000] pr80482 Relax vector builtin parameter checks
Bill Seurer [Tue, 25 Apr 2017 15:22:40 +0000 (15:22 +0000)]
[PATCH, rs6000] pr80482 Relax vector builtin parameter checks

PR target/80482

This patch changes the parameter testing for powerpc vector builtins to relax
the existing requirement that the parameters be identical to instead that they
be compatible.  This allows for mixing parameters with differing qualified
(const, volatile, etc.) types.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80482 for more information.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu and
powerpc64be-unknown-linux-gnu with no regressions.  Is this ok for trunk?

[gcc]

2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>

PR target/80482
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
type checks to test for compatibility instead of equality.

[gcc/testsuite]

2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>

PR target/80482
* gcc.target/powerpc/vec-constvolatile.c: New test.

From-SVN: r247250

7 years agoC++: fix-it hint for removing stray semicolons
David Malcolm [Tue, 25 Apr 2017 14:10:52 +0000 (14:10 +0000)]
C++: fix-it hint for removing stray semicolons

gcc/cp/ChangeLog:
* parser.c (cp_parser_member_declaration): Add fix-it hint
for removing stray semicolons.

gcc/testsuite/ChangeLog:
* g++.dg/semicolon-fixits.C: New test case.

From-SVN: r247244

7 years agoC: fix-it hint for removing stray semicolons
David Malcolm [Tue, 25 Apr 2017 14:03:55 +0000 (14:03 +0000)]
C: fix-it hint for removing stray semicolons

gcc/c/ChangeLog:
* c-parser.c (c_parser_struct_or_union_specifier): Add fix-it
hint for removing extra semicolon.

gcc/testsuite/ChangeLog:
* gcc.dg/semicolon-fixits.c: New test case.

From-SVN: r247243

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 13:58:36 +0000 (15:58 +0200)]
[multiple changes]

2017-04-25  Gary Dismukes  <dismukes@adacore.com>

* exp_util.adb, exp_ch4.adb: Minor reformatting.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb: Code clean up in various routines.
(Generate_Range_Check): Do not generate a range check when the
expander is not active or when index/range checks are suppressed
on the target type.
(Insert_List_After_And_Analyze, Insert_List_Before_And_Analyze):
Remove variants that include a Supress parameter. These routines
are never used, and were introduced before the current scope-based
check suppression method.

2017-04-25  Vasiliy Fofanov  <fofanov@adacore.com>

* prj-part.adb, cstreams.c, osint.adb, osint.ads: Remove VMS specific
code and some subprogram calls that are now noop.

From-SVN: r247242

7 years agoC++: hints for missing std:: headers
David Malcolm [Tue, 25 Apr 2017 13:54:35 +0000 (13:54 +0000)]
C++: hints for missing std:: headers

gcc/cp/ChangeLog:
* name-lookup.c (get_std_name_hint): New function.
(maybe_suggest_missing_header): New function.
(suggest_alternative_in_explicit_scope): Call
maybe_suggest_missing_header.

gcc/testsuite/ChangeLog:
* g++.dg/lookup/missing-std-include.C: New test file.

From-SVN: r247240

7 years agore PR target/77728 (Miscompilation multiple vector iteration on ARM)
Ramana Radhakrishnan [Tue, 25 Apr 2017 13:52:33 +0000 (13:52 +0000)]
re PR target/77728 (Miscompilation multiple vector iteration on ARM)

PR target/77728
* config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
type.
(aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
the alignment computation, but return their maximum in warn_alignment.
(aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
is smaller.
(aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
(aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
caller.
testsuite/
* g++.dg/abi/pr77728-2.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r247239

7 years agoMinor reformatting.
Arnaud Charlet [Tue, 25 Apr 2017 13:42:56 +0000 (15:42 +0200)]
Minor reformatting.

From-SVN: r247238

7 years agoexp_ch4.adb (Expand_N_Case_Expression): Take Minimize_Expression_With_Actions into...
Arnaud Charlet [Tue, 25 Apr 2017 13:42:35 +0000 (13:42 +0000)]
exp_ch4.adb (Expand_N_Case_Expression): Take Minimize_Expression_With_Actions into account when possible.

2017-04-25  Arnaud Charlet  <charlet@adacore.com>

* exp_ch4.adb (Expand_N_Case_Expression): Take
Minimize_Expression_With_Actions into account when possible.

From-SVN: r247237

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 13:41:04 +0000 (15:41 +0200)]
[multiple changes]

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_util.adb (Known_Non_Null): Moved to Sem_Util.
(Known_Null): Moved to Sem_Util.
* exp_util.ads (Known_Non_Null): Moved to Sem_Util.
(Known_Null): Moved to Sem_Util.
* sem_util.adb Add new enumeration type Null_Status_Kind.
(Known_Non_Null): Moved from Exp_Util. Most of the logic in
this routine is now carried out by Null_Status.
(Known_Null): Moved from Exp_Util. Most of the logic in this routine
is now carried out by Null_Status.
(Null_Status): New routine.
* sem_util.ads (Known_Non_Null): Moved from Exp_Util.
(Known_Null): Moved from Exp_Util.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Expression_Function): Do not report an
error on the return type of an expression function that is a
completion, if the type is derived from a generic formal type.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_dim.adb (Dimensions_Of_Operand): The dimensions of a type
conversion are those of the target type.

2017-04-25  Bob Duff  <duff@adacore.com>

* a-clrefi.adb: Minor cleanup.

From-SVN: r247236

7 years agoexp_util.adb, [...]: Minor reformatting.
Gary Dismukes [Tue, 25 Apr 2017 13:39:30 +0000 (13:39 +0000)]
exp_util.adb, [...]: Minor reformatting.

2017-04-25  Gary Dismukes  <dismukes@adacore.com>

* exp_util.adb, exp_util.ads, types.ads: Minor reformatting.

From-SVN: r247235

7 years agoerr_vars.ads, [...]: Eliminate the vestigial Internal_Source_File and the Internal_So...
Bob Duff [Tue, 25 Apr 2017 13:37:18 +0000 (13:37 +0000)]
err_vars.ads, [...]: Eliminate the vestigial Internal_Source_File and the Internal_Source buffer.

2017-04-25  Bob Duff  <duff@adacore.com>

* err_vars.ads, fmap.adb, fmap.ads, comperr.adb, fname-sf.adb,
types.adb, types.ads, types.h, sinput-l.adb, targparm.adb,
errout.adb, sinput.adb, sinput.ads, cstand.adb, scn.adb,
scn.ads, gnatls.adb: Eliminate the vestigial Internal_Source_File and
the Internal_Source buffer. This removes the incorrect call to "="
the customer noticed.
Wrap remaining calls to "=" in Null_Source_Buffer_Ptr. We
eventually need to eliminate them altogether. Or else get rid
of zero-origin addressing.

From-SVN: r247234

7 years agoFix spelling suggestions for reserved words (PR c++/80177)
David Malcolm [Tue, 25 Apr 2017 13:34:50 +0000 (13:34 +0000)]
Fix spelling suggestions for reserved words (PR c++/80177)

gcc/cp/ChangeLog:
PR c++/80177
* name-lookup.c (suggest_alternative_in_explicit_scope): Convert
candidate type of bm from tree to const char *.
(consider_binding_level): Likewise.
(lookup_name_fuzzy): Likewise, using this to merge the best
result from the preprocessor into bm, rather than immediately
returning, so that better matches from reserved words can "win".
Guard the rejection of keywords that don't start decl-specifiers
so it only happens for FUZZY_LOOKUP_TYPENAME.

gcc/testsuite/ChangeLog:
PR c++/80177
* g++.dg/spellcheck-pr80177.C: New test case.

From-SVN: r247233

7 years agoMinor reformatting.
Arnaud Charlet [Tue, 25 Apr 2017 13:33:32 +0000 (15:33 +0200)]
Minor reformatting.

From-SVN: r247232

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 13:33:16 +0000 (15:33 +0200)]
[multiple changes]

2017-04-25  Claire Dross  <dross@adacore.com>

* exp_util.ads (Expression_Contains_Primitives_Calls_Of): New
function used in GNATprove to know if an expression contains
non-dispatching calls on primitives of a tagged type.

2017-04-25  Bob Duff  <duff@adacore.com>

* rtsfind.adb (Initialize): Initialize
First_Implicit_With. Building the compiler with Normalize_Scalars
and validity checking finds this being used as an uninitialized
variable.

From-SVN: r247231

7 years agocontracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): Add a warning about SPARK...
Hristian Kirtchev [Tue, 25 Apr 2017 13:30:56 +0000 (13:30 +0000)]
contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): Add a warning about SPARK mode management.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract):
Add a warning about SPARK mode management. The routine now
saves and restores both the mode and associated pragma.
(Analyze_Entry_Or_Subprogram_Contract): Add a warning about
SPARK mode management. The routine now saves and restores both
the mode and associated pragma.
(Analyze_Object_Contract):
Add a warning about SPARK mode management. The routine
now saves and restores both the mode and associated pragma.
(Analyze_Package_Body_Contract): Add a warning about SPARK mode
management.  The routine now saves and restores both the mode
and associated pragma. (Analyze_Package_Contract): Add a warning
about SPARK mode management. The routine now saves and restores
both the mode and associated pragma.
(Analyze_Task_Contract):
Add a warning about SPARK mode management. The routine now saves
and restores both the mode and associated pragma.
* expander.adb (Expand): Change the way the Ghost mode is saved
and restored.
* exp_ch3.adb (Freeze_Type): Change the way the Ghost mode is
saved and restored.
* exp_disp.adb (Make_DT): Change the way the Ghost mode is saved
and restored.
* exp_util.adb (Build_DIC_Procedure_Body):
Change the way the Ghost mode is saved and restored.
(Build_DIC_Procedure_Declaration): Change the way the Ghost
mode is saved and restored.
(Build_Invariant_Procedure_Body):
Change the way the Ghost mode is saved and restored.
(Build_Invariant_Procedure_Declaration): Change the way the Ghost
mode is saved and restored.
(Make_Predicate_Call): Change the
way the Ghost mode is saved and restored.
* freeze.adb (Freeze_Entity): Change the way the Ghost mode is
saved and restored.
* ghost.adb (Mark_And_Set_Ghost_Assignment): Remove parameter Mode
and its assignment.
(Mark_And_Set_Ghost_Body): Remove parameter
Mode and its assignment.
(Mark_And_Set_Ghost_Completion):
Remove parameter Mode and its assignment.
(Mark_And_Set_Ghost_Declaration): Remove parameter Mode and its
assignment.
(Mark_And_Set_Ghost_Instantiation): Remove parameter
Mode and its assignment.
(Mark_And_Set_Ghost_Procedure_Call):
Remove parameter Mode and its assignment.
(Set_Ghost_Mode):
Remove parameter Mode and its assignment.
* ghost.ads (Mark_And_Set_Ghost_Assignment): Remove parameter Mode
and update the comment on usage.
(Mark_And_Set_Ghost_Body):
Remove parameter Mode and update the comment on usage.
(Mark_And_Set_Ghost_Completion): Remove parameter Mode and
update the comment on usage.
(Mark_And_Set_Ghost_Declaration):
Remove parameter Mode and update the comment on usage.
(Mark_And_Set_Ghost_Instantiation): Remove parameter Mode and
update the comment on usage.
(Mark_And_Set_Ghost_Procedure_Call):
Remove parameter Mode and update the comment on usage.
(Set_Ghost_Mode): Remove parameter Mode and update the comment
on usage.
* lib.ads Remove obsolete fields SPARK_Mode_Pragma from various
types.
* lib-load.adb (Create_Dummy_Package_Unit): Remove the assignment
of obsolete field SPARK_Mode_Pragma.
(Load_Main_Source): Remove
the assignment of obsolete field SPARK_Mode_Pragma.
(Load_Unit): Remove the assignment of obsolete field SPARK_Mode_Pragma.
* lib-writ.adb (Add_Preprocessing_Dependency): Remove
the assignment of obsolete field SPARK_Mode_Pragma.
(Ensure_System_Dependency): Remove the assignment of obsolete
field SPARK_Mode_Pragma.
* rtsfind.adb (Load_RTU): Add a warning about Ghost and SPARK
mode management. Change the way Ghost and SPARK modes are saved
and restored.
* sem.adb (Analyze): Change the way the Ghost mode is saved
and restored.
* sem_ch3.adb (Analyze_Object_Declaration): Change the way the
Ghost mode is saved and restored.
(Process_Full_View): Change
the way the Ghost mode is saved and restored.
* sem_ch5.adb (Analyze_Assignment): Change the way the Ghost
mode is saved and restored.
* sem_ch6.adb (Analyze_Procedure_Call): Change the way the Ghost
mode is saved and restored.
(Analyze_Subprogram_Body_Helper):
Change the way the Ghost mode is saved and restored.
* sem_ch7.adb (Analyze_Package_Body_Helper): Change the way the
Ghost mode is saved and restored.
* sem_ch10.adb (Analyze_Subunit): Add a warning about SPARK mode
management. Save the SPARK mode-related data prior to any changes
to the scope stack and contexts. The mode is then reinstalled
before the subunit is analyzed in order to restore the original
view of the subunit.
* sem_ch12.adb (Analyze_Package_Instantiation): Update the
warning on region management.  Change the way the Ghost and
SPARK modes are saved and restored.
(Inline_Instance_Body):
Add a warning about SPARK mode management. Code clean up.
(Analyze_Subprogram_Instantiation): Update the warning on region
management.  Change the way the Ghost and SPARK modes are saved
and restored.
(Instantiate_Package_Body): Update the warning
on region management. Change the way the Ghost and SPARK modes
are saved and restored.
(Instantiate_Subprogram_Body): Update
the warning on region management. Change the way the Ghost and
SPARK modes are saved and restored.
(Set_Instance_Env): Add a
warning about SPARK mode management. Change the way SPARK mode
is saved and restored.
* sem_ch13.adb (Build_Predicate_Functions):
Change the way the Ghost mode is saved and restored.
(Build_Predicate_Function_Declaration): Change the way the Ghost
mode is saved and restored.
* sem_elab.adb (Check_Elab_Calls): Add a warning about SPARK
mode management. Change the way SPARK mode is saved and restored.
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
Change the way the Ghost mode is saved and restored.
(Analyze_Initial_Condition_In_Decl_Part): Change the way
the Ghost mode is saved and restored.
(Analyze_Pragma):
Change the way the Ghost mode is saved and restored.
(Analyze_Pre_Post_Condition_In_Decl_Part): Change the way the
Ghost mode is saved and restored.
* sem_util.adb (Install_SPARK_Mode): New routine.
(Restore_SPARK_Mode): New routine.
(Save_SPARK_Mode_And_Set): Removed.
(Set_SPARK_Mode): New routine.
* sem_util.ads (Install_SPARK_Mode): New routine.
(Restore_SPARK_Mode): New routine.
(Save_SPARK_Mode_And_Set): Removed.
(Set_SPARK_Mode): New routine.

From-SVN: r247230

7 years agosem_util.adb, [...] (From_Nested_Package): New predicate to determine whether a type...
Ed Schonberg [Tue, 25 Apr 2017 13:28:14 +0000 (13:28 +0000)]
sem_util.adb, [...] (From_Nested_Package): New predicate to determine whether a type is declared in a local package that...

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb, sem_util.ads (From_Nested_Package): New predicate
to determine whether a type is declared in a local package that
has not yet been frozen.
* freeze.adb (Freeze_Before): Use new predicate to determine
whether a local package must be installed on the scope stack
in order to evaluate in the proper scope actions generated by
aspect specifications, such as Predicate
* sem_ch13.adb: Simplify code in Analyze_Aspects_At_Freeze_Point
using new predicate.

From-SVN: r247229

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 13:27:07 +0000 (15:27 +0200)]
[multiple changes]

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not consider
comparisons between non- scalar expressions expressions because
their values cannot be invalidated.
* sem_warn.ads (Warn_On_Constant_Valid_Condition): Update the
comment on usage.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* par_sco.adb: Minor reformatting.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): If entity
is a type from an unfrozen local package, install package to
complete the analysis of delayed aspects of the type.

2017-04-25  Tristan Gingold  <gingold@adacore.com>

* bingen.adb (System_Version_Control_Used): New variable.
(Resolve_Binder_Options): Set the above variable.
(Gen_Output_File_Ada): Conditionally call Gen_Versions.
(Gen_Elab_Order): Emit blank line before.

2017-04-25  Justin Squirek  <squirek@adacore.com>

* sem_cat.adb (Validate_RT_RAT_Component): Added
an extra check to ignore incomplete types.

From-SVN: r247228

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 13:25:06 +0000 (15:25 +0200)]
[multiple changes]

2017-04-25  Thomas Quinot  <quinot@adacore.com>

* sem_prag.adb (Analyze_Pragma, case Pragma_Check): Remove
bogus circuitry for the case where Name is Predicate.

2017-04-25  Thomas Quinot  <quinot@adacore.com>

* par_sco.adb(Traverse_Declarations_Or_Statements.Traverse_Aspects):
Create SCOs for Predicate aspects in disabled
state initially, to be enabled later on by...
* sem_ch13.adb (Build_Predicate_Functions.Add_Predicates): Mark
SCO for predicate as enabled.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* comperr.adb (Compiler_Abort): Remove now obsolete pair of
pragmas Warnings Off / On.
* namet.adb (Finalize): Remove now obsolete pair of pragmas
Warnings Off / On.
* output.adb: Remove now obsolete pair of pragmas Warnings Off / On.
* sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not
consider comparisons between static expressions because their
values cannot be invalidated.
* urealp.adb (Tree_Read): Remove now obsolete pair of pragmas
Warnings Off / On.
(Tree_Write): Remove now obsolete pair of pragmas Warnings Off / On.
* usage.adb Remove now obsolete pair of pragmas Warnings Off / On.

2017-04-25  Bob Duff  <duff@adacore.com>

* sem_elab.adb (In_Task_Activation): Trace internal calls in
task bodies.

From-SVN: r247227

7 years ago[ARC][COMMITTED] Fix typo dmpyh pattern
Claudiu Zissulescu [Tue, 25 Apr 2017 13:22:00 +0000 (15:22 +0200)]
[ARC][COMMITTED] Fix typo dmpyh pattern

gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/simdext.md (dmpyh): Fix typo.

From-SVN: r247226

7 years agosem_prag.adb, [...]: Minor reformatting and typo fixes.
Gary Dismukes [Tue, 25 Apr 2017 13:21:15 +0000 (13:21 +0000)]
sem_prag.adb, [...]: Minor reformatting and typo fixes.

2017-04-25  Gary Dismukes  <dismukes@adacore.com>

* sem_prag.adb, sem_warn.adb, sem_eval.adb: Minor reformatting and
typo fixes.

From-SVN: r247225

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 13:19:23 +0000 (15:19 +0200)]
[multiple changes]

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* comperr.adb (Compiler_Abort): Add a pair of pragma Warnings
On/Off to defend against a spurious warning in conditional
compilation.
* exp_ch4.adb (Rewrite_Comparison): Reimplemented.
* namet.adb (Finalize): Add a pair of pragma Warnings On/Off to
defend against a spurious warning in conditional compilation.
* output.adb Add a pair of pragma Warnings On/Off to defend
against a spurious warning in conditional compilation.
* sem_eval.adb (Eval_Relational_Op): Major code clean up.
(Fold_General_Op): New routine.
(Fold_Static_Real_Op): New routine.
(Test_Comparison): New routine.
* sem_eval.ads (Test_Comparison): New routine.
* sem_warn.adb (Is_Attribute_Constant_Comparison): New routine.
(Warn_On_Constant_Valid_Condition): New routine.
(Warn_On_Known_Condition): Use Is_Attribute_Constant_Comparison
to detect a specific case.
* sem_warn.adb (Warn_On_Constant_Valid_Condition): New routine.
* urealp.adb (Tree_Read): Add a pair of pragma Warnings On/Off
to defend against a spurious warning in conditional compilation.
(Tree_Write): Add a pair of pragma Warnings On/Off to defend
against a spurious warning in conditional compilation.
* usage.adb Add a pair of pragma Warnings On/Off to defend
against a spurious warning in conditional compilation.

2017-04-25  Arnaud Charlet  <charlet@adacore.com>

* sinfo.ads, sem_ch13.adb: Update comment.

From-SVN: r247224

7 years agoCode cleanup.
Arnaud Charlet [Tue, 25 Apr 2017 13:06:11 +0000 (15:06 +0200)]
Code cleanup.

From-SVN: r247223

7 years ago017-04-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
Bernd Edlinger [Tue, 25 Apr 2017 13:05:22 +0000 (13:05 +0000)]
017-04-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-common.c (c_type_hasher, type_hash_table): Remove.
        (c_common_get_alias_set): Remove unreachable code.
        * c-opts.c (c_common_post_options): Make sure cc1 takes only one file.

From-SVN: r247222

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 13:05:10 +0000 (15:05 +0200)]
[multiple changes]

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_util.adb (Is_Post_State): A reference to a
generic in out parameter is considered a change in the post-state
of a subprogram.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Load_Parent_Of_Generic); When retrieving the
declaration of a subprogram instance within its wrapper package,
skip over null statements that may result from the rewriting of
ignored pragmas.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* exp_attr.adb (Expand_Attribute_Reference, case 'Read):
If the type is an unchecked_union, replace the attribute with
a Raise_Program_Error (rather than inserting such before the
attribute reference) to handle properly the case where we are
processing a component of a larger record, and we need to prevent
further expansion for the unchecked union.
(Expand_Attribute_Reference, case 'Write): If the type is
an unchecked_union, check whether enclosing scope is a Write
subprogram. Replace attribute with a Raise_Program_Error if the
discriminants of the unchecked_union type have not default values
because such a use is erroneous..

2017-04-25  Tristan Gingold  <gingold@adacore.com>

* exp_ch9.adb (Expand_N_Task_Type_Declaration):
Add relative_deadline to task record on edf profile.
(Make_Initialize_Protection): Pass deadline_floor value on edf profile.
(Make_Task_Create_Call): Pass relative_deadline value.
* par-prag.adb (Prag): Handle Pragma_Deadline_Floor.
* s-rident.ads (Profile_Name): Add GNAT_Ravenscar_EDF.
(Profile_Info): Add info for GNAT_Ravenscar_EDF.
* sem_prag.adb (Set_Ravenscar_Profile): Handle
GNAT_Ravenscar_EDF (set scheduling policy).
(Analyze_Pragma): Handle GNAT_Ravenscar_EDF profile and Deadline_Floor
pragma.
(Sig_Flags): Add choice for Pragma_Deadline_Floor.
* snames.ads-tmpl (Name_Deadline_Floor, Name_Gnat_Ravenscar_EDF):
New names.
(Pragma_Deadline_Floor): New pragma.
* targparm.adb (Get_Target_Parameters): Recognize
GNAT_Ravenscar_EDF profile.

From-SVN: r247221

7 years agognatvsn.ads (Library_Version): Bump to 8.
Arnaud Charlet [Tue, 25 Apr 2017 13:02:18 +0000 (15:02 +0200)]
gnatvsn.ads (Library_Version): Bump to 8.

* gnatvsn.ads (Library_Version): Bump to 8. Update comment.

From-SVN: r247220

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:58:46 +0000 (14:58 +0200)]
[multiple changes]

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_aux.adb (Nearest_Ancestor): Use original node of type
declaration to locate nearest ancestor, because derived
type declarations for record types are rewritten as record
declarations.
* sem_ch13.adb (Add_Call): Use an unchecked conversion to handle
properly derivations that are completions of private types.
(Add_Predicates): If type is private, examine rep. items of full
view, which may include inherited predicates.
(Build_Predicate_Functions): Ditto.

2017-04-25  Javier Miranda  <miranda@adacore.com>

* sem_util.adb (New_Copy_Tree.Visit_Entity): Extend previous change
to generate new entities for subtype declarations located in
Expression_With_Action nodes.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb (Check_A_Call): Remove
local variables Is_DIC_Proc and Issue_In_SPARK. Verify the
need for Elaborate_All when SPARK elaboration checks are
required. Update the checks for instances, variables, and calls
to Default_Initial_Condition procedures.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* aspects.ads, aspects.adb: Make the GNAT-specific pragma No_Inline
into a boolean aspect, in analogy with the Ada aspect No_Return.

From-SVN: r247219

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:56:34 +0000 (14:56 +0200)]
[multiple changes]

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb, sem_ch13.adb, sem_ch6.adb: Minor reformatting.

2017-04-25  Bob Duff  <duff@adacore.com>

* sem_res.adb (Resolve_Actuals): Under -gnatd.q, reset
Is_True_Constant for an array variable that is passed to a
foreign function as an 'in' parameter.
* debug.adb: Document -gnatd.q.

From-SVN: r247218

7 years agosem_ch6.adb (Analyze_Expression_Function): If expression function is completion and...
Ed Schonberg [Tue, 25 Apr 2017 12:55:11 +0000 (12:55 +0000)]
sem_ch6.adb (Analyze_Expression_Function): If expression function is completion and return type is an access type do not...

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Expression_Function): If expression function
is completion and return type is an access type do not freeze
designated type: this will be done in the process of freezing
the expression if needed.
(Freeze_Expr_Types): Check whether type is complete before
creating freeze node, to provide a better error message if
reference is premature.
* sem_ch13.adb (Check_Indexing_Functions): Ignore inherited
functions created by type derivations.

From-SVN: r247217

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:49:24 +0000 (14:49 +0200)]
[multiple changes]

2017-04-25  Pascal Obry  <obry@adacore.com>

* g-sercom.ads: Add simple usage of GNAT.Serial_Communication.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_res.adb (Resolve_Type_Conversion):
When resolving against any fixed type, set the type of the
operand as universal real when the operand is a multiplication
or a division where both operands are of any fixed type.
(Unique_Fixed_Point_Type): Add local variable ErrN. Improve the
placement of an error message by pointing to the operand of a
type conversion rather than the conversion itself.

2017-04-25  Thomas Quinot  <quinot@adacore.com>

* sem_ch13.adb (Build_Predicate_Function_Declaration): Set
Needs_Debug_Info when producing SCOs.

2017-04-25  Thomas Quinot  <quinot@adacore.com>

* exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
Always pass a null finalization master for a library level named access
type to which a pragme No_Heap_Finalization applies.

From-SVN: r247216

7 years agodg.exp (find-cxx-tests): New function.
Nathan Sidwell [Tue, 25 Apr 2017 12:49:17 +0000 (12:49 +0000)]
dg.exp (find-cxx-tests): New function.

* g++.dg/dg.exp (find-cxx-tests): New function.
(main): Use it, remove explicit pruning

From-SVN: r247215

7 years agore PR ada/78845 (Inverse (Real_Matrix) result has wrong bounds)
Arnaud Charlet [Tue, 25 Apr 2017 12:44:16 +0000 (14:44 +0200)]
re PR ada/78845 (Inverse (Real_Matrix) result has wrong bounds)

PR ada/78845

* a-ngcoar.adb, a-ngrear.adb (Inverse): call Unit_Matrix with First_1
set to A'First(2) and vice versa.

From-SVN: r247214

7 years agoCode clean up.
Arnaud Charlet [Tue, 25 Apr 2017 12:39:28 +0000 (14:39 +0200)]
Code clean up.

From-SVN: r247213

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:38:24 +0000 (14:38 +0200)]
[multiple changes]

2017-04-25  Yannick Moy  <moy@adacore.com>

* freeze.adb (Freeze_Record_Type): Remove obsolete
rule on volatile tagged record restriction on SPARK code.

2017-04-25  Yannick Moy  <moy@adacore.com>

* sem_prag.adb (minor) Fix SPARK RM reference.

2017-04-25  Yannick Moy  <moy@adacore.com>

* sem_util.adb, sem_util.ads (Unique_Defining_Entity): Update
comment to reflect which entity is chosen as unique entity.
(Unique_Entity): Return full view instead of private spec for
protected type or task type. Fix possible incorrect access when
called on entry.

2017-04-25  Eric Botcazou  <ebotcazou@adacore.com>

* sem_res.adb (Set_Slice_Subtype): Treat specially bit-packed
array types only instead of all packed array types.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Conforming_Types): If type of formal as a specified
dimension system, verify that dimensions of both match.
(Check_Conformance): Add error message in case of dimension
mismatch.
* sem_dim.ads, sem_dim.adb (Dimensions_Match): New utility
predicate.

2017-04-25  Arnaud Charlet  <charlet@adacore.com trojanek>

* gnatxref.adb, gnatfind.adb: Avoid using the term project file,
confusing.

From-SVN: r247212

7 years agosem_util.adb: Minor refactoring.
Yannick Moy [Tue, 25 Apr 2017 12:35:59 +0000 (12:35 +0000)]
sem_util.adb: Minor refactoring.

2017-04-25  Yannick Moy  <moy@adacore.com>

* sem_util.adb: Minor refactoring.
* freeze.adb (Freeze_Record_Type): Fix checking of SPARK RM 7.1.3(5).

From-SVN: r247211

7 years agoMinor reformatting.
Arnaud Charlet [Tue, 25 Apr 2017 12:33:34 +0000 (14:33 +0200)]
Minor reformatting.

From-SVN: r247210

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:33:25 +0000 (14:33 +0200)]
[multiple changes]

2017-04-25  Claire Dross  <dross@adacore.com>

* sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Go to
ultimate alias when accessing overridden operation. Indeed, if the
overridden operation is itself inherited, it won't have any explicit
contract.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_warn.adb (Warn_On_Overlapping_Actuals): There can be no
overlap if the two formals have different types, because formally
the corresponding actuals cannot designate the same objects.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_dim.adb (Dimensions_Of_Operand): minot cleanups: a) If
dimensions are present from context, use them. b) If operand is
a static constant rewritten as a literal, obtain the dimensions
from the original declaration, otherwise use dimensions of type
established from context.

2017-04-25  Yannick Moy  <moy@adacore.com>

* sem_util.adb (Is_Effectively_Volatile): Protect against base type
of array that is private.

From-SVN: r247209

7 years agore PR tree-optimization/80492 (Wrong code when unrolling a loop with inline asm and...
Richard Biener [Tue, 25 Apr 2017 12:15:44 +0000 (12:15 +0000)]
re PR tree-optimization/80492 (Wrong code when unrolling a loop with inline asm and local regs)

2017-04-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80492
* alias.c (compare_base_decls): Handle registers with asm
specification conservatively.
* tree-ssa-alias.c (decl_refs_may_alias_p): Handle
compare_base_decls returning dont-know properly.

* gcc.dg/pr80492.c: New testcase.

From-SVN: r247208

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:11:12 +0000 (14:11 +0200)]
[multiple changes]

2017-04-25  Gary Dismukes  <dismukes@adacore.com>

* sem_ch3.adb, exp_util.adb, sem_prag.adb, exp_ch4.adb: Minor
reformatting.

2017-04-25  Yannick Moy  <moy@adacore.com>

* a-ngelfu.adb, a-ngelfu.ads: Add SPARK_Mode On on spec, Off
on body.

From-SVN: r247207

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:09:22 +0000 (14:09 +0200)]
[multiple changes]

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_disp.adb (Check_Dispatching_Context): Add guard to refine
the check that recognizes a call to a private overridding and
replaces the called subprogram with its alias.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_util.adb: Minor reformatting.

From-SVN: r247206

7 years agoCode cleanups.
Arnaud Charlet [Tue, 25 Apr 2017 12:08:24 +0000 (14:08 +0200)]
Code cleanups.

From-SVN: r247205

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:07:59 +0000 (14:07 +0200)]
[multiple changes]

2017-04-25  Justin Squirek  <squirek@adacore.com>

* exp_ch3.adb (Freeze_Type): Add condition to always treat
interface types as a partial view of a private type for the
generation of invariant procedure bodies.
* exp_util.adb, exp_util.ads (Add_Inherited_Invariants):
Add a condition to get the Corresponding_Record_Type for
concurrent types, add condition to return in the absence of a
class in the pragma, remove call to Replace_Type_References,
and add call to Replace_References.
(Add_Interface_Invariatns),
(Add_Parent_Invariants): Modify call to Add_Inherited_Invariants
to including the working type T.
(Add_Own_Invariants): Remove
legacy condition for separate units, remove dispatching for ASIS
and save a copy of the expression in the pragma expression.
(Build_Invariant_Procedure_Body): Default initalize vars,
remove return condition on interfaces, always use the
private type for interfaces, and move the processing of types
until after the processing of invariants for the full view.
(Build_Invariant_Procedure_Declaration): Remove condition
to return if an interface type is encountered and add
condition to convert the formal parameter to its class-wide
counterpart if Work_Typ is abstract.
(Replace_Type): Add call to Remove_Controlling_Arguments.
(Replace_Type_Ref): Remove class-wide dispatching for the current
instance of the type.
(Replace_Type_References): Remove parameter "Derived"
(Remove_Controlling_Arguments): Created in order to removing
the controlliong argument from calls to primitives in the case
of the formal parameter being an class-wide abstract type.
* sem_ch3.adb (Build_Assertion_Bodies_For_Type): Almost identical
to the change made to Freeze_Type in exp_ch3. Add a condition
to treat interface types as a partial view.
* sem_prag.adb (Analyze_Pragma): Modify parameters in the call
to Build_Invariant_Procedure_Declaration to properly generate a
"partial" invariant procedure when Typ is an interface.

2017-04-25  Bob Duff  <duff@adacore.com>

* a-numeri.ads: Go back to using brackets encoding for the Greek
letter pi.

From-SVN: r247204

7 years agoFix broken attr-alloc_size-10.c for avr
Senthil Kumar Selvaraj [Tue, 25 Apr 2017 12:06:04 +0000 (12:06 +0000)]
Fix broken attr-alloc_size-10.c for avr

Integer promotion combined with equal sizes for short and int (16 bits)
causes overflow warnings when expanding the TEST macro for USHRT_MAX.

Fix by explicitly disabling overflow warnings for targets with !int32plus.

gcc/testsuite/

2017-04-25  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.dg/attr-alloc_size-10.c: Ignore overflow warnings
for targets with int size less than 32 bits.

From-SVN: r247203

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:05:53 +0000 (14:05 +0200)]
[multiple changes]

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Derive_Subprogram): Implement rule in RM 6.1.1
(10-15): if derived type T with progenitors is abstract,
and primitive P of this type inherits non-trivial classwide
preconditions from both a parent operation and from an interface
operation, then the inherited operation is abstract if the parent
operation is not null.
* sem_disp.ads, sem_disp.adb: replace function Covers_Some_Interface
with Covered_Interface_Op to yield the actual interface operation
that is implemented by a given inherited operation.

2017-04-25  Javier Miranda  <miranda@adacore.com>

* exp_ch4.adb (Expand_N_Op_Expon): Relocate left
and right operands after performing the validity checks. Required
because validity checks may remove side effects from the operands.

2017-04-25  Javier Miranda  <miranda@adacore.com>

* exp_attr.adb (Attribute_Unrestricted_Access):
Do not disable implicit type conversion.  Required to generate
code that displaces the pointer to reference the secondary
dispatch table.

2017-04-25  Pascal Obry  <obry@adacore.com>

* prj-attr.adb, snames.ads-tmpl: Add package Install's
Required_Artifacts attribute.

From-SVN: r247202

7 years ago[ARC] Addresses can use long immediate for offsets.
Claudiu Zissulescu [Tue, 25 Apr 2017 12:04:46 +0000 (14:04 +0200)]
[ARC] Addresses can use long immediate for offsets.

gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
(legitimate_offset_address_p): New function.
(arc_legitimate_address_p): Use above function.

From-SVN: r247201

7 years ago[ARC] Fix calling multiple inheritances.
Claudiu Zissulescu [Tue, 25 Apr 2017 12:04:36 +0000 (14:04 +0200)]
[ARC] Fix calling multiple inheritances.

The TARGET_ASM_OUTPUT_MI_THUNK hook doesn't take into account the
variant when we compile for PIC.

gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.

From-SVN: r247200

7 years ago[ARC] Use ACCL, ACCH registers whenever they are available.
Claudiu Zissulescu [Tue, 25 Apr 2017 12:04:25 +0000 (14:04 +0200)]
[ARC] Use ACCL, ACCH registers whenever they are available.

gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
ACCH registers whenever they are available.

From-SVN: r247199

7 years ago[ARC] Make D0, D1 double regs fix when not used.
Claudiu Zissulescu [Tue, 25 Apr 2017 12:04:14 +0000 (14:04 +0200)]
[ARC] Make D0, D1 double regs fix when not used.

gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
double regs fix when not used.

From-SVN: r247198

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:03:43 +0000 (14:03 +0200)]
[multiple changes]

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb (Same_Value): String literals are compile-time
values, and comparing them must use Expr_Value_S.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Complete_Object_Interpretation): If an explicit
dereference is introduced for the object, and the object is
overloaded, do not check whether it is aliased, because it may
include an implicit dereference.
* sem_type.adb (Disambiguate): If two interpretations are access
attribute types with the same designated type keep either of
them and do not report an ambiguity.  A true ambiguity will be
reported elsewhere.

2017-04-25  Bob Duff  <duff@adacore.com>

* a-numeri.ads: Change the encoding of Greek letter Pi from
brackets encoding to UTF-8.  Use pragma Wide_Character_Encoding
to indicate the encoding. We considered using a byte order mark
(BOM), but that causes various trouble (misc software eats the
BOM, if you have a patch with a BOM, then it's not at the start
of the patch, so it's not a BOM, the BOM affects with-ing files,
etc.).
* scng.adb, s-wchcnv.adb: Minor.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb, sem_ch8.adb, sem_disp.adb: Minor reformatting.

From-SVN: r247197

7 years ago[ARC] Allow extension core registers to be used for addresses.
Claudiu Zissulescu [Tue, 25 Apr 2017 12:03:40 +0000 (14:03 +0200)]
[ARC] Allow extension core registers to be used for addresses.

gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
core registers.
(REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
(REG_OK_FOR_BASE_P_NONSTRICT): Likewise.

From-SVN: r247196

7 years ago[ARC] Differentiate between ARCv1 and ARCv2 'h'-reg class for ADD insns.
Claudiu Zissulescu [Tue, 25 Apr 2017 12:03:30 +0000 (14:03 +0200)]
[ARC] Differentiate between ARCv1 and ARCv2 'h'-reg class for ADD insns.

gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_output_addsi): Check for h-register class
when emitting short ADD instructions.

From-SVN: r247195

7 years ago[ARC] Differentiate between ARCv1 and ARCv2 'h'-reg class for CMP insns.
Claudiu Zissulescu [Tue, 25 Apr 2017 12:03:19 +0000 (14:03 +0200)]
[ARC] Differentiate between ARCv1 and ARCv2 'h'-reg class for CMP insns.

gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
constraint.
(cmpsi_cc_c_insn): Likewise.
(cbranchsi4_scratch): Compute proper instruction length using
compact_hreg_operand.
* config/arc/predicates.md (compact_hreg_operand): New predicate.

From-SVN: r247194

7 years agoCode clenups.
Arnaud Charlet [Tue, 25 Apr 2017 12:01:32 +0000 (14:01 +0200)]
Code clenups.

From-SVN: r247193

7 years ago[multiple changes]
Arnaud Charlet [Tue, 25 Apr 2017 12:00:46 +0000 (14:00 +0200)]
[multiple changes]

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Add_Internal_Interface_Entities): Move
Has_Non_Trivial_Precondition to sem_util. for use elsewhere.
Improve error message on operations that inherit non-conforming
classwide preconditions from ancestor and progenitor.
* sem_util.ads, sem_util.adb (Has_Non_Trivial_Precondition):
moved here from sem_ch3.
* sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality
check given in RM 6.1.1 (17) concerning renamings of overriding
operations that inherits class-wide preconditions from ancestor
or progenitor.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Code cleanup.
(Build_Adjust_Statements): Code cleanup.
(Build_Finalizer): Update the initialization of
Exceptions_OK.
(Build_Finalize_Statements): Code cleanup.
(Build_Initialize_Statements): Code cleanup.
(Make_Deep_Array_Body): Update the initialization of
Exceptions_OK.
(Make_Deep_Record_Body): Update the initialization of Exceptions_OK.
(Process_Object_Declaration): Generate a null exception handler only
when exceptions are allowed.
(Process_Transients_In_Scope): Update the initialization of
Exceptions_OK.
* exp_util.ads, exp_util.adb (Exceptions_In_Finalization_OK): New
routine.
* sem_ch11.adb (Analyze_Exception_Handlers): Do not check any
restrictions when the handler is internally generated and the
mode is warnings.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Has_Non_Trivial_Precondition): New predicate to
enforce legality rule on classwide preconditions inherited from
both an ancestor and a progenitor (RM 6.1.1 (10-13).
* sem_disp.adb (Check_Dispatching_Context): A call to an abstract
subprogram need not be dispatching if it appears in a precondition
for an abstract or null subprogram.

2017-04-25  Gary Dismukes  <dismukes@adacore.com>

* sem_ch10.adb: Minor typo fix.

From-SVN: r247192