- 04 Dec, 2018 11 commits
-
-
Fixes a segfault running vet on alpha. Patch by Uros Bizjak. Reviewed-on: https://go-review.googlesource.com/c/152437 From-SVN: r266781
Ian Lance Taylor committed -
re PR lto/88297 (Assembler Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined) PR ipa/88297 * ipa-cp.c (create_specialized_node): Track clone counters by node assembler names. (ipcp_driver): Change type of clone_num_suffixes key to const char*. From-SVN: r266780
Michael Ploujnikov committed -
* g++.old-deja/g++.oliva/typename1.C: Don't expect any diagnostics for C++2a. * g++.old-deja/g++.oliva/typename2.C: Likewise. From-SVN: r266779
Jakub Jelinek committed -
2018-12-04 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations for epilogue vectorization. From-SVN: r266777
Richard Biener committed -
PR tree-optimization/88285 * gcc.dg/predict-22.c: Only compile on freorder targets. From-SVN: r266776
Jakub Jelinek committed -
2018-12-04 James Norris <jnorris@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> Julian Brown <julian@codesourcery.com> gcc/c/ * c-parser.c (c_parser_oacc_wait_list): Remove dead diagnostic code. gcc/cp/ * parser.c (cp_parser_oacc_wait_list): Fix error message and avoid duplicate diagnostic. gcc/testsuite/ * c-c++-common/goacc/asyncwait-1: Update expected errors and add a test for "wait (". Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> Reviewed-by: Joseph Myers <joseph@codesourcery.com> From-SVN: r266774
Julian Brown committed -
2018-12-04 Richard Biener <rguenther@suse.de> PR tree-optimization/88301 * tree-vrp.c (register_edge_assert_for_2): Fix sign-conversion issues in last commit. From-SVN: r266773
Richard Biener committed -
re PR c++/88103 (Wrong value category when conditional expression result is used as object expression) PR c++/88103 * typeck.c (build_class_member_access_expr): If unary_complex_lvalue turned xvalue_p into non-xvalue_p, call move on it. * g++.dg/cpp0x/rv-cond3.C: New test. From-SVN: r266772
Jakub Jelinek committed -
re PR tree-optimization/88315 (SAD and DOT_PROD SLP reductions with initial value != 0 create wrong code) 2018-12-04 Richard Biener <rguenther@suse.de> PR tree-optimization/88315 * tree-vect-loop.c (get_initial_defs_for_reduction): Simplify and fix initialization vector for SAD and DOT_PROD SLP reductions. * gcc.dg/vect/slp-reduc-sad.c: Adjust to provide non-trivial initial value. From-SVN: r266771
Richard Biener committed -
2018-12-03 Sandra Loosemore <sandra@codesourcery.com> PR c/59039 gcc/ * doc/extend.texi (Nonlocal gotos): New section. From-SVN: r266770
Sandra Loosemore committed -
From-SVN: r266769
GCC Administrator committed
-
- 03 Dec, 2018 29 commits
-
-
PR middle-end/64242 * gcc.c-torture/execute/pr64242.c (foo, bar): New functions. (p): Make it void *volatile instead of volatile void *. (q): New variable. (main): Add a dummy 32-byte aligned variable and escape its address. Don't require that the two __builtin_alloca (0) calls return the same address, just require that their difference is smaller than 1024 bytes. From-SVN: r266766
Jakub Jelinek committed -
* config/i386/sse.md (vec_concatv2df): Change (v,xm,C) alternative to (v,vm,c). From-SVN: r266765
Uros Bizjak committed -
In buildmodeinit, the c-archive buildmode is flagged as invalid on linux/ppc64 for gccgo when it should be valid. This happens because the check against the gccgo flag is done after the checks for valid GOOS/GOARCH pairs instead of before as is done for all other buildmode cases in this switch. This corrects the problem and allows several of the gccgo gotools testcases to pass on linux/ppc64. Updates #29046 Reviewed-on: https://go-review.googlesource.com/c/152137 From-SVN: r266764
Ian Lance Taylor committed -
The proper way, that is. * gcc/config.gcc (Unsupported targets): Add powerpc*-*-linux*paired*. (powerpc*-*-linux*): Don't handle it here. From-SVN: r266763
Segher Boessenkool committed -
* config/h8300/h8300.md (<code>qi3_1): Add gcc_unreachable to keep warnings quiet. From-SVN: r266762
Jeff Law committed -
PR fortran/87919 * options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros. (set_dec_flags): Set/unset DEC and std flags according to value. (post_dec_flags, set_init_local_zero): New functions. (gfc_init_options): Use set_init_local_zero and post_dec_flags. (gfc_handle_options) <case OPT_fcheck_array_temporaries>: Use SET_BITFLAG. <case OPT_finit_local_zero>: Use set_init_local_zero. <case OPT_fdec>: Pass value to set_dec_flags. <case OPT_fdec_structure>: Remove. Co-Authored-By: Mark Eggleston <mark.eggleston@codethink.co.uk> From-SVN: r266761
Fritz Reese committed -
From-SVN: r266760
Marek Polacek committed -
GNAT was missing errors as well as issuing messages on legal lines in new ACATS tests for illegal renamings of discriminant-dependent components. Cases that are fixed include object names involving qualified expressions, dereference cases, and generic formal access and formal derived types. Better implements the "known to be constrained" rules in the Ada RM. Tested by new ACATS tests B85100[567] that are soon to be released. 2018-12-03 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * sem_aux.adb (Object_Type_Has_Constrained_Partial_View): Return True for an untagged discriminated formal derived type when referenced within a generic body (augments existing test for formal private types). * sem_util.adb (Is_Dependent_Component_Of_Mutable_Type): If the prefix of the name is a qualified expression, retrieve the operand of that. Add a test of whether the (possible) dereference prefix is a variable, and also test whether that prefix might just be of an access type (occurs in some implicit dereference cases) rather than being an explicit dereference. Retrieve the Original_Node of the object name's main prefix and handle the possibility of that being a qualified expression. Remove special-case code for explicit dereferences that don't come from source. Add test for the renaming not being within a generic body for proper determination of whether a formal access type is known to be constrained (it is within a generic spec, but not in the body). Fix an existing incorrect test for renaming of a discriminant-dependent component of a untagged generic formal type being within a generic body, adding test of taggedness and calling In_Generic_Body (now properly checks for cases where the renaming is in a nongeneric body nested within a generic). Return False in cases where the selector is not a component (or discriminant), which can occur for prefixed-notation calls. From-SVN: r266759
Gary Dismukes committed -
This patch fixes a spurious error on a array expression that is a dependent expression of an if-expression, when the length of the array matches that imposed by the context, but the bounds of both differ, in particular when the expression and the context are both null arrays with different bounds. 2018-12-03 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_res.adb (Apply_Check): For array types, apply a length check rather than a qualification, to avoid spurious errors when the value of a dependend expression has a matching length but different bounds from those of the type of the contect. gcc/testsuite/ * gnat.dg/array33.adb: New testcase. From-SVN: r266758
Ed Schonberg committed -
The following patch updates Ada.Calendar and helper utility Xleaps to include the leap seconds for years 2015 and 2016. 2018-12-03 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * libgnat/a-calend.adb: Update the number of leap seconds. Add the hard time values for year 2015 and 2016. From-SVN: r266757
Hristian Kirtchev committed -
2018-12-03 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * exp_ch3.adb, libgnarl/s-taasde.adb, libgnarl/s-taenca.adb, libgnarl/s-tarest.adb, libgnarl/s-tasini.adb, libgnarl/s-taskin.ads, libgnarl/s-tasren.adb, libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb: Spelling fixes and minor reformatting. From-SVN: r266756
Gary Dismukes committed -
This prevents either a crash or an assertion failure in gigi on an array with dynamic subtype that is wrongly flagged as static by the front-end because of a recent improvement made in the handling of nested aggregates. The patch reuses the existing Static_Array_Aggregate predicate instead of fixing the problematic test, pluging a few loopholes in the process. The predicate is conservatively correct but should be good enough in practice. 2018-12-03 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_aggr.adb (Convert_To_Positional): Use Static_Array_Aggregate to decide whether to set Compile_Time_Known_Aggregate on an already flat aggregate. (Expand_Array_Aggregate): Remove test on Compile_Time_Known_Aggregate that turns out to be dead and simplify. (Is_Static_Component): New predicate extracted from... (Static_Array_Aggregate): ...here. Test neither Is_Tagged_Type nor Is_Controlled for the type, but test whether the component type has discriminants. Use the Is_Static_Component predicate consistently for the positional and named cases. gcc/testsuite/ * gnat.dg/array32.adb, gnat.dg/array32.ads: New testcase. From-SVN: r266755
Eric Botcazou committed -
This fixes an assertion failure in gigi triggered by the instantiation of a generic package, in a visible part of another package, done on a private type whose full view is a type derived from a scalar or an access type. The problem is that the front-end creates and inserts two different freeze nodes in the expanded tree for the partial and the full views of the private subtype created by the instantiation, which is not correct: partial and full views of a given (sub)type must point to the same freeze node, if any. The patch also adds an assertion checking this property in the front-end so as to catch the inconsistency higher in the chain. 2018-12-03 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * freeze.adb (Freeze_Entity): Do not freeze the partial view of a private subtype if its base type is also private with delayed freeze before the full type declaration of the base type has been seen. * sem_ch7.adb (Preserve_Full_Attributes): Add assertion on freeze node. gcc/testsuite/ * gnat.dg/generic_inst2.adb, gnat.dg/generic_inst2.ads, gnat.dg/generic_inst2_c.ads: New testcase. From-SVN: r266754
Eric Botcazou committed -
The change reverts the test deciding whether an initialization procedure can be inherited from parent to derived type to the original implementation, which allowed inheriting a null procedure. This prevents the creation of another null initialization procedure for the derived type, which in turn can avoid an artificial overloading which can wreak havoc in the analysis of private declarations of a package. 2018-12-03 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_ch3.adb (Build_Record_Init_Proc): Inherit an initialization procedure if it is present, even if it is null. gcc/testsuite/ * gnat.dg/overload2.adb, gnat.dg/overload2_p.adb, gnat.dg/overload2_p.ads, gnat.dg/overload2_q.adb, gnat.dg/overload2_q.ads: New testcase. From-SVN: r266753
Eric Botcazou committed -
This patch resolves the issue where the ATC Level of a task's first Entry_Call slot corresponds to a task not currently making an entry call. Consequently, the first slot is never used to record an entry call. To resolve this, the ATC Level of a such a task is now one less than the first index of the Entry_Call array (and as result, the ATC level corresponding to a completed task is now two less than the first index of this array). To aid the maintainability of code using ATC levels new constants are introduced to represent key ATC nesting levels and comments are introduce for the ATC level definitions. As a result of this change, the GNAT Extended Ravenscar Profile now works with the full runtime. The restricted runtime had assumed that the first Entry_Call slot would be the only slot used for entry calls and would only initialise this slot (and System.Tasking.Protected_Objects.Single_Entry was coded this way). However, Extended Ravenscar uses the native implementation of System.Tasking.Protected_Objects where this assumption doesn't hold until the implementation of this patch. Aside from enabling an extra nested level, this is main functional change of this patch. The following should compile and execute quietly: gprbuild -q main.adb ./main -- main.adb pragma Profile (GNAT_Extended_Ravenscar); pragma Partition_Elaboration_Policy (Sequential); with Tasks; with GNAT.OS_Lib; with Ada.Synchronous_Task_Control; procedure Main is pragma Priority (30); begin Ada.Synchronous_Task_Control.Suspend_Until_True (Tasks.A_SO); Ada.Synchronous_Task_Control.Suspend_Until_True (Tasks.B_SO); GNAT.OS_Lib.OS_Exit (0); end Main; -- tasks.ads with Ada.Synchronous_Task_Control; package Tasks is A_SO : Ada.Synchronous_Task_Control.Suspension_Object; B_SO : Ada.Synchronous_Task_Control.Suspension_Object; task A with Priority => 25; task B with Priority => 20; end Tasks; -- tasks.adb with Obj; package body Tasks is task body A is begin for J in 1 .. 5 loop Obj.PO.Wait; end loop; Ada.Synchronous_Task_Control.Set_True (Tasks.A_SO); end A; task body B is begin for J in 1 .. 5 loop Obj.PO.Put; end loop; Ada.Synchronous_Task_Control.Set_True (Tasks.B_SO); end B; end Tasks; -- obj.ads package Obj is protected type PT is pragma Priority (30); entry Put; entry Wait; private Wait_Ready : Boolean := False; Put_Ready : Boolean := True; end PT; PO : PT; end Obj; -- obj.adb package body Obj is protected body PT is entry Put when Put_Ready is begin Wait_Ready := True; Put_Ready := False; end Put; entry Wait when Wait_Ready is begin Wait_Ready := False; Put_Ready := True; end Wait; end PT; end Obj; 2018-12-03 Patrick Bernardi <bernardi@adacore.com> gcc/ada/ * libgnarl/s-taskin.ads (ATC_Level_Base): Redefine to span from -1 to Max_ATC_Nesting so that 0 represents no ATC nesting and -1 represented a completed task. To increase readability, new constants are introduced to represent key ATC nesting levels. Consequently, Level_No_Pending_Abort replaces ATC_Level_Infinity. ATC_Level related definitions now documented. (Ada_Task_Control_Block): The default initialization of components ATC_Nesting_Level and Pending_ATC_Level now use new ATC_Level_Base constants. Comments improved * libgnarl/s-taskin.adb (Initialize): Improve the initialisation of the first element of the Entry_Calls array to facilitate better maintenance. * libgnarl/s-taasde.ads: Update comment. * libgnarl/s-taasde.adb, libgnarl/s-taenca.adb, libgnarl/s-tasren.adb, libgnarl/s-tassta.adb, libgnarl/s-tasuti.ads, libgnarl/s-tasuti.adb: Use new ATC_Level_Base constants. * libgnarl/s-tarest.adb (Create_Restricted_Task): Improve the initialisation of the first element of the task's Entry_Calls array to facilitate better maintenance. * libgnarl/s-tasini.ads (Locked_Abort_To_Level): Update signature to accept ATC_Level_Base. * libgnarl/s-tasini.adb (Locked_Abort_To_Level): Update signature to accept ATC_Level_Base. Use new ATC_Level_Base constants and only modify the aborting task's Entry_Calls array if any entry call is happening. * libgnarl/s-tposen.adb (Protected_Single_Entry_Call): Reference the first element of the task's Entry_Calls array via 'First attribute to facilitate better maintenance. From-SVN: r266752
Patrick Bernardi committed -
This fixes a couple of assertion failures when using -gnatde and -gnatdv on a compiler built with assertions enabled. No functional changes. 2018-12-03 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * einfo.adb (Write_Entity_Info): Don't take Scope of Standard package. * sem_ch4.adb (Remove_Abstract_Operations): Add missing blank lines to -gnatdv output. * sem_type.adb (Write_Overloads): Take Entity of entity names only. From-SVN: r266751
Eric Botcazou committed -
2018-12-03 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch3.adb, exp_util.adb, exp_util.ads, repinfo.adb, sem_attr.adb, sem_ch3.adb, sem_res.adb, sem_util.adb: Minor reformatting. From-SVN: r266750
Hristian Kirtchev committed -
2018-12-03 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch3.adb (Complete_Private_Subtype): Enhance comment. From-SVN: r266749
Ed Schonberg committed -
Matching front-end bits to support Acc_Kernels, Acc_Parallel, Acc_Loop and Acc_Data. 2018-12-03 Olivier Hainque <hainque@adacore.com> gcc/ada/ * gcc-interface/lang.opt (fopenacc): New option for Ada. * gcc-interface/misc.c (gnat_handle_option): Handle it. * gcc-interface/trans.c (struct loop_info_d): Add OMP attributes. (Iterate_Acc_Clause_Arg, Acc_gnat_to_gnu): New functions, helpers for OpenACC pragmas processing in Pragma_to_gnu. (Acc_Var_to_gnu, Acc_Reduc_Var_to_gnu, Acc_Reduc_to_gnu): Likewise. (Acc_Size_Expr_to_gnu, Acc_Size_List_to_gnu): Likewise. (Pragma_Acc_Data_to_gnu): Likewise. (Pragma_to_gnu): Handle Pragma_Acc_Loop, Pragma_Acc_Data, Pragma_Acc_Kernels and Pragma_Acc_Parallel. (Acc_Loop_to_gnu, Regular_Loop_to_gnu): New functions. Helpers for ... (Loop_Statement_to_gnu): Rework to handle OpenACC loops. From-SVN: r266748
Olivier Hainque committed -
Instead of 2 * LONG_TYPE_SIZE. POINTER_SIZE is believed to be the correct base on more configurations than LONG_TYPE_SIZE and this adjustment prevents the need for local patches to compensate on configurations where the latter is inappropriate, for example x86_64-mingw. 2018-12-03 Olivier Hainque <hainque@adacore.com> gcc/ada/ * gcc-interface/targtyps.c (MALLOC_OBSERVABLE_ALIGNMENT): Set to 2 * POINTER_SIZE. From-SVN: r266747
Olivier Hainque committed -
This patch fixes a constraint check on a dependent expression of an if-expression, when the context if given by a slice or the 'Range of an array. The constraint check is applied if the context is constrained, but the corresponding flag was not set for the index subtype generated for a slice (explicit or implicit). Executing: gprbuild -P test -q main ./main Must yield: raised CONSTRAINT_ERROR : foo.ads:13 range check failed ---- with Types; generic Buffer : in out Types.Buffer; package Foo is function Get (Pos : Natural) return Integer; private function Get (Pos : Natural) return Integer is (Buffer ((if Pos in Buffer'Range then Pos else Buffer'First))); end Foo; ---- with Foo; with Types; with Usefoo; procedure Main is Z : Types.Buffer := (Natural'Last .. Natural'Last - 1 => 0); R : Integer; begin Usefoo.Do_Something (Z, R); end Main; ---- pragma SPARK_Mode (On); pragma Profile (Ravenscar); pragma Partition_Elaboration_Policy (Sequential); ---- project Test is package Compiler is for Default_Switches ("Ada") use ("-gnatws"); for Local_Configuration_Pragmas use "test.adc"; end Compiler; end Test; ---- package Types is subtype Natural_Without_Last is Natural range 1 .. Natural'Last - 1; type Buffer is array (Natural_Without_Last range <>) of Integer; end Types; ---- with Foo; package body Usefoo is procedure Do_Something (B : in out Types.Buffer; R : out Integer) is package F is new Foo (B (B'First .. B'First + B'Length / 2 - 1)); begin R := F.Get (B'First + B'Length / 2 - 1); end Do_Something; end Usefoo; ---- with Types; package Usefoo is procedure Do_Something (B : in out Types.Buffer; R : out Integer) with Pre => B'First > 0; end Usefoo; 2018-12-03 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_res.adb (Set_Slice_Subtype): The index type of a slice is constrained. From-SVN: r266746
Ed Schonberg committed -
2018-12-03 Fritz Reese <fritzoreese@gmail.com> Mark Eggleston <mark.eggleston@codethink.co.uk> PR fortran/87919 gcc/fortran/ChangeLog: PR fortran/87919 * options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros. (set_dec_flags): Set/unset DEC and std flags according to value. (set_init_local_zero): New helper for -finit-local-zero flag group. (gfc_init_options): Fix disabling of init flags, array temporaries check, and dec flags when value is zero (from -fno-*). gcc/testsuite/ChangeLog: PR fortran/87919 * gfortran.dg/array_temporaries_5.f90: New test. * gfortran.dg/dec_bitwise_ops_3.f90: Ditto. * gfortran.dg/dec_d_lines_3.f: Ditto. * gfortran.dg/dec_exp_4.f90: Ditto. * gfortran.dg/dec_exp_5.f90: Ditto. * gfortran.dg/dec_io_7.f90: Ditto. * gfortran.dg/dec_structure_24.f90: Ditto. * gfortran.dg/dec_structure_25.f90: Ditto. * gfortran.dg/dec_structure_26.f90: Ditto. * gfortran.dg/dec_structure_27.f90: Ditto. * gfortran.dg/dec_type_print_3.f90: Ditto. * gfortran.dg/init_flag_20.f90: Ditto. Co-Authored-By: Mark Eggleston <mark.eggleston@codethink.co.uk> From-SVN: r266745
Fritz Reese committed -
h8300.md (low byte masking peepholes): Only accept nonimmediate_operand for the to-be-masked operand. * config/h8300/h8300.md (low byte masking peepholes): Only accept nonimmediate_operand for the to-be-masked operand. From-SVN: r266744
Jeff Law committed -
* gcc.dg/pr59963-2.c: Make testnames unique. * gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: Likewise. From-SVN: r266743
Jeff Law committed -
tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only allow expected function-pointer cast re-instantiation. 2018-12-03 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only allow expected function-pointer cast re-instantiation. From-SVN: r266742
Richard Biener committed -
gcc/ChangeLog: 2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> * common/config/s390/s390-common.c (s390_option_init_struct): Use section anchors by default. * config/s390/s390.c (s390_check_symref_alignment): Handle anchors. (TARGET_MAX_ANCHOR_OFFSET): Use short displacement. * output.h (assemble_align): Pass `align' as unsigned int, so that the value 0x80000000, which corresponds to `aligned(1 << 28)', would pass the `align > BITS_PER_UNIT' check. * varasm.c (assemble_align): Likewise. gcc/testsuite/ChangeLog: 2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> * gcc.target/s390/nodatarel-1.c: Expect .LANCHOR0@GOTENT instead of a@GOTENT. * gcc.target/s390/section-anchors.c: New test. * gcc.target/s390/section-anchors2.c: New test. * gcc.target/s390/section-anchors3.c: New test. From-SVN: r266741
Ilya Leoshkevich committed -
gcc/ * tree-pretty-print.c (dump_omp_clause): Make default case gcc_unreachable. From-SVN: r266740
Julian Brown committed -
2018-12-03 Richard Biener <rguenther@suse.de> PR tree-optimization/88301 * tree-vrp.c (register_edge_assert_for_2): Handle conversions that do not change the value by registering the same assert for the operand. * gcc.dg/tree-ssa/evrp13.c: New testcase. From-SVN: r266739
Richard Biener committed -
re PR tree-optimization/71109 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "maybe_record_trace_start") PR tree-optimization/71109 * gcc.c-torture/compile/pr71109.c: New test. From-SVN: r266738
Jakub Jelinek committed
-