1. 31 May, 2018 36 commits
    • sse.md (avx_vec_concat<mode>): Substitute concat_tg_mode mode attribute with xtg_mode. · c9315097
      	* config/i386/sse.md (avx_vec_concat<mode>):
      	Substitute concat_tg_mode mode attribute with xtg_mode.
      	(<mask_codefor>avx512dq_broadcast<mode><mask_name>_1): Ditto.
      	(concat_tg_mode): Remove mode attribute.
      
      From-SVN: r261031
      Uros Bizjak committed
    • PR c/82063 - issues with arguments enabled by -Wall · d258f4aa
      gcc/c-family/ChangeLog:
      
      	PR c/82063
      	* c.opt (-Wno-alloc-size-larger-than): New option.
      	* doc/invoke.texi (-Walloc-size-larger-than): Update.
      
      gcc/ChangeLog:
      
      	PR c/82063
      	* calls.c (alloc_max_size): Correct a logic error/typo.
      	Treat excessive arguments as infinite.  Warn for invalid arguments.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/82063
      	* gcc.dg/Walloc-size-larger-than-1.c: New test.
      	* gcc.dg/Walloc-size-larger-than-10.c: New test.
      	* gcc.dg/Walloc-size-larger-than-11.c: New test.
      	* gcc.dg/Walloc-size-larger-than-12.c: New test.
      	* gcc.dg/Walloc-size-larger-than-13.c: New test.
      	* gcc.dg/Walloc-size-larger-than-14.c: New test.
      	* gcc.dg/Walloc-size-larger-than-15.c: New test.
      	* gcc.dg/Walloc-size-larger-than-16.c: New test.
      	* gcc.dg/Walloc-size-larger-than-17.c: New test.
      	* gcc.dg/Walloc-size-larger-than-2.c: New test.
      	* gcc.dg/Walloc-size-larger-than-3.c: New test.
      	* gcc.dg/Walloc-size-larger-than-4.c: New test.
      	* gcc.dg/Walloc-size-larger-than-5.c: New test.
      	* gcc.dg/Walloc-size-larger-than-6.c: New test.
      	* gcc.dg/Walloc-size-larger-than-7.c: New test.
      	* gcc.dg/Walloc-size-larger-than-8.c: New test.
      	* gcc.dg/Walloc-size-larger-than-9.c: New test.
      	* gcc.dg/Walloc-size-larger-than.c: New test.
      
      From-SVN: r261030
      Martin Sebor committed
    • x86: Re-enable partial_reg_dependency and movx for Haswell · 3217e694
      r254152 disabled partial_reg_dependency and movx for Haswell and newer
      Intel processors.  r258972 restored them for skylake-avx512.  For Haswell,
      movx improves performance.  But partial_reg_stall may be better than
      partial_reg_dependency in theory.  We will investigate performance impact
      of partial_reg_stall vs partial_reg_dependency on Haswell for GCC 9.  In
      the meantime, this patch restores both partial_reg_dependency and mox for
      Haswell in GCC 8.
      
      On Haswell, improvements for EEMBC benchmarks with
      
      -mtune-ctrl=movx,partial_reg_dependency -Ofast -march=haswell
      
      vs
      
      -Ofast -mtune=haswell
      
      are
      
      automotive
      =========
        aifftr01 (default) - goodperf: Runtime improvement of   2.6% (time).
        aiifft01 (default) - goodperf: Runtime improvement of   2.2% (time).
      
      networking
      =========
        ip_pktcheckb1m (default) - goodperf: Runtime improvement of   3.8% (time).
        ip_pktcheckb2m (default) - goodperf: Runtime improvement of   5.2% (time).
        ip_pktcheckb4m (default) - goodperf: Runtime improvement of   4.4% (time).
        ip_pktcheckb512k (default) - goodperf: Runtime improvement of   4.2% (time).
      
      telecom
      =========
        fft00data_1 (default) - goodperf: Runtime improvement of   8.4% (time).
        fft00data_2 (default) - goodperf: Runtime improvement of   8.6% (time).
        fft00data_3 (default) - goodperf: Runtime improvement of   9.0% (time).
      
      	PR target/85829
      	* config/i386/x86-tune.def: Re-enable partial_reg_dependency
      	and movx for Haswell.
      
      From-SVN: r261028
      H.J. Lu committed
    • re PR middle-end/85879 (ICE in expand_debug_locations, at cfgexpand.c:5405) · bd1cab35
      Fix PR middle-end/85879
      
      	gcc/
      	* gimplify.c (gimplify_adjust_omp_clauses): Add 'remove = true'
      	when emitting error on private/firstprivate reductions.
      	* omp-low.c (lower_omp_target): Avoid reference-type processing
      	on pointers for firstprivate clause.
      
      	gcc/testsuite/
      	* gfortran.dg/goacc/pr77371-1.f90: New test.
      	* gfortran.dg/goacc/pr77371-2.f90: New test.
      	* gfortran.dg/goacc/pr85879.f90: New test.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      
      From-SVN: r261025
      Chung-Lin Tang committed
    • PR libstdc++/85951 for make_signed/make_unsigned for character types · 22f1f4c7
      Because the wide character types are neither signed integer types nor
      unsigned integer types they need to be transformed to an integral type
      of the correct size and the lowest rank (which is not necessarily the
      underlying type). Reuse the helpers for enumeration types to select the
      correct integer.
      
      The refactoring of __make_unsigned_selector and __make_signed_selector
      slightly reduces the number of template instantiations and so reduces
      memory usage.
      
      	PR libstdc++/85951
      	* include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
      	uint_least16_t and uint_least32_t.
      	(__make_unsigned<wchar_t>): Define unconditionally.
      	(__make_unsigned_selector<_Tp, true, false>): Remove intermediate
      	typedefs.
      	(__make_unsigned_selector_base): New type to provide helper templates.
      	(__make_unsigned_selector<_Tp, false, true>): Reimplement using
      	__make_unsigned_selector_base helpers.
      	(__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
      	(__make_signed_selector<_Tp, true, false>): Remove intermediate
      	typedefs.
      	(__make_signed<wchar_t>, __make_signed<char16_t>)
      	(__make_signed<char32_t>)): Define unconditionally.
      	* testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
      	wchar_t, char16_t and char32_t are transformed correctly.
      	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
      	dg-error lineno.
      	* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
      	wchar_t, char16_t and char32_t are transformed correctly.
      	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
      	dg-error lineno.
      
      From-SVN: r261023
      Jonathan Wakely committed
    • stack_usage1.adb: Replace -fstack-usage with -Wstack-usage. · 2ae39fb2
      	* gnat.dg/stack_usage1.adb: Replace -fstack-usage with -Wstack-usage.
      	* gnat.dg/stack_usage1b.adb: Likewise.
      	* gnat.dg/stack_usage1c.adb: Likewise.
      	* gnat.dg/stack_usage3.adb: Likewise.
      	* gnat.dg/stack_usage1_pkg.adb: Delete.
      
      From-SVN: r261021
      Eric Botcazou committed
    • store_merging_10.c: Turn dg-do compile into dg-do run. · 78668dd0
      	* gcc.dg/store_merging_10.c: Turn dg-do compile into dg-do run.
      	* gcc.dg/store_merging_11.c: Likewise.
      	* gcc.dg/store_merging_13.c: Likewise.
      	* gcc.dg/store_merging_14.c: Likewise.
      	* gcc.dg/store_merging_15.c: Likewise.
      	* gcc.dg/store_merging_16.c: Likewise.  Remove local variable.
      
      From-SVN: r261019
      Eric Botcazou committed
    • [Ada] Remove obsolete figure in documentation · 7b1e3952
      2018-05-31  Pierre-Marie de Rodat  <derodat@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_ugn/project-manager-figure.png: Delete.
      
      From-SVN: r261018
      Pierre-Marie de Rodat committed
    • [Ada] Add missing spec files for VxWorks runtimes · 76bce685
      2018-05-31  Pierre-Marie de Rodat  <derodat@adacore.com>
      
      gcc/ada/
      
      	* vxworks-arm-link.spec, vxworks-e500-link.spec,
      	vxworks-gnat-crtbe-link.spec, vxworks-smp-arm-link.spec,
      	vxworks-smp-e500-link.spec, vxworks-smp-ppc-link.spec,
      	vxworks-smp-x86-link.spec: New files.
      
      From-SVN: r261017
      Pierre-Marie de Rodat committed
    • [Ada] Minor copyright header adjustments · 986bd14e
      2018-05-31  Pierre-Marie de Rodat  <derodat@adacore.com>
      
      gcc/ada/
      
      	* gnatvsn.adb: Re-center the copyright header.
      	* indepsw-darwin.adb: Adjust the starting copyright year to 2011.
      
      From-SVN: r261016
      Pierre-Marie de Rodat committed
    • [Ada] Document Stubs_Subdir in gnattest section on user guide · 9200846e
      2018-05-31  Fedor Rybin  <frybin@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_ugn/gnat_utility_programs.rst: Document Stubs_Subdir in
      	gnattest section on user guide.
      
      From-SVN: r261015
      Fedor Rybin committed
    • [Ada] Static predicate check on characters of a string literal · 2a35a4ca
      This patch implements the rule given in R< 4.2 (11): if the component type of
      a string literal is a character type with a static predicate, that predicate
      must be applied to each character in the string.
      
      Compiling the example below must yield:
      
         gcc -c -gnata main.adb
      
        main.adb:4:23: warning: static expression fails static predicate check on "C"
        main.adb:4:23: warning: expression is no longer considered static
        main.adb:4:24: warning: static expression fails static predicate check on "C"
        main.adb:4:24: warning: expression is no longer considered static
        main.adb:4:25: warning: static expression fails static predicate check on "C"
        main.adb:4:25: warning: expression is no longer considered static
      
      Execution must yield:
      
        raised SYSTEM.ASSERTIONS.ASSERT_FAILURE :
                                              Static_Predicate failed at main.adb:4
      ----
      
      procedure Main is
         subtype C is Character with Static_Predicate => C in 'A' | 'B' | 'C';
         type S is array (Positive range <>) of C;
         X : constant S := "abc";
      begin
         null;
      end;
      
      2018-05-31  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_res.adb (Resolve_String_Literal): If the type is a string type
      	whose component subtype has a static predicate, ensure that the
      	predicate is applied to each character by expanding the string into the
      	equivalent aggregate. This is also done if the component subtype is
      	constrained.
      
      From-SVN: r261014
      Ed Schonberg committed
    • [Ada] Remove obsolete code in trans.c · d9898483
      2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* gcc-interface/trans.c (Call_to_gnu): Remove obsolete code.
      
      From-SVN: r261013
      Eric Botcazou committed
    • [Ada] Detect returning procedures annotated with No_Return · 0562ed31
      GNAT was emitting a warning about procedures with No_Return aspect on the
      spec and a returning body, but failed to handle similar procedures with
      no explicit spec. Now fixed.
      
      This was also affecting GNATprove, where an undetected mismatch between
      No_Return aspect and the body was a soundness bug, i.e. GNATprove was
      silently accept code that raise a runtime exception.
      
      ------------
      -- Source --
      ------------
      
      procedure P (X : Boolean) with No_Return is
      begin
         if X then
            raise Program_Error;
         end if;
      end;
      
      -----------------
      -- Compilation --
      -----------------
      
      $ gcc -c p.adb
      p.adb:3:04: warning: implied return after this statement will raise
                           Program_Error
      p.adb:3:04: warning: procedure "P" is marked as No_Return
      
      2018-05-31  Piotr Trojanek  <trojanek@adacore.com>
      
      gcc/ada/
      
      	* sem_ch6.adb (Check_Missing_Return): Handle procedures with no
      	explicit spec.
      
      From-SVN: r261012
      Piotr Trojanek committed
    • [Ada] Fix wrong value returned for unconstrained packed array · 6e03839f
      2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* gcc-interface/trans.c (Call_to_gnu): In the by-reference case, if
      	the type of the parameter is an unconstrained array type, convert
      	to the type of the actual before the type of the formal only if the
      	conversion was suppressed earlier.  Use in_param and gnu_actual_type
      	local variables throughout, and uniform spelling for In Out or Out.
      	Also remove dead code in the component-by-reference case.
      
      From-SVN: r261011
      Eric Botcazou committed
    • [Ada] Fix __gnat_backtrace for VxWorks7 on x86 · fe1db400
      A STORAGE ERROR is raised in __gnat_backtrace:
      
      adainit: 0x00400DBC
      
      Execution of ce.vxe terminated by unhandled exception
      raised STORAGE_ERROR : SIGSEGV: possible stack overflow
      Call stack traceback locations:
      0x4082f1 0x408323 0x4080c9
      
      It was passing with vxsim because the WRS_RTP_BASE is set to a different
      place hence the (CURRENT) < (TOP_STACK) was stopping the backtrace at the
      right time. So let's stop at the main symbol when RTS=rtp.
      
      2018-05-31  Frederic Konrad  <konrad@adacore.com>
      
      gcc/ada/
      
      	* tracebak.c (STOP_FRAME): Harden condition.
      	(is_return_from, EXTRA_STOP_CONDITION): New helpers for VxWorks in RTP
      	mode.
      
      From-SVN: r261010
      Frederic Konrad committed
    • [Ada] Illegal copy of limited object · 6ae40af3
      This patch fixes a spurious copy of a limited object, when that object
      is a discriminated record component of a limited type LT, and the enclosing
      record is initialized by means of an aggregate, one of whose components is a
      call to a build-in-place function that returns an unconstrained object of
      type T.
      
      2018-05-31  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* checks.adb (Apply_Discriminant_Check): Do not apply discriminant
      	check to a call to a build-in-place function, given that the return
      	object is limited and cannot be copied.
      
      gcc/testsuite/
      
      	* gnat.dg/limited1.adb, gnat.dg/limited1_inner.adb,
      	gnat.dg/limited1_inner.ads, gnat.dg/limited1_outer.adb,
      	gnat.dg/limited1_outer.ads: New testcase.
      
      From-SVN: r261009
      Ed Schonberg committed
    • [Ada] Update comment on __atomic_compare_exchange in s-atomic_primitives · c9f35768
      Remove mention of unavailability, long obsolete, and reword suggestion of use
      to indicate that we might want to switch to an internal interface using them.
      The current wording suggests just that we should bind the current
      Sync_Compare_And_Swap Ada subprograms to __atomic_compare builtins instead of
      __sync_compare, which would be highly confusing.
      
      2018-05-31  Olivier Hainque  <hainque@adacore.com>
      
      gcc/ada/
      
      	* libgnat/s-atopri.ads: Update comment on __atomic_compare_exchange
      	builtins.
      
      From-SVN: r261008
      Olivier Hainque committed
    • [Ada] Fix internal error on allocator with function call · 1b6f8e97
      2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* gcc-interface/trans.c (Call_to_gnu): If this is a function call and
      	there is no target, also create a temporary for the return value for
      	an allocator if the type is an unconstrained record type with default
      	discriminant.
      
      From-SVN: r261007
      Eric Botcazou committed
    • [Ada] Spurious tampering check failure · 3c5d07ab
      This patch modifies the transient scope mechanism to create a scope when the
      condition of an iteration scheme returns a controlled result or involves the
      secondary stack. As a result, a while loop which iterates over a container
      properly manages the tampering bit at each iteration of the loop.
      
      2018-05-31  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* exp_ch7.adb (Find_Transient_Context): An iteration scheme is a valid
      	boudary for a transient scope.
      
      gcc/testsuite/
      
      	* gnat.dg/tampering_check1.adb, gnat.dg/tampering_check1_ivectors.ads,
      	gnat.dg/tampering_check1_trim.adb, gnat.dg/tampering_check1_trim.ads:
      	New testcase.
      
      From-SVN: r261006
      Hristian Kirtchev committed
    • [Ada] Rename "GPL" version to "Community" · 9977c785
      2018-05-31  Valentine Reboul  <reboul@adacore.com>
      
      gcc/ada/
      
      	* gnatvsn.ads: Rename "GPL" version to "Community".
      
      From-SVN: r261005
      Valentine Reboul committed
    • [Ada] Minor comment improvement · 446ac3e5
      2018-05-31  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* einfo.ads: Improve documentation for the Is_Unsigned_Type entity
      	flag.
      
      From-SVN: r261004
      Ed Schonberg committed
    • [Ada] Simplify call to Unique_Defining_Entity on protected entry declarations · 7ae795f7
      Calling Unique_Defining_Entity on protectected entry declarations is
      equivalent to calling a simpler Defining_Entity; use the simpler routine.
      
      Simplification only; semantics unaffected, so no test provided.
      
      2018-05-31  Piotr Trojanek  <trojanek@adacore.com>
      
      gcc/ada/
      
      	* sem_prag.adb (Analyze_Pragma): Replace call to Unique_Defining_Entity
      	with a semantically equivalent call to Defining_Entity.
      
      From-SVN: r261003
      Piotr Trojanek committed
    • [Ada] Set Etype on rewriteen Max_Queue_Length expressions · 7366d29a
      Rewriting of Max_Queue_Length expression into N_Integer_Literal should probably
      be done in expansion and not in analysis, but anyway it should not strip the
      expression from its Etype because backends (e.g. GNATprove) expect that Etype
      to be present.
      
      No frontend test is provided, because GNAT doesn't care about the missing
      Etype decoration. This patch allows to simplify AST processing in GNATprove.
      
      2018-05-31  Piotr Trojanek  <trojanek@adacore.com>
      
      gcc/ada/
      
      	* sem_prag.adb (Analyze_Pragma): Set Etype on the rewritten
      	Max_Queue_Length expression.
      
      From-SVN: r261002
      Piotr Trojanek committed
    • [Ada] Update gnatelim documentation wrt. compilation of main unit · 81a95941
      2018-05-31  Sergey Rybin  <rybin@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_ugn/gnat_and_program_execution.rst: gnatelim does not need
      	that the main unit to be built before the call, now it computes the
      	closure of the main unit itself.
      	* gnat_ugn.texi: Regenerate.
      
      From-SVN: r261001
      Sergey Rybin committed
    • [Ada] Fix tracking of the first item in Repinfo · 9104d201
      2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (List_Structural_Record_Layout): Set First to false
      	after having listed the fields of the parent type, if any.
      
      From-SVN: r261000
      Eric Botcazou committed
    • [Ada] Fix strange behavior of Object_Size for packed array subtype · 21afc4fa
      2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Do not
      	deal with the ___XP suffix for packed array types here...
      	<E_Array_Subtype>: ...or here when processing the implementation type
      	but when processing the original type instead.  Do not reuse the DECL
      	of the implementation type for the original type.  Tidy up.
      
      From-SVN: r260999
      Eric Botcazou committed
    • [Ada] Post warning on object size clause for subtype · 42e4b796
      This ensures that a warning for an object size clause present on a subtype
      is posted on the clause and not on a size clause present on the type.
      
      2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* einfo.ads (Object_Size_Clause): Declare.
      	* einfo.adb (Object_Size_Clause): New function.
      	* gcc-interface/utils.c (maybe_pad_type): Test Has_Size_Clause before
      	retrieving Size_Clause and post the warning on the object size clause
      	if Has_Object_Size_Clause is true.
      
      gcc/testsuite/
      
      	* gnat.dg/size_clause1.adb: New testcase.
      
      From-SVN: r260998
      Eric Botcazou committed
    • [Ada] Fix compiler crash for tagged private types · 59f7c716
      2018-05-31  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* sem_util.ads, sem_util.adb (Find_Primitive_Eq): New subprogram.
      	* exp_ch4.adb (Expand_Composite_Equality): Use the new subprogram
      	Find_Primitive_Eq to search for the primitive of types whose underlying
      	type is a tagged type.
      
      gcc/testsuite/
      
      	* gnat.dg/tagged1.adb, gnat.dg/tagged1.ads: New testcase.
      
      From-SVN: r260997
      Javier Miranda committed
    • [Ada] Fix check on placement of multiple loop (in)variant pragmas · 01f481c7
      Loop (in)variants should appear next to each other, which is checked by GNAT
      frontend. As statements inserted during expansion may break this contiguity,
      GNAT recognizes specially such statements which originate in loop pragmas. In
      some cases, this special treatment was not properly put in place, which lead to
      spurious errors being issued.
      
      2018-05-31  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* sem_prag.adb (Analyze_Pragma.Check_Loop_Pragma_Placement): Inverse
      	order of treatment between nodes recognized as loop pragmas (or
      	generated from one) and block statements.
      
      From-SVN: r260996
      Yannick Moy committed
    • [Ada] Posix 2008: reimplement System.OS_Primitives.Clock using clock_gettime · 4cfb305e
      gettimeofday is deprecated in Posix 2008, clock_gettime is the recommended
      replacement.
      
      2018-05-31  Doug Rupp  <rupp@adacore.com>
      
      gcc/ada/
      
      	* libgnat/s-osprim__posix2008.adb (Clock): Implement using
      	clock_gettime.
      
      From-SVN: r260995
      Doug Rupp committed
    • [Ada] Unnesting: add a predicate to help expansion of task and protected types · ade649b2
      2018-05-31  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.ads, exp_unst.adb (In_Synchronized_Unit): New predicate to
      	mark subprograms that cannot be eliminated because they must be treated
      	as reachable from outside the current unit. This includes entry bodies
      	and protected operations.
      
      From-SVN: r260994
      Ed Schonberg committed
    • [Ada] Convert operands of generated code to Standard.Unsigned for modular ops. · dfd2da00
      2018-05-31  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_ch4.adb (Expand_Modular_Addition, Expand_Modular_Subtraction):
      	Convert all operands of the generated code to Standard.Unsigned, to
      	prevent spurious visibility errors. This is needed when the generated
      	expansion involves a modular index type of an array type, and the index
      	type is not immediately visible.
      
      From-SVN: r260993
      Ed Schonberg committed
    • re PR sanitizer/86012 (libsanitizer build failure on sparc64-linux-gnu) · 5b87c1fe
      2018-05-31  Matthias Klose  <doko@ubuntu.com>
      
              PR sanitizer/86012
              * sanitizer_common/sanitizer_platform_limits_posix.cc: Define
              SIZEOF_STRUCT_USTAT for 32bit sparc.
      
      From-SVN: r260990
      Matthias Klose committed
    • Daily bump. · 5328e74a
      From-SVN: r260988
      GCC Administrator committed
  2. 30 May, 2018 4 commits