1. 31 May, 2018 24 commits
    • [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 16 commits