Arnaud Charlet [Fri, 13 Jan 2017 11:23:42 +0000 (11:23 +0000)]
getting_started_with_gnat.rst, [...]: Update documentation.
* doc/gnat_ugn/getting_started_with_gnat.rst,
doc/gnat_ugn/inline_assembler.rst,
doc/gnat_ugn/building_executable_programs_with_gnat.rst,
doc/gnat_ugn/elaboration_order_handling_in_gnat.rst,
doc/gnat_ugn/about_this_guide.rst,
doc/gnat_ugn/platform_specific_information.rst,
doc/gnat_ugn/example_of_binder_output.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/compatibility_and_porting_guide.rst,
doc/gnat_rm/standard_library_routines.rst,
doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
doc/gnat_rm/implementation_defined_pragmas.rst,
doc/gnat_rm/the_gnat_library.rst,
doc/gnat_rm/obsolescent_features.rst,
doc/gnat_rm/about_this_guide.rst,
doc/gnat_rm/the_implementation_of_standard_i_o.rst,
doc/gnat_rm/implementation_of_ada_2012_features.rst,
doc/gnat_rm/interfacing_to_other_languages.rst,
doc/gnat_rm/implementation_defined_aspects.rst,
doc/gnat_rm.rst: Update documentation.
* gnat_rm.texi, gnat_ugn.texi: Regenerated.
From-SVN: r244426
Arnaud Charlet [Fri, 13 Jan 2017 11:16:56 +0000 (12:16 +0100)]
[multiple changes]
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* einfo.ads: minor grammar fixes in comment of Normalized_Position_Max.
* scil_ll.adb: Minor style fix in comment.
* sem_ch8.adb (Analyze_Expanded_Name): Perform dimension analysis
even if entity is already set, because the node may be renalyzed
after inlining transformations.
2017-01-13 Javier Miranda <miranda@adacore.com>
* sem_res.adb (Resolve_Call): Do not establish a transient scope
for a call to inlinable expression function (since the call will
be replaced by its returned object).
* exp_ch6.ads (Is_Inlinable_Expression_Function): New subprogram.
* exp_ch6.adb (Expression_Of_Expression_Function): New subprogram.
(Expand_Call): For inlinable expression function call replace the
call by its returned object.
(Is_Inlinable_Expression_Function): New subprogram.
From-SVN: r244425
Arnaud Charlet [Fri, 13 Jan 2017 11:13:00 +0000 (12:13 +0100)]
[multiple changes]
2017-01-13 Gary Dismukes <dismukes@adacore.com>
* checks.adb: Minor typo fix and reformatting.
2017-01-13 Javier Miranda <miranda@adacore.com>
* contracts.adb (Contract_Only_Subprograms): Remove formal.
(Copy_Original_Specification): Removed.
(Skip_Contract_Only_Subprogram): Move here checks previously
located in the caller of this routine (to leave the code more clean).
(Build_Contract_Only_Subprogram): Code cleanup.
* scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): Removed.
(Get_Contract_Only_Missing_Body_Name): Removed.
From-SVN: r244424
Arnaud Charlet [Fri, 13 Jan 2017 11:08:57 +0000 (12:08 +0100)]
[multiple changes]
2017-01-13 Javier Miranda <miranda@adacore.com>
* sem_ch6.adb (Cloned_Expression): New subprogram.
(Freeze_Expr_Types): Complete previous patch since the expression
of an expression-function may have iterators and loops with
defining identifiers which, as part of the preanalysis of the
expression, may be left decorated with itypes that will not be
available in the tree passed to the backend.
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* checks.adb (Apply_Type_Conversion_Checks): Optimize a type
conversion to Integer of an expression that is an attribute
reference 'Pos on an enumeration type.
2017-01-13 Bob Duff <duff@adacore.com>
* atree.ads: Minor comment fix.
From-SVN: r244423
Justin Squirek [Fri, 13 Jan 2017 11:06:54 +0000 (11:06 +0000)]
sem_ch6.adb (Check_Aggregate_Accessibility): Ignore function calls in accessibility check on return statement.
2017-01-13 Justin Squirek <squirek@adacore.com>
* sem_ch6.adb (Check_Aggregate_Accessibility): Ignore function
calls in accessibility check on return statement.
From-SVN: r244422
Hristian Kirtchev [Fri, 13 Jan 2017 10:57:01 +0000 (10:57 +0000)]
sem_ch6.adb (Analyze_Subprogram_Body_Helper): Ensure that the input body is a subprogram body before trying to determine...
2017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
Ensure that the input body is a subprogram body before trying to
determine whether it denoted an expression function. Note that
subprogram body stubs cannot denote expression functions.
From-SVN: r244421
Gary Dismukes [Fri, 13 Jan 2017 10:56:14 +0000 (10:56 +0000)]
bindgen.adb, [...]: Minor reformatting and typo fixes.
2017-01-13 Gary Dismukes <dismukes@adacore.com>
* bindgen.adb, sem_ch6.adb, binde.adb, exp_ch3.adb: Minor reformatting
and typo fixes.
From-SVN: r244420
Arnaud Charlet [Fri, 13 Jan 2017 10:54:43 +0000 (11:54 +0100)]
[multiple changes]
2017-01-13 Javier Miranda <miranda@adacore.com>
* einfo.ads (Component_Bit_Offset): Fix documentation.
* sem_ch13.adb (Check_Record_Representation_Clause): Skip check
on record holes for components with unknown compile-time offsets.
2017-01-13 Bob Duff <duff@adacore.com>
* ali.ads, ali.adb (Static_Elaboration_Model_Used): Remove unused flag.
* g-locfil.ads: Minor comment fix.
2017-01-13 Bob Duff <duff@adacore.com>
* binde.adb (Elab_New): New elaboration order algorithm
that is expected to cause fewer ABE issues. This is a work in
progress. The new algorithm is currently disabled, and can be
enable by the -dp switch, or by modifying the Do_Old and Do_New
etc. flags and rebuilding. Experimental code is included to
compare the results of the old and new algorithms.
* binde.ads: Use GNAT.Dynamic_Tables instead of Table, so we
can have multiple of these tables, so the old and new algorithms
can coexist.
* bindgen.ads (Gen_Output_File): Pass Elab_Order as an 'in'
parameter of type array. This avoids the global variable, and
allows bounds checking (which is normally defeated by the tables
packages). It also ensures that the Elab_Order is read-only
to Bindgen.
* bindgen.adb: Pass Elab_Order as an 'in' parameter to all
subprograms that need it, as above.
* debug.adb: Document new -dp switch. Modify doc of old -do
switch.
* gnatbind.adb (Gnatbind): Make use of new interfaces to Binde
and Bindgen. Move writing of closure (-R and -Ra switches)
to Binde; that's more convenient.
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Expression_Function): If the expression
function is a completion, all entities referenced in the
expression are frozen. As a consequence, a reference to an
uncompleted private type from an enclosing scope is illegal.
From-SVN: r244419
Arnaud Charlet [Fri, 13 Jan 2017 10:51:45 +0000 (11:51 +0100)]
[multiple changes]
2017-01-13 Javier Miranda <miranda@adacore.com>
* sem_ch6.adb (Freeze_Expr_Types): New subprogram.
(Analyze_Subprogram_Body_Helper): At the occurrence of an
expression function declaration that is a completion, its
expression causes freezing (AI12-0103).
2017-01-13 Vadim Godunko <godunko@adacore.com>
* a-coinho-shared.adb: Fix memory leaks in Constant_Reference and
Reference functions of Ada.Containers.Indefinite_Holders.
2017-01-13 Bob Duff <duff@adacore.com>
* s-os_lib.ads: Minor comment fixes.
2017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch3.adb (Default_Initialize_Object): Do not default
initialize an object when it is of a task type and restriction
No_Tasking is in effect because the initialization is obsolete.
* exp_ch9.adb (Build_Master_Entity): Do not generate a master when
restriction No_Tasking is in effect.
(Build_Master_Renaming): Do not rename a master when restriction
No_Tasking is in effect.
From-SVN: r244418
Arnaud Charlet [Fri, 13 Jan 2017 10:48:57 +0000 (11:48 +0100)]
[multiple changes]
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Array_Aggregate): The code that verifies
the legality of An others clause applies as well to a choice in
an Iterated_component_ association.
(Resolve_Iterated_Component_Association): An others choice
is legal.
* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): An
Iterated_Component_Association is not static.
2017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch3.adb (Freeze_Type): Mark the Ghost mode as set in case
control is passed to the expresion handler before the new mode
is set.
* sem_ch12.adb (Analyze_Package_Instantiation,
Analyze_Subprogram_Instantiation): Mark the Ghost mode as set
in case control is passed to the expresion handler before the
new mode is set.
From-SVN: r244417
Hristian Kirtchev [Fri, 13 Jan 2017 10:47:25 +0000 (10:47 +0000)]
sem_aggr.adb, [...]: Minor reformatting.
2017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
* sem_aggr.adb, sem_ch3.adb, inline.adb, sem_util.adb, exp_ch4.adb,
exp_aggr.adb: Minor reformatting.
From-SVN: r244416
Gary Dismukes [Fri, 13 Jan 2017 10:45:17 +0000 (10:45 +0000)]
inline.adb: Minor reformatting and typo fix.
2017-01-13 Gary Dismukes <dismukes@adacore.com>
* inline.adb: Minor reformatting and typo fix.
From-SVN: r244415
Arnaud Charlet [Fri, 13 Jan 2017 10:42:37 +0000 (11:42 +0100)]
[multiple changes]
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* sem_util.ads, sem_util.adb (Choice_List): Move function here
from sem_aggr.adb, for use elsewhere.
* sem_ch3.adb (Analyze_Object_Declaration): Use Choice_List.
* sem_aggr.adb (Resolve_Array_Aggregate): Remove
Iterated_Component_Present.
* exp_aggr.adb: Use Choice_List throughout, to handle
Iterated_Component_Associations.
(Gen_Loop): Generate proper loop for an
Iterated_Component_Association: loop variable has the identifier
of the original association. Generate a loop even for a single
component choice, in order to make loop parameter visible in
expression.
(Flatten): An Iterated_Component_Association is not static.
2017-01-13 Yannick Moy <moy@adacore.com>
* exp_ch4.adb (Expand_N_Op_Expon): Ensure that the value of
float exponentiation for statically known small negative values
is the reciprocal of the exponentiation for the opposite value
of the exponent.
* s-exnllf.adb (Exn_Float, Exn_Long_Float, Exn_Long_Long_Float):
Ensure that the value of float exponentiation for negative values
is the reciprocal of the exponentiation for the opposite value
of the exponent.
* inline.adb (Expand_Inlined_Call): Fix the count
for the number of generated gotos.
From-SVN: r244414
Andre Vehreschild [Fri, 13 Jan 2017 10:39:52 +0000 (11:39 +0100)]
re PR fortran/70697 ([Coarray] ICE on EVENT WAIT with array element UNTIL_COUNT argument)
gcc/testsuite/ChangeLog:
2017-01-13 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70697
* gfortran.dg/coarray/event_4.f08: New test.
gcc/fortran/ChangeLog:
2017-01-13 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70697
* resolve.c (resolve_lock_unlock_event): Resolve the expression for
event's until_count.
From-SVN: r244413
Arnaud Charlet [Fri, 13 Jan 2017 10:39:38 +0000 (11:39 +0100)]
Code cleanups.
From-SVN: r244412
Arnaud Charlet [Fri, 13 Jan 2017 10:38:56 +0000 (11:38 +0100)]
[multiple changes]
2017-01-13 Yannick Moy <moy@adacore.com>
* inline.adb: Code cleanup.
* sem_util.adb (Is_OK_Volatile_Context): Add
expression in delay statement as OK for volatile context.
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Array_Aggregate): In normal compilation
mode a choice that is a subtype with a static predicate is
replaced by the values it covers. This transformation must not
be performed in ASIS mode, to preserve the source for analysis.
2017-01-13 Justin Squirek <squirek@adacore.com>
* nlists.ads: Correct minor typo.
From-SVN: r244411
Arnaud Charlet [Fri, 13 Jan 2017 10:33:37 +0000 (11:33 +0100)]
[multiple changes]
2017-01-13 Gary Dismukes <dismukes@adacore.com>
* sem_ch13.adb: Minor reformatting and typo fix.
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* par-ch4.adb (P_Aggregate_Or_Parent_Expr): An
Iterated_Component_Association is a named association in an
array aggregate.
* sem_aggr.adb (Resolve_Iterated_Component_Association): New
procedure, subsidiary of Resolve_Array_Aggregate, to analyze
and resolve the discrete choices and the expression of the
new construct.
* sinfo.adb, sinfo.ads: In analogy with N_Component_Association,
Loop_Actions and Box_Present are attributes of
N_Iterated_Component_Association nodes. Box_Present is always
False in this case.
* sprint.adb (Sprint_Node): An Iterated_Component_Association
has a Discrete_Choices list, as specified in the RM. A
Component_Association for aggregate uses instead a Choices list.
We have to live with this small inconsistency because the new
construct also has a defining identifier, and there is no way
to merge the two node structures.
From-SVN: r244410
Arnaud Charlet [Fri, 13 Jan 2017 10:24:28 +0000 (11:24 +0100)]
[multiple changes]
2017-01-13 Yannick Moy <moy@adacore.com>
* inline.adb (Remove_Aspects_And_Pragmas): Add Unused to the
list of pragmas to remove. Remove pragmas from the list of
statements in the body to inline.
* namet.adb, namet.ads (Nam_In): New version with 12 parameters.
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Resolve_Aspects): New procedure, subsidiary of
Analyze_Declarations, to analyze and resolve the expressions of
aspect specifications in the current declarative list, so that
the expressions have proper entity and type info. This is needed
for ASIS when there is no subsequent expansion to generate this
semantic information.
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Use Etype of
original expression, to suppress cascaded errors when expression
has been constant-folded.
(Resolve_Aspect_Expressions, Resolve_Name): Preserve entities in
ASIS mode, because there is no subsequent expansion to decorate
the tree.
From-SVN: r244409
Yannick Moy [Fri, 13 Jan 2017 10:22:23 +0000 (10:22 +0000)]
inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode): New function to detect when a call may be inlined or not in GNATprove mode.
2017-01-13 Yannick Moy <moy@adacore.com>
* inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode):
New function to detect when a call may be inlined or not in
GNATprove mode.
(Expand_Inlined_Call): Ensure that a temporary
is always created in the cases where a type conversion may be
needed on an input parameter in GNATprove mode, so that GNATprove
sees the check to perform.
* sem_res.adb (Resolve_Call): In GNATprove mode, skip inlining
when not applicable due to actual requiring type conversion
with possible check but no temporary value can be copied for
GNATprove to see the check.
From-SVN: r244408
Andre Vehreschild [Fri, 13 Jan 2017 10:22:21 +0000 (11:22 +0100)]
re PR fortran/70696 ([Coarray] ICE on EVENT POST of host-associated EVENT_TYPE coarray)
gcc/testsuite/ChangeLog:
2017-01-13 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70696
* gfortran.dg/coarray/event_3.f08: New test.
gcc/fortran/ChangeLog:
2017-01-13 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70696
* trans-expr.c (gfc_get_tree_for_caf_expr): Ensure the backend_decl
is valid before accessing it.
libgfortran/ChangeLog:
2017-01-13 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70696
* caf/single.c (_gfortran_caf_register): Allocate enough memory for
the event counter.
From-SVN: r244407
Hristian Kirtchev [Fri, 13 Jan 2017 10:19:19 +0000 (10:19 +0000)]
sem_aggr.adb, [...]: Update all eligible case statements to reflect the new style for case alternatives.
2017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
* sem_aggr.adb, par_sco.adb, s-osprim-mingw.adb, exp_ch5.adb,
exp_prag.adb, sem_ch3.adb, xr_tabls.adb, lib-xref-spark_specific.adb,
layout.adb, sem_dist.adb, exp_spark.adb, exp_ch7.adb, gnatcmd.adb,
exp_util.adb, prj-proc.adb, sem_aux.adb, comperr.adb, g-memdum.adb,
exp_attr.adb, s-intman-solaris.adb, exp_ch9.adb, make.adb, live.adb,
g-sercom-linux.adb, sem_dim.adb, mlib-prj.adb, s-intman-posix.adb,
sem_ch9.adb, sem_ch10.adb, prep.adb, einfo.adb, scng.adb, checks.adb,
prj-strt.adb, sem_prag.adb, eval_fat.adb, sem_ch12.adb, sem.adb,
a-numaux-x86.adb, a-stwifi.adb, i-cobol.adb, prj.adb,
get_spark_xrefs.adb, s-tasini.adb, rtsfind.adb, freeze.adb,
g-arrspl.adb, par-ch4.adb, sem_util.adb, sem_res.adb, expander.adb,
sem_attr.adb, exp_dbug.adb, prj-pp.adb, a-stzfix.adb, s-interr.adb,
s-wchcnv.adb, switch-m.adb, gnat1drv.adb, sinput-l.adb, stylesw.adb,
contracts.adb, s-intman-android.adb, g-expect.adb, exp_ch4.adb,
g-comlin.adb, errout.adb, sinput.adb, s-exctra.adb, repinfo.adb,
g-spipat.adb, g-debpoo.adb, exp_ch6.adb, sem_ch4.adb, exp_ch13.adb,
a-wtedit.adb, validsw.adb, pprint.adb, widechar.adb, makeutl.adb,
ali.adb, set_targ.adb, sem_mech.adb, sem_ch6.adb, gnatdll.adb,
get_scos.adb, g-pehage.adb, s-tratas-default.adb, gnatbind.adb,
prj-dect.adb, g-socthi-mingw.adb, par-prag.adb, prj-nmsc.adb,
exp_disp.adb, par-ch12.adb, binde.adb, sem_ch8.adb,
s-tfsetr-default.adb, s-regexp.adb, gprep.adb, s-tpobop.adb,
a-teioed.adb, sem_warn.adb, sem_eval.adb, g-awk.adb, s-io.adb,
a-ztedit.adb, xoscons.adb, exp_intr.adb, sem_cat.adb, sprint.adb,
g-socket.adb, exp_dist.adb, sem_ch13.adb, s-tfsetr-vxworks.adb,
par-ch3.adb, treepr.adb, g-forstr.adb, g-catiio.adb, par-ch5.adb,
uname.adb, osint.adb, exp_ch3.adb, prj-env.adb, a-strfix.adb,
a-stzsup.adb, prj-tree.adb, s-fileio.adb: Update all eligible case
statements to reflect the new style for case alternatives. Various
code clean up and reformatting.
From-SVN: r244406
Arnaud Charlet [Fri, 13 Jan 2017 10:13:41 +0000 (11:13 +0100)]
[multiple changes]
2017-01-13 Gary Dismukes <dismukes@adacore.com>
* exp_util.adb: Minor reformatting.
2017-01-13 Yannick Moy <moy@adacore.com>
* exp_spark.adb: Code cleanup.
* sem_ch9.adb (Analyze_Delay_Until): Resolve
expression so that calls are identified as such inside delay
until.
From-SVN: r244405
Arnaud Charlet [Fri, 13 Jan 2017 10:11:43 +0000 (11:11 +0100)]
Minor reformatting.
From-SVN: r244404
Ed Schonberg [Fri, 13 Jan 2017 10:11:17 +0000 (10:11 +0000)]
exp_util.adb (Insert_Actions): Handle Iterated_Component_Association.
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* exp_util.adb (Insert_Actions): Handle Iterated_Component_Association.
* par-ch3.adb (P_Discrete_Choice_List): An
Iterated_Component_Association is an array aggregate component.
* par-ch4.adb (P_Iterated_Component_Association): New procedure.
(Is_Quantified_Expression): New function that performs a lookahead
to distinguish quantified expressions from iterated component
associations.
(P_Aggregate_Or_Paren_Expr): Recognize iterated component
associations.
(P_Unparen_Cond_Case_Quant_Expression, P_Primary): Ditto.
* sem.adb (Analyze): Handle Iterated_Component_Association.
* sem_aggr.adb (Resolve_Array_Aggregate): Dummy handling of iterated
component associations.
* sinfo.ads, sinfo.adb: Entries for for
N_Iterated_Component_Association and its fields.
* sprint.adb (Sprint_Node_Actual): Handle
N_Iterated_Component_Association.
From-SVN: r244403
Maxim Ostapenko [Fri, 13 Jan 2017 10:08:50 +0000 (10:08 +0000)]
re PR sanitizer/78887 (Failure to build aarch64 allmodconfig Linux kernel 4.9)
PR sanitizer/78887
* asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
if -fsanitize=kernel-address is present.
From-SVN: r244402
Arnaud Charlet [Fri, 13 Jan 2017 10:08:46 +0000 (11:08 +0100)]
[multiple changes]
2017-01-13 Justin Squirek <squirek@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation): Move disabiling
of the style check until after preanalysis of acutals.
2017-01-13 Yannick Moy <moy@adacore.com>
* sem_ch13.adb: Minor reformatting.
* par-ch11.adb: minor style fix in whitespace
* gnatbind.adb (Gnatbind): Scope of Std_Lib_File
reduced to Add_Artificial_ALI_File; style fix in declaration of
Text; grammar fix in comment.
* osint-c.adb (Read_Library_Info): strip trailing NUL from result.
* freeze.adb: Cleanup to pass pragma instead of
expression to call.
* exp_spark.adb (Expand_SPARK_Attribute_Reference): New procedure to
replace System'To_Address by equivalent call.
From-SVN: r244401
Arnaud Charlet [Fri, 13 Jan 2017 10:05:22 +0000 (11:05 +0100)]
[multiple changes]
2017-01-13 Arnaud Charlet <charlet@adacore.com>
* bindusg.adb: Improve usage output for -f switch.
2017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
* frontend.adb, freeze.adb, sem_res.adb, sem_attr.adb, sem_ch8.adb:
Minor reformatting.
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Is_Predicate_Static): Following the intent of the RM,
treat comparisons on strings as legal in a Static_Predicate.
(Is_Predicate_Static, Is_Type_Ref): Predicate also returns true on
a function call that is the expansion of a string comparison.The
function call is built when compiling the corresponding predicate
function, but the expression has been found legal as a static
predicate during earlier analysis.
* sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Handle
properly a function call that is the expansion of a string
comparison operation, in order to recover the Static_Predicate
expression and apply it to a static argument when needed.
From-SVN: r244400
Arnaud Charlet [Fri, 13 Jan 2017 10:01:38 +0000 (11:01 +0100)]
[multiple changes]
2017-01-13 Tristan Gingold <gingold@adacore.com>
* s-mmap.adb, s-mmap.ads (Open_Read_No_Exception): New function.
(Open_Read): Re-implement using Open_Read_No_Exception.
(Open_Write): Raise exception in case of error.
* s-mmosin-mingw.adb (Open_Common): Do not raise exception.
* s-mmosin-unix.adb (Open_Read, Open_Write): Do not
reaise exception.
* s-mmosin-mingw.ads, s-mmosin-unix.ads (Open_Read): Adjust comment.
2017-01-13 Yannick Moy <moy@adacore.com>
* checks.adb: Code cleanup.
2017-01-13 Yannick Moy <moy@adacore.com>
* freeze.adb (Check_Inherited_Conditions): Use analyzed pragma
expression instead of unanalyzed aspect expression for checking
the validity of inheriting an operation. Also copy the expression
being passing it to Build_Class_Wide_Expression, as this call
modifies its argument.
* sem_util.ads Fix comment to reference correct function name
New_Copy_Tree.
2017-01-13 Javier Miranda <miranda@adacore.com>
* sem_res.adb (Resolve_Generalized_Indexing): Compiling in ASIS mode,
when we propagate information about the indexes back to the original
indexing mode and the prefix of the index is a function call, do not
remove any parameter from such call.
2017-01-13 Gary Dismukes <dismukes@adacore.com>
* exp_ch6.ads (Needs_BIP_Finalization_Master): Update comment.
* exp_ch6.adb (Needs_BIP_Finalization_Master): Return True for
a build-in-place function whose result type is tagged.
2017-01-13 Yannick Moy <moy@adacore.com>
* sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper):
Do not generate a wrapper when the only candidate is a class-wide
subprogram.
(Analyze_Subprogram_Renaming): Do not freeze the renaming or renamed
inside a generic context.
From-SVN: r244399
Arnaud Charlet [Fri, 13 Jan 2017 09:59:17 +0000 (10:59 +0100)]
[multiple changes]
2017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Add_Inherited_Tagged_DIC):
Pass the object parameters of both the parent and the derived
type DIC procedure to the reference replacement circuitry.
(Find_DIC_Type): Modify the circuitry to present the partial
view of a private type in case the private type defines its own
DIC pragma.
(Replace_Object_And_Primitive_References): Add two
optional formal parameters. Update the comment on usage. Update
the replacement of references to object parameters.
2017-01-13 Gary Dismukes <dismukes@adacore.com>
* einfo.adb, sem_ch6.adb, atree.adb: Minor reformatting and typo fix.
2017-01-13 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Actuals): Apply Scalar_Range_Check to
an out parameter that is a type conversion, independently of th
range check that may apply to the expression of the conversion,
for use in GNATProve.
2017-01-13 Yannick Moy <moy@adacore.com>
* gnat1drv.adb (Gnat1drv): Move the implicit with for System in
GNATprove_Mode here to Frontend.
* frontend.adb (Frontend): Move the implicit with for System
in GNATprove_Mode here as it ismore correct this way; the old
place only worked by chance, since there were no overloaded names.
* rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Tasking_State.
* sem_attr.adb (Analyze_Attribute): In GNATprove_Mode, for the
four attributes identified in SRM 9(18), add an implicit with
to Ada.Task_Identification.
* sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper):
Deal specially with the wrapper introduced for AI05-0071 in GNATprove
mode.
* checks.adb (Apply_Discriminant_Check,
Apply_Selected_Length_Checks, Apply_Selected_Range_Checks):
In GNATprove mode, we do not apply the checks, but we still
analyze the expression to possibly issue errors on SPARK
code when a run-time error can be detected at compile time.
(Selected_Length_Checks, Selected_Range_Checks): Perform analysis
in GNATprove mode.
From-SVN: r244398
Arnaud Charlet [Fri, 13 Jan 2017 09:44:48 +0000 (10:44 +0100)]
Minor reformatting.
From-SVN: r244397
Arnaud Charlet [Fri, 13 Jan 2017 09:43:56 +0000 (10:43 +0100)]
[multiple changes]
2017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
* expander.adb (Expand): Add a warning about using return
statements in Ghost management code.
* exp_ch3.adb (Freeze_Type): Add a warning about using return
statements in Ghost management code.
* exp_ch7.adb (Build_Invariant_Procedure_Body,
Build_Invariant_Procedure_Declaration): Add a warning about
using return statements in Ghost management code.
* exp_disp.adb (Make_DT): Add a warning about using return
statements in Ghost management code.
* exp_util.adb (Build_DIC_Procedure_Body,
Build_DIC_Procedure_Declaration, Make_Predicated_Call): Add a
warning about using return statements in Ghost management code.
* freeze.adb (Freeze_Entity): Add a warning about using return
statements in Ghost management code.
* sem.adb (Analyze, Do_Analyze): Add a warning about using return
statements in Ghost management code.
* sem_ch3.adb (Analyze_Object_Declaration, Process_Full_View): Add
a warning about using return statements in Ghost management code.
* sem_ch5.adb (Analyze_Assignment): Add a warning about using
return statements in Ghost management code.
* sem_ch6.adb (Analyze_Procedure_Call,
Analyze_Subprogram_Body_Helper): Add a warning about using return
statements in Ghost management code.
* sem_ch7.adb (Analyze_Package_Body_Helper): Add a warning about
using return statements in Ghost management code.
* sem_ch12.adb (Analyze_Package_Instantiation,
Analyze_Subprogram_Instantiation, Instantiate_Package_Body,
Instantiate_Subprogram_Body): Add a warning about using return
statements in Ghost management code.
* sem_ch13.adb (Build_Predicate_Functions,
Build_Predicate_Function_Declarations): Add a warning about
using return statements in Ghost management code.
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part,
Analyze_Initial_Condition_In_Decl_Part, Analyze_Pragma,
Analyze_Pre_Post_Condition_In_Decl_Part): Add a warning about
using return statements in Ghost management code.
2017-01-13 Tristan Gingold <gingold@adacore.com>
* s-mmosin-mingw.adb: Fix pragma import.
2017-01-13 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Ignore -gnateE in
codepeer mode.
From-SVN: r244396
Hristian Kirtchev [Fri, 13 Jan 2017 09:34:48 +0000 (09:34 +0000)]
atree.adb (Allocate_Initialize_Node): A newly created node is no longer marked as Ghost at this level.
2017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
* atree.adb (Allocate_Initialize_Node): A newly created node is
no longer marked as Ghost at this level.
(Mark_New_Ghost_Node): New routine.
(New_Copy): Mark the copy as Ghost.
(New_Entity): Mark the entity as Ghost.
(New_Node): Mark the node as Ghost.
* einfo.adb (Is_Checked_Ghost_Entity): This attribute can now
apply to unanalyzed entities.
(Is_Ignored_Ghost_Entity): This attribute can now apply to unanalyzed
entities.
(Set_Is_Checked_Ghost_Entity): This attribute now
applies to all entities as well as unanalyzed entities.
(Set_Is_Ignored_Ghost_Entity): This attribute now applies to
all entities as well as unanalyzed entities.
* expander.adb Add with and use clauses for Ghost.
(Expand): Install and revert the Ghost region associated with the node
being expanded.
* exp_ch3.adb (Expand_Freeze_Array_Type): Remove all Ghost-related code.
(Expand_Freeze_Class_Wide_Type): Remoe all Ghost-related code.
(Expand_Freeze_Enumeration_Type): Remove all Ghost-related code.
(Expand_Freeze_Record_Type): Remove all Ghost-related code.
(Freeze_Type): Install and revert the Ghost region associated
with the type being frozen.
* exp_ch5.adb Remove with and use clauses for Ghost.
(Expand_N_Assignment_Statement): Remove all Ghost-related code.
* exp_ch6.adb Remove with and use clauses for Ghost.
(Expand_N_Procedure_Call_Statement): Remove all Ghost-relatd code.
(Expand_N_Subprogram_Body): Remove all Ghost-related code.
* exp_ch7.adb (Build_Invariant_Procedure_Body): Install and revert the
Ghost region of the working type.
(Build_Invariant_Procedure_Declaration): Install and revert
the Ghost region of the working type.
(Expand_N_Package_Body): Remove all Ghost-related code.
* exp_ch8.adb Remove with and use clauses for Ghost.
(Expand_N_Exception_Renaming_Declaration): Remove all Ghost-related
code.
(Expand_N_Object_Renaming_Declaration): Remove all Ghost-related code.
(Expand_N_Package_Renaming_Declaration): Remove all Ghost-related code.
(Expand_N_Subprogram_Renaming_Declaration): Remove all Ghost-related
code.
* exp_ch13.adb Remove with and use clauses for Ghost.
(Expand_N_Freeze_Entity): Remove all Ghost-related code.
* exp_disp.adb (Make_DT): Install and revert the Ghost region of
the tagged type. Move the generation of various entities within
the Ghost region of the type.
* exp_prag.adb Remove with and use clauses for Ghost.
(Expand_Pragma_Check): Remove all Ghost-related code.
(Expand_Pragma_Contract_Cases): Remove all Ghost-related code.
(Expand_Pragma_Initial_Condition): Remove all Ghost-related code.
(Expand_Pragma_Loop_Variant): Remove all Ghost-related code.
* exp_util.adb (Build_DIC_Procedure_Body): Install
and revert the Ghost region of the working types.
(Build_DIC_Procedure_Declaration): Install and revert the
Ghost region of the working type.
(Make_Invariant_Call): Install and revert the Ghost region of the
associated type.
(Make_Predicate_Call): Reimplemented. Install and revert the
Ghost region of the associated type.
* freeze.adb (Freeze_Entity): Install and revert the Ghost region
of the entity being frozen.
(New_Freeze_Node): Removed.
* ghost.adb Remove with and use clauses for Opt.
(Check_Ghost_Completion): Update the parameter profile
and all references to formal parameters.
(Ghost_Entity): Update the comment on usage.
(Install_Ghost_Mode): New routines.
(Is_Ghost_Assignment): New routine.
(Is_Ghost_Declaration): New routine.
(Is_Ghost_Pragma): New routine.
(Is_Ghost_Procedure_Call): New routine.
(Is_Ghost_Renaming): Removed.
(Is_OK_Declaration): Reimplemented.
(Is_OK_Pragma): Reimplemented.
(Is_OK_Statement): Reimplemented.
(Is_Subject_To_Ghost): Update the comment on usage.
(Mark_And_Set_Ghost_Assignment): New routine.
(Mark_And_Set_Ghost_Body): New routine.
(Mark_And_Set_Ghost_Completion): New routine.
(Mark_And_Set_Ghost_Declaration): New routine.
(Mark_And_Set_Ghost_Instantiation): New routine.
(Mark_And_Set_Ghost_Procedure_Call): New routine.
(Mark_Full_View_As_Ghost): Removed.
(Mark_Ghost_Declaration_Or_Body): New routine.
(Mark_Ghost_Pragma): New routine.
(Mark_Ghost_Renaming): New routine.
(Mark_Pragma_As_Ghost): Removed.
(Mark_Renaming_As_Ghost): Removed.
(Propagate_Ignored_Ghost_Code): Update the comment on usage.
(Prune_Node): Freeze nodes no longer need special pruning, they
are processed by the general ignored Ghost code mechanism.
(Restore_Ghost_Mode): New routine.
(Set_Ghost_Mode): Reimplemented.
(Set_Ghost_Mode_From_Entity): Removed.
* ghost.ads Add with and use clauses for Ghost.
(Check_Ghost_Completion): Update the parameter profile
along with the comment on usage.
(Install_Ghost_Mode): New routine.
(Is_Ghost_Assignment): New routine.
(Is_Ghost_Declaration): New routine.
(Is_Ghost_Pragma): New routine.
(Is_Ghost_Procedure_Call): New routine.
(Mark_And_Set_Ghost_Assignment): New routine.
(Mark_And_Set_Ghost_Body): New routine.
(Mark_And_Set_Ghost_Completion): New routine.
(Mark_And_Set_Ghost_Declaration): New routine.
(Mark_And_Set_Ghost_Instantiation): New routine.
(Mark_And_Set_Ghost_Procedure_Call): New routine.
(Mark_Full_View_As_Ghost): Removed.
(Mark_Ghost_Pragma): New routine.
(Mark_Ghost_Renaming): New routine.
(Mark_Pragma_As_Ghost): Removed.
(Mark_Renaming_As_Ghost): Removed.
(Restore_Ghost_Mode): New routine.
(Set_Ghost_Mode): Redefined.
(Set_Ghost_Mode_From_Entity): Removed.
* sem.adb (Analyze): Install and revert the Ghost region of the
node being analyzed.
(Do_Analyze): Change the way a clean Ghost
region is installed and reverted.
* sem_ch3.adb (Analyze_Full_Type_Declaration): Remove
all Ghost-related code.
(Analyze_Incomplete_Type_Decl): Remove all Ghost-related code.
(Analyze_Number_Declaration): Remove all Ghost-related code.
(Analyze_Object_Declaration): Install and revert the Ghost region of
a deferred object declaration's completion.
(Array_Type_Declaration): Remove all Ghost-related code.
(Build_Derived_Type): Update the comment on
the propagation of Ghost attributes from a parent to a derived type.
(Derive_Subprogram): Remove all Ghost-related code.
(Make_Class_Wide_Type): Remove all Ghost-related code.
(Make_Implicit_Base): Remove all Ghost-related code.
(Process_Full_View): Install and revert the Ghost region of
the partial view. There is no longer need to check the Ghost
completion here.
* sem_ch5.adb (Analyze_Assignment): Install and revert the Ghost
region of the left hand side.
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove
all Ghost-related code.
(Analyze_Expression_Function): Remove all Ghost-related code.
(Analyze_Generic_Subprogram_Body): Remove all Ghost-related code.
(Analyze_Procedure_Call): Install and revert the Ghost region of
the procedure being called.
(Analyze_Subprogram_Body_Helper): Install and revert the Ghost
region of the spec or body.
(Analyze_Subprogram_Declaration): Remove all Ghost-related code.
(Build_Subprogram_Declaration): Remove all Ghost-related code.
(Find_Corresponding_Spec): Remove all Ghost-related code.
(Process_Formals): Remove all Ghost-related code.
* sem_ch7.adb (Analyze_Package_Body_Helper): Install and revert
the Ghost region of the spec.
(Analyze_Package_Declaration): Remove all Ghost-related code.
* sem_ch8.adb (Analyze_Exception_Renaming): Mark a renaming as
Ghost when it aliases a Ghost entity.
(Analyze_Generic_Renaming): Mark a renaming as Ghost when it aliases
a Ghost entity.
(Analyze_Object_Renaming): Mark a renaming as Ghost when
it aliases a Ghost entity.
(Analyze_Package_Renaming): Mark a renaming as Ghost when it aliases
a Ghost entity.
(Analyze_Subprogram_Renaming): Mark a renaming as Ghost when it
aliases a Ghost entity.
* sem_ch11.adb Remove with and use clauses for Ghost.
(Analyze_Exception_Declaration): Remove all Ghost-related code.
* sem_ch12.adb (Analyze_Generic_Package_Declaration): Remove all
Ghost-related code.
(Analyze_Generic_Subprogram_Declaration): Remove all Ghost-related
code.
(Analyze_Package_Instantiation): Install and revert the Ghost region
of the package instantiation.
(Analyze_Subprogram_Instantiation): Install
and revert the Ghost region of the subprogram instantiation.
(Instantiate_Package_Body): Code clean up. Install and revert the
Ghost region of the package body.
(Instantiate_Subprogram_Body): Code clean up. Install and revert the
Ghost region of the subprogram body.
* sem_ch13.adb (Build_Predicate_Functions): Install
and revert the Ghost region of the related type.
(Build_Predicate_Function_Declaration): Code clean up. Install
and rever the Ghost region of the related type.
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
Install and revert the Ghost region of the pragma.
(Analyze_Initial_Condition_In_Decl_Part): Install and revert the
Ghost region of the pragma.
(Analyze_Pragma): Install and revert the Ghost region of various
pragmas. Mark a pragma as Ghost when it is related to a Ghost entity
or encloses a Ghost entity.
(Analyze_Pre_Post_Condition): Install and revert the Ghost
region of the pragma.
(Analyze_Pre_Post_Condition_In_Decl_Part): Install and revert the
Ghost region of the pragma.
* sem_res.adb (Resolve): Remove all Ghost-related code.
* sem_util.adb (Is_Declaration): Reimplemented.
(Is_Declaration_Other_Than_Renaming): New routine.
* sem_util.ads (Is_Declaration_Other_Than_Renaming): New routine.
* sinfo.adb (Is_Checked_Ghost_Pragma): New routine.
(Is_Ghost_Pragma): Removed.
(Is_Ignored_Ghost_Pragma): New routine.
(Set_Is_Checked_Ghost_Pragma): New routine.
(Set_Is_Ghost_Pragma): Removed.
(Set_Is_Ignored_Ghost_Pragma): New routine.
* sinfo.ads: Update the documentation on Ghost mode and
Ghost regions. New attributes Is_Checked_Ghost_Pragma
and Is_Ignored_Ghost_Pragma along with usages in nodes.
Remove attribute Is_Ghost_Pragma along with usages in nodes.
(Is_Checked_Ghost_Pragma): New routine along with pragma Inline.
(Is_Ghost_Pragma): Removed along with pragma Inline.
(Is_Ignored_Ghost_Pragma): New routine along with pragma Inline.
(Set_Is_Checked_Ghost_Pragma): New routine along with pragma Inline.
(Set_Is_Ghost_Pragma): Removed along with pragma Inline.
(Set_Is_Ignored_Ghost_Pragma): New routine along with pragma Inline.
From-SVN: r244395
Richard Biener [Fri, 13 Jan 2017 08:47:57 +0000 (08:47 +0000)]
re PR tree-optimization/77283 (Revision 238005 disables loop unrolling)
2017-01-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/77283
* gcc.dg/tree-ssa/split-path-9.c: Fix.
From-SVN: r244394
Richard Biener [Fri, 13 Jan 2017 08:16:59 +0000 (08:16 +0000)]
gimple-parser.c (c_parser_gimple_postfix_expression): Parse _Literal ( type-name ) number.
2017-01-13 Richard Biener <rguenther@suse.de>
c/
* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
_Literal ( type-name ) number.
* tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
as _Literal ( type ) number in case usual suffixes do not
preserve all information.
* gcc.dg/gimplefe-22.c: New testcase.
From-SVN: r244393
Richard Biener [Fri, 13 Jan 2017 08:11:01 +0000 (08:11 +0000)]
re PR tree-optimization/77283 (Revision 238005 disables loop unrolling)
2017-01-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/77283
* gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
and ssa-iterators.h.
(is_feasible_trace): Implement a cost model based on joiner
PHI node uses.
* gcc.dg/tree-ssa/split-path-7.c: Adjust.
* gcc.dg/tree-ssa/split-path-8.c: New testcase.
* gcc.dg/tree-ssa/split-path-9.c: Likewise.
From-SVN: r244392
GCC Administrator [Fri, 13 Jan 2017 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r244391
Sandra Loosemore [Thu, 12 Jan 2017 22:42:33 +0000 (17:42 -0500)]
pr77862.c: Require fpic target.
2017-01-12 Sandra Loosemore <sandra@codesourcery.com>
gcc/testsuite/
* gcc.dg/pr77862.c: Require fpic target.
From-SVN: r244387
Michael Meissner [Thu, 12 Jan 2017 22:02:57 +0000 (22:02 +0000)]
re PR target/79004 (ICE in gcc.dg/torture/fp-int-convert-float128-ieee.c with -mcpu=power9)
[gcc]
2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/79004
* config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
char or short to __float128/_Float128 directly.
[gcc/testsuite]
2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/79004
* gcc.target/powerpc/pr79004.c: New test.
From-SVN: r244386
Martin Sebor [Thu, 12 Jan 2017 21:54:41 +0000 (21:54 +0000)]
(-Wformat-overflow): ...to this.
gcc/c-family/ChangeLog:
(-Wformat-overflow): ...to this.
gcc/ChangeLog:
to -Wformat-overflow.
* gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
(min_bytes_remaining): Same.
(get_string_length): Same.
(format_string): Same.
(format_directive): Same.
(add_bytes): Same.
(pass_sprintf_length::handle_gimple_call): Same.
gcc/testsuite/ChangeLog:
* gcc.dg/pr78138.c: Adjust.
* gcc.dg/pr78768.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-4.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-4.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-7.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-8.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: Adjust.
* gcc.dg/tree-ssa/pr78605.c: Adjust.
* gcc.dg/tree-ssa/pr78622.c: Adjust.
From-SVN: r244385
Jakub Jelinek [Thu, 12 Jan 2017 21:30:56 +0000 (22:30 +0100)]
gimple-ssa-sprintf.c (try_substitute_return_value): Remove info.nowrite calls with no lhs that can't throw.
* gimple-ssa-sprintf.c (try_substitute_return_value): Remove
info.nowrite calls with no lhs that can't throw. Return bool
whether gsi_remove has been called or not.
(pass_sprintf_length::handle_gimple_call): Return bool whether
try_substitute_return_value called gsi_remove. Formatting fix.
(pass_sprintf_length::execute): Don't use gsi_remove if
handle_gimple_call returned true.
* gcc.dg/tree-ssa/builtin-snprintf-1.c: New test.
From-SVN: r244384
Jakub Jelinek [Thu, 12 Jan 2017 21:29:43 +0000 (22:29 +0100)]
re PR bootstrap/79069 (Bootstrap failure on s390x-linux while building libgo)
PR bootstrap/79069
* cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
be removed due to side-effects, don't remove following barrier nor
turn the successor edge into fallthru edge.
From-SVN: r244383
Martin Sebor [Thu, 12 Jan 2017 18:50:26 +0000 (18:50 +0000)]
re PR testsuite/79051 (FAIL: gcc.dg/attr-alloc_size-4.c (test for warnings, line 140))
PR testsuite/79051
gcc/testsuite/ChangeLog:
* gcc.dg/attr-alloc_size-4.c: Work harder to avoid false negatives
due to bug 79054.
From-SVN: r244382
Martin Sebor [Thu, 12 Jan 2017 18:41:33 +0000 (11:41 -0700)]
Reference PR testsuite/79051, not 791051.
From-SVN: r244381
Martin Sebor [Thu, 12 Jan 2017 18:35:19 +0000 (18:35 +0000)]
PR testsuite/791051 - FAIL: gcc.dg/attr-alloc_size-4.c (test for warnings, line 140)
gcc/testsuite/ChangeLog:
* gcc.dg/attr-alloc_size-4.c: Avoid false negatives due to bug 79054.
From-SVN: r244380
David Edelsohn [Thu, 12 Jan 2017 18:27:04 +0000 (18:27 +0000)]
* gcc.dg/pr78768.c: Require LTO.
From-SVN: r244379
Martin Sebor [Thu, 12 Jan 2017 18:07:51 +0000 (18:07 +0000)]
PR c/79074 - -Waddress difference between C and C++ with (T*)0
gcc/testsuite/ChangeLog:
* c-c++-common/Waddress-2.c: Remove a test to avoid a C failure
due to the referenced bug.
From-SVN: r244378
Martin Sebor [Thu, 12 Jan 2017 17:43:16 +0000 (17:43 +0000)]
PR testsuite/79073 - FAIL: gcc.dg/pr78973.c (test for warnings, line 12) in ILP32
gcc/testsuite/ChangeLog:
* gcc.dg/pr78973.c: Xfail on ILP32 targets.
From-SVN: r244377
Uros Bizjak [Thu, 12 Jan 2017 17:30:03 +0000 (18:30 +0100)]
builtin_target.c (check_features): Check all supported __builtin_cpu_supports options.
* gcc.target/i386/builtin_target.c (check_features): Check all
supported __builtin_cpu_supports options.
From-SVN: r244375
Jonathan Wakely [Thu, 12 Jan 2017 17:28:36 +0000 (17:28 +0000)]
PR77528 partially revert r244278 and define default constructors
PR libstdc++/77528
* include/bits/stl_queue.h (queue, priority_queue): Remove default
member-initializers and define default constructors as templates with
constraints.
* include/bits/stl_stack.h (stack): Likewise.
* testsuite/23_containers/priority_queue/requirements/constructible.cc:
New.
* testsuite/23_containers/priority_queue/requirements/
explicit_instantiation/1.cc: Test more instantiations.
* testsuite/23_containers/priority_queue/requirements/
explicit_instantiation/1_c++98.cc: Likewise.
* testsuite/23_containers/queue/requirements/constructible.cc: New.
* testsuite/23_containers/stack/requirements/constructible.cc: New.
From-SVN: r244374
Kyrylo Tkachov [Thu, 12 Jan 2017 17:02:38 +0000 (17:02 +0000)]
Add Cortex-A15 tuning to gcc.dg/uninit-pred-8_a.c
PR tree-optimization/78319
* gcc.dg/uninit-pred-8_a.c: Add -mtune=cortex-a15 for arm.
Remove xfail.
From-SVN: r244372
Uros Bizjak [Thu, 12 Jan 2017 16:12:22 +0000 (17:12 +0100)]
* config/i386/i386.c: Fix whitespace.
From-SVN: r244371
Uros Bizjak [Thu, 12 Jan 2017 16:10:14 +0000 (17:10 +0100)]
* config/i386/i386.c (PTA_SGX): Define to 1 << 63.
From-SVN: r244370
Arnaud Charlet [Thu, 12 Jan 2017 16:01:16 +0000 (17:01 +0100)]
[multiple changes]
2017-01-12 Tristan Gingold <gingold@adacore.com>
* s-mmap.ads, s-mmap.adb, s-mmosin-unix.ads, s-mmosin-unix.adb,
s-mmauni-long.ads, s-mmosin-mingw.ads, s-mmosin-mingw.adb: New files.
2017-01-12 Yannick Moy <moy@adacore.com>
* errout.adb, errout.ads (Initialize): Factor common treatment
in Reset_Warnings.
(Reset_Warnings): New procedure to reset counts related to warnings.
(Record_Compilation_Errors): New variable to store the presence of an
error, used in gnat2why to allow changing the Warning_Mode.
(Compilation_Errors): Use new variable Record_Compilation_Errors to
store the presence of an error.
2017-01-12 Javier Miranda <miranda@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications):
For Interrupt_Handler and Attach_ Handler aspects, decorate the
internally built reference to the protected procedure as coming
from sources and force its analysis.
2017-01-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Build_Derived_Type): For a scalar derived type,
inherit predicates if any from the first_subtype of the parent,
not from the anonymous parent type.
* sem_eval.adb (Is_Static_Subtype): A type that inherits a dynamic
predicate is not a static subtype.
2017-01-12 Gary Dismukes <dismukes@adacore.com>
* freeze.adb (Check_Suspicious_Convention): New procedure
performing a warning check on discriminated record types with
convention C or C++. Factored out of procedure Freeze_Record_Type,
and changed to only apply to base types (to avoid spurious
warnings on subtypes). Minor improvement of warning messages
to refer to discriminated rather than variant record types.
(Freeze_Record_Type): Remove code for performing a suspicious
convention check.
(Freeze_Entity): Only call Freeze_Record_Type
on types that aren't declared within any enclosing generic units
(rather than just excluding the type when the innermost scope
is generic). Call Check_Suspicious_Convention whether or not
the type is declared within a generic unit.
* sem_ch8.adb (In_Generic_Scope): Move this function to Sem_Util.
* sem_util.ads, sem_util.adb (In_Generic_Scope): New function (moved
from Sem_Ch8).
2017-01-12 Tristan Gingold <gingold@adacore.com>
* sysdep.c, adaint.c, rtinit.c, ming32.h:
(__gnat_current_codepage): Renamed from CurrentCodePage
(__gnat_current_ccs_encoding): Renamed from CurrentCCSEncoding
2017-01-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Fully_Conformant_Expressions): Handle properly
quantified expressions, following AI12-050: the loop parameters
of two quantified expressions are conformant if they have the
same identifier.
From-SVN: r244369
Bill Schmidt [Thu, 12 Jan 2017 16:01:13 +0000 (16:01 +0000)]
re PR target/79044 (ICE in insn_is_swappable_p, at config/rs6000/rs6000.c:41191)
[gcc]
2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/79044
* config/rs6000/rs6000.c (insn_is_swappable_p): Mark
element-reversing loads and stores as not swappable.
[gcc/testsuite]
2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/79044
* gcc.target/powerpc/swaps-p8-26.c: New.
From-SVN: r244368
Arnaud Charlet [Thu, 12 Jan 2017 15:57:45 +0000 (15:57 +0000)]
* gcc-interface/Makefile.in: Clean up VxWorks targets.
From-SVN: r244367
Arnaud Charlet [Thu, 12 Jan 2017 14:42:42 +0000 (15:42 +0100)]
[multiple changes]
2017-01-12 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Analyze_Attribute_Reference, case Loop_Entry):
Hnadle properly the attribute reference when it appears as part
of an expression in another loop aspect.
2017-01-12 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Check_Predicated_Discriminant): New procedure,
subsidiary of Build_Initialization_Call, to complete generation
of predicate checks on discriminants whose (sub)types have
predicates, and to add checks on variants that do not have an
others clause.
* sem_util.adb (Gather_Components): A missing Others alternative is
not an error when the type of the discriminant is a static predicate
(and coverage has been checked when analyzing the case statement). A
runtime check is generated to verify that a given discriminant
satisfies the predicate (RM 3.8.1. (21.1/2)).
2017-01-12 Yannick Moy <moy@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Only
perform checking of exception mechanism when generating code.
2017-01-12 Justin Squirek <squirek@adacore.com>
* exp_ch7.adb (Add_Type_Invariants, Process_Array_Component):
Remove handling of access component with invariant.
(Build_Invariant_Procedure_Declaration): Remove return on class
wide type.
* freeze.adb (Freeze_Array_Type, Freeze_Record_Type): Remove
conditional exception for component or array so Has_Own_Invariants
flag is not falsly set.
* sem_ch3.adb (Make_Class_Wide_Type): Initialize copy of class
wide type to have no invariant flags.
From-SVN: r244366
Arnaud Charlet [Thu, 12 Jan 2017 14:40:14 +0000 (15:40 +0100)]
[multiple changes]
2017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch9.adb, sem_prag.adb, s-tassta.adb, sem_util.adb, s-tarest.adb,
sem_ch13.adb: Minor reformatting.
2017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
* exp_aggr.adb (Build_Record_Aggr_Code): Guard against a missing
adjustment primitive when the ancestor type was not properly frozen.
(Gen_Assign): Guard against a missing initialization
primitive when the component type was not properly frozen.
(Initialize_Array_Component): Guard against a missing adjustment
primitive when the component type was not properly frozen.
(Initialize_Record_Component): Guard against a missing adjustment
primitive when the component type was not properly frozen.
(Process_Transient_Component_Completion): The transient object may
not be finalized when its associated type was not properly frozen.
* exp_ch3.adb (Build_Assignment): Guard against a missing
adjustment primitive when the component type was not properly frozen.
(Build_Initialization_Call): Guard against a missing
initialization primitive when the associated type was not properly
frozen.
(Expand_N_Object_Declaration): Guard against a missing
adjustment primitive when the base type was not properly frozen.
(Predefined_Primitive_Bodies): Create an empty Deep_Adjust
body when there is no adjustment primitive available. Create an
empty Deep_Finalize body when there is no finalization primitive
available.
* exp_ch4.adb (Apply_Accessibility_Check): Guard against a
missing finalization primitive when the designated type was
not properly frozen.
(Expand_N_Allocator): Guard against a missing initialization primitive
when the designated type was not properly frozen.
* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add the adjustment call
only when the corresponding adjustment primitive is available.
* exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Generate the
adjustment/finalization statements only when there is an available
primitive to carry out the action.
(Build_Initialize_Statements): Generate the initialization/finalization
statements only when there is an available primitive to carry out the
action.
(Make_Adjust_Call): Do not generate a call when the underlying
type is not present due to a possible missing full view.
(Make_Final_Call): Do not generate a call when the underlying
type is not present due to a possible missing full view.
(Make_Finalize_Address_Stmts): Generate an empty body when the
designated type lacks a finalization primitive.
(Make_Init_Call): Do not generate a call when the underlying type is
not present due to a possible missing full view.
(Process_Component_For_Adjust): Add the adjustment call only when the
corresponding adjustment primitive is available.
(Process_Component_For_Finalize): Add the finalization call only when
the corresponding finalization primitive is available.
(Process_Object_Declaration): Use a null statement to emulate a
missing call to the finalization primitive of the object type.
* exp_ch7.ads (Make_Adjust_Call): Update the comment on usage.
(Make_Final_Call): Update the comment on usage.
(Make_Init_Call): Update the comment on usage.
* exp_util.adb (Build_Transient_Object_Statements): Code reformatting.
2017-01-12 Arnaud Charlet <charlet@adacore.com>
* einfo.ads: Update documentation of Address_Taken.
* sem_attr.adb (Analyze_Access_Attribute, Resolve_Attribute
[Access_Attribute]): Only consider 'Access/'Unchecked_Access
for subprograms when setting Address_Taken flag.
2017-01-12 Patrick Bernardi <bernardi@adacore.com>
* sem_ch10.adb (Analyze_With_Clause): Removed code that turned
Configurable_Run_Time_Mode off when analysing with'ed predefined
libraries.
From-SVN: r244365
Jonathan Wakely [Thu, 12 Jan 2017 14:28:38 +0000 (14:28 +0000)]
PR66284 remove std::function special case for reference_wrapper
PR libstdc++/66284
* doc/xml/manual/intro.xml: Document LWG 2781 change.
* doc/html/*: Regenerate.
* include/std/functional (_Function_base::_Ref_manager): Remove.
(_Function_handler): Remove partial specializations for
reference_wrapper.
(function::target): Remove special case for const qualification.
* testsuite/20_util/function/6.cc: Adjust tests for target type.
* testsuite/20_util/function/7.cc: Likewise.
* testsuite/20_util/function/8.cc: Likewise.
From-SVN: r244364
Gary Dismukes [Thu, 12 Jan 2017 13:59:45 +0000 (13:59 +0000)]
sem_prag.adb: Minor reformatting.
2017-01-12 Gary Dismukes <dismukes@adacore.com>
* sem_prag.adb: Minor reformatting.
* sem_util.adb (Unique_Entity): fix result for
bodies of entry families.
From-SVN: r244363
Justin Squirek [Thu, 12 Jan 2017 13:55:59 +0000 (13:55 +0000)]
sem_prag.adb (Analyze_Pragma): Add appropriate calls to Resolve_Suppressible in the pragma Assertion_Policy case.
2017-01-12 Justin Squirek <squirek@adacore.com>
* sem_prag.adb (Analyze_Pragma): Add appropriate calls to
Resolve_Suppressible in the pragma Assertion_Policy case.
(Resolve_Suppressible): Created this function to factor out
common code used to resolve Suppress to either Ignore or Check
* snames.ads-tmpl: Add name for Suppressible.
From-SVN: r244362
Nathan Sidwell [Thu, 12 Jan 2017 13:54:43 +0000 (13:54 +0000)]
combine.c (try_combine): Don't ignore result of overlap checking loop.
* combine.c (try_combine): Don't ignore result of overlap checking
loop. Combine overlap & asm check into single loop.
Co-Authored-By: Nicolai Stange <nicstange@gmail.com>
From-SVN: r244361
Gary Dismukes [Thu, 12 Jan 2017 13:54:16 +0000 (13:54 +0000)]
exp_ch9.adb, [...]: Minor reformatting.
2017-01-12 Gary Dismukes <dismukes@adacore.com>
* exp_ch9.adb, s-secsta.adb, snames.ads-tmpl, exp_ch3.adb: Minor
reformatting.
* debug.adb: Minor comment fixes.
From-SVN: r244360
Arnaud Charlet [Thu, 12 Jan 2017 13:50:33 +0000 (14:50 +0100)]
Change percentage to 25
From-SVN: r244359
Arnaud Charlet [Thu, 12 Jan 2017 13:49:46 +0000 (14:49 +0100)]
[multiple changes]
2017-01-12 Arnaud Charlet <charlet@adacore.com>
* sem_util.adb (Unique_Entity): For concurrent
bodies that are defined with stubs and complete a declaration
of a single concurrent object return the entity of an implicit
concurrent type, not the entity of the anonymous concurrent
object.
* debug.adb: -gnatd.J is no longer used.
* make.adb (Globalize): Removed, no longer used.
* sem_ch9.adb: minor typo in comment for entry index
2017-01-12 Patrick Bernardi <bernardi@adacore.com>
* aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
* exp_ch3.adb (Build_Init_Statements): As part of initialising
the value record of a task, set its _Secondary_Stack_Size field
if present.
* exp_ch9.adb (Expand_N_Task_Type_Declaration): Create
a _Secondary_Stack_Size field in the value record of
the task if a Secondary_Stack_Size rep item is present.
(Make_Task_Create_Call): Include secondary stack size
parameter. If No_Secondary_Stack restriction is in place, passes
stack size of 0.
* par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma
Secondary_Stack_Size.
* s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New
function to define the overhead of the secondary stack.
* s-tarest.adb (Create_Restricted_Task,
Create_Restricted_Task_Sequential): Functions now include
Secondary_Stack_Size parameter to pass to Initialize_ATCB.
* s-tarest.adb (Create_Restricted_Task,
Create_Restricted_Task_Sequential): Calls to Initialize_ATCB now
include Secondary_Stack_Size parameter.
(Task_Wrapper): Secondary stack now allocated to the size specified by
the Secondary_Stack_Size parameter in the task's ATCB.
* s-taskin.adb, s-taskin.adb (Common_ATCB, Initialize_ATCB): New
Secondary_Stack_Size component.
* s-tassta.adb, s-tassta.ads (Create_Restricted_Task,
Create_Restricted_Task_Sequential): Function now include
Secondary_Stack_Size parameter.
(Task_Wrapper): Secondary stack now allocated to the size
specified by the Secondary_Stack_Size parameter in the task's
ATCB.
* s-tproft.adb (Register_Foreign_Thread): Amended Initialize_ATCB call
to include Secondary_Stack_Size parameter.
* sem_ch13.adb (Analyze_Aspect_Specification): Add support for
Secondary_Stack_Size aspect, turning the aspect into its corresponding
internal attribute.
(Analyze_Attribute_Definition): Process Secondary_Stack_Size attribute.
* snames.adb-tmpl, snames.ads-tmpl: Added names
Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size,
Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size.
From-SVN: r244358
Arnaud Charlet [Thu, 12 Jan 2017 13:30:56 +0000 (14:30 +0100)]
Minor reformatting.
From-SVN: r244357
Arnaud Charlet [Thu, 12 Jan 2017 13:30:20 +0000 (14:30 +0100)]
[multiple changes]
2017-01-12 Yannick Moy <moy@adacore.com>
* exp_spark.adb (Expand_SPARK_Potential_Renaming): Fix sloc of copied
subtree.
2017-01-12 Justin Squirek <squirek@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference):
Fix Finalization_Size case by properly resolving the type after
rewritting the node.
2017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Build_DIC_Procedure_Body): Semi-insert the body into
the tree.
(Build_DIC_Procedure_Declaration): Semi-insert the body into the tree.
* binde.adb, exp_ch5.adb, sem_type.adb, sem.ads, sem_res.adb,
exp_sel.ads: Minor reformatting.
2017-01-12 Justin Squirek <squirek@adacore.com>
* exp_ch6.adb (Expand_Call): Add guard to prevent
invariant checks from being created for internally generated
subprograms.
2017-01-12 Bob Duff <duff@adacore.com>
* lib-writ.ads: Remove incorrect comment.
2017-01-12 Javier Miranda <miranda@adacore.com>
* debug.adb (-gnatd.K): Enable generation of contract-only
procedures in CodePeer mode.
* contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
New subprogram.
(Analyze_Contracts): Generate contract-only procedures if -gnatdK is
set.
* scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): New
subprogram.
(Get_Contract_Only_Missing_Body_Name): New subprogram.
(Get_Contract_Only_Body): New subprogram.
(Set_Contract_Only_Body): New subprogram.
(Is_Contract_Only_Body): New subprogram.
(Set_Is_Contract_Only_Body): New subprogram.
(SCIL_Nodes): Replace table by hash-table.
From-SVN: r244356
Arnaud Charlet [Thu, 12 Jan 2017 13:26:34 +0000 (14:26 +0100)]
[multiple changes]
2017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch6.adb: Minor reformatting.
* spark_xrefs.ads: minor cleanup of comments for SPARK xrefs
2017-01-12 Bob Duff <duff@adacore.com>
* binde.adb (Forced): New reason for a dependence.
(Force_Elab_Order): Implementation of the new switch.
* binde.ads: Minor comment fixes.
* bindusg.adb: Add -f switch. Apparently, there was an -f switch
long ago that is no longer supported; removed comment about that.
* opt.ads (Force_Elab_Order_File): Name of file specified for
-f switch.
* switch-b.adb: Parse -f switch.
From-SVN: r244355
Justin Squirek [Thu, 12 Jan 2017 13:24:16 +0000 (13:24 +0000)]
exp_ch6.adb (Check_View_Conversion): Created this function to properly chain calls to check type invariants that may...
2017-01-12 Justin Squirek <squirek@adacore.com>
* exp_ch6.adb (Check_View_Conversion): Created this function
to properly chain calls to check type invariants that may be
present in a subprogram call after the subprogram.
(Expand_Call): Add a conditional to identify when a view conversion
needs to be checked.
* nlists.adb, nlists.ads (Prepend_New): New routine.
(Prepend_New_To): New routine.
From-SVN: r244354
Arnaud Charlet [Thu, 12 Jan 2017 13:21:21 +0000 (14:21 +0100)]
[multiple changes]
2017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
* sinfo.ads: Minor reformatting.
2017-01-12 Gary Dismukes <dismukes@adacore.com>
* exp_util.adb, exp_util.ads, einfo.ads: Minor typo fixes and
reformatting.
2017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch6.adb (Make_Build_In_Place_Call_In_Anonymous_Context): Add new
variable Definite. Create a local object and pass its 'Access to the
BIP function when the result type is either definite or it does not
require any finalization or secondary stack management.
From-SVN: r244353
Bob Duff [Thu, 12 Jan 2017 13:18:47 +0000 (13:18 +0000)]
contracts.adb, [...] (Pragma_Name): Change name to Pragma_Name_Unmapped.
2017-01-12 Bob Duff <duff@adacore.com>
* contracts.adb, einfo.adb, errout.adb, exp_attr.adb,
exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_prag.adb, freeze.adb,
frontend.adb, ghost.adb, inline.adb, lib-writ.adb, lib-xref.adb,
par.adb, par-ch10.adb, par-ch2.adb, par-prag.adb, par_sco.adb,
sem_attr.adb, sem_aux.adb, sem_ch10.adb, sem_ch12.adb,
sem_ch13.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb,
sem_prag.adb, sem_res.adb, sem_util.adb, sem_util.ads,
sem_warn.adb, sinfo.adb, sinfo.ads, sprint.adb (Pragma_Name):
Change name to Pragma_Name_Unmapped.
(Pragma_Name_Mapped): Change name to Pragma_Name.
This is because the "mapped" version should be the usual case.
From-SVN: r244352
Richard Biener [Thu, 12 Jan 2017 08:33:09 +0000 (08:33 +0000)]
tree-pretty-print.c (dump_generic_node): Provide -gimple variant for MEM_REF.
2017-01-12 Richard Biener <rguenther@suse.de>
* tree-pretty-print.c (dump_generic_node): Provide -gimple
variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
c/
* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
__MEM.
* gcc.dg/gimplefe-21.c: New testcase.
From-SVN: r244350
Richard Biener [Thu, 12 Jan 2017 08:13:43 +0000 (08:13 +0000)]
tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION and TS_TARGET_OPTION directly derive from TS_BASE.
2017-01-12 Richard Biener <rguenther@suse.de>
* tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
and TS_TARGET_OPTION directly derive from TS_BASE.
* tree-core.h (tree_optimization_option): Derive from tree_base.
(tree_target_option): Likewise.
From-SVN: r244349
Michael Collison [Thu, 12 Jan 2017 08:12:02 +0000 (08:12 +0000)]
zero_bits_compound-2.c: Fix test for aarch64.
2016-11-30 Michael Collison <michael.collison@arm.com>
* gcc.dg/zero_bits_compound-2.c: Fix test for aarch64.
From-SVN: r244348
GCC Administrator [Thu, 12 Jan 2017 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r244346
Uros Bizjak [Wed, 11 Jan 2017 21:53:45 +0000 (22:53 +0100)]
i386.c (memory_address_length): Increase len only when rip_relative_addr_p returns false.
* config/i386/i386.c (memory_address_length): Increase len
only when rip_relative_addr_p returns false.
From-SVN: r244341
Jason Merrill [Wed, 11 Jan 2017 21:43:42 +0000 (16:43 -0500)]
PR c++/78337 - ICE on invalid with generic lambda
* semantics.c (process_outer_var_ref): Check if containing_function
is null. Move inform call under complain test.
From-SVN: r244340
Julia Koval [Wed, 11 Jan 2017 21:41:13 +0000 (22:41 +0100)]
i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
* common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
(OPTION_MASK_ISA_SGX_SET): New.
(ix86_handle_option): Handle OPT_msgx.
* config.gcc: Added sgxintrin.h.
* config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
* config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
* config/i386/i386.c (ix86_target_string): Add -msgx.
(PTA_SGX): New.
(ix86_option_override_internal): Handle new options.
(ix86_valid_target_attribute_inner_p): Add sgx.
* config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
* config/i386/i386.opt: Add msgx.
* config/i386/sgxintrin.h: New file.
* config/i386/x86intrin.h: Add sgxintrin.h.
testsuite/ChangeLog:
* gcc.target/i386/sgx.c New test.
* gcc.target/i386/sse-12.c: Add -msgx.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* g++.dg/other/i386-2.C: Ditto.
* g++.dg/other/i386-3.C: Ditto.
Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r244339
Jakub Jelinek [Wed, 11 Jan 2017 21:39:25 +0000 (22:39 +0100)]
Fix up a typo.
From-SVN: r244338
Martin Sebor [Wed, 11 Jan 2017 21:02:46 +0000 (21:02 +0000)]
PR c++/24511 - [DR 470] explicit instantiation/extern template unsats
PR c++/24511 - [DR 470] explicit instantiation/extern template unsats
// on symbols defined later
gcc/testsuite/ChangeLog:
* g++.dg/template/explicit9.C: New test.
From-SVN: r244337
Nathan Sidwell [Wed, 11 Jan 2017 20:37:16 +0000 (20:37 +0000)]
re PR c++/77812 (incorrectly rejects valid C++ code that uses enum in template instantiation)
cp/
PR c++/77812
* name-lookup.c (set_namespace_binding_1): An overload of 1 decl
is a new overload.
testsuite/
PR c++/77812
* g++.dg/pr77812.C: New.
From-SVN: r244335
Nathan Sidwell [Wed, 11 Jan 2017 20:11:56 +0000 (20:11 +0000)]
* name-lookup.c (push_overloaded_decl_1): Refactor OVERLOAD creation.
From-SVN: r244334
Jakub Jelinek [Wed, 11 Jan 2017 20:10:36 +0000 (21:10 +0100)]
re PR c++/71537 (GCC rejects consetxpr boolean conversions and comparisons on the result of pointer arithmetic.)
PR c++/71537
* fold-const.c (maybe_nonzero_address): Return 1 for function
local objects.
(tree_single_nonzero_warnv_p): Don't handle function local objects
here.
* g++.dg/cpp1y/constexpr-71537.C: New test.
From-SVN: r244333
Jakub Jelinek [Wed, 11 Jan 2017 19:48:56 +0000 (20:48 +0100)]
flatten-3.c: Add quotation marks around dg-options argument.
* gcc.dg/tree-ssa/flatten-3.c: Add quotation marks around dg-options
argument.
From-SVN: r244332
Martin Sebor [Wed, 11 Jan 2017 18:33:13 +0000 (18:33 +0000)]
PR c/47931 - missing -Waddress warning for comparison with NULL
gcc/testsuite/ChangeLog:
* c-c++-common/Waddress-2.c: New test.
From-SVN: r244331
Than McIntosh [Wed, 11 Jan 2017 18:15:16 +0000 (18:15 +0000)]
compiler: add containing Bfunction to conditional_expression
Add containing Bfunction to Backend::conditional_expression
method signature, since the back end might need to create a
temporary when generating IR for this construct.
Reviewed-on: https://go-review.googlesource.com/35056
From-SVN: r244330
Jakub Jelinek [Wed, 11 Jan 2017 18:09:58 +0000 (19:09 +0100)]
re PR c++/78341 (ICE on invalid C++ code on x86_64-linux-gnu (internal compiler error: in cp_parser_std_attribute_spec, at cp/parser.c:24597))
PR c++/78341
* parser.c (cp_parser_std_attribute_spec): Remove over-eager
assertion. Formatting fix.
* g++.dg/cpp0x/pr78341.C: New test.
From-SVN: r244329
Jakub Jelinek [Wed, 11 Jan 2017 18:08:57 +0000 (19:08 +0100)]
re PR c++/72813 (atomic header cannot be compiled into translation unit with -fkeep-inline-functions)
PR c++/72813
* gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
of c-header.
* c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing
PCH file.
* decl2.c (c_parse_final_cleanups): Set flag_syntax_only to 1 after
writing PCH file.
From-SVN: r244328
Ian Lance Taylor [Wed, 11 Jan 2017 17:41:49 +0000 (17:41 +0000)]
compiler: mark generated struct/array types as incomparable
The recent change to generate type functions for more types with
identity comparisons caused us to generate some unnecessary functions,
and even caused a compiler crash on Solaris due to phase ordering.
Avoid this by marking all generated and uncompared struct and array
types as incomparable, so that we don't try to generate type functions
for them.
Reviewed-on: https://go-review.googlesource.com/35110
From-SVN: r244327
Martin Sebor [Wed, 11 Jan 2017 17:28:52 +0000 (17:28 +0000)]
PR c/78768 - -Walloca-larger-than and -Wformat-length warnings disabled by -flto
gcc/ChangeLog:
* c.opt (-Walloca-larger-than, -Wformat-length, -Wformat-truncation):
Also enable for LTO.
gcc/testsuite/ChangeLog:
PR c/78768
* gcc.dg/pr78768.c: New test.
From-SVN: r244326
David Malcolm [Wed, 11 Jan 2017 17:25:40 +0000 (17:25 +0000)]
Offer suggestions for unrecognized sanitizer options (PR driver/78877)
gcc/ChangeLog:
PR driver/78877
* opts.c: Include "spellcheck.h"
(struct string_fragment): New struct.
(struct edit_distance_traits<const string_fragment &>): New
struct.
(get_closest_sanitizer_option): New function.
(parse_sanitizer_options): Offer suggestions for unrecognized arguments.
gcc/testsuite/ChangeLog:
PR driver/78877
* gcc.dg/spellcheck-options-14.c: New test case.
* gcc.dg/spellcheck-options-15.c: New test case.
* gcc.dg/spellcheck-options-16.c: New test case.
* gcc.dg/spellcheck-options-17.c: New test case.
From-SVN: r244325
Jakub Jelinek [Wed, 11 Jan 2017 16:46:15 +0000 (17:46 +0100)]
dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease by 12.
* dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
by 12.
(DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
(DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
(calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
for initial die_offset if dwarf_split_debug_info.
(output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
initial next_die_offset if dwo_id is non-NULL. Don't emit padding
fields.
(output_skeleton_debug_sections): Formatting fix. Use
DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
From-SVN: r244323
Wilco Dijkstra [Wed, 11 Jan 2017 16:38:42 +0000 (16:38 +0000)]
My previous change to the Cortex-A53 scheduler resulted in a 13% regression on a proprietary benchmark.
My previous change to the Cortex-A53 scheduler resulted in a 13% regression on a
proprietary benchmark. This turned out to be due to non-optimal scheduling of int
to float conversions. This patch separates int to FP transfers from int to float
conversions based on experiments to determine the best schedule. As a result of
these tweaks the performance of the benchmark improves by 20%.
gcc/
* config/arm/cortex-a53.md: Add bypasses for
cortex_a53_r2f_cvt.
(cortex_a53_r2f): Only use for transfers.
(cortex_a53_f2r): Likewise.
(cortex_a53_r2f_cvt): Add reservation for conversions.
(cortex_a53_f2r_cvt): Likewise.
From-SVN: r244322
Tamar Christina [Wed, 11 Jan 2017 16:30:28 +0000 (16:30 +0000)]
arm_neon.h: Add __artificial__ and gnu_inline to all inlined functions, change static to extern.
2017-01-09 Tamar Christina <tamar.christina@arm.com>
* config/arm/arm_neon.h: Add __artificial__ and gnu_inline
to all inlined functions, change static to extern.
From-SVN: r244321
Christophe Lyon [Wed, 11 Jan 2017 16:13:14 +0000 (16:13 +0000)]
[ARM] PR target/78253 Call weak function instead of strong when called through pointer.
2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
PR target/78253
* config/arm/arm.c (legitimize_pic_address): Handle reference to
weak symbol.
(arm_assemble_integer): Likewise.
From-SVN: r244320
Jonathan Wakely [Wed, 11 Jan 2017 14:44:15 +0000 (14:44 +0000)]
PR78134 fix return types of heterogeneous lookup functions
PR libstdc++/78134
* include/bits/stl_map.h (map::lower_bound, map::upper_bound)
(map::equal_range): Fix return type of heterogeneous overloads.
* include/bits/stl_multimap.h (multimap::lower_bound)
(multimap::upper_bound, multimap::equal_range): Likewise.
* include/bits/stl_multiset.h (multiset::lower_bound)
(multiset::upper_bound, multiset::equal_range): Likewise.
* include/bits/stl_set.h (set::lower_bound, set::upper_bound)
(set::equal_range): Likewise.
* testsuite/23_containers/map/operations/2.cc
* testsuite/23_containers/multimap/operations/2.cc
* testsuite/23_containers/multiset/operations/2.cc
* testsuite/23_containers/set/operations/2.cc
From-SVN: r244318
Jonathan Wakely [Wed, 11 Jan 2017 14:44:04 +0000 (14:44 +0000)]
PR78273 fix count to work with partitioning function
PR libstdc++/78273
* include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
the heterogeneous comparison can only find one match.
* include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
* testsuite/23_containers/map/operations/2.cc: Test count works with
comparison function that just partitions rather than sorting.
* testsuite/23_containers/set/operations/2.cc: Likewise.
From-SVN: r244317
Richard Earnshaw [Wed, 11 Jan 2017 14:39:00 +0000 (14:39 +0000)]
[arm] Replace command-line option .def files with single definition file
The files arm-cores.def, arm-fpus.def and arm-arches.def are parsed and
used in several places and the format is slightly awkward to maintain
as they must be parsable in C and by certain scripts. Furthermore,
changes to the content that affects every entry is particularly awkward for
dealing with merges.
This patch replaces all three files with a single file that specifies all
the command-line related definitions in a new format that allows for better
checking for consistency as well as (hopefully) easier to merge changes.
The awk script used to parse it is relatively complicated, but should be
pretty portable. It works by parsing in all the data and then operating
one of a number of possible sub-commands to generate the desired output.
The new method picked up one error. The CPU descriptions referred to an
architecture ARMv5tej which was not supported by -march. This has been
fixed by adding the relevant entry to the architecture list.
gcc:
* config.gcc: Use new awk script to check CPU, FPU and architecture
parameters for --with-... options.
* config/arm/parsecpu.awk: New file
* config/arm/arm-cpus.in: New file.
* config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
files.
* config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
files.
* config/arm/t-arm: Update dependency rules.
* common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
of processing .def files.
* config/arm/genopt.sh: Deleted.
* config/arm/gentune.sh: Deleted.
* config/arm/arm-cores.def: Deleted.
* config/arm/arm-arches.def: Deleted.
* config/arm/arm-fpus.def: Deleted.
* config/arm/arm-tune.md: Regenerated.
* config/arm/arm-tables.opt: Regenerated.
* config/arm/arm-cpu.h: New generated file.
* config/arm/arm-cpu-data.h: New generated file.
* config/arm/arm-cpu-cdata.h: New generated file.
Contrib:
* gcc_update: Adjust touch list.
From-SVN: r244316
Maxim Ostapenko [Wed, 11 Jan 2017 12:57:42 +0000 (12:57 +0000)]
re PR lto/79042 (LTO doesn't propagate node->dynamically_initialized bit for varpool nodes.)
PR lto/79042
* lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
bit.
(input_varpool_node): Unpack dynamically_initialized bit.
From-SVN: r244314
Martin Liska [Wed, 11 Jan 2017 12:17:27 +0000 (13:17 +0100)]
Fix flatten-3.c test-case.
2017-01-11 Martin Liska <mliska@suse.cz>
* gcc.dg/tree-ssa/flatten-3.c: Add -fno-ipa-icf to dg-options.
From-SVN: r244313
Jakub Jelinek [Wed, 11 Jan 2017 11:47:30 +0000 (12:47 +0100)]
decomp4.C (test): Use 2 identifier decomposition instead of just 1 for the decomposition from...
* g++.dg/cpp1z/decomp4.C (test): Use 2 identifier decomposition
instead of just 1 for the decomposition from struct C.
From-SVN: r244312