aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-08-19[Ada] Fix documentation for stream oriented attributesBob Duff3-33/+39
2019-08-19 Bob Duff <duff@adacore.com> gcc/ada/ * doc/gnat_rm/implementation_advice.rst: Fix documentation for stream oriented attributes. * gnat_rm.texi: Regenerate. From-SVN: r274666
2019-08-19[Ada] Einfo: update comments for E_Function and E_ProcedureGary Dismukes2-3/+9
2019-08-19 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * einfo.ads (E_Function, E_Procedure): Update comments to reflect that Renamed_Entity is also used for nongeneric subprograms. From-SVN: r274665
2019-08-19[Ada] Fix bogus compilation error with Elaborate_Body and -gnatNEric Botcazou8-2/+56
This fixes a bogus compilation error when a unit with SPARK_Mode containing a pragma Elaborate_Body is with-ed by a generic unit containing an inlined subprogram, and front-end inlining is enabled. 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_prag.adb (Is_Before_First_Decl): Deal with rewritten pragmas. gcc/testsuite/ * gnat.dg/elab8.adb, gnat.dg/elab8_gen.adb, gnat.dg/elab8_gen.ads, gnat.dg/elab8_pkg.adb, gnat.dg/elab8_pkg.ads: New testcase. From-SVN: r274664
2019-08-19[Ada] Suppress warnings on unreferenced parameters of dispatching opsBob Duff5-5/+49
If the -gnatwf switch is used to activate warnings on unreferenced formal parameters, the warning is no longer given if the subprogram is dispatching, because such warnings tend to be noise. It is quite common to have a parameter that is necessary just because the subprogram is overriding, or just because we need a controlling parameter for the dispatch. 2019-08-19 Bob Duff <duff@adacore.com> gcc/ada/ * sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning on formal parameters of dispatching operations. gcc/testsuite/ * gnat.dg/warn29.adb, gnat.dg/warn29.ads: New testcase. From-SVN: r274663
2019-08-19[Ada] Crash on object initialization that is call to expression functionEd Schonberg4-1/+37
This patch fixes a compiler abort on an object declaration for a class-wide type whose expression is a call to an expression function that returns type extension. 2019-08-19 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Call): A call to an expression function freezes when expander is active, unless the call appears within the body of another expression function, gcc/testsuite/ * gnat.dg/expr_func9.adb: New testcase. From-SVN: r274662
2019-08-19[Ada] Conversion routines between GNAT.OS_Lib.OS_Time and long integerDmitriy Anisimkov3-0/+34
The new routines convert back and forth between private type OS_Time and a long integer which can be used in package Ada.Calendar.Conversions routines to convert to Ada.Calendar.Time. 2019-08-19 Dmitriy Anisimkov <anisimko@adacore.com> gcc/ada/ * libgnat/s-os_lib.ads, libgnat/s-os_lib.adb (To_Ada, To_C): New routines. From-SVN: r274661
2019-08-19[Ada] Incorrect code for -gnateV switchBob Duff5-27/+73
This patch corrects the code generated by the -gnateV switch in the case of a private type whose full type is a modular type, removing spurious run-time failures. In addition, this corrects the initialization of exception occurrences in exception handlers to avoid leaving data uninitialized, which caused -gnateV to raise spurious errors. 2019-08-19 Bob Duff <duff@adacore.com> gcc/ada/ * exp_attr.adb (Attribute_Valid): Correct the handling of private types where the full type is modular. System.Address is an example. Otherwise, we convert uncheckedly to a signed type, so we get an incorrect range 0 .. -1, for which all values will fail. The 'Valid attribute is illegal for such types, but we generate such illegal attribute_references for 'Valid_Scalars, and we generate 'Valid_Scalars when the -gnateV switch is used. Rename Btyp --> PBtyp to avoid hiding the outer Btyp, which was confusing. * libgnat/a-except.adb: Set the Exception_Raised component. Otherwise, we have incorrect reads of invalid data. gcc/testsuite/ * gnat.dg/valid_scalars2.adb: New testcase. From-SVN: r274660
2019-08-19[Ada] Import documentation from the RM for various runtime unitsPierre-Marie de Rodat6-3/+68
2019-08-19 Pierre-Marie de Rodat <derodat@adacore.com> gcc/ada/ * libgnat/a-cgaaso.ads, libgnat/a-cgarso.ads, libgnat/a-cogeso.ads, libgnat/a-contai.ads, libgnat/a-locale.ads: Import documentation from the RM. From-SVN: r274659
2019-08-19[Ada] Generate ada_target_propertiesJerome Guitton3-0/+21
Generate target-dependent info into a file named ada_target_properties. This information is used by tools for static analysis: they need to know the size of standard types for a given run-time library. This metadata is meant to be saved at the root of the run-time directory. 2019-08-19 Jerome Guitton <guitton@adacore.com> gcc/ada/ * Makefile.rtl (system.o): New target to add generation of target properties. * gcc-interface/Makefile.in (install-gnatlib): Install ada_target_properties. From-SVN: r274658
2019-08-19[Ada] Lift restriction on instantiations that are compilation unitsEric Botcazou8-24/+93
This change lifts the restriction that was still present in the new on-demand instantiation scheme for the body of generics instantiated in non-main units. The instantiations that are compilation units were still dealt with in the old-fashioned way, that is to say the decision of instantiating the body was still made up front during the analysis of the instance declaration, instead of being deferred until after a call to an inlined subprogram is encountered. This should save a few more cycles when full inlining across units is enabled, but there should otherwise be no functional changes. 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * inline.adb (Add_Inlined_Body): Do not special-case instances that are compilation units. (Add_Pending_Instantiation): Likewise. (Instantiate_Body): Skip instantiations that are compilation units and have already been performed. * sem_ch12.adb (Needs_Body_Instantiated): Do not special-case instances that are compilation units. (Load_Parent_Of_Generic): Be prepared for parent that is a compilation unit but whose instantiation node has not been replaced. gcc/testsuite/ * gnat.dg/generic_inst12.adb, gnat.dg/generic_inst12_pkg1.adb, gnat.dg/generic_inst12_pkg1.ads, gnat.dg/generic_inst12_pkg2.ads: New testcase. From-SVN: r274657
2019-08-19[Ada] Further cleanup in inlining machineryEric Botcazou2-0/+8
This adds missing boilerplate stuff. No functional changes. 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * inline.adb (Initialize, Lock): Deal with Called_Pending_Instantiations. From-SVN: r274656
2019-08-19[Ada] Legality of protected subp. implementing interface operationsEd Schonberg2-4/+27
This patch refines the predicate that implements rule in RM 9.4 (11.9/2) Compiling b94.ads must yield: b94.ads:11:17: illegal overriding of subprogram inherited from interface b94.ads:11:17: first formal of "N" declared at line 8 must be of mode "out", "in out" or access-to-variable ---- package B94 is type Prot2_Int is protected interface; procedure J (PI : in Prot2_Int; N : in Integer) is null; procedure K (PI : in out Prot2_Int; N : in Integer) is null; procedure L (PI : out Prot2_Int; N : in Integer) is null; procedure M (PI : access Prot2_Int; N : in Integer) is null; procedure N (PI : access constant Prot2_Int; N : in Integer) is null; protected type Protected_2 is new Prot2_Int with procedure N (N : in Integer); -- ERROR: {7;1} end Protected_2; end B94; 2019-08-19 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch6.adb (Check_Synchronized_Overriding): Complete predicate that applies legality check in 9.4 (11.9/2): if an inherited subprogram is implemented by a protected procedure or entry, its first paarameter must be out, in_out or access_to_varible. From-SVN: r274655
2019-08-19[Ada] Buffer reading overflow in dispatch table initializationJavier Miranda4-126/+142
For tagged types not defined at library level that derive from library level tagged types the compiler may generate code to initialize their dispatch table of predefined primitives copying from the parent type data stored in memory after the dispatch table of the parent; that is, at runtime the initialization of dispatch tables overflows reading the parent dispatch table. This problem does not affect the execution of the program since the target dispatch table always has enough space to store the extra data, and after such copy the compiler generates code to complete the initialization of the dispatch table. The following test must compile and execute without errors. package pkg_a is type Root is tagged null record; end pkg_a; with pkg_a; procedure main is type Derived is new pkg_a.Root with null record; -- Test begin null; end main; Command: gnatmake -q main -fsanitize=address; ./main 2019-08-19 Javier Miranda <miranda@adacore.com> gcc/ada/ PR ada/65696 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Adding formal to specify how many predefined primitives are inherited from the parent type. * exp_disp.adb (Number_Of_Predefined_Prims): New subprogram. (Make_Secondary_DT): Compute the number of predefined primitives of all tagged types (including tagged types not defined at library level). Previously we unconditionally relied on the Max_Predef_Prims constant value when building the dispatch tables of tagged types not defined at library level (thus consuming more memory for their dispatch tables than required). (Make_DT): Compute the number of predefined primitives that must be inherited from their parent type when building the dispatch tables of tagged types not defined at library level. Previously we unconditionally relied on the Max_Predef_Prims constant value when building the dispatch tables of tagged types not defined at library level (thus copying more data than required from the parent type). From-SVN: r274654
2019-08-19[Ada] Process type extensions for -gnatw.hBob Duff2-184/+243
This patch enables gap detection in type extensions. With the -gnatw.h switch, on 64-bit machines, the following test should get warnings: gcc -c gaps.ads -gnatw.h gaps.ads:16:07: warning: 48-bit gap before component "Comp2" gaps.ads:17:07: warning: 8-bit gap before component "Comp3" package Gaps is type Integer_16 is mod 2**16; type TestGap is tagged record Comp1 : Integer_16; end record; for TestGap use record Comp1 at 0 + 8 range 0..15; end record; type TestGap2 is new TestGap with record Comp2 : Integer_16; Comp3 : Integer_16; end record; for TestGap2 use record Comp2 at 08 + 8 range 0..15; Comp3 at 11 + 8 range 0..15; end record; end Gaps; 2019-08-19 Bob Duff <duff@adacore.com> gcc/ada/ * sem_ch13.adb (Record_Hole_Check): Procedure to check for holes that incudes processing type extensions. A type extension is processed by first calling Record_Hole_Check recursively on the parent type to compute the bit number after the last component of the parent. From-SVN: r274653
2019-08-19[Ada] Improve warnings about "too few elements" and "too many elements"Gary Dismukes4-12/+82
When warning about length-check failures detected at compile time that are flagged with "too few elements" or "too many elements", the compiler now gives an additional message indicating the number of elements expected by the context versus how many are present in the conflicting expression (such as an aggregate that has too few or too many components). The test below reports the following warnings when compiled with this command: $ gcc -c -gnatj78 length_warnings.adb length_warnings.adb:6:09: warning: too few elements for subtype of "Boolean_Array" defined at line 5, expected 10 elements; found 9 elements, "Constraint_Error" will be raised at run time length_warnings.adb:10:09: warning: too few elements for subtype of "Boolean_Array" defined at line 9, expected 2 elements; found 1 element, "Constraint_Error" will be raised at run time length_warnings.adb:14:09: warning: too many elements for subtype of "Boolean_Array" defined at line 13, expected 10 elements; found 11 elements, "Constraint_Error" will be raised at run time length_warnings.adb:18:09: warning: too many elements for subtype of "Boolean_Array" defined at line 17, expected 0 elements; found 1 element, "Constraint_Error" will be raised at run time length_warnings.adb:22:09: warning: too many elements for subtype of "Boolean_Array" defined at line 21, expected 1 element; found 2 elements, "Constraint_Error" will be raised at run time procedure Length_Check_Warnings is type Boolean_Array is array (Natural range <>) of Boolean; Bits_A : Boolean_Array (1 .. 10) := (True, True, True, True, True, True, True, True, True); -- Too few elements Bits_B : Boolean_Array (1 .. 2) := (1 => False); -- Too few elements Bits_C : Boolean_Array (1 .. 10) := (True, True, True, True, True, True, True, True, True, True, True); -- Too many elements Bits_D : Boolean_Array (1 .. 0) := (1 => True); -- Too many elements Bits_E : Boolean_Array (1 .. 1) := (True, False); -- Too many elements begin null; end Length_Check_Warnings; 2019-08-19 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * checks.adb (Length_Mismatch_Info_Message): New function in Selected_Length_Checks to return a message indicating the element counts for the mismatched lengths for a failed compile-time length check. (Plural_Or_Singular_Ending): Support function in Length_Mismatch_Info_Message to return either "" or "s", for concatenating to the end of words. (Selected_Length_Checks): Pass the result of Length_Mismatch_Info_Message as an extra warning message to Compile_Time_Constraint_Error to indicate the mismatched lengths for a failed compile-time length check. * sem_util.ads (Compile_Time_Constraint_Error): Add an optional message formal (Extra_Msg), defaulted to the empty string. * sem_util.adb (Compile_Time_Constraint_Error): Output an extra message following the main warning message (when Extra_Msg is not the empty string). From-SVN: r274652
2019-08-19[Ada] Enable use of GNAT.Sockets for VxWorks RTPPatrick Bernardi2-6/+8
The recent introduction of GNAT.Sockets IPv6 support broke support for VxWorks RTPs due to the use of internal VxWorks kernel calls. This patch rectifies this by using the VxWorks public API for these routines. The following RTP should compile successfully on a Development profile VxWorks kernel that includes the INCLUDE_GETNAMEINFO component: with GNAT.Sockets; use GNAT.Sockets; procedure IPvX is procedure Print_Address_Info (Host, Serv : String; Family : Family_Type := Family_Unspec) is Addresses : Address_Info_Array := Get_Address_Info (Host, Serv, Family, Passive => False, Numeric_Host => False); begin Sort (Addresses, IPv6_TCP_Preferred'Access); end Print_Address_Info; begin Print_Address_Info ("localhost", "ssh"); end IPvX; 2019-08-19 Patrick Bernardi <bernardi@adacore.com> gcc/ada/ * socket.c: Removed the redefinition of getaddrinfo, getnameinfo and freeaddrinfo to internal VxWorks kernel calls because they are, well, internal kernel calls and cannot be called from RTPs. VxWorks provides the necessary components to call these routines directly. From-SVN: r274651
2019-08-19[Ada] Fix incorrect stub generation for types in instancesEric Botcazou2-3/+40
This fixes a fallout of a recent change clearing the Is_Generic_Actual_Type on the implicit full view of a private actual type in an instance. This flag is used to help disambiguating formal types instantiated on the same actual type within an instance, but it should be cleared outside the instance to let the usual disambiguation rules apply again to these types outside the instance. This in particular means that Exp_Dist cannot rely on it to detect subtypes representing generic actual types, hence the need for the new predicate. 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_dist.adb (Is_Generic_Actual_Subtype): New predicate. (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call): Use it instead of Is_Generic_Actual_Type flag to detect subtypes representing generic actual types. From-SVN: r274650
2019-08-19[Ada] Improve placement of warning on formals of generic subprogramsEd Schonberg5-1/+103
This patch modifies the handling of warnings on unused formal parameters of generic subprograms. Previously such warnings were placed on the formal appearing in the subprogram declaration, in contrast with warnings on non-generic subprograms, where the warning is placed on the corresponding entity in the body of the subprogram. This patch makes the handling of both cases uniform. It is preferable to place the warning in the body because this also provides a better suggestion for the placement of an Unreferenced pragma to suppress the warning when desired. 2019-08-19 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_warn.adb (Check_References, Generic_Body_Formal): When a formal parameter of a generic subprogram is not referenced in the body, place the corresponding warning on the corresponding entity in the specification of the generic body, as is done for non-generic subprograms. gcc/testsuite/ * gnat.dg/warn28.adb, gnat.dg/warn28.ads: New testcase. From-SVN: r274649
2019-08-19[Ada] Factor out the "size for& too small..." error messageBob Duff5-5/+14
Use a constant for the Size_Too_Small_Message, so if it changes, it won't change in one place but not another. DRY. It might be better to move this code out of errout.adb, but that's for another day. 2019-08-19 Bob Duff <duff@adacore.com> gcc/ada/ * errout.ads (Size_Too_Small_Message): New constant. * errout.adb, freeze.adb, sem_ch13.adb: Use it. From-SVN: r274648
2019-08-19[Ada] Fix internal error on subprogram instantiation with -gnatzcEric Botcazou2-14/+7
This fixes a fallout of the recent change keeping the Is_Generic_Instance flag on the wrapper package built for the instantiation of a generic subprogram. There is no need to visit the Instance_Spec of an N_Subprogram_Instantiation node anymore because the regular processing for an N_Package_Declaration node now does the job for instantiations of generic subprograms. The following subprogram must compile again quietly with -gnatzc: with Gen_Proc; package RCI is pragma Remote_Call_Interface; procedure Inst_Proc is new Gen_Proc; procedure P (S : String); end RCI; generic procedure Gen_Proc (S : String); pragma Remote_Call_Interface (Gen_Proc); with Ada.Text_IO; use Ada.Text_IO; procedure Gen_Proc (S : String) is begin Put_Line ("Gen_Proc called: " & S); end Gen_Proc; 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_dist.adb (Build_Package_Stubs): Do not specifically visit the declarations of an N_Subprogram_Instantiation node. From-SVN: r274647
2019-08-19[Ada] Document missing gnatmetric switchesBob Duff2-1/+61
2019-08-19 Bob Duff <duff@adacore.com> gcc/ada/ * doc/gnat_ugn/gnat_utility_programs.rst: Document missing metrics switches. From-SVN: r274646
2019-08-19[Ada] Minor refactoringsPiotr Trojanek3-9/+11
2019-08-19 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * sem_ch12.adb (Get_Unit_Instantiation_Node): Simplify Nkind_In membership test. * sem.adb (Depends_On_Main): Whitespace cleanup; only assign a local variable if needed. From-SVN: r274645
2019-08-19[Ada] Allow reading a borrowed object inside a call to a pledge functionClaire Dross3-0/+49
No impact on regular compilation. 2019-08-19 Claire Dross <dross@adacore.com> gcc/ada/ * sem_spark.ads, sem_spark.adb (Is_Pledge_Function): New parameter of the generic. Function used to decide whether a function is a pledge function. (Check_Not_Borrowed): Disable check inside the second parameter of a pledge function for the path borrowed by the first parameter. Also disable checks for entities inside a Global contract. From-SVN: r274644
2019-08-19[Ada] Add formal function parameter equality to SPARK containersJoffrey Huguet8-0/+16
This patch adds a formal function parameter "=" (L, R : Element_Type) to SPARK containers. The equality that is used by default for Element_Type after this patch is the primitive equality and not the predefined any more. It also allows to use any function with the appropriate signature for the equality function. 2019-08-19 Joffrey Huguet <huguet@adacore.com> gcc/ada/ * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads, libgnat/a-cfinve.ads, libgnat/a-cforma.ads, libgnat/a-cofove.ads, libgnat/a-cofuma.ads, libgnat/a-cofuve.ads: Add formal function parameter "=" (L, R : Element_Type) to the generic packages. From-SVN: r274643
2019-08-19[Ada] Opt: clean up left-overs of earlier implementation in commentEric Botcazou2-3/+8
2019-08-19 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * opt.ads: Clean up left-overs of earlier implementation in comment: From-SVN: r274642
2019-08-19[Ada] Representation clause for derived enumeration type is mishandledEd Schonberg4-1/+57
This patch fixes an old-standing problem with premature freezing. When a derived type declaration includes a constraint, we generate a subtype declaration of an anonymous base type, with the constraint given in the original type declaration, Conceptually, the bounds are converted to the new base type, and this conversion freezes (prematurely) that base type, when the bounds are simply literals. As a result, a representation clause for the derived type is then rejected or ignared. This procedure recognizes the simple case of literal bounds in derived enumeration type declarations, which allows us to indicate that the conversions are not freeze points, and the subsequent representation clause can be accepted. 2019-08-19 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch3.adb (Derived_Enumeration_Type): Do no freeze anonymous base type if the bounds in the derived type declaration are literals of the type. gcc/testsuite/ * gnat.dg/rep_clause9.adb: New testcase. From-SVN: r274641
2019-08-19[Ada] Do not skip non-aliasing checking when inlining in GNATproveYannick Moy2-4/+9
When code is inlinined for proof in the special mode for GNATprove, Ada rules about non-aliasing should still be checked. Now fixed. There is no impact on compilation. 2019-08-19 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Call): Check non-aliasing rules before GNATprove inlining. From-SVN: r274640
2019-08-19[Ada] Further cleanup in inlining machineryEric Botcazou3-55/+82
This gets rid of a small issue in the inlining machinery: under very peculiar circumstances, it would add a pending instantiation for the body of a generic package at the point of call to an inlined subprogram of the instance. That's theoritically problematic because the saved context is that of the call and not that of the instance in this case, although the strict conditions ensure that this doesn't make a real difference in practice. Now that the machinery can perform the pending instantiations on demand, we can optimistically add more of them when the instantiations are analyzed and thus remove the problematic handling at the point of call. No functional changes. 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * inline.adb (Add_Inlined_Body): Do not add pending instantiations. * sem_ch12.adb (Needs_Body_Instantiated): New predicate. (Analyze_Package_Instantiation): Use it to decide whether to add a pending instantiation for the body of the package. From-SVN: r274639
2019-08-19[Ada] Fix thinko in Acc_Loop_to_gnuOlivier Hainque4-4/+23
This fixes a glitch introduced during the initial OpenACC work import process, causing crashes on any Acc_Parallel + Acc_Loop combination. 2019-08-19 Olivier Hainque <hainque@adacore.com> gcc/ada/ * gcc-interface/trans.c (Acc_Loop_to_gnu): Return the openacc BIND_EXPR node we have constructed on purpose. Remove unused variable. gcc/testsuite/ * gnat.dg/openacc1.adb: New testcase. From-SVN: r274638
2019-08-19[Ada] Define the -fdump-scos option in lang.optPierre-Marie de Rodat3-0/+11
2019-08-19 Pierre-Marie de Rodat <derodat@adacore.com> gcc/ada/ * gcc-interface/lang.opt (fdump-scos): Define. * gcc-interface/misc.c (gnat_handle_option): Handle OPT_fdump_scos. From-SVN: r274637
2019-08-19PR target/91441 - Turn off -fsanitize=kernel-address if ↵Kito Cheng4-9/+23
TARGET_ASAN_SHADOW_OFFSET is not implemented. - -fsanitize=kernel-address will call targetm.asan_shadow_offset () at asan_shadow_offset, so it will crash if TARGET_ASAN_SHADOW_OFFSET is not implemented, that's mean -fsanitize=kernel-address is not supported for target without TARGET_ASAN_SHADOW_OFFSET implementation. gcc/ChangeLog: PR target/91441 * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is implemented for -fsanitize=kernel-address, and merge check logic with -fsanitize=address. testsuite/ChangeLog: PR target/91441 * gcc.target/riscv/pr91441.c: New. From-SVN: r274631
2019-08-19re PR fortran/91485 (Erroneous conflict between variable x and operator(.x.))Steven G. Kargl4-1/+36
2019-08-18 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91485 module.c (gfc_match_use): User defined operator cannot conflict with a rename symbol. 2019-08-18 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91485 * gfortran.dg/pr91485.f90: New test. From-SVN: r274630
2019-08-19Daily bump.GCC Administrator1-1/+1
From-SVN: r274629
2019-08-18[Darwin, fixincludes] Fix PR83531C.G. Dogan4-5/+115
There is no reasonable chance that the SDKs in question will be re- issued, so the only viable solution is a fixincludes. 2019-08-18 C.G. Dogan <gcc+cgdogan.00@gmail.com> Iain Sandoe <iain@sandoe.co.uk> PR target/83531 * inclhack.def (darwin_api_availability): New, strip leading underscores from API_XXXX defines. * fixincl.x: Regenerate. * tests/base/os/availability.h: New file. Co-Authored-By: Iain Sandoe <iain@sandoe.co.uk> From-SVN: r274624
2019-08-18[Darwin, PPC] Fix fail of cpp/assert4.cIain Sandoe2-4/+21
This test needs the cpu and machine asserts to be implemented which hadn't been done for PPC Darwin. Fixed thus. gcc/ 2019-08-18 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts for cpu and machine. Factor 64/32b builtins. From-SVN: r274623
2019-08-18install.texi (Specific, bfin): blackfin.uclinux.org is gone, point to ↵Gerald Pfeifer2-2/+7
sourceforge.net. * doc/install.texi (Specific, bfin): blackfin.uclinux.org is gone, point to sourceforge.net. From-SVN: r274619
2019-08-18Daily bump.GCC Administrator1-1/+1
From-SVN: r274618
2019-08-17compiler: support new numeric literal syntaxIan Lance Taylor3-65/+224
Support 0b, 0o, and hex floats. Tested against test/literal2.go in the gc repo. Updates golang/go#12711 Updates golang/go#19308 Updates golang/go#28493 Updates golang/go#29008 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/189718 From-SVN: r274614
2019-08-17compiler, runtime: allocate defer records on the stackIan Lance Taylor8-5/+176
When a defer is executed at most once in a function body, we can allocate the defer record for it on the stack instead of on the heap. This should make defers like this (which are very common) faster. This is a port of CL 171758 from the gc repo. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/190410 From-SVN: r274613
2019-08-17re PR fortran/82992 (ICE in create_int_parameter_array, at ↵Steven G. Kargl6-14/+43
fortran/module.c:6586) 2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/82992 * module.c (gfc_match_use): When renaming a module entity, search current namespace for conflicting symbol. 2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/82992 * gfortran.dg/pr71649.f90: Adjust error messages. * gfortran.dg/use_15.f90: Ditto. * gfortran.dg/use_rename_8.f90: Ditto. From-SVN: r274608
2019-08-17re PR fortran/78739 (ICE in gfc_get_symbol_decl, at fortran/trans-decl.c:1477)Steven G. Kargl4-0/+56
2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78739 * match.c (gfc_match_st_function): When matching a statement function, need to check if the statement function name shadows the function name. 2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78739 * fortran.dg/pr78739.f90: New test. From-SVN: r274605
2019-08-17re PR fortran/78719 ([F03] ICE in gfc_get_symbol_decl, at ↵Steven G. Kargl6-3/+109
fortran/trans-decl.c:1438) 2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78719 * decl.c (get_proc_name): Check for a CLASS entity when trying to add attributes to an entity that already has an explicit interface. 2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78719 * gfortran.dg/pr78719_1.f90: New test. * gfortran.dg/pr78719_2.f90: Ditto. * gfortran.dg/pr78719_3.f90: Ditto. From-SVN: r274604
2019-08-17re PR fortran/91471 (f951: internal compiler error: gfc_variable_attr(): Bad ↵Steven G. Kargl4-6/+31
array reference) 2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91471 * primary.c (gfc_variable_attr): Remove a gfc_internal_error(), which cannot be reached by conforming Fortran code, but seems to be reachable from nonconforming Fortran code. Treat the AR_UNKNOWN case as a no-op. 2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91471 * gfortran.dg/pr91471.f90: New test. From-SVN: r274603
2019-08-17re PR libgomp/91473 (Test case libgomp.fortran/appendix-a/a.28.5.f90 is invalid)Thomas Koenig2-1/+7
2019-08-17 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/91473 * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -std=legacy so invalid code in the test case is accepted. From-SVN: r274602
2019-08-17* doc/ux.texi (User Experience Guidelines): Update reference.Gerald Pfeifer2-1/+5
From-SVN: r274601
2019-08-17gpl_v3.texi (Copying): Adjust the link to "Why not LGPL".Gerald Pfeifer2-1/+6
* doc/include/gpl_v3.texi (Copying): Adjust the link to "Why not LGPL". From-SVN: r274600
2019-08-17PR fortran/68401 Improve allocation error messageJanne Blomqvist8-36/+126
Improve the error message that is printed when a memory allocation fails, by including the location, and the size of the allocation that failed. Regtested on x86_64-pc-linux-gnu. gcc/fortran/ChangeLog: 2019-08-17 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/68401 * trans-decl.c (gfc_build_builtin_function_decls): Replace os_error with os_error_at decl. * trans.c (trans_runtime_error_vararg): Modify so the error function decl is passed directly. (gfc_trans_runtime_error): Pass correct error function decl. (gfc_trans_runtime_check): Likewise. (trans_os_error_at): New function. (gfc_call_malloc): Use trans_os_error_at. (gfc_allocate_using_malloc): Likewise. (gfc_call_realloc): Likewise. * trans.h (gfor_fndecl_os_error): Replace with gfor_fndecl_os_error_at. libgfortran/ChangeLog: 2019-08-17 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/68401 * gfortran.map: Add GFORTRAN_10 node, add _gfortran_os_error_at symbol. * libgfortran.h (os_error_at): New prototype. * runtime/error.c (os_error_at): New function. From-SVN: r274599
2019-08-17runtime: scan write barrier buffer conservativelyIan Lance Taylor2-2/+9
In gccgo, we insert the write barriers in the frontend, and so we cannot completely prevent write barriers on stack writes. So it is possible for a bad pointer appearing in the write barrier buffer. When flushing the write barrier, treat it the same as sacnning the stack. In particular, don't mark a pointer if it does not point to an allocated object. We already have similar logic in greyobject. With this, hopefully, we can prevent an unallocated object from being marked completely. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/190599 From-SVN: r274598
2019-08-17Put the CL into the right dir.Marek Polacek2-5/+5
From-SVN: r274596
2019-08-17Daily bump.GCC Administrator1-1/+1
From-SVN: r274595