aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-12-17vect, aarch64: Extend SVE vs Advanced SIMD costing decisions in ↵Kyrylo Tkachov6-52/+96
vect_better_loop_vinfo_p While experimenting with some backend costs for Advanced SIMD and SVE I hit many cases where GCC would pick SVE for VLA auto-vectorisation even when the backend very clearly presented cheaper costs for Advanced SIMD. For a simple float addition loop the SVE costs were: vec.c:9:21: note: Cost model analysis: Vector inside of loop cost: 28 Vector prologue cost: 2 Vector epilogue cost: 0 Scalar iteration cost: 10 Scalar outside cost: 0 Vector outside cost: 2 prologue iterations: 0 epilogue iterations: 0 Minimum number of vector iterations: 1 Calculated minimum iters for profitability: 4 and for Advanced SIMD (Neon) they're: vec.c:9:21: note: Cost model analysis: Vector inside of loop cost: 11 Vector prologue cost: 0 Vector epilogue cost: 0 Scalar iteration cost: 10 Scalar outside cost: 0 Vector outside cost: 0 prologue iterations: 0 epilogue iterations: 0 Calculated minimum iters for profitability: 0 vec.c:9:21: note: Runtime profitability threshold = 4 yet the SVE one was always picked. With guidance from Richard this seems to be due to the vinfo comparisons in vect_better_loop_vinfo_p, in particular the part with the big comment explaining the estimated_rel_new * 2 <= estimated_rel_old heuristic. This patch extends the comparisons by introducing a three-way estimate kind for poly_int values that the backend can distinguish. This allows vect_better_loop_vinfo_p to ask for minimum, maximum and likely estimates and pick Advanced SIMD overs SVE when it is clearly cheaper. gcc/ * target.h (enum poly_value_estimate_kind): Define. (estimated_poly_value): Take an estimate kind argument. * target.def (estimated_poly_value): Update definition for the above. * doc/tm.texi: Regenerate. * targhooks.c (estimated_poly_value): Update prototype. * tree-vect-loop.c (vect_better_loop_vinfo_p): Use min, max and likely estimates of VF to pick between vinfos. * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Use estimated_poly_value instead of aarch64_estimated_poly_value. (aarch64_estimated_poly_value): Take a kind argument and handle it.
2020-12-17c++: Fix clang problem [PR 98340]Nathan Sidwell1-2/+2
Clang didn't like sizeot (uintset::value) in a templated context. Not sure where the problem lies -- ambiguous std, gcc erroneous accept or clang erroneous reject. Anyway, this avoids that construct. PR c++/98340 gcc/cp/ * module.cc (uintset<T>::hash::add): Use uintset (0u).MEMBER, rather than uintset::MEMBER.
2020-12-17libcody: Allow PIC [PR 98324]Nathan Sidwell3-1/+19
While this doesn't fix 98324, it was an omission. Cribbed code from libcpp to build libcody as PIC. libcody/ * configure.ac: Add --enable-host-shared. * Makefile.in: Add FLAGPIC. * configure: Regenerated.
2020-12-17libstdc++: Test errno macros directly for all targets [PR 93151]Jonathan Wakely3-39/+39
This applies the same changes to the djgpp and mingw versions of error_constants.h as r11-6137 did for the generic version. All of these constants are defined as macros by <errno.h> on these targets, so we can just test the macro directly instead of checking for it at configure time. libstdc++-v3/ChangeLog: * config/os/djgpp/error_constants.h: Test POSIX errno macros directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros. * config/os/mingw32-w64/error_constants.h: Likewise. * config/os/mingw32/error_constants.h: Likewise.
2020-12-17libstdc++: Fix condition for gthreads-timed effective-targetJonathan Wakely1-1/+1
The refactoring in r11-5500 altered the condition for the gthreads-timed test from #if to #ifdef. For some reason that macro is always defined, rather than being defined to 1 or undefined like most of our autoconf macros. That means the test always passes now, even for targets where the macro is defined to 0 (specifically, Darwin). That causes some tests to FAIL when they should have been UNSUPPORTED. This restores the previous behaviour. libstdc++-v3/ChangeLog: * testsuite/lib/libstdc++.exp (check_v3_target_gthreads_timed): Fix condition for _GTHREAD_USE_MUTEX_TIMEDLOCK test.
2020-12-17arm: Fix bootstrapAndrea Corallo1-1/+1
gcc/ChangeLog 2020-12-17 Andrea Corallo <andrea.corallo@arm.com> * config/arm/arm_neon.h (vcreate_p64): Remove call to '__builtin_neon_vcreatedi'.
2020-12-17Fix trap in pointer conversion in op1_range.Andrew MacLeod2-0/+46
Processing op1_range for conversion between a non-pointer and pointer shouldnt do any fancy math. gcc/ PR tree-optimization/97750 * range-op.cc (operator_cast::op1_range): Handle pointers better. gcc/testsuite/ * gcc.dg/pr97750.c: New.
2020-12-17rtl-ssa: Include memmodel.h before tm_p.hRainer Orth1-1/+1
The RTL SSA merge broke SPARC bootstrap: In file included from ./tm_p.h:4, from /vol/gcc/src/hg/master/local/gcc/rtl-ssa.h:54, from /vol/gcc/src/hg/master/local/gcc/fwprop.c:29: /vol/gcc/src/hg/master/local/gcc/config/sparc/sparc-protos.h:45:47: error: use of enum 'memmodel' without previous declaration extern void sparc_emit_membar_for_model (enum memmodel, int, int); ^~~~~~~~ and similarly in rtl-ssa/functions.cc, rtl-ssa/changes.cc, and rtl-ssa/insns.cc. Fixed by moving the memmove.h include in rtl-ssa.h before tm_p.h. Tested on sparc-sun-solaris2.11 and i386-pc-solaris2.11. 2020-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> gcc: * rtl-ssa.h: Include memmodel.h before tm_p.h.
2020-12-17bootstrap: Don't use strsignal [PR 98300]Nathan Sidwell1-1/+2
Sadly strsignal is nonportable, so signal numbers it is then. c++tools/ * server.cc (crash_signal): Don't use strsignal.
2020-12-17libstdc++: Fix -Wunused warningJonathan Wakely1-1/+2
As noted in PR 66146 comment 35, there is a new warning in the new std::call_once implementation. libstdc++-v3/ChangeLog: * src/c++11/mutex.cc (std::once_flag::_M_finish): Add maybe_unused attribute to variable used in assertion.
2020-12-17libstdc++: Fix preprocessor condition [PR 98344]Jonathan Wakely1-1/+1
libstdc++-v3/ChangeLog: PR libstdc++/98344 * include/bits/semaphore_base.h: Fix preprocessor condition.
2020-12-17libstdc++: Move std::hash<std::thread::id> to <bits/std_thread.h>Jonathan Wakely2-12/+12
This makes the hash function available without including the whole of <thread>, which is needed for <barrier>. libstdc++-v3/ChangeLog: * include/bits/std_thread.h (hash<thread::id>): Move here, from ... * include/std/thread (hash<thread::id>): ... here.
2020-12-17libstdc++: Regenerate autoconf filesJonathan Wakely2-688/+0
I forgot to regenerate these files in r11-6137. libstdc++-v3/ChangeLog: * config.h.in: Regenerate. * configure: Regenerate.
2020-12-17bootstrap: Fix some windows issues [PR 98300]Nathan Sidwell6-12/+736
When breaking out the sample server from the gcc/cp directory, it lost its check for mmap, and the sample resolver just assumed it was there. Fixed thusly. The non-mapping paths in module.cc weren't (recently) excercised, and led to a signedness warning. Finally I'd missed c++tools's config.h.in in the gcc_update script. There I took the opportunity of adding a 'tools' segment of the dependency lists. PR bootstrap/98300 contrib/ * gcc_update: Add c++tools/config.h.in. c++tools/ * configure.ac: Check for sys/mman.h. * resolver.cc: Don't assume mmap, O_CLOEXEC are available. Use xmalloc. * config.h.in: Regenerated. * configure: Regenerated. gcc/cp/ * module.cc: Fix ::read, ::write result signedness comparisons.
2020-12-17libcody: Remove nop asmNathan Sidwell1-1/+2
This asm was a useful place for gdb to drop a breakpoint and make it clear where you were when debugging. I took a punt that 'surely every arch has a nop instruction'. Well, no, some apparently have nops with operands (what, do nothing harder? :) libcody/ * fatal.cc (HCF): Remove nop breakpoint lander.
2020-12-17c++tools: Fix up c++tools for --with-gcc-major-version-onlyJakub Jelinek3-2/+28
Seems c++tools doesn't honor --with-gcc-major-version-only. Our distro uses that flag and so everything is installed in /usr/lib/gcc/<target>/11/... /usr/libexec/gcc/<target>/11/... except /usr/libexec/gcc/<target>/11.0.0/g++-mapper-server The following patch should fix that. 2020-12-17 Jakub Jelinek <jakub@redhat.com> * configure.ac: Add GCC_BASE_VER. * Makefile.in (version): Remove variable. (gcc_version): New variable. (libexecsubdir): Use $(gcc_version) instead of $(version). * configure: Regenerated.
2020-12-17shrink-wrap: Don't put on incoming EDGE_CROSSING [PR98289]Jakub Jelinek3-1/+107
As mentioned in the PR, shrink-wrapping disqualifies for prologue placement basic blocks that have EDGE_CROSSING incoming edge. I don't see why that is necessary, those edges seem to be redirected just fine, both on x86_64 and powerpc64. In the former case, they are usually conditional jumps that patch_jump_insn can handle just fine, after all, they were previously crossing and will be crossing after the redirection too, just to a different label. And in the powerpc64 case, it is a simple_jump instead that again seems to be handled by patch_jump_insn just fine. Sure, redirecting an edge that was previously not crossing to be crossing or vice versa can fail, but that is not what shrink-wrapping needs. Also tested in GCC 8 with this patch and don't see ICEs there either (though, of course, I'm not suggesting we should backport this to release branches). The old ICEs could have been fixed by PR87475 fix or some other one years ago. 2020-12-17 Jakub Jelinek <jakub@redhat.com> PR rtl-optimization/98289 * shrink-wrap.c (can_get_prologue): Don't punt on EDGE_CROSSING incoming edges. * gcc.target/i386/pr98289.c: New test. * gcc.dg/torture/pr98289.c: New test.
2020-12-17[Ada] Performance of CW_MembershipArnaud Charlet3-71/+46
gcc/ada/ * libgnat/a-tags.ads, libgnat/a-tags.adb (CW_Membership): Move to spec to allow inlining. gcc/testsuite/ * gnat.dg/debug15.adb: Remove fragile testcase.
2020-12-17[Ada] Remove unused subprograms in validswArnaud Charlet88-1130/+16
gcc/ada/ * checks.adb: Remove, not used. * checks.ads: Likewise. * exp_ch6.adb: Likewise. * exp_ch7.adb: Likewise. * exp_ch7.ads: Likewise. * exp_fixd.adb: Likewise. * exp_tss.adb: Likewise. * exp_tss.ads: Likewise. * exp_util.adb: Likewise. * exp_util.ads: Likewise. * gnat1drv.adb: Likewise. * libgnat/s-finmas.adb: Likewise. * libgnat/s-finmas.ads: Likewise. * libgnat/system-aix.ads: Likewise. * libgnat/system-darwin-arm.ads: Likewise. * libgnat/system-darwin-ppc.ads: Likewise. * libgnat/system-darwin-x86.ads: Likewise. * libgnat/system-djgpp.ads: Likewise. * libgnat/system-dragonfly-x86_64.ads: Likewise. * libgnat/system-freebsd.ads: Likewise. * libgnat/system-hpux-ia64.ads: Likewise. * libgnat/system-hpux.ads: Likewise. * libgnat/system-linux-alpha.ads: Likewise. * libgnat/system-linux-arm.ads: Likewise. * libgnat/system-linux-hppa.ads: Likewise. * libgnat/system-linux-ia64.ads: Likewise. * libgnat/system-linux-m68k.ads: Likewise. * libgnat/system-linux-mips.ads: Likewise. * libgnat/system-linux-ppc.ads: Likewise. * libgnat/system-linux-riscv.ads: Likewise. * libgnat/system-linux-s390.ads: Likewise. * libgnat/system-linux-sh4.ads: Likewise. * libgnat/system-linux-sparc.ads: Likewise. * libgnat/system-linux-x86.ads: Likewise. * libgnat/system-lynxos178-ppc.ads: Likewise. * libgnat/system-lynxos178-x86.ads: Likewise. * libgnat/system-mingw.ads: Likewise. * libgnat/system-qnx-aarch64.ads: Likewise. * libgnat/system-rtems.ads: Likewise. * libgnat/system-solaris-sparc.ads: Likewise. * libgnat/system-solaris-x86.ads: Likewise. * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise. * libgnat/system-vxworks-arm-rtp.ads: Likewise. * libgnat/system-vxworks-arm.ads: Likewise. * libgnat/system-vxworks-e500-kernel.ads: Likewise. * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise. * libgnat/system-vxworks-e500-rtp.ads: Likewise. * libgnat/system-vxworks-e500-vthread.ads: Likewise. * libgnat/system-vxworks-ppc-kernel.ads: Likewise. * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise. * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise. * libgnat/system-vxworks-ppc-rtp.ads: Likewise. * libgnat/system-vxworks-ppc-vthread.ads: Likewise. * libgnat/system-vxworks-ppc.ads: Likewise. * libgnat/system-vxworks-x86-kernel.ads: Likewise. * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise. * libgnat/system-vxworks-x86-rtp.ads: Likewise. * libgnat/system-vxworks-x86-vthread.ads: Likewise. * libgnat/system-vxworks-x86.ads: Likewise. * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-aarch64.ads: Likewise. * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-arm.ads: Likewise. * libgnat/system-vxworks7-e500-kernel.ads: Likewise. * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-e500-rtp.ads: Likewise. * libgnat/system-vxworks7-ppc-kernel.ads: Likewise. * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-ppc-rtp.ads: Likewise. * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise. * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-x86-kernel.ads: Likewise. * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-x86-rtp.ads: Likewise. * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise. * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise. * repinfo.adb: Likewise. * repinfo.ads: Likewise. * rtsfind.ads: Likewise. * sem_aux.adb: Likewise. * sem_aux.ads: Likewise. * sem_ch13.adb: Likewise. * sem_ch13.ads: Likewise. * sem_util.adb (Validity_Checks_Suppressed, TSS, Is_All_Null_Statements, Known_Non_Negative, Non_Limited_Designated_Type, Get_Binary_Nkind, Get_Unary_Nkind, Is_Protected_Operation, Number_Components, Package_Body, Validate_Independence, Independence_Checks): Likewise; update comments. * targparm.adb: Likewise. * targparm.ads (AAM, AAM_Str, Fractional_Fixed_Ops, Frontend_Layout, Make_Detach_Call, Target_Has_Fixed_Ops, Detach, Back_End_Layout, Create_Dynamic_SO_Ref, Get_Dynamic_SO_Entity, Is_Dynamic_SO_Ref, Is_Static_SO_Ref, Fractional_Fixed_Ops_On_Target): Likewise. * validsw.adb (Save_Validity_Check_Options, Set_Default_Validity_Check_Options): Likewise. * validsw.ads: Likewise.
2020-12-17[Ada] Remove unused filesArnaud Charlet2-205/+0
gcc/ada/ * symbols.ads, symbols.adb: Removed no longer used.
2020-12-17[Ada] Code cleanup: remove Old_Requires_Transient_ScopeArnaud Charlet2-400/+218
gcc/ada/ * sem_util.adb (New_Requires_Transient_Scope): Renamed Requires_Transient_Scope. (Requires_Transient_Scope, Old_Requires_Transient_Scope, Results_Differ): Removed. * debug.adb: Remove -gnatdQ.
2020-12-17[Ada] Minor comment fix in System.Val_RealEric Botcazou1-4/+4
gcc/ada/ * libgnat/s-valrea.adb (Need_Extra): Fix comment.
2020-12-17[Ada] Prevent early exits without restoring a global variablePiotr Trojanek1-2/+3
gcc/ada/ * sem_ch5.adb (Analyze_Case_Statement): Move modification of Unblocked_Exit_Count after early return statements; fix typo in comment.
2020-12-17[Ada] Reduce scopes of local variables for case and if statementsPiotr Trojanek1-16/+17
gcc/ada/ * sem_ch5.adb (Analyze_Case_Statement): Change local variable Exp to constant; remove unreferenced Last_Choice variable; reduce scope of other variables. (Analyze_If_Statement): Reduce scope of a local variable; add comment.
2020-12-17[Ada] Refine type of a multi unit index numberPiotr Trojanek1-1/+1
gcc/ada/ * opt.ads (Multiple_Unit_Index): Refine type from Int to Nat.
2020-12-17[Ada] Prevent In_Check_Node routine from going too far in the parent chainPiotr Trojanek1-5/+11
gcc/ada/ * sem_util.adb (In_Check_Node): Add guard and rename Node to Par, just like it is done in surrounding routines, e.g. In_Assertion_Expression_Pragma and In_Generic_Formal_Package.
2020-12-17[Ada] Ada2020: AI12-0400 Ambiguities associated with VectorBob Duff12-169/+261
gcc/ada/ * libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads, libgnat/a-cdlili.adb, libgnat/a-cdlili.ads, libgnat/a-cidlli.adb, libgnat/a-cidlli.ads, libgnat/a-cobove.adb, libgnat/a-cobove.ads, libgnat/a-coinve.adb, libgnat/a-coinve.ads, libgnat/a-convec.adb, libgnat/a-convec.ads: Add *_Vector operations, remove default for Count, rename Append_One to be Append.
2020-12-17[Ada] Crash on if expression inside declare expressionArnaud Charlet3-11/+32
gcc/ada/ * sem_res.adb (Resolve_Declare_Expression): Need to establish a transient scope in case Expression (N) requires actions to be wrapped. Code cleanup. * exp_ch7.adb, exp_ch11.adb: Code cleanup.
2020-12-17[Ada] Consistent wording for missing -gnat2020 switchPiotr Trojanek6-35/+18
gcc/ada/ * par-ch3.adb (P_Identifier_Declarations): Reuse Error_Msg_Ada_2020_Feature for object renaming without subtype. * par-ch4.adb (P_Primary): Likewise for target name. (P_Iterated_Component_Association): Likewise for iterated component. (P_Declare_Expression): Likewise for declare expression. * par-ch6.adb (P_Formal_Part): Likewise for aspect on formal parameter. * sem_aggr.adb (Resolve_Delta_Aggregate): Ditto. * sem_ch8.adb (Analyze_Object_Renaming): Reuse Error_Msg_Ada_2020_Feature. * sem_ch13.adb (Validate_Aspect_Aggregate): Reuse Error_Msg_Ada_2020_Feature; use lower case for "aspect" and don't use underscore for "Ada_2020"; don't give up on analysis in Ada 2012 mode. (Validate_Aspect_Stable_Properties): Reuse Error_Msg_Ada_2020_Feature; use lower case for "aspect"; minor style fixes.
2020-12-17[Ada] Remove discriminant checks processing in gigiArnaud Charlet12-121/+353
gcc/ada/ * sem_ch4.adb (Analyze_Selected_Component): Request a compile time error replacement in Apply_Compile_Time_Constraint_Error in case of an invalid field. * sem_ch3.adb (Create_Constrained_Components): Take advantage of Gather_Components also in the case of a record extension and also constrain records in the case of compile time known discriminant values, as already done in gigi. * sem_util.ads, sem_util.adb (Gather_Components): New parameter Allow_Compile_Time to allow compile time known (but non static) discriminant values, needed by Create_Constrained_Components, and new parameter Include_Interface_Tag. (Is_Dependent_Component_Of_Mutable_Object): Use Original_Node to perform check on the original tree. (Is_Object_Reference): Likewise. Only call Original_Node when relevant via a new function Safe_Prefix. (Is_Static_Discriminant_Component, In_Check_Node): New. (Is_Actual_Out_Or_In_Out_Parameter): New. * exp_ch4.adb (Expand_N_Selected_Component): Remove no longer needed code preventing evaluating statically discriminants in more cases. * exp_ch5.adb (Expand_N_Loop_Statement): Simplify expansion of loops with an N_Raise_xxx_Error node to avoid confusing the code generator. (Make_Component_List_Assign): Try to find a constrained type to extract discriminant values from, so that the case statement built gets an opportunity to be folded by Expand_N_Case_Statement. (Expand_Assign_Record): Update comments, code cleanups. * sem_attr.adb (Analyze_Attribute): Perform most of the analysis on the original prefix node to deal properly with a prefix rewritten as a N_Raise_xxx_Error. * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Handle properly a discrete subtype definition being rewritten as N_Raise_xxx_Error. * sem_ch8.adb (Analyze_Object_Renaming): Handle N_Raise_xxx_Error nodes as part of the expression being renamed. * sem_eval.ads, sem_eval.adb (Fold, Eval_Selected_Component): New. (Compile_Time_Known_Value, Expr_Value, Expr_Rep_Value): Evaluate static discriminant component values. * sem_res.adb (Resolve_Selected_Component): Call Eval_Selected_Component.
2020-12-17[Ada] Move folding of unchecked conversions from expansion to evaluationPiotr Trojanek3-59/+57
gcc/ada/ * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Remove folding of discrete values. * exp_intr.adb (Expand_Unc_Conversion): Analyze, resolve and evaluate (if possible) calls to instances of Ada.Unchecked_Conversion after they have been expanded into N_Unchecked_Type_Conversion. * sem_eval.adb (Eval_Unchecked_Conversion): Add folding of discrete values.
2020-12-17[Ada] Do not use exponentiation for common bases in floating-point ValueEric Botcazou15-73/+653
gcc/ada/ * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Likewise. * exp_imgv.adb (Expand_Value_Attribute): Use RE_Value_Long_Float in lieu of RE_Value_Long_Long_Float as fallback for fixed-point types. Also use it for Long_Long_Float if it has same size as Long_Float. * libgnat/s-imgrea.adb: Replace Powten_Table with Powen_LLF. * libgnat/s-powflt.ads: New file. * libgnat/s-powlfl.ads: Likewise. * libgnat/s-powtab.ads: Rename to... * libgnat/s-powllf.ads: ...this. * libgnat/s-valflt.ads: Add with clause for System.Powten_Flt and pass its table as actual parameter to System.Val_Real. * libgnat/s-vallfl.ads: Likewise for System.Powten_LFlt. * libgnat/s-valllf.ads: Likewise for System.Powten_LLF. * libgnat/s-valrea.ads: Add Maxpow and Powten_Address parameters. * libgnat/s-valrea.adb: Add pragma Warnings (Off). (Need_Extra): New boolean constant. (Precision_Limit): Set it according to Need_Extra. (Impl): Adjust actual parameter. (Integer_to_Rea): Add assertion on the machine radix. Take into account the extra digit only if Need_Extra is true. Reimplement the computation of the final value for bases 2, 4, 8, 10 and 16. * libgnat/s-valued.adb (Impl): Adjust actual parameter. (Scan_Decimal): Add pragma Unreferenced. (Value_Decimal): Likewise. * libgnat/s-valuef.adb (Impl): Adjust actual parameter. * libgnat/s-valuer.ads (Floating): Remove. (Round): New formal parameter. * libgnat/s-valuer.adb (Round_Extra): New procedure. (Scan_Decimal_Digits): Use it to round the extra digit if Round is set to True in the instantiation. (Scan_Integral_Digits): Likewise.
2020-12-17[Ada] Fix small typo in comments.Erwan Le Guillou2-2/+2
gcc/ada/ * libgnat/system-lynxos178-ppc.ads, libgnat/system-lynxos178-x86.ads: Fix small typo in comments.
2020-12-17[Ada] Do not generate encodings for fixed-point types by defaultEric Botcazou1-1/+1
gcc/ada/ * exp_dbug.adb (Get_Encoded_Name): Generate encodings for fixed point types only if -fgnat-encodings=all is specified.
2020-12-17[Ada] Crash on discriminant check with current instanceJustin Squirek1-0/+34
gcc/ada/ * checks.adb (Build_Discriminant_Checks): Add condition to replace references to the current instance of the type when we are within an Init_Proc. (Replace_Current_Instance): Examine a given node and replace the current instance of the type with the corresponding _init formal. (Search_And_Replace_Current_Instance): Traverse proc which calls Replace_Current_Instance in order to replace all references within a given expression.
2020-12-17[Ada] Better diagnostic for new language featuresPiotr Trojanek3-24/+19
gcc/ada/ * par-ch12.adb (P_Formal_Derived_Type_Definition): Complain about formal type with aspect specification, which only become legal in Ada 2020. * par-ch9.adb (P_Protected_Operation_Declaration_Opt): Reuse Error_Msg_Ada_2005_Extension. (P_Entry_Declaration): Likewise. * scng.adb (Scan): Improve diagnostics for target_name; emit error, but otherwise continue in earlier than Ada 2020 modes.
2020-12-17[Ada] Spurious discriminant check on bounded synchronized queueEd Schonberg1-1/+9
gcc/ada/ * libgnat/a-cbsyqu.ads (Implementation): Provide a box initialization for the element array used internally to represent the queue, so that its components are properly initialized if the given element type has default initialization. Suppress warnings on the rest of the package in case the element type has no default or discriminant, because it is bound to be confusing to the user.
2020-12-17[Ada] Assert failure on b38105a in -gnat95 modeArnaud Charlet1-1/+3
gcc/ada/ * sem_util.adb (Inherit_Predicate_Flags): No-op before Ada 2012.
2020-12-17[Ada] Compiler crash on protected component of controlled typeArnaud Charlet2-3/+24
gcc/ada/ * exp_ch7.adb (Make_Final_Call, Make_Init_Call): Take protected types into account. * sem_util.ads: Fix typo.
2020-12-17[Ada] Fixes for GNAT error/warning messagesYannick Moy27-125/+132
gcc/ada/ * checks.adb: Rework error messages. * exp_ch3.adb: Likewise. * freeze.adb: Likewise. * lib-load.adb: Likewise. * par-ch12.adb: Likewise. * par-ch3.adb: Likewise. * par-ch4.adb: Likewise. * par-ch9.adb: Likewise. * sem_aggr.adb: Likewise. * sem_attr.adb: Likewise. * sem_cat.adb: Likewise. * sem_ch10.adb: Likewise. * sem_ch12.adb: Likewise. (Instantiate_Type): Fix CODEFIX comment, applicable only on continuation message, and identify the second message as a continuation. * sem_ch13.adb: Rework error messages. * sem_ch3.adb: Likewise. * sem_ch4.adb: Likewise. * sem_ch5.adb: Likewise. * sem_ch6.adb: Likewise. * sem_ch8.adb: Likewise. * sem_ch9.adb: Likewise. * sem_prag.adb: Likewise. * sem_res.adb: Likewise. * sem_util.adb: Likewise. (Wrong_Type): Fix CODEFIX comment, applicable only on continuation message, and identify the second message as a continuation. * symbols.adb: Rework error messages. gcc/testsuite/ * gnat.dg/interface6.adb, gnat.dg/not_null.adb, gnat.dg/protected_func.adb: Adjust error messages.
2020-12-17[Ada] Spurious error on Type'Access and <>Arnaud Charlet1-3/+8
gcc/ada/ * sem_attr.adb (OK_Self_Reference): Return True if node does not come from source (e.g. a rewritten aggregate).
2020-12-17[Ada] Style cleanups in Parse_Aspect_Stable_PropertiesPiotr Trojanek1-8/+20
gcc/ada/ * sem_ch13.adb (Parse_Aspect_Stable_Properties): Fix style; limit the scope of local variables; remove extra assignment in Extract_Entity. (Validate_Aspect_Stable_Properties): Simplify with procedural Next.
2020-12-17IBM Z: Detect libc's float_t behavior on cross compilesMarius Hillenbrand3-41/+85
When cross-compiling GCC with target libc headers available and configure option --enable-s390-excess-float-precision has been omitted, identify whether they clamp float_t to double or respect __FLT_EVAL_METHOD__ via a compile test that coerces the build-system compiler to use the target headers. Then derive the setting from that. gcc/ChangeLog: 2020-12-16 Marius Hillenbrand <mhillen@linux.ibm.com> * configure.ac: Change --enable-s390-excess-float-precision default behavior for cross compiles with target headers. * configure: Regenerate. * doc/install.texi: Adjust documentation.
2020-12-17MAINTAINERS: Add myself for write after approval.Marius Hillenbrand1-0/+1
ChangeLog: 2020-12-17 Marius Hillenbrand <mhillen@linux.ibm.com> * MAINTAINERS (Write After Approval): Add myself.
2020-12-17Fortran: Delay vtab generation until after parsing [PR92587]Tobias Burnus3-3/+83
gcc/fortran/ChangeLog: PR fortran/92587 * match.c (gfc_match_assignment): Move gfc_find_vtab call from here ... * resolve.c (gfc_resolve_code): ... to here. gcc/testsuite/ChangeLog: PR fortran/92587 * gfortran.dg/finalize_37.f90: New test.
2020-12-17PR fortran/98307 - Dependency check fails when using "allocatable"Harald Anlauf2-2/+35
The dependency check for FORALL constructs already handled pointer components to derived types, but missed allocatables. Fix that. gcc/fortran/ChangeLog: PR fortran/98307 * trans-stmt.c (check_forall_dependencies): Extend dependency check to allocatable components of derived types. gcc/testsuite/ChangeLog: PR fortran/98307 * gfortran.dg/forall_19.f90: New test.
2020-12-16test: add new Go tests from source repoIan Lance Taylor505-0/+13602
2020-12-16test: add new Go tests from source repoIan Lance Taylor274-0/+7480
2020-12-16gcc: xtensa: add optimizations for shift operationsTakayuki 'January June' Suwa2-0/+74
2020-12-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> gcc/ * config/xtensa/xtensa.md (*ashlsi3_1, *ashlsi3_3x, *ashrsi3_3x) (*lshrsi3_3x): New patterns. gcc/testsuite/ * gcc.target/xtensa/shifts.c: New test.
2020-12-17Daily bump.GCC Administrator14-1/+864