1. 11 Dec, 2018 14 commits
    • [Ada] Spurious errors on aspect specifications in generic units · 5f531fef
      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
      Ed Schonberg committed
    • [Ada] Document the -fgnat-encodings switch · 15bdffc4
      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
      Pierre-Marie de Rodat committed
    • [Ada] Crash on nesting of subunits with bodies acting as specs · ad974123
      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
      Justin Squirek committed
    • [Ada] Suppress call to Initial_Condition when the annotation is ignored · 30377799
      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
      Hristian Kirtchev committed
    • [Ada] Almost always inline init. procedure of small and simple records · 13a6dfe3
      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
      Eric Botcazou committed
    • ccmp.c (ccmp_candidate_p): Use GIMPLE API properly. · d6a73cc3
      2018-12-11  Richard Biener  <rguenther@suse.de>
      
      	* ccmp.c (ccmp_candidate_p): Use GIMPLE API properly.
      
      From-SVN: r266975
      Richard Biener committed
    • re PR lto/86004 (Several lto test cases begin failing with r260963) · c7e8e26e
      	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
      Jakub Jelinek committed
    • rs6000: Don't use rs6000_isa_flags_explicit for soft float tests (PR88145) · b900470b
      ...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
      Segher Boessenkool committed
    • re PR c/88430 (-Wmissing-attributes warnings when including libquadmath headers) · 3b14d7fa
      	PR c/88430
      	* quadmath_weak.h (__qmath2): Add __quadmath_throw.
      
      From-SVN: r266972
      Jakub Jelinek committed
    • re PR tree-optimization/80520 (Performance regression from missing if-conversion) · 7b1ff601
      	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
      Jeff Law committed
    • documentation_hacking.xml: Update reference to epubcheck. · 72cfde41
      	* doc/xml/manual/documentation_hacking.xml: Update reference
      	to epubcheck.
      
      From-SVN: r266970
      Gerald Pfeifer committed
    • 2018-12-10 Steven G. Kargl <kargl@gcc.gnu.org> · 87550b74
      	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
      Steven G. Kargl committed
    • PR tree-optimization/86196 - Bogus -Wrestrict on memcpy between array elements at unequal indices · 1486eb79
      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
      Martin Sebor committed
    • Daily bump. · 03da9b75
      From-SVN: r266966
      GCC Administrator committed
  2. 10 Dec, 2018 18 commits
  3. 09 Dec, 2018 8 commits