aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-12-16Daily bump.GCC Administrator12-1/+775
2020-12-15c++: Remove dg-ice in constexpr-52830.C [PR52830]Marek Polacek1-1/+0
It turned out that r11-5942 fixed this old PR, and it was detected by one of the few dg-ice tests -- exactly the point of them! Now the PR won't be opened until someone notices that it'd been fixed. The patch failed to remove the dg-ice though, so now it XPASSes. Fixing this now. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/constexpr-52830.C: Remove dg-ice.
2020-12-15cody: Remove unused variable.Marek Polacek1-1/+0
libcody/ChangeLog: * buffer.cc (MessageBuffer::Lex): Remove unused variable.
2020-12-15libcody: Work with older gccsNathan Sidwell1-1/+5
Older GCCs don't have all the exciting options we have now. let's just turn them off. libcody/ * Makefile.in: Disable some flags.
2020-12-15gcc_update updateNathan Sidwell1-0/+2
I missed adding these two configure files. contrib/ * gcc_update: Add c++tools & libcody.
2020-12-15match.pd: Optimize X / bool_range_Y to X [PR96094]Jakub Jelinek2-4/+43
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.
2020-12-15d: Fix ICE in gimplify_expr, at gimplify.c (PR98277)Iain Buclaw2-21/+35
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.
2020-12-15Go testsuite: update bugs for recent changeIan Lance Taylor2-2/+2
This matches changes in 788d204885c187d5604e3960d7c78e1523f04861.
2020-12-15compiler: correct grammar in error messageIan Lance Taylor2-2/+2
For golang/go#43200 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278452
2020-12-15compiler: avoid knock-on errors from invalid interfacesIan Lance Taylor3-9/+37
The test case for this is issue11614.go. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278192
2020-12-15compiler: discard global sink variables with static initializersIan Lance Taylor4-2/+31
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
2020-12-15compiler: better error for unexpected digitIan Lance Taylor2-1/+8
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
2020-12-15Fix dashismNathan Sidwell2-4/+4
I missed some other places that used += * config.m4: Avoid var+=... * configure: Rebuilt
2020-12-15libcody: Fix for dashNathan Sidwell2-2/+4
Apparently 'var+=...' is not a dash thing. Fixed thusly. * config.m4: Avoid non-dash idiom * configure: Rebuilt.
2020-12-15libstdc++: Remove init_priority attribute for Init object [PR 98108]Jonathan Wakely1-9/+1
This reverts commit cf4ed3b41594b6935a337fe0aaf8149eadf88751. libstdc++-v3/ChangeLog: PR libstdc++/98108 * include/std/iostream (__ioinit): Remove init_priority attribute.
2020-12-15libstdc++: Support libc with stdio-only I/O in libstdc++Keith Packard4-17/+69
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: Jonathan Wakely <jwakely@redhat.com> Signed-off-by: Keith 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.
2020-12-15c++: Fix return type deduction during satisfactionPatrick Palka2-2/+13
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.
2020-12-15c++: Add changelog files in c++tools/ and libcody/ directoriesJakub Jelinek2-0/+12
Add ChangeLog files, so that update_version_git can then fill those in.
2020-12-15Add the -fdebug-aux-vars flag to debug variables generated by Fortran.Thomas Koenig3-1/+56
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.
2020-12-15libstdc++: Fix the test for rvalue stream extractionVille Voutilainen1-0/+2
libstdc++-v3/ChangeLog: * testsuite/27_io/rvalue_streams.cc: Run the extraction to a char* for C++17 and lower only.
2020-12-15doc: Document C++ 20 modulesNathan Sidwell2-5/+434
And here is the user-facing documentation. gcc/ * doc/cppopts.texi: Document new cpp opt. * doc/invoke.texi: Add C++20 module option & documentation.
2020-12-15c++: Modules Is LandingNathan Sidwell10-47/+19823
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.
2020-12-15c++: module mapperNathan Sidwell4-1/+448
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.
2020-12-15Add C++toolsNathan Sidwell5-6/+471
These are the toplevel directory changes to add c++tools ChangeLog: * Makefile.def * Makefile.in * Makefile.tpl * configure * configure.ac
2020-12-15Add c++toolsNathan Sidwell7-0/+6571
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.
2020-12-15libstdc++: Increase timeout for tests in debug modeJonathan Wakely4-2/+9
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.
2020-12-15libstdc++: Do not define constexpr assertions for C++11Jonathan Wakely1-1/+1
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.
2020-12-15Add libcodyNathan Sidwell41-4/+16301
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.
2020-12-15Add toplevel dirsNathan Sidwell1-0/+2
contrib/ * gcc-changelog/git_commit.py (changelog_locations): Add libcody, c++tools.
2020-12-15c++: module-related tweakNathan Sidwell1-2/+2
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.
2020-12-15libstdc++: Fix required locales of a testcaseMarius Hillenbrand1-1/+3
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.
2020-12-15libstdc++: Remove workaround for PR c++/78173Jonathan Wakely1-4/+1
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.
2020-12-15libstdc++: Disabling AC_LIBTOOL_DLOPEN check if building with avr-libcVladimir Vishnevsky2-2/+2
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.
2020-12-15libstdc++: Use init_priority attribute for Init object [PR 98108]Jonathan Wakely1-1/+9
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.
2020-12-15[Ada] Fix serial port baud rate setting on GNU/LinuxPascal Obry1-8/+102
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.
2020-12-15[Ada] Small adjustment to System.Val_RealEric Botcazou1-5/+4
gcc/ada/ * libgnat/s-valrea.adb (Integer_to_Real): Always use Extra.
2020-12-15[Ada] Simplify check for extra parensPiotr Trojanek1-7/+9
gcc/ada/ * par-ch5.adb (P_Condition): Simplify condition for warning about extra parens and make it easier to understand.
2020-12-15[Ada] Refactor repeated complains about missing -gnat2005 switchPiotr Trojanek9-156/+64
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".
2020-12-15[Ada] Small adjustment to parameterization of System.Value_REric Botcazou7-23/+54
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.
2020-12-15[Ada] Postcondition checks performed before finalizationJustin Squirek12-64/+998
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.
2020-12-15[Ada] Complain about missing -gnat2020 switch on iterator_filterPiotr Trojanek1-6/+6
gcc/ada/ * par-ch5.adb (P_Loop_Parameter_Specification): Complain about missing -gnat2020 switch. (P_Iterator_Specification): Likewise.
2020-12-15[Ada] Reuse Append_New in parsing aggregatesPiotr Trojanek1-30/+6
gcc/ada/ * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify with Append_New.
2020-12-15[Ada] Implement tiered support for floating-point input operationsEric Botcazou49-706/+1265
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.
2020-12-15[Ada] Mark generic body outside of SPARKYannick Moy2-2/+2
gcc/ada/ * libgnat/a-tiflio.adb: Mark body not in SPARK. * libgnat/a-tiflio.ads: Mark spec in SPARK.
2020-12-15[Ada] Transform_Function_Array issuesArnaud Charlet6-32/+69
gcc/ada/ * exp_ch6.adb (Build_Procedure_Body_Form): Adjust, the declaration of the procedure form is now insert before the original function body rather than after. (Expand_N_Subprogram_Declaration): Deal with private types whose full views are arrays. * exp_unst.adb (Unnest_Subprogram): Deal with private types. (Needs_Fat_Pointer): Code cleanup. * freeze.adb (Freeze_Subprogram): Ditto. * exp_util.adb (Build_Procedure_Form): Insert the procedure form decl before and not after. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build missing spec when needed for Transform_Function_Array. * sem_util.adb (Get_Fullest_View): Deal with null entity.
2020-12-15[Ada] Simplify discarding nodes when processing aspect/pragma PriorityPiotr Trojanek2-19/+10
gcc/ada/ * sem_ch13.adb (Analyze_Aspect_Specifications): Simplify code for aspect Priority. * sem_prag.adb (Analyze_Pragma): Simplify code for pragma Priority.
2020-12-15[Ada] Crash on unnesting unnamed blocksArnaud Charlet1-30/+19
gcc/ada/ * exp_ch7.adb (Reset_Scopes_To_Block_Elab_Proc): Do not crash on a block with no Identifier. Code cleanups.
2020-12-15[Ada] Refactor repeated code for Value attributesPiotr Trojanek1-35/+6
gcc/ada/ * sem_attr.adb (Analyze_Attribute): Reuse existing code for attribute Value when analyzing attributes Wide_Value and Wide_Wide_Value.
2020-12-15[Ada] Fix possible infinite recursion in directory iteratorPascal Obry2-2/+5
gcc/ada/ * libgnat/g-diopit.adb (Find): Fix possible infinite recursion in Find iterator. * libgnat/g-diopit.ads (Find): Update comments accordingly.
2020-12-15[Ada] Refactor repeated code for Callable and Terminated attributesPiotr Trojanek1-7/+6
gcc/ada/ * sem_attr.adb (Analyze_Attribute): Merge identical code for Callable and Terminated attributes; refactor calls to Set_Etype occurring in both THEN and ELSE branches of an IF statement for attribute Storage_Size.