Skip to content
Snippets Groups Projects
  1. May 04, 2021
    • Martin Sebor's avatar
      Adjust strings in dg-warning directives (PR testsuite/100412). · 141cce5c
      Martin Sebor authored
      gcc/testsuite/ChangeLog:
      	* gcc.dg/Wvla-parameter-2.c: Use unique strings in directive names.
      141cce5c
    • Jeff Law's avatar
      Make bfin-elf build again · b50ccaf6
      Jeff Law authored
      gcc/
      	* config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
      b50ccaf6
    • Robin Dapp's avatar
      s390/testsuite: Fix oscbreak-1.c. · e4c707d2
      Robin Dapp authored
      Checking for an osc break is somewhat brittle especially with many
      passes potentially introducing new insns and moving them around.
      Therefore, only compile the test with -O1 -fschedule-insns in order
      to limit the influence of other passes.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/s390/oscbreak-1.c: Compile with -O1
      	-fschedule-insns
      e4c707d2
    • Segher Boessenkool's avatar
      Remove CC0 · bd1cd0d0
      Segher Boessenkool authored
      This removes CC0 and all directly related infrastructure.
      
      CC_STATUS, CC_STATUS_MDEP, CC_STATUS_MDEP_INIT, and NOTICE_UPDATE_CC
      are deleted and poisoned.  CC0 is only deleted (some targets use that
      name for something else).  HAVE_cc0 is automatically generated, and we
      no longer will do that after this patch.
      
      CC_STATUS_INIT is suggested in final.c to also be useful for ports that
      are not CC0, and at least arm seems to use it for something.  So I am
      leaving that alone, but most targets that have it could remove it.
      
      2021-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
      
      	* caller-save.c: Remove CC0.
      	* cfgcleanup.c: Remove CC0.
      	* cfgrtl.c: Remove CC0.
      	* combine.c: Remove CC0.
      	* compare-elim.c: Remove CC0.
      	* conditions.h: Remove CC0.
      	* config/h8300/h8300.h: Remove CC0.
      	* config/h8300/h8300-protos.h: Remove CC0.
      	* config/h8300/peepholes.md: Remove CC0.
      	* config/i386/x86-tune-sched.c: Remove CC0.
      	* config/m68k/m68k.c: Remove CC0.
      	* config/rl78/rl78.c: Remove CC0.
      	* config/sparc/sparc.c: Remove CC0.
      	* config/xtensa/xtensa.c: Remove CC0.
      	(gen_conditional_move):  Use pc_rtx instead of cc0_rtx in a piece of
      	RTL where that is used as a placeholder only.
      	* cprop.c: Remove CC0.
      	* cse.c: Remove CC0.
      	* cselib.c: Remove CC0.
      	* df-problems.c: Remove CC0.
      	* df-scan.c: Remove CC0.
      	* doc/md.texi: Remove CC0.  Adjust an example.
      	* doc/rtl.texi: Remove CC0.  Adjust an example.
      	* doc/tm.texi: Regenerate.
      	* doc/tm.texi.in: Remove CC0.
      	* emit-rtl.c: Remove CC0.
      	* final.c: Remove CC0.
      	* fwprop.c: Remove CC0.
      	* gcse-common.c: Remove CC0.
      	* gcse.c: Remove CC0.
      	* genattrtab.c: Remove CC0.
      	* genconfig.c: Remove CC0.
      	* genemit.c: Remove CC0.
      	* genextract.c: Remove CC0.
      	* gengenrtl.c: Remove CC0.
      	* genrecog.c: Remove CC0.
      	* haifa-sched.c: Remove CC0.
      	* ifcvt.c: Remove CC0.
      	* ira-costs.c: Remove CC0.
      	* ira.c: Remove CC0.
      	* jump.c: Remove CC0.
      	* loop-invariant.c: Remove CC0.
      	* lra-constraints.c: Remove CC0.
      	* lra-eliminations.c: Remove CC0.
      	* optabs.c: Remove CC0.
      	* postreload-gcse.c: Remove CC0.
      	* postreload.c: Remove CC0.
      	* print-rtl.c: Remove CC0.
      	* read-rtl-function.c: Remove CC0.
      	* reg-notes.def: Remove CC0.
      	* reg-stack.c: Remove CC0.
      	* reginfo.c: Remove CC0.
      	* regrename.c: Remove CC0.
      	* reload.c: Remove CC0.
      	* reload1.c: Remove CC0.
      	* reorg.c: Remove CC0.
      	* resource.c: Remove CC0.
      	* rtl.c: Remove CC0.
      	* rtl.def: Remove CC0.
      	* rtl.h: Remove CC0.
      	* rtlanal.c: Remove CC0.
      	* sched-deps.c: Remove CC0.
      	* sched-rgn.c: Remove CC0.
      	* shrink-wrap.c: Remove CC0.
      	* simplify-rtx.c: Remove CC0.
      	* system.h: Remove CC0.  Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
      	CC_STATUS_MDEP, and CC_STATUS.
      	* target.def: Remove CC0.
      	* valtrack.c: Remove CC0.
      	* var-tracking.c: Remove CC0.
      bd1cd0d0
    • Richard Biener's avatar
      tree-optimization/100414 - compute dominance info in phiopt · 7a389766
      Richard Biener authored
      phiopt now has dominator queries but fails to compute dominance
      info.
      
      2021-05-04  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/100414
      	* tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
      	info here.
      	(tree_ssa_phiopt_worker): But unconditionally here.
      
      	* gcc.dg/pr100414.c: New testcase.
      7a389766
    • Tobias Burnus's avatar
      OpenMP: Support complex/float in && and || reduction · 1580fc76
      Tobias Burnus authored
      C/C++ permit logical AND and logical OR also with floating-point or complex
      arguments by doing an unequal zero comparison; the result is an 'int' with
      value one or zero.  Hence, those are also permitted as reduction variable,
      even though it is not the most sensible thing to do.
      
      gcc/c/ChangeLog:
      
      	* c-typeck.c (c_finish_omp_clauses): Accept float + complex
      	for || and && reductions.
      
      gcc/cp/ChangeLog:
      
      	* semantics.c (finish_omp_reduction_clause): Accept float + complex
      	for || and && reductions.
      
      gcc/ChangeLog:
      
      	* omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
      	&& and || with floating-point and complex arguments.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/gomp/clause-1.c: Use 'reduction(&:..)' instead of '...(&&:..)'.
      
      libgomp/ChangeLog:
      
      	* testsuite/libgomp.c-c++-common/reduction-1.c: New test.
      	* testsuite/libgomp.c-c++-common/reduction-2.c: New test.
      	* testsuite/libgomp.c-c++-common/reduction-3.c: New test.
      1580fc76
    • Nick Clifton's avatar
      Replace AC_PROG_CC with AC_PROG_CC_C99 in top level configure file. · 91743432
      Nick Clifton authored
      2021-05-04  Nick Clifton  <nickc@redhat.com>
      
      	* configure.ac (AC_PROG_CC): Replace with AC_PROG_CC_C99.
      	* configure: Regenerate.
      91743432
    • Jonathan Wakely's avatar
      libstdc++: Do not use deduced return type for std::visit [PR 100384] · af5b2b91
      Jonathan Wakely authored
      This avoids errors outside the immediate context when std::visit is an
      overload candidate because of ADL, but not actually viable.
      
      The solution is to give std::visit a non-deduced return type. New
      helpers are introduced for that, and existing ones refactored slightly.
      
      libstdc++-v3/ChangeLog:
      
      	PR libstdc++/100384
      	* include/std/variant (__get_t): New alias template yielding the
      	return type of std::get<N> on a variant.
      	(__visit_result_t): New alias template yielding the result of
      	std::visit.
      	(__same_types): Move into namespace __detail::__variant.
      	(__check_visitor_results): Likewise. Use __invoke_result_t and
      	__get_t.
      	(__check_visitor_result): Remove.
      	(visit): Use __visit_result_t for return type.
      	* testsuite/20_util/variant/100384.cc: New test.
      af5b2b91
    • Jonathan Wakely's avatar
      libstdc++: Remove _GLIBCXX_USE_INT128 autoconf macro · ad0a3be4
      Jonathan Wakely authored
      We don't need to decide whether to use __int128 when running configure,
      we can do so at compilation time by seeing if __SIZEOF_INT128__ is
      defined and if it's greater than __SIZEOF_LONG_LONG__.
      
      This removes another unnecessary architecture-specific config macro in
      <bits/c++config.h>, so the same header can work for 32-bit or 64-bit
      compilation on AIX.
      
      libstdc++-v3/ChangeLog:
      
      	* acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
      	checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
      	* include/bits/random.h (_Select_uint_least_t<s, 1>):
      	Use __SIZEOF_INT128__ to decide whether to use __int128.
      	* include/std/charconv (__to_chars_unsigned_type): Likewise.
      ad0a3be4
    • Eric Botcazou's avatar
      Reuse non-gimple_reg variable for inlining · 93f8cb49
      Eric Botcazou authored
      When a call to a function is inlined and takes a parameter whose type is not
      gimple_reg, a local variable is created in the caller to hold a copy of the
      argument passed in the call with the following comment:
      
            /* We may produce non-gimple trees by adding NOPs or introduce
               invalid sharing when operand is not really constant.
               It is not big deal to prohibit constant propagation here as
               we will constant propagate in DOM1 pass anyway.  *
      
      Of course the second sentence of the comment does not apply to non-gimple_reg
      values, unless they get SRAed later, because we don't do constant propagation
      for them.  This for example prevents two identical calls to a pure function
      from being merged in the attached Ada testcase.
      
      Therefore the attached patch attempts to reuse a read-only or non-addressable
      local DECL of the caller, the hitch being that expand_call_inline needs to be
      prevented from creating a CLOBBER for the case where it ends uo being reused.
      
      gcc/
      	* tree-inline.c (insert_debug_decl_map): Delete.
      	(copy_debug_stmt): Minor tweak.
      	(setup_one_parameter): Do not use a variable if the value is either
      	a read-only DECL or a non-addressable local variable in the caller.
      	In this case, insert the debug-only variable in the map manually.
      	(expand_call_inline): Do not generate a CLOBBER for these values.
      	* tree-inline.h (debug_map): Minor tweak.
      93f8cb49
    • Eric Botcazou's avatar
      Fix libiberty link failures in LTO mode for MinGW · f418bc3c
      Eric Botcazou authored
      The test for the presence of variables (really symbols) does not work
      when you add -Ox -flto to CFLAGS:
      
        for v in $vars; do
          AC_MSG_CHECKING([for $v])
          AC_CACHE_VAL(libiberty_cv_var_$v,
            [AC_LINK_IFELSE([AC_LANG_PROGRAM([[int *p;]],[[extern int $v [];
                                               p = $v;]])],
                            [eval "libiberty_cv_var_$v=yes"],
                            [eval "libiberty_cv_var_$v=no"])])
          if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then
            AC_MSG_RESULT(yes)
            AC_DEFINE_UNQUOTED($n)
          else
            AC_MSG_RESULT(no)
          fi
        done
      
      because the assignment to 'p' is optimized away by LTO.  This is visible
      on MinGW platforms in the form of a link failure for sys_siglist.
      
      There is another link failures for stpcpy: the symbol is both referenced
      by libiberty's pex-win32.c and provided by libiberty's stpcpy.c, so it
      needs to have a linkage to be resolved in LTO mode.
      
      libiberty/
      	* configure.ac: Make test for variables more robust.
      	* configure: Regenerate.
      gcc/
      	* builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
      	* symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
      f418bc3c
    • Richard Biener's avatar
      Restrict gcc.dg/tree-ssa/ssa-dse-26.c · 1b0f5700
      Richard Biener authored
      This restricts the testcase to the target where it exposes the
      situation fixed with g:e9d297a1
      which targets BIT_FIELD_REFs created by fold_truth_andor.
      
      This avoids strange dejagnu limits with overly long target lists
      and simplifies the tests.
      
      2021-05-04  Richard Biener  <rguenther@suse.de>
      
      	* gcc.dg/tree-ssa/ssa-dse-26.c: Skip on !lp64 targets,
      	simplify dump scanning down to one case.
      1b0f5700
    • Richard Biener's avatar
      tree-optimization/100329 - avoid reassociating asm goto defs · a310bb73
      Richard Biener authored
      This avoids reassociating asm goto defs because we have no idea
      on which outgoing edge to insert defs.
      
      2021-05-04  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/100329
      	* tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
      	asm goto defs.
      	(insert_stmt_after): Assert we're not running into asm goto.
      
      	* gcc.dg/torture/pr100329.c: New testcase.
      a310bb73
    • Richard Biener's avatar
      tree-optimization/100398 - avoid DSE of control flow stmt · 2326627e
      Richard Biener authored
      The following makes sure to preserve control altering stmts
      when removing trivially dead stmts in DSE.
      
      2021-05-04  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/100398
      	* tree-ssa-dse.c (pass_dse::execute): Preserve control
      	altering stmts.
      
      	* gcc.dg/torture/pr100398.c: New testcase.
      2326627e
    • Piotr Trojanek's avatar
      [Ada] Remove arbitrary and redundant qualification with Sinfo · 00d8545d
      Piotr Trojanek authored
      gcc/ada/
      
      	* pprint.adb: Remove qualification of arbitrary calls to
      	Sinfo.Expressions and Sinfo.Parameter_Associations.
      00d8545d
    • Piotr Trojanek's avatar
      [Ada] Use function and not procedure UI_Image in pretty-printing · 2ae4fcfa
      Piotr Trojanek authored
      gcc/ada/
      
      	* pprint.adb (Expr_Name): Simplify with functional variant of
      	UI_Image.
      2ae4fcfa
    • Piotr Trojanek's avatar
      [Ada] Reuse existing To_Mixed routine in pretty-printer · 8ee1a281
      Piotr Trojanek authored
      gcc/ada/
      
      	* pprint.adb (To_Mixed): Removed.
      8ee1a281
    • Piotr Trojanek's avatar
      [Ada] Refine type of a counter variable from Integer to Natural · 6c165539
      Piotr Trojanek authored
      gcc/ada/
      
      	* pprint.adb (List_Name_Count): Change type from Integer to
      	Natural.
      6c165539
    • Yannick Moy's avatar
      [Ada] Minor tweak in pretty-printing of expressions · e243bf23
      Yannick Moy authored
      gcc/ada/
      
      	* pprint.adb (Expression_Image): Special case for
      	expression-with-actions.
      e243bf23
    • Bob Duff's avatar
      [Ada] Do not "optimize" by converting Positive to Unsigned · 9b6a2de0
      Bob Duff authored
      gcc/ada/
      
      	* exp_ch4.adb (Expand_Concatenate): Remove the non-optimization.
      9b6a2de0
    • Piotr Trojanek's avatar
      [Ada] Reuse First_Formal for generic subprograms · d20bab53
      Piotr Trojanek authored
      gcc/ada/
      
      	* lib-xref.adb (Generate_Reference_To_Formals): Remove dedicated
      	branch for generic subprograms (they are now handled together
      	with non-generic subprograms in the ELSE branch); replace a
      	low-level Ekind membership test with a high-level call to
      	Is_Access_Subprogram_Type.
      d20bab53
    • Piotr Trojanek's avatar
      [Ada] Fix inconsistent iteration with First_Formal and Next_Entity · 86203b44
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_ch12.adb (Check_Abstract_Primitives): Match First_Formal
      	with Next_Formal.
      	* sem_ch6.adb (Is_Non_Overriding_Operation): Likewise.
      86203b44
    • Piotr Trojanek's avatar
      [Ada] Simplify iteration over formal parameters for Global/Depends check · 5a3070df
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_prag.adb (Collect_Global_Item): Iterate directly over
      	formals.
      5a3070df
    • Piotr Trojanek's avatar
      [Ada] Fix handling of access-to-variable objects in Global and Depends · 7f9f8889
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update
      	comment; this routine is no longer used by GNATprove.
      	* sem_prag.adb (Find_Role): The IN parameter is on output only
      	when it belongs to non-function; also, the otherwise constant
      	object can only be written by a non-function.
      	(Collect_Global_Item): The IN parameter can only be written when
      	it belongs to non-function; also, unnest this check to make it
      	easier to read.
      7f9f8889
    • Arnaud Charlet's avatar
      [Ada] Assert_Failure vs Assertion_Error · 7367cd59
      Arnaud Charlet authored
      gcc/ada/
      
      	* libgnat/s-assert.ads (Assert_Failure): Now a renaming of
      	Assertion_Error.
      	* libgnat/a-assert.ads (Assertion_Error): Now a first class
      	citizen.  Remove dependency on System.Assertions.
      	* gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: New.
      	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
      	a-assert.o from gcc-interface.
      7367cd59
    • Yannick Moy's avatar
      [Ada] Move match function for pragma Warnings to public spec · 716e7c15
      Yannick Moy authored
      gcc/ada/
      
      	* erroutc.adb (Matches): Move spec...
      	* erroutc.ads (Matches): ...here.
      716e7c15
    • Yannick Moy's avatar
      [Ada] Use error marker for messages in GNATprove mode · f5a7c656
      Yannick Moy authored
      gcc/ada/
      
      	* gnat1drv.adb (Adjust_Global_Switches): Force error marker in
      	GNATprove mode.
      f5a7c656
    • Bob Duff's avatar
      [Ada] Clean up ??? marks · 0964be07
      Bob Duff authored
      gcc/ada/
      
      	* binde.adb: No need for ??? marks in Binde, because it is
      	superseded by Bindo.
      	* bindo-writers.adb (Write_Unit_Closure): Verified that -Ra
      	works.
      	* exp_ch4.adb, sinfo.ads (Expand_N_Type_Conversion): Rules for
      	conversions passed to gigi are documented in sinfo.ads.
      	(Expand_N_Unchecked_Type_Conversion): Comment is a duplicate of
      	one in sinfo.ads.
      	(Expand_N_In): Robert already added sufficient comments years
      	after the ??? comment was inserted.
      	(Expand_Membership_Minimize_Eliminate_Overflow): I don't see any
      	reason why Stand should export Long_Long_Integer'Base -- it
      	doesn't export any other base types.
      	(Size_In_Storage_Elements): We are doing an allocator, so we
      	don't care about sizes in bits.
      	(Expand_N_Allocator): PolyORB isn't going to be significantly
      	improved, so we're not going to mess with remote access to
      	class-wide types.
      	(Optimize_Return_Stmt): It's not important to optimize return
      	statements in predicate functions -- there are many
      	more-important optimizations we could do. Keep part of the
      	comment without "???", to clarify why the "and then ...".
      	(User_Defined_Primitive_Equality_Op): The optimization doesn't
      	seem important enough.
      	(Expand_N_Unchecked_Type_Conversion): Refactor to use
      	Expand_N_Unchecked_Expression.
      	(Make_Array_Comparison_Op): This seems like a case of "it it's
      	not broken, don't fix it". Too much risk of causing bugs.
      	* debug_a.adb: Remove ??? comments asking why Current_Error_Node
      	is maintained unconditionally, and add a comment explaining why.
      	* errout.adb: These kinds of minor bugs do indeed exist, but
      	we're never going to get around to fixing them "properly", so we
      	need this code for robustness.
      	* gnatchop.adb (Read_File): Document when read can fail.
      	* gnatdll.adb (Parse_Command_Line): Nobody is complaining about
      	these arbitrary limits, so no need to use Table. Increase the
      	limits just in case.  It is clear from the names what they are
      	limits on.
      	* gnatlink.adb: Add needed comments.
      	(Delete): An existing comment makes clear it's intentional, and
      	it's been like that since 1996.
      	(Process_Args): Improve comments.
      	(Search_Library_Path): Refactoring to avoid deep nesting.
      	* inline.adb (Build_Body_To_Inline): Probably won't get around
      	to doing that optimization.
      	(Is_Unit_Subprogram): No, this should not be moved to Sem_Aux,
      	because it is too specialized to this context.
      	(Do_Reset): No comment is needed here; it's clear from the
      	comment on Reset_Dispatching_Calls. Do_Reset is an artificial
      	subprogram; if we had proper iterators, it would just be an if
      	statement in the loop.
      	(Rewrite_Function_Call): Probably won't get around to doing that
      	optimization.
      	* layout.adb (Layout_Type): The gigi comment doesn't need to be
      	a ??? comment, and it's been that way since 2000.  The
      	limitation to scalars will likely never be investigated, and
      	it's been that way since 2009.
      	* lib.adb (Check_Same_Extended_Unit): This doesn't look like
      	something that needs fixing; it looks like a permanent
      	workaround.
      	* lib-load.adb (Change_Main_Unit_To_Spec): It is good enough in
      	practice.
      	(Load_Unit): Nobody will ever get around to investigating the
      	obscure PMES oddity, and the optimization is not worth the
      	trouble.
      	* live.adb: It's not worth documenting this. It is used only
      	with a debug switch. Nobody who has done significant work on it
      	is still around, so it would require substantial investigation.
      	* mdll.ads: I see no reason for USE.
      	* namet.ads: Routines are obsolete, but they're not going
      	anywhere anytime soon (too much work, and surprisingly delicate
      	because of dependences on global variables).
      	* osint.ads: Minor.
      	* osint.adb: Improve comments.
      	(Full_Lib_File_Name): Use Smart_Find_File.
      0964be07
    • Piotr Trojanek's avatar
      [Ada] Reuse Is_Formal_Object where convenient · 86a96050
      Piotr Trojanek authored
      gcc/ada/
      
      	* exp_prag.adb, sem_prag.adb: Replace low-level Ekind membership
      	tests with a high-level call to Is_Formal_Object.
      86a96050
    • Arnaud Charlet's avatar
      [Ada] Address some ??? comments · 2d5e5d89
      Arnaud Charlet authored
      gcc/ada/
      
      	* cstand.adb, sprint.adb, switch-c.adb, xr_tabls.ads,
      	xr_tabls.adb, xref_lib.adb: Address ??? comments.
      2d5e5d89
    • Piotr Trojanek's avatar
      [Ada] Reject constants of access-to-variable type as function globals · 0a272ac3
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_prag.adb (Analyze_Global_Item): Take subprogram kind into
      	account when accepting or rejecting a constant of an
      	access-to-variable type as a global Output/In_Out; do this check
      	inside an ELSIF branch to avoid unnecessary evaluation of the
      	subsequent condition.
      0a272ac3
    • Piotr Trojanek's avatar
      [Ada] Simplify use of a global name buffer for Global/Depends errors · 43758c2c
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_prag.adb (Role_Error, Usage_Error): Replace calls to
      	Name_Find and Get_Name_String with a call to To_String.
      43758c2c
    • Ed Schonberg's avatar
      [Ada] Ongoing work for AI12-0212: container aggregates · 13112239
      Ed Schonberg authored
      gcc/ada/
      
      	* exp_aggr.adb (Build_Siz_Exp): new function, subsidiary of
      	Expand_Container_Aggregate, to create an expression to be used
      	in the dynamic allocation of a container with a single container
      	element association.
      	(Add_Range): Handle static bounds of ranges over enumerations.
      	(Expand_Container_Aggregate): Add declaration for size
      	expression when needed, and use it in container object
      	declaration for container.
      13112239
    • Arnaud Charlet's avatar
      [Ada] Missing finalization on generic instantiation · 213c9dc7
      Arnaud Charlet authored
      gcc/ada/
      
      	* exp_ch7.adb (Build_Finalizer_Helper.New_Finalizer_Name):
      	Unnest so that it can be reused.
      	(Build_Finalizer_Helper.Process_Declarations): Call the
      	xxx__finalize_body procedure of a package instantiation in case
      	it contains finalization statements.  Code clean ups.
      	(Build_Finalizer_Helper.Create_Finalizer): Export and set an
      	Interface_Name for library level finalizers since these may be
      	imported now.
      	(Build_Finalizer_Helper): Need to process library level package
      	body instantiations which may contain objects requiring
      	finalization.
      	* libgnat/s-finmas.ads: Fix typo.
      213c9dc7
    • Arnaud Charlet's avatar
      [Ada] Address some ??? comments in checks.adb · 869a06d9
      Arnaud Charlet authored
      gcc/ada/
      
      	* checks.adb (Append_Range_Checks, Apply_Selected_Length_Checks,
      	Determine_Range, Insert_Range_Checks,
      	Install_Null_Excluding_Check, Selected_Length_Checks,
      	Selected_Range_Checks): Address ??? comments and code cleanups.
      869a06d9
    • Piotr Trojanek's avatar
      [Ada] Reject formals of mode IN appearing as global outputs · c356dfdd
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
      	Apply the rule even with no explicit Global contract (and remove
      	a dead condition for Refined_Global).
      c356dfdd
    • Piotr Trojanek's avatar
      [Ada] Check entries for formals of mode IN appearing as global outputs · 98a54aa5
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
      	Extend check to protected entries.
      98a54aa5
    • Piotr Trojanek's avatar
      [Ada] Fix reference to SPARK RM rule in comment · 6aca8cf8
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
      	Fix reference to SPARK RM rule number.
      6aca8cf8
    • Eric Botcazou's avatar
      [Ada] Preliminary cleanup in floating-point output implementation · c63bb4f3
      Eric Botcazou authored
      gcc/ada/
      
      	* exp_intr.adb: Remove with/use clauses for Urealp.
      	(Expand_Is_Negative): Delete.
      	(Expand_Intrinsic_Call): Do not call it.
      	* rtsfind.ads (RE_Id): Remove RE_Float_Unsigned.
      	(RE_Unit_Table): Remove entry for RE_Float_Unsigned.
      	* snames.ads-tmpl (Name_Is_Negative): Delete.
      	* libgnat/s-imgrea.ads (Set_Image_Real): Fix mode of S parameter.
      	* libgnat/s-imgrea.adb: Add with/use clauses for System.Img_Util.
      	(LLU): New subtype.
      	(Maxdigs): Use it.
      	(Is_Negative): Reimplement.
      	(Image_Floating_Point): Simplify.
      	(Set_Image_Real): Fix mode of S parameter.  Remove the low-level
      	processing on characters.  Flip the sign of the Scale variable.
      	Compute the maximum number of digits for the straight notation.
      	Call Set_Decimal_Digits at the end to do the final formatting.
      	* libgnat/s-imguti.ads (Floating_Invalid_Value): New type.
      	(Set_Floating_Invalid_Value): New procedure.
      	* libgnat/s-imguti.adb (Set_Floating_Invalid_Value): Implement it
      	based on existing code from Set_Image_Real.
      	* libgnat/s-unstyp.ads (Float_Unsigned): Delete.
      c63bb4f3
    • Piotr Trojanek's avatar
      [Ada] Fix inconsistent handling of character set control switches · d4b0a294
      Piotr Trojanek authored
      gcc/ada/
      
      	* csets.adb (Initialize): Refactor into CASE statement; raise
      	exception on unsupported code of character set (it will be
      	gently rejected earlier when scanning command line switches).
      	* switch-b.adb (Scan_Binder_Switches): Refactor into a
      	membership expression; add missing '9' choice; reorder as
      	described by GNAT UG, section 4.3.11.
      	* switch-c.adb (Scan_Front_End_Switches): Refactor into a
      	membership expression and reorder as above.
      	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
      	(gnatic): Mention '5' as an allowed value for "c".
      	* gnat_ugn.texi: Regenerate.
      d4b0a294
Loading