- 09 Oct, 2018 31 commits
-
-
This change is aimed at getting rid of spurious -Wuninitialized warnings issued for small records passed by copy and containing default values for some of their components. The source of the problem is that the _Init parameter of the initialization routine is declared as an in/out parameter, so the uninitialized object is passed by copy to it and this can be flagged by -Wuninitialized. That's why the mode of the parameter is changed to out, except for the cases where information really needs to be passed in: unconstrained array types, protected and task types. For the following record type Rec! type Rec is record B : Boolean := True; end record; the initialization routine must now be: procedure r__recIP (_init : out r__rec1) is begin _init.b := true; return; end r__recIP; 2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_ch3.adb (Is_Null_Statement_List): New predicate. (Build_Array_Init_Proc): Use it to find out whether the initialization procedure Is_Null_Init_Proc; if so, set Warnings_Off on the parameter. (Build_Init_Procedure): Likewise. (Init_Formals): Use an in/out first parameter only for unconstrained arrays and for records either containing or built for proteced types or task types; use an out parameter in all the other cases. * fe.h (Is_Init_Proc): Declare. * gcc-interface/decl.c (type_requires_init_of_formal): Do not return true for a discriminant in an unchecked union. (gnat_to_gnu_param): Do not create a PARM_DECL for the Out parameter of an initialization procedure. From-SVN: r264984
Eric Botcazou committed -
2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: If this is not a definition, retrieve the expression in all cases even if we are just annotating types. * gcc-interface/trans.c (gnat_to_gnu): Also translate Size attribute for constrained types in this mode. From-SVN: r264983
Eric Botcazou committed -
2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * adaint.c (__gnat_get_executable_suffix_ptr): Add new line. (__gnat_locate_exec): Check that HOST_EXECUTABLE_SUFFIX is not empty before doing a string search for it. * socket.c (ATTRIBUTE_UNUSED): Define. (__gnat_disable_sigpipe): Add ATTRIBUTE_UNUSED on parameter. * terminals.c (ATTRIBUTE_UNUSED): Move around. (__gnat_setup_child_communication): Add ATTRIBUTE_UNUSED on parameter. (__gnat_send_header): Add ATTRIBUTE_UNUSED on parameters. From-SVN: r264982
Eric Botcazou committed -
GNATprove does not have sometimes the precise information of the compiler about size of types and objects, so that it cannot evaluate the expressions in pragma Compile_Time_Error/Warning the same way the compiler does. Thus, these pragmas should be ignored in GNATprove mode, as it can neither verify them nor assume them (if the expression cannot be evaluated at compile time, then the semantics for GNAT is to ignore them). 2018-10-09 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Rewrite pragmas as null statements in GNATprove mode. From-SVN: r264981
Yannick Moy committed -
This fixlet gets rid of a spurious error issued in the specific case of a call to a subprogram taking an Out parameter of a discriminated record type without default discriminants, if the actual parameter is the result of the conversion to the record type of a variable whose type is derived from the record and has a representation clause. The compiler was failing to initialize the temporary made around the call because of the representation clause, but this is required for a type with discriminants because discriminants may be read by the called subprogram. 2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize the temporary made for an Out parameter if the formal type has discriminants. gcc/testsuite/ * gnat.dg/derived_type5.adb, gnat.dg/derived_type5_pkg.ads: New testcase. From-SVN: r264980
Eric Botcazou committed -
2018-10-09 Maroua Maalej <maalej@adacore.com> gcc/ada/ * sem_spark.adb (Check_Declaration): fix bug related to non access object permissions. From-SVN: r264979
Maroua Maalej committed -
2018-10-09 Doug Rupp <rupp@adacore.com> gcc/ada/ * libgnat/a-ncelfu.ads: Fix name in header to match package. From-SVN: r264978
Doug Rupp committed -
The back-end was recently changed to issue more -Wuninitialized warnings on Out parameters and this has caught a case related to Ada.Iterator_Interface.: This patchlet simply kills this uninteresting warning. 2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Set Warnings_Off on the B out parameter. gcc/testsuite/ * gnat.dg/warn17.adb: New testcase. From-SVN: r264977
Eric Botcazou committed -
2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * einfo.ads: Small comment fix. From-SVN: r264976
Eric Botcazou committed -
This fixes a recent regression introduced in the compiler for the inlined renaming of a subprogram instantiated in a package body. It was wrongly clearing the Is_Public flag on the entity associated with the body. 2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_ch7.adb (Has_Referencer): Add comment for the N_Freeze_Entity case. Do not rely on Has_Referencer_Of_Non_Subprograms to clear the Is_Public flag on subprogram entities. gcc/testsuite/ * gnat.dg/inline14.adb, gnat.dg/inline14_pkg.adb, gnat.dg/inline14_pkg.ads: New testcase. From-SVN: r264975
Eric Botcazou committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (In_Synchronized_Call): Handle properly private types whose full views are synchronized types, in order to recognize generated subprograms whose bodies must be considered reachable even if no direct calls to them are visible in the source. From-SVN: r264974
Ed Schonberg committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_Modular_Op): When expanding an operation on nonbinary modular types, convert the opersnds to an integer type that is large enough to hold the modulus of the type, which may be larger than Integer'Last. From-SVN: r264973
Ed Schonberg committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (Unnest_Subprogram): When an uplevel reference is to an unconstrained formal, the 'Access reference that is created to initialize the corresponding component of the activation record must be wrapped in an unchecked conversion to the generated type of the component. Otherwise, spurious suvtype conformance errors will be generated when the code is within an instantiation and the type of the formal is a formal type of the enclosing generic. Note that during unnesting there is no simple way to determine that the code appears within an instance because ther is no scope stack. From-SVN: r264972
Ed Schonberg committed -
2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * gcc-interface/decl.c (type_requires_init_of_formal): New predicate. (gnat_to_gnu_param): Use it to determine whether a PARM_DECL must be created for an Out parameter passed by copy. From-SVN: r264971
Eric Botcazou committed -
2018-10-09 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * libgnat/a-coboho.ads (Storage_Element): Fix a typo. From-SVN: r264970
Arnaud Charlet committed -
2018-10-09 Claire Dross <dross@adacore.com> gcc/ada/ * libgnat/a-cfinve.ads: Remove default value for Max_Size_In_Storage_Elements as it was not supported in SPARK. From-SVN: r264969
Claire Dross committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_ch6.adb (Add_Call_By_Copy_Node, Add_Simple_Call_By_Copy_Node, Expand_Call_Helper): Reset Is_True_Constant on entities used as Out or In_Out parameters in calls. From-SVN: r264968
Ed Schonberg committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (Unnest_Subprogram): Do not load System to obtain the Address entity unless an activation record is being built. Removes useless with_clauses for System when nested subprograms do not have uplevel references, and therefore do not need activation records. From-SVN: r264967
Ed Schonberg committed -
This patch removes an improper error message on a visibility change in an aspect expression between the freeze point and the end of the declaration list, when the expression involves a call to a instance of Unchecked_Conversion and the enclosing package declaration has a package body with multiple subprogram bodies. The following must compile quietly: ---- package body Par.Rep is procedure Nothing is begin null; end; procedure Rien is begin null; end; end; ---- with Par.Loc; package Par.Rep is type Rec is record X, Y : Integer; end record with Volatile; Thing2 : Unsigned_32 := 15; Thing3 : Rec with Volatile, Address => To_Address (Par.Loc.Flash_Base); procedure Nothing; end; ---- pragma Restrictions (No_Elaboration_Code); with interfaces; use interfaces; pragma unreferenced (interfaces); with Tp; use Tp; pragma unreferenced (Tp); package Par is end Par; ---- with Ada.Unchecked_Conversion; with System; with Interfaces; use Interfaces; package Tp is subtype system_address is unsigned_32; function to_address is new ada.unchecked_conversion (system_address, system.address); function To_32 is new ada.unchecked_conversion (System.Address, System_Address); end; ---- with TP; use TP; package Par.Loc is FLASH_BASE : constant system_address := 16#0800_0000#; end; 2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch6.adb (Fully_Conformant_Expressions): Handle properly the conformance check on an aspect expression that includes a call to an instance of Unchecked_Conversion, or more generally a call to an intrinsic operation. From-SVN: r264966
Ed Schonberg committed -
2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * repinfo.adb: Remove with/use clause for Stand. (List_Mechanisms): List the mechanism of functions only. From-SVN: r264965
Eric Botcazou committed -
2018-10-09 Bob Duff <duff@adacore.com> gcc/ada/ * doc/gnat_ugn/gnat_utility_programs.rst: Correct spelling of --eol switch. Document the language-version switches. Update description for --no-exception. From-SVN: r264964
Bob Duff committed -
2018-10-09 Vasiliy Fofanov <fofanov@adacore.com> gcc/ada/ * libgnat/s-os_lib.ads (Normalize_Pathname): Fix incorrect comment. From-SVN: r264963
Vasiliy Fofanov committed -
2018-10-09 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * vxlink.adb: Remove pragma Annotate, no longer needed. From-SVN: r264962
Arnaud Charlet committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * checks.adb (Apply_Type_Conversion_Checks): Use GNATprove_Mode rather than SPARK_mode in order to preserve the Do_Range_Check flag for verification purposes. From-SVN: r264961
Ed Schonberg committed -
This patch suppresses a spurious warning coming from the GCC backend, on an aggregate that cannot be built in place and for which a temporary variable must be created. If the type of the aggregate is a packed boolean array, the generated code may appear to use an uninitialized value for a component of the array, when in fact the code simply sets a single bit of that array. 2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_aggr.adb (Expand_Array_Aggregate): If it is not possible to build in place an aggregate with component associations, set the Warnings_Off flag on the generated temporary, to prevent spurious warnings from the backend when compiling with the -Wuninitialized gcc flag. gcc/testsuite/ * gnat.dg/warn18.adb: New testcase. From-SVN: r264960
Ed Schonberg committed -
The typedefs for common specializations of std::__cxx11::basic_string do not need to be in the std::__cxx11 namespace. Those typedefs are never used for linkage purposes so don't appear in mangled names, and so don't need to be distinct from the equivalent typedefs for the COW std::basic_string specializations. It is OK for the same typedef to refer to different types in different translation units. Defining them directly in namespace std improves diagnostics that use those typedefs. For example: error: could not convert '1' from 'int' to 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} will now be printed as: error: could not convert '1' from 'int' to 'std::string' {aka 'std::__cxx11::basic_string<char>'} The precise type is still shown, but the typedef is not obfuscated with the inline namespace. * include/bits/stringfwd.h (string, wstring, u16string, u32string): Define typedefs outside of __cxx11 inline namespace. * python/libstdcxx/v6/printers.py (register_type_printers): Also register printers for typedefs in new location. From-SVN: r264958
Jonathan Wakely committed -
2018-10-09 Richard Biener <rguenther@suse.de> PR tree-optimization/63155 * tree-ssa-structalias.c: Include tree-ssa.h. (get_constraint_for_ssa_var): For undefs return nothing_id. (find_func_aliases): Cleanup PHI handling. From-SVN: r264956
Richard Biener committed -
2018-10-09 Richard Biener <rguenther@suse.de> * tree-vectorizer.c (dump_stmt_cost): Fix cut&paste missing replacements. From-SVN: r264954
Richard Biener committed -
2018-10-09 Martin Liska <mliska@suse.cz> * asan.c (asan_emit_stack_protection): If a stack variable is located in a same file as current function, then emit line info into variable definition string. 2018-10-09 Martin Liska <mliska@suse.cz> * c-c++-common/asan/pr64820.c: Add line number to scanned pattern. * c-c++-common/asan/use-after-return-1.c: Likewise. * g++.dg/asan/function-argument-1.C (main): Likewise. * g++.dg/asan/function-argument-2.C (main): Likewise. * g++.dg/asan/function-argument-3.C (main): Likewise. * g++.dg/asan/use-after-scope-1.C (main): Likewise. * g++.dg/asan/use-after-scope-2.C (main): Likewise. * g++.dg/asan/use-after-scope-types-1.C (main): Likewise. * g++.dg/asan/use-after-scope-types-2.C (main): Likewise. * g++.dg/asan/use-after-scope-types-3.C (main): Likewise. * g++.dg/asan/use-after-scope-types-4.C (main): Likewise. * g++.dg/asan/use-after-scope-types-5.C (main): Likewise. * gcc.dg/asan/pr78541.c (main): Likewise. * gcc.dg/asan/use-after-scope-1.c (main): Likewise. * gcc.dg/asan/use-after-scope-10.c (main): Likewise. * gcc.dg/asan/use-after-scope-2.c (main): Likewise. * gcc.dg/asan/use-after-scope-3.c (main): Likewise. * gcc.dg/asan/use-after-scope-5.c (main): Likewise. * gcc.dg/asan/use-after-scope-9.c (main): Likewise. From-SVN: r264951
Martin Liska committed -
2018-10-09 Paul Thomas <pault@gcc.gnu.org> PR fortran/87151 * trans-array.c (gfc_get_array_span): Deal with deferred char array components having a TYPE_MAX_VALUE of zero. (gfc_array_init_size): Use the hidden string length component to build the descriptor dtype. (gfc_array_allocate): Remove the erroneous replacement of the charlen backend decl with a temporary. (gfc_conv_expr_descriptor): Use the ss_info string length in the case of deferred character components. (gfc_alloc_allocatable_for_assignment): Actually compare the string lengths for deferred characters. Make sure that kind > 1 is handled correctly. Set the span field of the descriptor. * trans-intrinsic.c (gfc_conv_intrinsic_len): Remove the stupid comment. PR fortran/80931 * trans-array.c (gfc_array_allocate): Set the span field for variable length character arrays. 2018-10-09 Paul Thomas <pault@gcc.gnu.org> PR fortran/87151 * gfortran.dg/deferred_type_component_3.f90: New test. PR fortran/80931 * gfortran.dg/deferred_character_28.f90: New test. * gfortran.dg/deferred_character_29.f90: New test (note that this test appears in PR83196 comment #4 by mistake). From-SVN: r264949
Paul Thomas committed -
From-SVN: r264948
GCC Administrator committed
-
- 08 Oct, 2018 9 commits
-
-
* print-rtl.c (rtx_writer::print_rtx_operand_code_i): Print column information. From-SVN: r264944
Eric Botcazou committed -
* cgraphunit.c (cgraph_node::expand_thunk): Do not force DECL_IGNORED_P on the thunk. From-SVN: r264943
Eric Botcazou committed -
PR tree-optimization/86659 * gimple-match.h (struct gimple_match_op): Add reverse field. (gimple_match_op::set_op): New overloaded method. * gimple-match-head.c (maybe_build_generic_op) <BIT_FIELD_REF>: Set the REF_REVERSE_STORAGE_ORDER flag on the value. (gimple_simplify) <GIMPLE_ASSIGN>: For BIT_FIELD_REF, propagate the REF_REVERSE_STORAGE_ORDER flag and avoid simplifying if it is set. From-SVN: r264942
Eric Botcazou committed -
As pointed out by Richard in PR63155. It speeds up the testcase a few %. 2018-10-08 Richard Sandiford <richard.sandiford@arm.com> gcc/ PR middle-end/63155 * gimple-ssa-backprop.c (backprop::intersect_uses): Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. From-SVN: r264941
Richard Sandiford committed -
From-SVN: r264939
Paul Koning committed -
Define _mm512_mask3_fmaddsub_round_pd with __builtin_ia32_vfmaddsubpd512_mask, instead of __builtin_ia32_vfmaddpd512_mask. PR target/87517 * config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd): Defined with __builtin_ia32_vfmaddsubpd512_mask. From-SVN: r264935
H.J. Lu committed -
2018-10-08 Richard Biener <rguenther@suse.de> * config/i386/x86-tune-costs.h (znver1_cost): Make AVX256 vector loads cost the same as AVX128 ones. From-SVN: r264934
Richard Biener committed -
Reviewed-on: https://go-review.googlesource.com/c/140277 From-SVN: r264932
Ian Lance Taylor committed -
* config/pdp11/pdp11-protos.h (output_block_move): Remove. (expand_block_move): New function. * config/pdp11/pdp11.c (output_block_move): Remove. (expand_block_move): New function. * config/pdp11/pdp11.h (MOVE_RATIO): New definition. * config/pdp11/pdp11.md (movmemhi): Use expand_block_move. (*movmemhi1): Remove. From-SVN: r264930
Paul Koning committed
-