Age | Commit message (Collapse) | Author | Files | Lines |
|
Since g:7caa49706316e650fb67719e1a1bf3a35054b685 the option is ignored
as we print used command line for -fverbose-asm output.
gcc/ChangeLog:
* doc/options.texi: Remove Report keyword.
* opt-functions.awk: Print error when Report keyword
is used.
* optc-gen.awk: Do not handle Report keyword.
* opts.h (struct cl_option): Remove cl_report bitfield flag.
|
|
gcc/ChangeLog:
PR sanitizer/97868
* common.opt: Add new warning -Wtsan.
* doc/invoke.texi: Likewise.
* tsan.c (instrument_builtin_call): Warn users about unsupported
std::atomic_thread_fence.
gcc/testsuite/ChangeLog:
PR sanitizer/97868
* gcc.dg/tsan/atomic-fence.c: New test.
|
|
gcc/ChangeLog:
PR rtl-optimization/98271
PR rtl-optimization/98276
PR tree-optimization/98279
* opts-common.c (set_option): Do not allow overflow for integer
arguments.
gcc/testsuite/ChangeLog:
PR rtl-optimization/98271
PR rtl-optimization/98276
PR tree-optimization/98279
* gcc.dg/pr98271.c: New test.
|
|
This fixes the precision mismatch introduced by the previous change.
gcc/ChangeLog:
PR tree-optimization/98272
* tree-switch-conversion.c (bit_test_cluster::emit): When finding
out whether the entry test can be merged in the bit test, do the
computation using the type of the index expression.
gcc/testsuite/ChangeLog:
* gcc.dg/pr98272.c: New test.
|
|
This patch is to use paradoxical subreg instead of
zero_extend for promoting QI/HI to SI/DI when we
want to construct one vector with these modes.
Since we do the gpr->vsx movement and vector merge
or pack later, the high part is useless and safe to
use paradoxical subreg. It can avoid useless rlwinms
generated for signed cases.
Bootstrapped/regtested on powerpc64le-linux-gnu P9.
gcc/ChangeLog:
* config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
paradoxical subreg instead of zero_extend for QI/HI promotion.
gcc/testsuite/ChangeLog:
* gcc.target/powerpc/pr96933-1.c: Adjusted to check no rlwinm.
* gcc.target/powerpc/pr96933-2.c: Likewise.
|
|
gcc/
2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR target/66791
* config/arm/arm_neon.h: Replace calls to __builtin_vcgt* by
<, > operators in vclt and vcgt intrinsics respectively.
* config/arm/arm_neon_builtins.def: Remove entry for
vcgt and vcgtu.
|
|
gcc/
2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR target/66791
* config/arm/arm_neon.h: Replace calls to __builtin_vneg* by - operator
in vneg intrinsics.
* config/arm/arm_neon_builtins.def: Remove entry for vneg.
|
|
gcc/
2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR target/66791
* config/arm/arm_neon.h: Replace calls to __builtin_vcreate*
in vcreate intrinsics.
* config/arm/arm_neon_builtins.def: Remove entry for vcreate.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
This matches changes in 788d204885c187d5604e3960d7c78e1523f04861.
|
|
For golang/go#43200
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278452
|
|
The test case for this is issue11614.go.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278192
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
And here is the user-facing documentation.
gcc/
* doc/cppopts.texi: Document new cpp opt.
* doc/invoke.texi: Add C++20 module option & documentation.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
gcc/ada/
* libgnat/s-valrea.adb (Integer_to_Real): Always use Extra.
|
|
gcc/ada/
* par-ch5.adb (P_Condition): Simplify condition for warning
about extra parens and make it easier to understand.
|
|
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".
|
|
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.
|
|
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.
|
|
gcc/ada/
* par-ch5.adb (P_Loop_Parameter_Specification): Complain about
missing -gnat2020 switch.
(P_Iterator_Specification): Likewise.
|
|
gcc/ada/
* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify with
Append_New.
|
|
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.
|
|
gcc/ada/
* libgnat/a-tiflio.adb: Mark body not in SPARK.
* libgnat/a-tiflio.ads: Mark spec in SPARK.
|
|
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.
|
|
gcc/ada/
* sem_ch13.adb (Analyze_Aspect_Specifications): Simplify code
for aspect Priority.
* sem_prag.adb (Analyze_Pragma): Simplify code for pragma
Priority.
|
|
gcc/ada/
* exp_ch7.adb (Reset_Scopes_To_Block_Elab_Proc): Do not crash on
a block with no Identifier. Code cleanups.
|
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Reuse existing code for
attribute Value when analyzing attributes Wide_Value and
Wide_Wide_Value.
|
|
gcc/ada/
* libgnat/g-diopit.adb (Find): Fix possible infinite recursion
in Find iterator.
* libgnat/g-diopit.ads (Find): Update comments accordingly.
|
|
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.
|
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Merge identical code for
Wide_Wide_Width, Wide_Width and Width attributes.
|
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Merge identical code for
Pred and Succ attributes.
|
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Merge identical code for
Size, Object_Size and Value_Size attributes.
|
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Consistently call
Check_Fixed_Point_Type before checking the number of attribute
expressions (like it is done for floating point types); reuse
Check_Fixed_Point_Type_0.
|
|
gcc/ada/
* exp_disp.adb (Make_Tags): Remove call to UI_To_Int.
* sem_attr.adb (Check_Array_Type): Likewise; also, refine type
of a local variable.
(Analyze_Attribute): Likewise.
(Get_Enclosing_Object): Likewise.
* sem_util.adb (Get_Enum_Lit_From_Pos): Likewise.
|
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Merge identical code for
First_Bit/Last_Bit and Position attributes.
|
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Merge identical code for
Machine_Radix and Mantissa attributes.
|
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Merge identical code for
Machine_Overflows and Machine_Rounds attributes.
|
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Merge identical code for
Large, Small, Safe_Large and Safe_Small attributes.
|
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Merge identical code for
Epsilon, Model_Epsilon, Model_Small, Safe_First and Safe_Las
attributes.
|