Skip to content
Snippets Groups Projects
  1. Dec 15, 2020
    • Nathan Sidwell's avatar
      libcody: Work with older gccs · 4f0c800b
      Nathan Sidwell authored
      Older GCCs don't have all the exciting options we have now.  let's just
      turn them off.
      
      	libcody/
      	* Makefile.in: Disable some flags.
      4f0c800b
    • Nathan Sidwell's avatar
      gcc_update update · 3d5e3eb4
      Nathan Sidwell authored
      I missed adding these two configure files.
      
      	contrib/
      	* gcc_update: Add c++tools & libcody.
      3d5e3eb4
    • Jakub Jelinek's avatar
      match.pd: Optimize X / bool_range_Y to X [PR96094] · d41b0973
      Jakub Jelinek authored
      When the divisor is bool or has [0, 1] range, as division by
      0 is UB, the only remaining option in valid programs is division by 1,
      so we can optimize X / bool_range_Y into X.
      
      2020-12-15  Jakub Jelinek  <jakub@redhat.com>
      
      	PR tree-optimization/96094
      	* match.pd (X / bool_range_Y -> X): New simplification.
      
      	* gcc.dg/tree-ssa/pr96094.c: New test.
      d41b0973
    • Iain Buclaw's avatar
      d: Fix ICE in gimplify_expr, at gimplify.c (PR98277) · 36c9a3fe
      Iain Buclaw authored
      The DMD front-end shouldn't, but can sometimes leak manifest constants
      in the AST passed to the code generator.  To prevent this being an
      issue, the setting of DECL_INITIAL has been moved to the point where the
      CONST_DECL is used, rather than in the declaration handler.
      
      gcc/d/ChangeLog:
      
      	PR d/98277
      	* decl.cc (DeclVisitor::visit (VarDeclaration *)): Move setting of
      	DECL_INITIAL for manifest constants to ...
      	(get_symbol_decl): ... here.
      
      gcc/testsuite/ChangeLog:
      
      	PR d/98277
      	* gdc.dg/pr98277.d: New test.
      36c9a3fe
    • Ian Lance Taylor's avatar
      Go testsuite: update bugs for recent change · 34c7d3d3
      Ian Lance Taylor authored
      This matches changes in 788d2048.
      34c7d3d3
    • Ian Lance Taylor's avatar
      5aba0266
    • Ian Lance Taylor's avatar
      compiler: avoid knock-on errors from invalid interfaces · 788d2048
      Ian Lance Taylor authored
      The test case for this is issue11614.go.
      
      Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278192
      788d2048
    • Ian Lance Taylor's avatar
      compiler: discard global sink variables with static initializers · 8a5b8fc7
      Ian Lance Taylor authored
      This is specifically for the test fixedbugs/issue23781.go, which
      builds a large static array.  The code does compile and work without
      this change, but it takes a long time and generates a large object
      file.  Discarding the unnecessary static initializer makes this test
      much faster.
      
      Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278172
      8a5b8fc7
    • Ian Lance Taylor's avatar
      compiler: better error for unexpected digit · f23753c7
      Ian Lance Taylor authored
      A digit character is not invalid in general, but it's not permitted
      at the start of an identifier.  Report a better error message.
      The test case is issue11359.go in the source repo.
      
      Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278174
      f23753c7
    • Nathan Sidwell's avatar
      Fix dashism · a582a319
      Nathan Sidwell authored
      I missed some other places that used +=
      
      	* config.m4: Avoid var+=...
      	* configure: Rebuilt
      a582a319
    • Nathan Sidwell's avatar
      libcody: Fix for dash · e48456f5
      Nathan Sidwell authored
      Apparently 'var+=...' is not a dash thing.  Fixed thusly.
      
      	* config.m4: Avoid non-dash idiom
      	* configure: Rebuilt.
      e48456f5
    • Jonathan Wakely's avatar
      libstdc++: Remove init_priority attribute for Init object [PR 98108] · 43370384
      Jonathan Wakely authored
      This reverts commit cf4ed3b4.
      
      libstdc++-v3/ChangeLog:
      
          PR libstdc++/98108
          * include/std/iostream (__ioinit): Remove init_priority attribute.
      43370384
    • Keith Packard's avatar
      libstdc++: Support libc with stdio-only I/O in libstdc++ · 75aee072
      Keith Packard authored
      
      The current libstdc++ basic_file_stdio.cc code assumes a POSIX API
      underneath the stdio implementation provided by the host libc. This
      means that the host must provide a fairly broad POSIX file API,
      including read, write, open, close, lseek and ioctl.
      
      This patch changes basic_file_stdio.cc to only use basic ANSI-C stdio
      functions, allowing it to be used with libc implementations like
      picolibc which may not have a POSIX operating system underneath.
      
      This is enabled by a new --enable-cstdio=stdio_pure configure option.
      
      Aided-by: default avatarJonathan Wakely <jwakely@redhat.com>
      Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
      
      libstdc++-v3/ChangeLog:
      
      	* acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Allow "stdio_pure"
      	option and define _GLIBCXX_USE_PURE_STDIO when it is used. Also
      	add "stdio_posix" option as an alias for "stdio".
      	* config/io/basic_file_stdio.cc [_GLIBCXX_USE_PURE_STDIO]: Only
      	use defined stdio entry points for all I/O operations, without
      	direct calls to underlying POSIX functions.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      75aee072
    • Patrick Palka's avatar
      c++: Fix return type deduction during satisfaction · 35317db0
      Patrick Palka authored
      During satisfaction that's entered through the three-parameter version
      of satisfy_declaration_constraints, current_function_decl gets set to
      the dependent DECL_TEMPLATE_RESULT for sake of access checking.  This
      makes the predicate in_template_function return true during satisfaction
      from this entrypoint, which in turn makes calls to mark_used exit early
      before it does its full processing.  This leads to us accepting the
      invalid testcase below due to mark_used never attempting to deduce the
      return type of A::foo() and detecting failure thereof.
      
      It seems wrong for in_template_function to be true during instantiation
      or during satisfaction, so this patch makes in_template_function inspect
      the less volatile cfun->decl instead of current_function_decl.
      
      gcc/cp/ChangeLog:
      
      	* pt.c (in_template_function): Inspect cfun->decl instead of
      	current_function_decl.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp2a/concepts-requires23.C: New test.
      35317db0
    • Jakub Jelinek's avatar
      c++: Add changelog files in c++tools/ and libcody/ directories · 30c41abc
      Jakub Jelinek authored
      Add ChangeLog files, so that update_version_git can then fill those in.
      30c41abc
    • Thomas Koenig's avatar
      Add the -fdebug-aux-vars flag to debug variables generated by Fortran. · 662de36b
      Thomas Koenig authored
      gcc/fortran/ChangeLog:
      
      	PR fortran/90207
      	* invoke.texi: Document -fdebug-aux-vars.
      	* lang.opt: Add -fdebug-aux-vars.
      	* trans.c (MAX_PREFIX_LEN): New macro.
      	(create_var_debug_raw): New function.
      	(gfc_create_var_np): Call create_var_debug_raw if
      	flag_debug_aux_vars is set.
      662de36b
    • Ville Voutilainen's avatar
      libstdc++: Fix the test for rvalue stream extraction · 4e096e0f
      Ville Voutilainen authored
      libstdc++-v3/ChangeLog:
      
      	* testsuite/27_io/rvalue_streams.cc: Run the extraction to a char*
      	for C++17 and lower only.
      4e096e0f
    • Nathan Sidwell's avatar
      doc: Document C++ 20 modules · e9ae2d45
      Nathan Sidwell authored
      And here is the user-facing documentation.
      
      	gcc/
      	* doc/cppopts.texi: Document new cpp opt.
      	* doc/invoke.texi: Add C++20 module option & documentation.
      e9ae2d45
    • Nathan Sidwell's avatar
      c++: Modules Is Landing · 4efde678
      Nathan Sidwell authored
      This is the C++ modules implementation.  Dropping in the real
      module.cc file into the module-shaped hole I carved out.  I include
      some sanity tests for now.  I'll commit the remaining tests when the
      initial round of failures seems abated.
      
      	gcc/cp/
      	* module.cc: Replace stubs with implementation.
      	gcc/testsuite/
      	* g++.dg/modules/mod-decl-0-2a.C: New.
      	* g++.dg/modules/mod-decl-0.C: New.
      	* g++.dg/modules/mod-decl-1.C: New.
      	* g++.dg/modules/mod-decl-2_a.C: New.
      	* g++.dg/modules/mod-decl-2_b.C: New.
      	* g++.dg/modules/mod-decl-2_c.C: New.
      	* g++.dg/modules/mod-decl-3.C: New.
      	* g++.dg/modules/mod-decl-5_a.C: New.
      	* g++.dg/modules/mod-decl-5_b.C: New.
      4efde678
    • Nathan Sidwell's avatar
      c++: module mapper · b7dfc207
      Nathan Sidwell authored
      To avoid always requiring an active mapper to connect to, we provide a
      default in-process mapper with similar functionality to the sample
      server.  This is that code.  Also included is the client-side
      connection mechanism, which determines what server to use and how to
      connect to it.
      
      	gcc/cp/
      	* Make-lang.in (CXX_AND_OBJCXX_OBJS): Add mapper-client &
      	mapper-resolver.
      	* mapper-client.h: New.
      	* mapper-client.cc: New.
      	* mapper-resolver.cc: New.
      b7dfc207
    • Nathan Sidwell's avatar
      Add C++tools · 2efd8b1f
      Nathan Sidwell authored
      These are the toplevel directory changes to add c++tools
      
      ChangeLog:
      
      	* Makefile.def
      	* Makefile.in
      	* Makefile.tpl
      	* configure
      	* configure.ac
      2efd8b1f
    • Nathan Sidwell's avatar
      Add c++tools · 35fc243f
      Nathan Sidwell authored
      Part of our module implementation adds a sample mapper server, the
      guts of which are used by the default in-process mapping of cc1plus.
      Rather than add another executable to gcc/cp/, this creates a new
      c++tools directory where this and any other c++ tools might live.
      The toplevel changes are a subsequent commit, because ... git.
      
      c++tools/ChangeLog:
      
      	* Makefile.in: New.
      	* config.h.in: New.
      	* configure: New.
      	* configure.ac: New.
      	* resolver.cc: New.
      	* resolver.h: New.
      	* server.cc: New.
      35fc243f
    • Jonathan Wakely's avatar
      libstdc++: Increase timeout for tests in debug mode · e831ad4d
      Jonathan Wakely authored
      These tests FAIL when testing debug mode with a small tool_timeout
      value. Give them a longer relative timeout.
      
      libstdc++-v3/ChangeLog:
      
      	* testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc:
      	Add dg-timeout-factor directive.
      	* testsuite/ext/pb_ds/regression/tree_map_rand_debug.cc:
      	Increase timeout factor from 2.0 to 3.0.
      	* testsuite/ext/pb_ds/regression/tree_set_rand_debug.cc:
      	Likewise.
      	* testsuite/lib/libstdc++.exp (check_effective_target_debug-mode):
      	Define "debug-mode" as an effective-target keyword.
      e831ad4d
    • Jonathan Wakely's avatar
      libstdc++: Do not define constexpr assertions for C++11 · f072d102
      Jonathan Wakely authored
      There's no point even checking is_constant_evaluated() in C++11 mode,
      because the 'if' statement used for the assertion wouldn't be valid in a
      C++11 constexpr function anyway.
      
      libstdc++-v3/ChangeLog:
      
      	* include/bits/c++config (__glibcxx_assert_1): Define as empty
      	for C++11.
      f072d102
    • Nathan Sidwell's avatar
      Add libcody · 36230329
      Nathan Sidwell authored
      In order to separate compiler from build system, C++ Modules, as
      implemented in GCC introduces a communication channel between those
      two entities.  This is implemented by libcody.  It is anticipated that
      other implementations will also implement this protocol, or use
      libcody to provide it.
      
      	* Makefile.def: Add libcody.
      	* configure.ac: Add libcody.
      	* Makefile.in: Regenerated.
      	* configure: Regenerated.
      	gcc/
      	* Makefile.in (CODYINC, CODYLIB, CODYLIB_H): New. Use them.
      	libcody/
      	* configure.ac: New.
      	* CMakeLists.txt: New.
      	* CODING.md: New.
      	* CONTRIB.md: New.
      	* LICENSE: New.
      	* LICENSE.gcc: New.
      	* Makefile.in: New.
      	* Makesub.in: New.
      	* README.md: New.
      	* buffer.cc: New.
      	* build-aux/config.guess: New.
      	* build-aux/config.sub: New.
      	* build-aux/install-sh: New.
      	* client.cc: New.
      	* cmake/libcody-config-ix.cmake
      	* cody.hh: New.
      	* config.h.in: New.
      	* config.m4: New.
      	* configure: New.
      	* configure.ac: New.
      	* dox.cfg.in: New.
      	* fatal.cc: New.
      	* gdbinit.in: New.
      	* internal.hh: New.
      	* netclient.cc: New.
      	* netserver.cc: New.
      	* packet.cc: New.
      	* resolver.cc: New.
      	* server.cc: New.
      	* tests/01-serialize/connect.cc: New.
      	* tests/01-serialize/decoder.cc: New.
      	* tests/01-serialize/encoder.cc: New.
      	* tests/02-comms/client-1.cc: New.
      	* tests/02-comms/pivot-1.cc: New.
      	* tests/02-comms/server-1.cc: New.
      	* tests/Makesub.in: New.
      	* tests/jouster: New.
      36230329
    • Nathan Sidwell's avatar
      Add toplevel dirs · c5271279
      Nathan Sidwell authored
      	contrib/
      	* gcc-changelog/git_commit.py (changelog_locations): Add
      	libcody, c++tools.
      c5271279
    • Nathan Sidwell's avatar
      c++: module-related tweak · 8dede241
      Nathan Sidwell authored
      In manually applying a name-lookup patch, I managed to transpose two
      calls.  That caused a test failure.  Fixed thusly.
      
      	gcc/cp/
      	* name-lookup.c (do_namespace_alias): Set originating module
      	before pushing.
      8dede241
    • Marius Hillenbrand's avatar
      libstdc++: Fix required locales of a testcase · 7640db57
      Marius Hillenbrand authored
      The testsuite for libstdc++ aims to skips test cases for which not all
      required locales are installed. This patch adds missing directives about
      required locales to one test case to avoid false positive test failures
      on systems that have a partial set of locales installed.
      
      Verified by test suite runs that this patch changes the test case from
      FAIL to UNSUPPORTED when not all required locales are available and that
      the test case will run and PASS when the necessary locales have been
      added.
      
      libstdc++-v3/ChangeLog:
      
      	* testsuite/22_locale/locale/cons/5.cc: Add missing directives
      	for required locales.
      7640db57
    • Jonathan Wakely's avatar
      libstdc++: Remove workaround for PR c++/78173 · fa452a84
      Jonathan Wakely authored
      Now that the G++ bug is fixed we no longer need to protect this partial
      specialization from complaining about subtracting void pointers.
      
      libstdc++-v3/ChangeLog:
      
      	* include/bits/iterator_concepts.h (incrementable_traits<Tp>):
      	Remove workaround for PR c++/78173.
      fa452a84
    • Vladimir Vishnevsky's avatar
      libstdc++: Disabling AC_LIBTOOL_DLOPEN check if building with avr-libc · a929b39a
      Vladimir Vishnevsky authored
      The AC_LIBTOOL_DLOPEN checks were previously disabled for newlib targets.
      The patch applies similar logic to avr-libc based builds.
      
      libstdc++-v3/ChangeLog:
      
      	* configure.ac: Skip AC_LIBTOOL_DLOPEN check if avr-libc is used.
      	* configure: Regenerate.
      a929b39a
    • Jonathan Wakely's avatar
      libstdc++: Use init_priority attribute for Init object [PR 98108] · cf4ed3b4
      Jonathan Wakely authored
      This causes the global objects that run the <iostream> initialization
      code to be constructed earlier, which avoids some bugs in user code due
      to incorrectly relying on static initialization order.
      
      libstdc++-v3/ChangeLog:
      
      	PR libstdc++/98108
      	* include/std/iostream (__ioinit): Add init_priority attribute.
      cf4ed3b4
    • Pascal Obry's avatar
      [Ada] Fix serial port baud rate setting on GNU/Linux · 0feb2376
      Pascal Obry authored
      gcc/ada/
      
      	* libgnat/g-sercom__linux.adb (Set): Use cfsetospeed and
      	cfsetispeed to set the baud rate. Clear non-blocking serial port
      	status when blocking is requested.
      0feb2376
    • Eric Botcazou's avatar
      [Ada] Small adjustment to System.Val_Real · 2224729c
      Eric Botcazou authored
      gcc/ada/
      
      	* libgnat/s-valrea.adb (Integer_to_Real): Always use Extra.
      2224729c
    • Piotr Trojanek's avatar
      [Ada] Simplify check for extra parens · 7d07d75d
      Piotr Trojanek authored
      gcc/ada/
      
      	* par-ch5.adb (P_Condition): Simplify condition for warning
      	about extra parens and make it easier to understand.
      7d07d75d
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated complains about missing -gnat2005 switch · 3a6298d6
      Piotr Trojanek authored
      gcc/ada/
      
      	* errout.ads (Error_Msg_Ada_2005_Extension): New routine (spec).
      	* errout.adb (Error_Msg_Ada_2005_Extension): New routine (body).
      	* par-ch10.adb: Reuse new routine; correct casing for "LIMITED
      	WITH".
      	* par-ch11.adb: Likewise.
      	* par-ch12.adb: Likewise.
      	* par-ch3.adb: Likewise.
      	* par-ch4.adb: Likewise; replace "box" with "<>".
      	* par-ch6.adb: Likewise.
      	* par-ch9.adb: Likewise; correct casing for "THEN ABORT".
      3a6298d6
    • Eric Botcazou's avatar
      [Ada] Small adjustment to parameterization of System.Value_R · 04974721
      Eric Botcazou authored
      gcc/ada/
      
      	* doc/gnat_ugn/gnat_and_program_execution.rst: Minor fix.
      	* gnat_ugn.texi: Regenerate.
      	* libgnat/s-valuer.ads (Precision_Limit): New formal parameter.
      	* libgnat/s-valuer.adb (Precision_Limit): Remove.
      	(Scan_Decimal_Digits): Robustify overflow check.
      	(Scan_Integral_Digits): Likewise.
      	* libgnat/s-valrea.adb: Add assertion on the size of the unsigned
      	type and instantiate System.Value_R with the mantissa limit.
      	(Integer_to_Real): Add Extra parameter and take it into account.
      	(Scan_Real): Pass Extra to Integer_to_Real.
      	(Value_Real): Likewise.
      	* libgnat/s-valued.adb: Add assertion on the size of the unsigned
      	type and instantiate System.Value_R with the mantissa limit.
      	* libgnat/s-valuef.adb: Likewise.
      04974721
    • Justin Squirek's avatar
      [Ada] Postcondition checks performed before finalization · a1023434
      Justin Squirek authored
      gcc/ada/
      
      	* contracts.adb, contracts.ads (Build_Postconditions_Procedure):
      	Add declarations for Postcond_Enabled,
      	Result_Object_For_Postcondition, and
      	Return_Success_For_Postcond, and place all postconditions within
      	an if statement to control their execution for interactions when
      	cleanup actions get generated.
      	(Get_Postcond_Enabled): Created to fetch object declared to
      	handle new expansion of postconditions.
      	(Get_Result_Object_For_Postcond): Created to fetch object
      	declared to handle new expansion of postconditions.
      	(Get_Return_Success_For_Postcond): Created to fetch object
      	declared to handle new expansion of postconditions.
      	* einfo.adb, einfo.ads: Modify flag Stores_Attribute_Old_Prefix
      	to apply to constants, variables, and types.
      	* exp_ch6.adb (Add_Return): Add assignment to
      	Return_Success_For_Postcond.
      	(Expand_Non_Function_Return): Add assignment to
      	Return_Success_For_Postcond
      	(Expand_Simple_Function_Return): Add assignment to
      	Result_Object_For_Postcond and Return_Success_For_Postcond.
      	* exp_ch7.adb (Build_Finalization_Master): Mark finalization
      	masters which finalize types created store 'Old objects as
      	storing 'Old objects.
      	(Build_Finalizer): Created to generated a unified and special
      	expansion for finalization when postconditions are present.
      	(Build_Finalizer_Helper): Renamed Build_Finalizer and added
      	parameter to facilitate the creation of separate finalization
      	routines for 'Old objects and general objects.
      	(Create_Finalizer): Add condition for the insertion of the
      	finalizer spec to avoid malformed trees.
      	(Expand_Cleanup_Actions): Move _postconditions and related
      	declarations to the new declarative section.  Fix the loop to
      	properly stop at the subprogram declaration for the
      	postconditions procedure and exclude its body from being moved
      	to the new list of declarations to avoid freezing issues.
      	* exp_prag.adb (Expand_Attributes): Mark temporary created to
      	store 'Old objects as storing a 'Old attribute.
      	* sem_ch6.adb (Find_What_Applies_To): Remove strange exception
      	to postconditions when traversing the scope stack.
      	* sem_prag.adb (Find_Related_Declaration_Or_Body): Use the newly
      	created Enclosing_HSS function to find the HSS for a potentially
      	nested statement.
      	* sem_util.adb, sem_util.ads (Declare_Indirect_Temp): Mark types
      	created to store 'Old objects as storing 'Old attributes.
      	(Enclosing_HSS): Created to find the enclosing handled sequence
      	of statements for a given statement.
      	* snames.ads-tmpl: Add multiple names to aid in the expansion of
      	finalization and to control the evaluation of postconditions.
      	Including _finalization_controller, a new routine to centralize
      	finalization actions and postcondition evaluation.
      a1023434
    • Piotr Trojanek's avatar
      [Ada] Complain about missing -gnat2020 switch on iterator_filter · 43852482
      Piotr Trojanek authored
      gcc/ada/
      
      	* par-ch5.adb (P_Loop_Parameter_Specification): Complain about
      	missing -gnat2020 switch.
      	(P_Iterator_Specification): Likewise.
      43852482
    • Piotr Trojanek's avatar
      [Ada] Reuse Append_New in parsing aggregates · 320be7e2
      Piotr Trojanek authored
      gcc/ada/
      
      	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify with
      	Append_New.
      320be7e2
    • Eric Botcazou's avatar
      [Ada] Implement tiered support for floating-point input operations · 338e5133
      Eric Botcazou authored
      gcc/ada/
      
      	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Remove s-fatsfl$(objext)
      	and add s-valflt$(objext), s-vallfl$(objext), s-valllf$(objext).
      	* exp_attr.adb (Find_Fat_Info): Merge Short_Float and Float cases.
      	* exp_imgv.adb (Expand_Value_Attribute): Replace RE_Value_Real with
      	RE_Value_Long_Long_Float for fixed-point types and use appropriate
      	base type for floating-point types.
      	* rtsfind.ads (RTU_Id): Remove System_Fat_IEEE_Long_Float,
      	System_Fat_IEEE_Short_Float and System_Val_Real, add System_Val_Flt,
      	System_Val_LFlt and System_Val_LLF.
      	(RE_Id): Remove RE_Attr_IEEE_Long, RE_Fat_IEEE_Long,
      	RE_Attr_IEEE_Short, RE_Fat_IEEE_Short, RE_Attr_Short_Float, add
      	RE_Value_Float, RE_Value_Long_Float, RE_Value_Long_Long_Float,
      	(RE_Unit_Table): Likewise.
      	* libgnat/a-ticoau.ads: Add with clause for Float_Aux and make the
      	package generic.
      	(Get): Change parameter types to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-ticoau.adb: Remove clause and renaming for Float_Aux.
      	(Get): Change parameter types to Num.
      	(Gets): Likewise.
      	(Put): Likewise.
      	(Puts): Likewise.  Add conversion to Long_Long_Float.
      	* libgnat/a-ticoio.adb: Remove with clause for Ada.Text_IO, add with
      	clause for Float_Aux, add with and use clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux and
      	Complex_Aux on Float, Long_Float, and Long_Long_Float.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.
      	(Get): Call appropriate Gets routine from auxiliary package.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-tideau.adb: Remove with and use clause for Float_Aux.
      	* libgnat/a-tifiau.adb: Likewise.
      	* libgnat/a-tifiio.adb: Add with and use clause for System.Val_LLF.
      	Instantiate Float_Aux on Long_Long_Float.
      	(Get): Adjust call to Get routine from auxiliary package.
      	(Get): Adjust call to Gets routine from auxiliary package.
      	(Put): Adjust call to Put routine from auxiliary package.
      	(Put): Adjust call to Puts routine from auxiliary package.
      	* libgnat/a-tifiio__128.adb: Likewise.
      	(Get): Likewise.
      	(Get): Likewise.
      	(Put): Likewise.
      	(Put): Likewise.
      	* libgnat/a-tiflau.ads: Make the package generic.
      	(Get): Change parameter type to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-tiflau.adb: Remove clauses for System.Val_Real.
      	(Get): Change parameter type to Num and call Scan routine.
      	(Gets): Likewise.
      	(Load_Real): Move to...
      	(Put): Change parameter type and add conversion to Long_Long_Float.
      	(Puts): Likewise.
      	* libgnat/a-tiflio.adb: Add with and use clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
      	Long_Float and Long_Long_Float.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.
      	(Get): Call previous variant.
      	(Get): Call appropriate Gets routine from auxiliary package.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call previous variant.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-tigeau.ads (Load_Real): New procedure.
      	* libgnat/a-tigeau.adb (Load_Real): ...here.
      	* libgnat/a-wtcoau.ads: Add with clause for Float_Aux and make the
      	package generic.
      	(Get): Change parameter types to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-wtcoau.adb: Remove clause and renaming for Float_Aux.
      	(Get): Change parameter types to Num.
      	(Gets): Likewise.
      	(Put): Likewise.
      	(Puts): Likewise.  Add conversion to Long_Long_Float.
      	* libgnat/a-wtcoio.ads: Remove use clause for Complex_Types and use
      	qualified names throughout accordingly.
      	* libgnat/a-wtcoio.adb: Remove clause for Ada.Unchecked_Conversion,
      	add with clause for Float_Aux, add clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Add clause for Complex_Types.
      	Instantiate Float_Aux and Complex_Aux on Float, Long_Float, and
      	Long_Long_Float.  Remove LLF subtype and TFT instantiation.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.
      	(Get): Call appropriate Gets routine from auxiliary package.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-wtdeau.adb: Remove with and use clause for Float_Aux.
      	* libgnat/a-wtfiau.adb: Likewise.
      	* libgnat/a-wtfiio.adb: Add with and use clause for System.Val_LLF.
      	Instantiate Float_Aux on Long_Long_Float.
      	(Get): Adjust call to Get routine from auxiliary package.
      	(Get): Adjust call to Gets routine from auxiliary package.
      	(Put): Adjust call to Put routine from auxiliary package.
      	(Put): Adjust call to Puts routine from auxiliary package.
      	* libgnat/a-wtfiio__128.adb: Likewise.
      	(Get): Likewise.
      	(Get): Likewise.
      	(Put): Likewise.
      	(Put): Likewise.
      	* libgnat/a-wtflau.ads: Make the package generic.
      	(Get): Change parameter type to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-wtflau.adb: Remove clauses for System.Val_Real.
      	(Get): Change parameter type to Num and call Scan routine. Set
      	Ptr parameter lazily.
      	(Gets): Likewise.
      	(Load_Real): Move to...
      	(Put): Change parameter type and add conversion to Long_Long_Float.
      	Bump buffer length to Max_Real_Image_Length.
      	(Puts): Likewise.
      	* libgnat/a-wtflio.adb: Add with and use clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
      	Long_Float and Long_Long_Float.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.  Add
      	pragma Unsuppress (Range_Check) and manual validity check.
      	(Get): Call appropriate Gets routine from auxiliary package. Add
      	pragma Unsuppress (Range_Check) and manual validity check.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-wtgeau.ads (Load_Real): New procedure.
      	* libgnat/a-wtgeau.adb (Load_Real): ...here.
      	* libgnat/a-ztcoau.ads: Add with clause for Float_Aux and make the
      	package generic.
      	(Get): Change parameter types to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-ztcoau.adb: Remove clause and renaming for Float_Aux.
      	(Get): Change parameter types to Num.
      	(Gets): Likewise.
      	(Put): Likewise.
      	(Puts): Likewise.  Add conversion to Long_Long_Float.
      	* libgnat/a-ztcoio.ads: Remove use clause for Complex_Types and use
      	qualified names throughout accordingly.
      	* libgnat/a-ztcoio.adb: Remove clause for Ada.Unchecked_Conversion,
      	add with clause for Float_Aux, add clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Add clause for Complex_Types.
      	Instantiate Float_Aux and Complex_Aux on Float, Long_Float, and
      	Long_Long_Float. Remove LLF subtype and TFT instantiation.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.
      	(Get): Call appropriate Gets routine from auxiliary package.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-ztdeau.adb: Remove with and use clause for Float_Aux.
      	* libgnat/a-ztfiau.adb: Likewise.
      	* libgnat/a-ztfiio.adb: Add with and use clause for System.Val_LLF.
      	Instantiate Float_Aux on Long_Long_Float.
      	(Get): Adjust call to Get routine from auxiliary package.
      	(Get): Adjust call to Gets routine from auxiliary package.
      	(Put): Adjust call to Put routine from auxiliary package.
      	(Put): Adjust call to Puts routine from auxiliary package.
      	* libgnat/a-ztfiio__128.adb: Likewise.
      	(Get): Likewise.
      	(Get): Likewise.
      	(Put): Likewise.
      	(Put): Likewise.
      	* libgnat/a-ztflau.ads: Make the package generic.
      	(Get): Change parameter type to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-ztflau.adb: Remove clauses for System.Val_Real.
      	(Get): Change parameter type to Num and call Scan routine. Set
      	Ptr parameter lazily.
      	(Gets): Likewise.
      	(Load_Real): Move to...
      	(Put): Change parameter type and add conversion to Long_Long_Float.
      	Bump buffer length to Max_Real_Image_Length.
      	(Puts): Likewise.
      	* libgnat/a-ztflio.adb: Add with and use clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
      	Long_Float and Long_Long_Float.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.  Add
      	pragma Unsuppress (Range_Check) and manual validity check.
      	(Get): Call appropriate Gets routine from auxiliary package. Add
      	pragma Unsuppress (Range_Check) and manual validity check.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-ztgeau.ads (Load_Real): New procedure.
      	* libgnat/a-ztgeau.adb (Load_Real): ...here.
      	* libgnat/s-fatsfl.ads: Delete.
      	* libgnat/s-valflt.ads: New package.
      	* libgnat/s-vallfl.ads: Likewise.
      	* libgnat/s-valllf.ads: Likewise.
      	* libgnat/s-valrea.ads: Make generic. Add assertions, defensive
      	code and clarify intent.
      	(Scan_Real): Change parameter type to Num.
      	(Value_Real): Likewise.
      	* libgnat/s-valrea.adb: Instantiate Value_R on Uns.
      	(Integer_to_Real): Change parameter and result to Num.
      	Call Float_Control.Reset only if the mantissa is 64 bits.  Use
      	a divide to compute the final value if the scale is negative.
      	(Scan_Real): Change result to Num.
      	(Value_Real): Likewise.
      	* libgnat/s-valuer.adb: Add assertions, defensive code and
      	clarify intent.
      	(F_Limit): Delete.
      	(I_Limit): Likewise.
      	(Precision_Limit): Always use the integer limit.
      	* libgnat/s-fatgen.adb: Add pragma Annotate.
      338e5133
Loading