aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-12-11[Ada] Plug small loophole with pathological packed array typeEric Botcazou6-3/+45
This fixes a crash in gigi on a pathological packed array type, whose component type is a record type without representation clause or packing but with a clause that bumps its size to a non-multiple value of the storage unit. In this case, the front-end fails to detect that calls to the packing manpulation routines of the run time are necessary. The fix doesn't change anything for non-pathological cases, i.e. when the component type has a representation clause or is packed. 2018-12-11 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_aggr.adb (Packed_Array_Aggregate_Handled): Bail out for any non-scalar type as component type of the array. gcc/testsuite/ * gnat.dg/packed_array.adb, gnat.dg/packed_array.ads, gnat.dg/packed_array_pkg.ads: New testcase. From-SVN: r267006
2018-12-11[Ada] Fix elaboration of record with 1-element dynamic arrayEric Botcazou4-13/+29
2018-12-11 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * einfo.ads (Is_Bit_Packed_Array): Fix values of component size. (Is_Packed): Likewise. * gcc-interface/utils.c (convert): Do not extract the value of a justified modular type if the destination type is a regular array. * gcc-interface/decl.c (gnat_to_gnu_component_type): Pass TYPE_DECL to validate_size wherever the array has packed components. From-SVN: r267005
2018-12-11[Ada] gnatbind: ghost code with -gnatQBob Duff3-2/+11
This patch fixes a bug where if a library unit is compiled with -gnatQ, and that library unit is an ignored Ghost unit, then gnatbind silently fails. 2018-12-11 Bob Duff <duff@adacore.com> gcc/ada/ * gnat1drv.adb (gnat1drv): Pass the correct Object value when calling Write_ALI in the case of -gnatQ. * gnatbind.adb (Gnatbind): Avoid silent failure; give an error message. From-SVN: r267004
2018-12-11[Ada] Unnesting: fix for constrained arrays and improve static constantsEd Schonberg2-3/+38
2018-12-11 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (Needs_Fat_Pointer): A fat pointer is required if the entity has a private type whose full view is an unconstrained array type. (Rewrite_One_Ref): If the reference is to a static constant, use its value rather than create a reference through the activation record. This is more efficient, and furthermore indispensable if the context requires a static constant, such as in a branch of a case statement. From-SVN: r267003
2018-12-11[Ada] Missing predicate check on declaration with aggregate expressionEd Schonberg2-1/+12
This patch adds a missing predicate check on the initial value of an object whose declaration initializes the object with an aggregate. Such a declaration is marked No_Initialization to prevent a call to a default initialization procedure, but the check is needed on the value of the aggregate. Executing the following: gnatmake -q -gnata pred ./pred must yield: raised SYSTEM.ASSERTIONS.ASSERT_FAILURE : Dynamic_Predicate failed at root.ads:30 ---- with Root; procedure Pred is begin null; end Pred; ---- package Root with SPARK_Mode is type Index_Type is range 1 .. Natural'Last; type Element_Type is private; Null_Element : constant Element_Type; type Foobar_Type is array (Index_Type range <>) of Element_Type with Dynamic_Predicate => Foobar_Type'First > 0 and Foobar_Type'Length > 0; Null_Foobar : constant Foobar_Type; private type Kind_Type is (Kind_Invalid, Kind_Valid); type Element_Type (Kind : Kind_Type := Kind_Invalid) is record Index1 : Index_Type; case Kind is when Kind_Valid => Index2 : Index_Type; when Kind_Invalid => null; end case; end record; Null_Element : constant Element_Type := (Kind => Kind_Invalid, Index1 => Index_Type'First); Null_Foobar : constant Foobar_Type := (1 .. 0 => Null_Element); end Root; 2018-12-11 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch3.adb (Analyze_Object_Declaration): Apply Dynamic_Predicate check to an object of an array type initialized with an aggregate. From-SVN: r267002
2018-12-11[Ada] Crash on generic instantiation in ignored Ghost contextHristian Kirtchev5-35/+69
The following patch corrects the freezing of entities to properly preserve all freeze nodes in case of recursive freezing when the context is ignored Ghost, and the construct frozen is non-Ghost. 2018-12-11 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * freeze.adb (Add_To_Result): Move the ignored Ghost-specific handling of freeze nodes to... (Freeze_Entity): ...here. This ensures that the freeze nodes of constructs that have recursive freezing are preserved when the context is ignored Ghost, and the top level construct being frozen is non-Ghost. gcc/testsuite/ * gnat.dg/ghost3.adb, gnat.dg/ghost3.ads: New testcase. From-SVN: r267001
2018-12-11[Ada] Uintp: add a new UI_From_Integral generic constructorEd Schonberg3-0/+63
2018-12-11 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * uintp.ads, uintp.adb (UI_From_Integral): New generic function, to simplify construction of Universal_Integer representations from any Integer type. If type is small enough the code is equivalent to a call to UI_To_Int with appropriate conversions; otherwise the routine uses the existing mechanism of building a vector of suitable integer values and calling Vector_To_Uint. The routine must not be applied to a biased type. From-SVN: r267000
2018-12-11[Ada] Crash on compilation unit function that builds in placeEd Schonberg8-3/+52
This patch fixes a crash on a function that builds its limited result in place. Previously this was handled properly only if the function was a child unit. 2018-12-11 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch3.adb (Build_Itype_Reference): Handle properly an itype reference created for a function that is a compilation unit, for example if the function builds in place an object of a limited type. gcc/testsuite/ * gnat.dg/bip_cu.adb, gnat.dg/bip_cu_constructor.adb, gnat.dg/bip_cu_constructor.ads, gnat.dg/bip_cu_t.adb, gnat.dg/bip_cu_t.ads: New testcase. From-SVN: r266999
2018-12-11[Ada] GNAT.Sockets: fix timeout computations for socketsDmitriy Anisimkov3-16/+52
2018-12-11 Dmitriy Anisimkov <anisimko@adacore.com> gcc/ada/ * libgnat/g-socket.ads, libgnat/g-socket.adb: Fix duration computations to be compatible with the type for socket timeouts on Windows. From-SVN: r266998
2018-12-11[Ada] Minor reformattingsGary Dismukes3-7/+12
2018-12-11 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * exp_util.ads: Use preferred U.S. spelling of "honored". * sem_spark.adb: Remove extra whitespace. From-SVN: r266997
2018-12-11[Ada] Crash on ignored Ghost expression functionHristian Kirtchev7-28/+110
This patch updates freezing to ensure that freeze nodes are inserted into the tree when the entity being frozen is non-Ghost, and the context is an ignored Ghost spec expression. 2018-12-11 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * exp_util.adb (Insert_Action): Add new formal parameter Spec_Expr_OK. (Insert_Actions): Add new formal parameter Spec_Expr_OK. Update all calls to Insert_Actions where relevant. Honour an insertion from a spec expression context when requested by the caller. * exp_util.ads (Insert_Action): Add new formal parameter Spec_Expr_OK. (Insert_Actions): Add new formal parameter Spec_Expr_OK. * freeze.adb (Add_To_Result): Force the insertion of the freeze node even when the context is a spec expression. gcc/testsuite/ * gnat.dg/ghost2.adb, gnat.dg/ghost2.ads: New testcase. From-SVN: r266996
2018-12-11[Ada] Remove vxlink and vxaddr2line from this repositoryJerome Lambourg11-1723/+8
Those tools need a dedicated repository as they're VxWorks specific and not related with the Ada front-end. 2018-12-11 Jerome Lambourg <lambourg@adacore.com> gcc/ada/ * vxaddr2line.adb, vxlink-bind.adb, vxlink-bind.ads, vxlink-link.adb, vxlink-link.ads, vxlink-main.adb, vxlink.adb, vxlink.ads: Remove. * gcc-interface/Make-lang.in, gcc-interface/Makefile.in: Remove bits for vxaddr2line. From-SVN: r266995
2018-12-11[Ada] Minor reformattingHristian Kirtchev9-92/+119
2018-12-11 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * exp_aggr.adb, exp_ch7.adb, gnat1drv.adb, sem_ch10.adb, sem_ch13.adb, sem_ch6.adb, sem_ch7.adb, sem_util.adb: Minor reformatting. From-SVN: r266994
2018-12-11[Ada] Complete implementation of RM C.6(19) clauseEric Botcazou7-6/+110
This ensures that the compiler fully implements the C.6(19) clause of the Ada Reference Manual and gives a warning when the clause does change the passing mechanism of the affected parameter. 2018-12-11 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * fe.h (Is_Atomic_Object): Declare. (Is_Volatile_Object): Likewise. * gcc-interface/trans.c (atomic_or_volatile_copy_required_p): New. (Call_to_gnu): Generate a copy for an actual parameter passed by reference if the conditions set forth by RM C.6(19) are met and specificially deal with an atomic actual parameter. gcc/testsuite/ * gnat.dg/atomic11.adb, gnat.dg/atomic11_pkg1.ads, gnat.dg/atomic11_pkg2.ads: New testcase. From-SVN: r266993
2018-12-11[Ada] Stubs that complete generic subprogram do have a "prior declaration"Piotr Trojanek3-7/+31
The intuition behind the Is_Subprogram_Stub_Without_Prior_Declaration utility routine is to detect stubs that act as subprogram declarations and False on stubs that act as completions. This behaviour is now fixed for stubs that correspond to generic subprogram declarations. This patch affects a routine that is only used in GNATprove, so no frontend test provided. An example where the result changed from True to False is: ----------- -- p.ads -- ----------- package P is generic procedure Proc; end P; ----------- -- p.adb -- ----------- package body P is procedure Proc is separate; -- now we return False for this stub end P; ---------------- -- p-proc.adb -- ---------------- separate (P) procedure Proc is begin null; end; 2018-12-11 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * sem_util.adb (Is_Subprogram_Stub_Without_Prior_Declaration): Return False on stubs that complete a generic subprogram. * sem_util.ads: Update corresponding comment. From-SVN: r266992
2018-12-11[Ada] GNATprove: improve proofs for uninitialized constrained objectsEd Schonberg2-2/+12
2018-12-11 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch4.adb (Analyze_Allocator): In GNATprove mode build a subtype declaration if the allocator has a subtype indication with a constraint. This allows additional proofs to be applied to allocators that designate uninitialized constrained objects. From-SVN: r266991
2018-12-11[Ada] Support access types in GNATproveYannick Moy2-0/+10
SPARK RM has been updated to support access types in SPARK. Part of this support is that now SPARK RM 3.1 lists access types as having full default initialization. Now updated. There is no impact on compilation. 2018-12-11 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_util.adb (Has_Full_Default_Initialization): Consider access types as having full default initialization. From-SVN: r266990
2018-12-11[Ada] Better error message from GNATprove on illegal switchYannick Moy4-2/+36
When a compilation switch is wrongly passed to GNATprove without the leading hyphen, this patch issues a clear error message instead of the obscure 'usage' message previously displayed. There is no impact on compilation. 2018-12-11 Yannick Moy <moy@adacore.com> gcc/ada/ * gnat1drv.adb (Gnat1drv): Issue specific error message in GNATprove mode when multiple file names on the command line. * osint.adb, osint.ads (Dump_Command_Line_Source_File_Names): New procedure to print file names on the command line. From-SVN: r266989
2018-12-11[Ada] Fix runtime stack overflow for out/in-out actuals without discr.Javier Miranda2-0/+23
2018-12-11 Javier Miranda <miranda@adacore.com> gcc/ada/ * exp_aggr.adb (Convert_To_Assignments): When gnerating C, do not declare a temporary to initialize an aggregate assigned to Out or In_Out parameters whose type has no discriminants. This avoids stack overflow errors at runtime. From-SVN: r266988
2018-12-11[Ada] Additionsal trasformations for unnesting in package bodiesEd Schonberg2-11/+72
This patch extends the previous algorithm for creating an explicit elaboration procedure for a package body when expansion generates subprograms in the statement part of the body. For unnesting to work properly, these subprograms must appear within an explicit subprogram body so that uplevel references can be placed in the proper activation record. Ongoing work for LLVM generation. 2018-12-11 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Extend algorithm to cover subprograms generated in nested loops and in exception handlers, in order to build an explicit elaboration procedure in more complex cases. From-SVN: r266987
2018-12-11[Ada] Remove vxworks*-crtbe-link.specJerome Lambourg38-422/+38
The VxWorks crtbe are now part of libgcc, needed to support C++ on this target. 2018-12-11 Jerome Lambourg <lambourg@adacore.com> gcc/ada/ * Makefile.rtl, gcc-interface/Makefile.in: Remove crtbe bits for VxWorks. * libgnat/system-vxworks-arm-rtp-smp.ads, libgnat/system-vxworks-arm-rtp.ads, libgnat/system-vxworks-arm.ads, libgnat/system-vxworks-e500-kernel.ads, libgnat/system-vxworks-e500-rtp-smp.ads, libgnat/system-vxworks-e500-rtp.ads, libgnat/system-vxworks-ppc-kernel.ads, libgnat/system-vxworks-ppc-rtp-smp.ads, libgnat/system-vxworks-ppc-rtp.ads, libgnat/system-vxworks-ppc.ads, libgnat/system-vxworks-x86-kernel.ads, libgnat/system-vxworks-x86-rtp-smp.ads, libgnat/system-vxworks-x86-rtp.ads, libgnat/system-vxworks7-aarch64-rtp-smp.ads, libgnat/system-vxworks7-aarch64.ads, libgnat/system-vxworks7-arm-rtp-smp.ads, libgnat/system-vxworks7-e500-kernel.ads, libgnat/system-vxworks7-e500-rtp-smp.ads, libgnat/system-vxworks7-e500-rtp.ads, libgnat/system-vxworks7-ppc-kernel.ads, libgnat/system-vxworks7-ppc-rtp-smp.ads, libgnat/system-vxworks7-ppc-rtp.ads, libgnat/system-vxworks7-ppc64-kernel.ads, libgnat/system-vxworks7-ppc64-rtp-smp.ads, libgnat/system-vxworks7-x86-kernel.ads, libgnat/system-vxworks7-x86-rtp-smp.ads, libgnat/system-vxworks7-x86-rtp.ads, libgnat/system-vxworks7-x86_64-kernel.ads, libgnat/system-vxworks7-x86_64-rtp-smp.ads: Remove pragma Linker_Options for --specs. * vx_crtbegin.c, vx_crtbegin.inc, vx_crtbegin_array.c, vx_crtbegin_attr.c, vx_crtend.c, vxworks-gnat-crtbe-link.spec: Remove. From-SVN: r266986
2018-12-11[Ada] Spurious visibility error on aspect PredicateEd Schonberg2-0/+8
The GNAT-defined aspect Predicate has the same semantics as the Ada aspect Dynamic_Predicate, including direct visibility to the components of a record type to which the aspect applies. The following must compile quietly: gcc -c integer_stacks.ads ---- pragma SPARK_Mode (On); with Bounded_Stacks; package Integer_Stacks is new Bounded_Stacks (Element => Integer, Default_Element => 0); ---- generic type Element is private; Default_Element : Element; package Bounded_Stacks is type Stack (Capacity : Positive) is tagged private with Default_Initial_Condition => Empty (Stack); function "=" (Left, Right : Stack) return Boolean; function Extent (This : Stack) return Natural; function Empty (This : Stack) return Boolean; function Full (This : Stack) return Boolean; procedure Reset (This : out Stack) with Post'Class => Empty (This) and not Full (This), Global => null, Depends => (This =>+ null); procedure Push (This : in out Stack; Item : Element) with Pre'Class => not Full (This) and Extent (This) < This.Capacity, Post'Class => not Empty (This) and Extent (This) = Extent (This'Old) + 1, Global => null, Depends => (This =>+ Item); procedure Pop (This : in out Stack; Item : out Element) with Pre'Class => not Empty (This), Post'Class => not Full (This) and Extent (This) = Extent (This'Old) - 1, Global => null, Depends => (This =>+ null, Item => This); function Peek (This : Stack) return Element with Pre'Class => not Empty (This), Global => null, Depends => (Peek'Result => This); private type Contents is array (Positive range <>) of Element; type Stack (Capacity : Positive) is tagged record Values : Contents (1 .. Capacity); -- := (others => Default_Element); -- Top : Natural; Top : Natural := 0; end record with Predicate => Top <= Capacity, Annotate => (GNATprove, Intentional, "type ""Stack"" is not fully initialized", "Because zeroing Top is sufficient"); end Bounded_Stacks; ---- package body Bounded_Stacks is ------------ -- Extent -- ------------ function Extent (This : Stack) return Natural is (This.Top); ----------- -- Empty -- ----------- function Empty (This : Stack) return Boolean is (This.Top = 0); ---------- -- Full -- ---------- function Full (This : Stack) return Boolean is (This.Top = This.Capacity); ----------- -- Reset -- ----------- procedure Reset (This : out Stack) is begin This := (This.Capacity, Top => 0, others => <>); -- This.Top := 0; end Reset; ---------- -- Push -- ---------- procedure Push (This : in out Stack; Item : Element) is begin This.Top := This.Top + 1; This.Values (This.Top) := Item; end Push; --------- -- Pop -- --------- procedure Pop (This : in out Stack; Item : out Element) is begin Item := This.Values (This.Top); This.Top := This.Top - 1; end Pop; ---------- -- Peek -- ---------- function Peek (This : Stack) return Element is (This.Values (This.Top)); --------- -- "=" -- --------- function "=" (Left, Right : Stack) return Boolean is begin if Left.Top /= Right.Top then return False; else for K in 1 .. Left.Top loop if Left.Values (K) /= Right.Values (K) then return False; end if; end loop; return True; end if; end "="; end Bounded_Stacks; ---- 2018-12-11 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations, Freeze_Entity_Checks): Process aspect Predicate in the same fashion as aspect Dynamic_Predicate. From-SVN: r266985
2018-12-11[Ada] Fix an ICE on instantiated subprogram with -gnatcEric Botcazou2-1/+8
The following should compile quietly: $ gcc -c p-proc.ads -gnatc procedure P.Proc is new G; with Q; package P is generic procedure G; end P; with System; with Unchecked_Conversion; package Q is generic package Inner_G is type T is access all Integer; function Cnv is new Unchecked_Conversion (System.Address, T); end Inner_G; end Q; 2018-12-11 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * gcc-interface/trans.c (elaborate_all_entities_for_package): Skip aliasing subprograms. From-SVN: r266984
2018-12-11[Ada] Update gnatmetric documentation for the Libadalang-based versionBob Duff2-181/+216
2018-12-11 Bob Duff <duff@adacore.com> gcc/ada/ * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatmetric documentation for the Libadalang-based version. From-SVN: r266983
2018-12-11[Ada] Fix an ACATS regression with CCGJavier Miranda2-11/+36
2018-12-11 Javier Miranda <miranda@adacore.com> gcc/ada/ * exp_aggr.adb (In_Object_Declaration): Removed. (Is_CCG_Supported_Aggregate): New subprogram that replaces In_Object_Declaration extending its functionality to indicate if an aggregate is in a context supported by the CCG backend. From-SVN: r266982
2018-12-11[Ada] Update gnatstub documentation for the Libadalang-based versionBob Duff3-151/+156
2018-12-11 Bob Duff <duff@adacore.com> gcc/ada/ * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatstub documentation for the Libadalang-based version. * gnat_ugn.texi: Regenerate. From-SVN: r266981
2018-12-11[Ada] Spurious errors on aspect specifications in generic unitsEd Schonberg12-77/+244
This patch fixes spurious errors on aspect specifications on record types when the aspect expression references a component of the type that is not a discriminant. The patch also cleans up the legality checks on aspect specifications, and improves error message on illegal aspect specifications whose expressions are not conformant between specification and freeze point, because of changes in visibility. 2018-12-11 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch13.adb (Push_Type, Pop_Type): New procedures, used for analysis of aspect expressions for record types, whose components (not only discriminants) may be referenced in aspect expressions. (Analyze_Aspect_Specifications, Analyze_Aspects_At_Freeze_Point, Analyze_Aspect_At_End-Of_Declarations, Resolve_Aspect_Expressions): Use the new subprograms. (Check_Aspect_At_End_Of_Declarations): Improve error message. (Build_Predicate_Functions): Do not build their bodies in a generic unit. (Is_Derived_Type_With_Constraint): New subprogram to uncover and reject aspect specificationss on types that appear after the type is frozen. * sem_ch13.ads (Push_Scope_And_Install_Discriminants, Uninstall_Discriminants_And_Pop_Scope): Remove. * sem_ch6.adb, sem_ch6.ads (Fully_Conformant_Expressions): Additional parameter to improve error message on illegal aspect specifications whose resolution differ between aspect specification and freeze point. * freeze.adb: Remove references to Install/Uninstall_Discriminants. gcc/testsuite/ * gnat.dg/aspect1.adb, gnat.dg/aspect1_horizontal.adb, gnat.dg/aspect1_horizontal.ads, gnat.dg/aspect1_vectors_2d.ads: New testcase. * gnat.dg/static_pred1.adb: Expect an error message. From-SVN: r266980
2018-12-11[Ada] Document the -fgnat-encodings switchPierre-Marie de Rodat3-1/+97
2018-12-11 Pierre-Marie de Rodat <derodat@adacore.com> gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Document the -fgnat-encodings switch. * gnat_ugn.texi: Regenerate. From-SVN: r266979
2018-12-11[Ada] Crash on nesting of subunits with bodies acting as specsJustin Squirek2-1/+9
This patch corrects an issue whereby a set of nested subunits including subprogram subunits acting as bodies would cause a crash when a child subunit "withs" an ansestor in certain instances due to a mismanagment of the scope stack. ------------ -- Source -- ------------ -- w.ads package W is end; -- w-b.ads package W.B is pragma Elaborate_Body; end; -- w-b.adb with W.B.C; package body w.B is end; -- w-b-c.adb with W; procedure W.B.C is package D is procedure E; end; package body D is separate; begin null; end; -- w-b-c-d.adb separate (W.B.C) package body D is procedure E is separate; end; -- w-b-c-d-e.adb with W; separate (W.B.C.D) procedure E is begin null; end; ----------------- -- Compilation -- ----------------- $ gnatmake -q w-b.adb 2018-12-11 Justin Squirek <squirek@adacore.com> gcc/ada/ * sem_ch10.adb (Analyze_Subunit): Modify conditional to fully remove parent contexts from library-level subprogram bodies in addition to package bodies. From-SVN: r266978
2018-12-11[Ada] Suppress call to Initial_Condition when the annotation is ignoredHristian Kirtchev3-8/+19
This patch suppresses the generation of the Initial_Condition procedure tasked with verifying the run-time semantics of the pragma when the pragma is ignored by means of -gnata, pragma Assertion_Policy, etc. ------------ -- Source -- ------------ -- all_asserts_off.adc pragma Assertion_Policy (Ignore); -- all_asserts_on.adc pragma Assertion_Policy (Check); -- ic_off.adc pragma Assertion_Policy (Initial_Condition => Ignore); -- ic_on.adc pragma Assertion_Policy (Initial_Condition => Check); -- init_cond.ads package Init_Cond with SPARK_Mode, Initial_Condition => Flag = False is Flag : Boolean := True; procedure Set_Flag; end Init_Cond; -- init_cond.adb package body Init_Cond with SPARK_Mode is procedure Set_Flag is begin Flag := True; end Set_Flag; end Init_Cond; ---------------------------- -- Compilation and output -- ---------------------------- & gcc -c -S -gnatDG init_cond.adb -gnatec=all_asserts_on.adc & grep -c "Initial_Condition;" init_cond.adb.dg & grep -c "_elabb" init_cond.s & gcc -c -S -gnatDG init_cond.adb -gnatec=ic_on.adc & grep -c "Initial_Condition;" init_cond.adb.dg & grep -c "_elabb" init_cond.s & gcc -c -S -gnatDG init_cond.adb -gnatec=all_asserts_off.adc & grep -c "Initial_Condition;" init_cond.adb.dg & grep -c "_elabb" init_cond.s & gcc -c -S -gnatDG init_cond.adb -gnatec=ic_off.adc & grep -c "Initial_Condition;" init_cond.adb.dg & grep -c "_elabb" init_cond.s 2 4 2 4 0 0 0 0 2018-12-11 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * exp_prag.adb (Expand_Pragma_Initial_Condition): Do not generate an Initial_Condition procedure and a call to it when the associated pragma is ignored. * sem_ch10.adb (Analyze_Compilation_Unit): Minor cleanup. From-SVN: r266977
2018-12-11[Ada] Almost always inline init. procedure of small and simple recordsEric Botcazou6-35/+95
2018-12-11 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * fe.h (Debug_Generated_Code): Declare. * gcc-interface/gigi.h (enum inline_status_t): Rename is_disabled to is_default, is_enabled to is_requested and add is_prescribed. * gcc-interface/decl.c (inline_status_for_subprog): New function. (gnat_to_gnu_entity) <E_Subprogram_Type>: Use it to get the inlining status of the subprogram. * gcc-interface/trans.c (gigi): Adjust to above renaming. (build_raise_check): Likewise. (Compilation_Unit_to_gnu): Likewise. (gnat_to_gnu): Likewise. * gcc-interface/utils.c (create_subprog_decl): Likewise. Deal with is_prescribed status by setting DECL_DISREGARD_INLINE_LIMITS. Do not set the DECL_NO_INLINE_WARNING_P flag if Debug_Generated_Code is true. From-SVN: r266976
2018-12-11ccmp.c (ccmp_candidate_p): Use GIMPLE API properly.Richard Biener2-7/+8
2018-12-11 Richard Biener <rguenther@suse.de> * ccmp.c (ccmp_candidate_p): Use GIMPLE API properly. From-SVN: r266975
2018-12-11re PR lto/86004 (Several lto test cases begin failing with r260963)Jakub Jelinek20-0/+60
PR lto/86004 * doc/sourcebuild.texi (lto_incremental): Document new effective target. * lib/target-supports.exp (check_effective_target_lto_incremental): New. * g++.dg/lto/pr69137_0.C: Require lto_incremental effective target. * g++.dg/lto/pr65316_0.C: Likewise. * g++.dg/lto/pr85176_0.C: Likewise. * g++.dg/lto/pr79000_0.C: Likewise. * g++.dg/lto/pr66180_0.C: Likewise. * g++.dg/lto/pr65193_0.C: Likewise. * g++.dg/lto/pr69077_0.C: Likewise. * g++.dg/lto/pr68057_0.C: Likewise. * g++.dg/lto/pr66705_0.C: Likewise. * g++.dg/lto/pr65302_0.C: Likewise. * g++.dg/lto/20091002-1_0.C: Likewise. * g++.dg/lto/pr81940_0.C: Likewise. * g++.dg/lto/pr64043_0.C: Likewise. * g++.dg/lto/pr65549_0.C: Likewise. * g++.dg/lto/pr69133_0.C: Likewise. * gfortran.dg/lto/pr79108_0.f90: Likewise. From-SVN: r266974
2018-12-11rs6000: Don't use rs6000_isa_flags_explicit for soft float tests (PR88145)Segher Boessenkool2-4/+14
...specifically, those for builtins. Soft float can be enabled implicitly, too (for certain CPUs for example). We should use rs6000_isa_flags instead, to decide whether to expand a builtin or to bail out with an error instead. PR target/88145 * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): Use rs6000_isa_flags instead of rs6000_isa_flags_explicit to decide whether soft float is enabled. (rs6000_expand_mtfsb_builtin): Ditto. (rs6000_expand_set_fpscr_rn_builtin): Ditto. (rs6000_expand_set_fpscr_drn_builtin): Ditto. From-SVN: r266973
2018-12-11re PR c/88430 (-Wmissing-attributes warnings when including libquadmath headers)Jakub Jelinek2-2/+8
PR c/88430 * quadmath_weak.h (__qmath2): Add __quadmath_throw. From-SVN: r266972
2018-12-10re PR tree-optimization/80520 (Performance regression from missing ↵Jeff Law5-1/+119
if-conversion) PR tree-optimization/80520 * gimple-ssa-split-paths.c (is_feasible_trace): Recognize half diamonds that are likely if convertable. * gcc.dg/tree-ssa/split-path-5.c: Update expected output. * gcc.dg/tree-ssa/split-path-11.c: New test. From-SVN: r266971
2018-12-11documentation_hacking.xml: Update reference to epubcheck.Gerald Pfeifer2-1/+6
* doc/xml/manual/documentation_hacking.xml: Update reference to epubcheck. From-SVN: r266970
2018-12-112018-12-10 Steven G. Kargl <kargl@gcc.gnu.org>Steven G. Kargl5-1/+52
PR fortran/97922 * io.c (gfc_match_open): Additional checks on ASYNCHRONOUS. 2018-12-10 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/97922 * gfortran.dg/io_constraints_8.f90: Update error message. * gfortran.dg/pr87922.f90: New test. From-SVN: r266968
2018-12-10PR tree-optimization/86196 - Bogus -Wrestrict on memcpy between array ↵Martin Sebor4-9/+59
elements at unequal indices gcc/ChangeLog: PR tree-optimization/86196 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use base size only of arrays. gcc/testsuite/ChangeLog: PR tree-optimization/86196 * gcc.dg/Wrestrict-18.c: New test. From-SVN: r266967
2018-12-11Daily bump.GCC Administrator1-1/+1
From-SVN: r266966
2018-12-10sinatan-1.c: Use dg-add-options ieee.Uros Bizjak2-0/+5
* gcc.dg/sinatan-1.c: Use dg-add-options ieee. From-SVN: r266963
2018-12-10Delete powerpcspeSegher Boessenkool153-112990/+23
This deletes powerpcspe, which was deprecated for GCC 8. This does not change the testsuite, or libgcc for rs6000 (which still is shared code with powerpcspe, so can use some cleanup after this). / * contrib/config-list.mk: Remove powerpc-eabispe and powerpc-linux_spe. gcc/ * config.gcc (Obsolete configurations): Delete powerpc*-*-*spe*. (Unsupported targets): Add powerpc*-*-*spe*. (powerpc*-*-*spe*): Delete. (powerpc-*-eabispe*): Delete. (powerpc-*-rtems*spe*): Delete. (powerpc*-*-linux*spe*): Delete. (powerpc*-*-linux*): Do not handle the linux*spe* targets. (powerpc-wrs-vxworks*spe): Delete. (with_cpu setting code): Delete powerpc*-*-*spe* handling. * config.host (target powerpc*-*-*spe*): Delete. * doc/invoke.texi (PowerPC SPE Options): Delete. (PowerPC SPE Options): Delete. * config/powerpcspe: Delete. From-SVN: r266961
2018-12-10re PR fortran/88269 (ICE in gfc_format_decoder, at fortran/error.c:947)Steven G. Kargl4-5/+30
2018-12-10 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88269 * io.c (io_constraint): Update macro. If locus line buffer is NULL, use gfc_current_locus in error messages. (check_io_constraints): Catch missing IO UNIT in write and read statements. io_constraint macro is incompatible here. 2018-12-10 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88269 * gfortran.dg/pr88269.f90: New test. From-SVN: r266959
2018-12-10re PR target/88418 (ICE in extract_insn, at recog.c:2305 (error: ↵Uros Bizjak4-8/+39
unrecognizable insn)) PR target/88418 * config/i386/i386.c (ix86_expand_sse_cmp): For vector modes, check operand 1 with vector_operand predicate. (ix86_expand_sse_movcc): For vector modes, check op_true with vector_operand, not nonimmediate_operand. testsuite/ChangeLog: PR target/88418 * gcc.target/i386/pr88418.c: New test. From-SVN: r266958
2018-12-10Make test for Filesystem TS actually use the Filesystem TSJonathan Wakely2-5/+10
This test was copied from 27_io/filesystem/path/query/is_absolute.cc but should have been modified to test the path type from the TS instead of std::filesystem::path. * testsuite/experimental/filesystem/path/query/is_absolute.cc: Fix test to use TS, not C++17. From-SVN: r266957
2018-12-10tree-affine.c (tree_to_aff_combination): Remove unreachable MEM_REF case.Richard Biener2-30/+38
2018-12-10 Richard Biener <rguenther@suse.de> * tree-affine.c (tree_to_aff_combination): Remove unreachable MEM_REF case. (aff_combination_expand): Cache on SSA names, not possibly on conversion trees. Avoid expanding cases we do not handle. From-SVN: r266956
2018-12-10re PR tree-optimization/88427 (ICE: tree check: expected integer_cst, have ↵Richard Biener4-4/+38
plus_expr in get_len, at tree.h:5617) 2018-12-10 Richard Biener <rguenther@suse.de> PR tree-optimization/88427 * vr-values.c (vr_values::extract_range_from_phi_node): Handle symbolic ranges conservatively when trying to drop to Inf +- 1. * gcc.dg/pr88427.c: New testcase. From-SVN: r266955
2018-12-10re PR ipa/87955 (ICE in cl_target_option_print_diff at ↵Jakub Jelinek2-1/+6
gcc/options-save.c:3803 since r265920) PR ipa/87955 * gcc.target/i386/pr87955.c: Add -msse2 -mfpmath=sse to dg-options. From-SVN: r266954
2018-12-10[PR 88214] Check that an argument is a pointerMartin Jambor4-1/+23
2018-12-10 Martin Jambor <mjambor@suse.cz> PR ipa/88214 * ipa-prop.c (determine_locally_known_aggregate_parts): Make sure we check pointers against pointers. testsuite/ * gcc.dg/ipa/pr88214.c: New test. From-SVN: r266953
2018-12-10re PR testsuite/88369 (g++.dg/vect/pr33426-ivdep.cc etc. FAIL)Jakub Jelinek8-0/+18
PR testsuite/88369 * gcc.dg/vect/vect-ivdep-1.c: Prune versioning for alignment messages. * gcc.dg/vect/vect-ivdep-2.c: Likewise. * gcc.dg/vect/nodump-vect-opt-info-1.c: Likewise. * g++.dg/vect/pr33426-ivdep.cc: Likewise. * g++.dg/vect/pr33426-ivdep-2.cc: Likewise. * g++.dg/vect/pr33426-ivdep-3.cc: Likewise. * g++.dg/vect/pr33426-ivdep-4.cc: Likewise. From-SVN: r266952