Commit Graph

180421 Commits

Author SHA1 Message Date
Martin Liska
11b8cca083 IPA: fix one more UBSAN error
It fixes:

/home/marxin/Programming/gcc2/gcc/ipa-modref-tree.h:482:22: runtime error: load of value 255, which is not a valid value for type 'bool'
    #0 0x18e5df3 in modref_tree<int>::merge(modref_tree<int>*, vec<modref_parm_map, va_heap, vl_ptr>*) /home/marxin/Programming/gcc2/gcc/ipa-modref-tree.h:482
    #1 0x18dc180 in ipa_merge_modref_summary_after_inlining(cgraph_edge*) /home/marxin/Programming/gcc2/gcc/ipa-modref.c:1779
    #2 0x18c1c72 in inline_call(cgraph_edge*, bool, vec<cgraph_edge*, va_heap, vl_ptr>*, int*, bool, bool*) /home/marxin/Programming/gcc2/gcc/ipa-inline-transform.c:492
    #3 0x4a3589c in inline_small_functions /home/marxin/Programming/gcc2/gcc/ipa-inline.c:2216
    #4 0x4a3b230 in ipa_inline /home/marxin/Programming/gcc2/gcc/ipa-inline.c:2697
    #5 0x4a3d902 in execute /home/marxin/Programming/gcc2/gcc/ipa-inline.c:3096
    #6 0x1edf831 in execute_one_pass(opt_pass*) /home/marxin/Programming/gcc2/gcc/passes.c:2509
    #7 0x1ee26af in execute_ipa_pass_list(opt_pass*) /home/marxin/Programming/gcc2/gcc/passes.c:2936
    #8 0x103f31b in ipa_passes /home/marxin/Programming/gcc2/gcc/cgraphunit.c:2700
    #9 0x103fb40 in symbol_table::compile() /home/marxin/Programming/gcc2/gcc/cgraphunit.c:2777
    #10 0x104092b in symbol_table::finalize_compilation_unit() /home/marxin/Programming/gcc2/gcc/cgraphunit.c:3022
    #11 0x235723b in compile_file /home/marxin/Programming/gcc2/gcc/toplev.c:485
    #12 0x235fff9 in do_compile /home/marxin/Programming/gcc2/gcc/toplev.c:2321
    #13 0x23605fc in toplev::main(int, char**) /home/marxin/Programming/gcc2/gcc/toplev.c:2460
    #14 0x4e2b93b in main /home/marxin/Programming/gcc2/gcc/main.c:39
    #15 0x7ffff6f0ae09 in __libc_start_main ../csu/libc-start.c:314
    #16 0x9a0be9 in _start (/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x9a0be9)

gcc/ChangeLog:

	* ipa-modref.c (compute_parm_map): Clear vector.
2020-10-19 14:02:36 +02:00
Richard Biener
361c378dda tree-optimization/97486 - avoid edge insertion in SLP vectorizing
This avoids edge inserting and eventual splitting during BB SLP
vectorization for now.

2020-10-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97486
	* tree-vect-slp.c (vect_slp_function): Split after stmts
	ending a BB.

	* gcc.dg/vect/bb-slp-pr97486.c: New testcase.
2020-10-19 13:22:49 +02:00
Jonathan Wakely
4ba60194bb libstdc++: Remove unused header
This header was not part of the patch submitted and reviewed, and was
not added to include/Makefile.am so never gets installed anyway. It
appears to have been committed by mistake, so let's remove it.

libstdc++-v3/ChangeLog:

	* include/precompiled/expc++.h: Removed.
2020-10-19 11:19:28 +01:00
Jonathan Wakely
2c6565d168 doc: Add closing parenthesis to -ffat-lto-objects docs
gcc/ChangeLog:

	* doc/invoke.texi (OPptimize Options): Add missing closing
	parenthesis.
2020-10-19 11:19:10 +01:00
Ed Schonberg
c0bab60bb9 [Ada] Ada_2020: Implement Key_Expression for named container aggregates
gcc/ada/

	* par-ch4.adb: (P_Aggregate_Or_Paren_Expr): Recognize
	Iterated_Element_Component.
	(P_Iterated_Component_Association): Rebuild node as an Iterated_
	Element_Association when Key_Expression is present, and attach
	either the Loop_Parameter_Specification or the
	Iterator_Specification to the new node.
	* sem_aggr.adb: (Resolve_Container_Aggregate):
	Resolve_Iterated_Association handles bota Iterated_Component_
	and Iterated_Element_Associations, in which case it analyzes and
	resoles the orresponding Key_Expression.
	* exp_aggr.adb (Expand_Iterated_Component): If a Key_Expression
	is present, use it as the required parameter in the call to the
	insertion routine for the destination container aggregate. Call
	this routine for both kinds of Iterated_Associations.
2020-10-19 05:53:41 -04:00
Arnaud Charlet
86b3d0d55f [Ada] Missing check on array concatenation
gcc/ada/

	* exp_ch4.adb (Expand_Concatenate): Enable needed range checks.
2020-10-19 05:53:41 -04:00
Bob Duff
84adfddd0e [Ada] Suppress warnings in expansion of "for ... of" loops
gcc/ada/

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
	Set the Warnings_Off flag on the pointer object used in the
	expansion of iterators and similar.
2020-10-19 05:53:41 -04:00
Eric Botcazou
f1f877eea9 [Ada] Use alternate stack for signal handling on PowerPC/Linux
gcc/ada/

	* Makefile.rtl (PowerPC/Linux): Use s-taspri__posix.ads instead
	of s-taspri__posix-noaltstack.ads for s-taspri.ads.
2020-10-19 05:53:41 -04:00
Piotr Trojanek
e4a238d283 [Ada] Remove excessive guards in building predicate functions
gcc/ada/

	* sem_ch13.adb (Add_Call): Remove excessive condition and
	unnecessary call to Set_Has_Predicates.
2020-10-19 05:53:40 -04:00
Yannick Moy
5ad0303141 [Ada] Alternative display of multi-line messages for GNATprove
gcc/ada/

	* debug.adb: Use debug switch -gnatdF for this alternative
	display of messages.
	* errout.adb (Output_Messages): Alternative display when -gnatdF
	is used.
	* erroutc.adb (Output_Msg_Text): Likewise.
2020-10-19 05:53:40 -04:00
Arnaud Charlet
dc55492d63 [Ada] AI12-0352: Early derivation and equality of untagged types
gcc/ada/

	* sem_ch6.adb (Check_Untagged_Equality): Check for AI12-0352.
2020-10-19 05:53:40 -04:00
Ed Schonberg
5f396397f6 [Ada] Compiler abort on in_out function parameter with type invariant
gcc/ada/

	* exp_ch6.adb (Add_View_Conversion_Invariants): Do not insert
	generated invariant checks when the call is a function call.
	These tests are properly inserted in the code in procedure
	Insert_Post_Call_Actions, which takes care of finding the proper
	insertion point for the checks.
	(Insert_Post_Call_Actions): Add question marks to indicate
	possible gap in handling function calls that appear as aggregate
	components.
2020-10-19 05:53:40 -04:00
Arnaud Charlet
44ecd94cc7 [Ada] Wrong freezing for expression function with contracts in a generic
gcc/ada/

	* contracts.adb (Process_Preconditions_For): Do not exclude
	instances.
	* sem_ch4.adb (Analyze_Quantified_Expression): Disable spurious
	warning on internally generated variables.
2020-10-19 05:53:39 -04:00
Ghjuvan Lacambre
b0a16e6d4c [Ada] Implement initialization of CUDA runtime
gcc/ada/

	* debug.adb: Document -gnatd_c flag as being used for CUDA.
	* gnat_cuda.ads: New file.
	* gnat_cuda.adb: New file.
	* rtsfind.ads: Add Interfaces_C_Strings package and
	RE_Fatbin_Wrapper, RE_Register_Fat_Binary,
	RE_Register_Fat_Binary_End, RE_Register_Function, RE_Chars_Ptr,
	RE_New_Char_Array entities.
	* rtsfind.adb: Create new Interfaces_C_Descendant subtype,
	handle it.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Call CUDA init
	procedure.
	* sem_prag.adb (Analyze_Pragma): Call Add_Cuda_Kernel procedure.
	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add gnat_cuda.o.
2020-10-19 05:53:39 -04:00
Bob Duff
2bb7741fbe [Ada] Expanded names in ghost assignments
gcc/ada/

	* ghost.adb (Whole_Object_Ref): New function to compute the name
	of the whole object.
	(Mark_And_Set_Ghost_Assignment): Rewrite to use
	Whole_Object_Ref.  We need to partly analyze the left-hand side
	in order to distinguish expanded names and record components.
	* lib-xref.ads, lib-xref.adb (Deferred_References): Move table
	to body, and add Defer_Reference to update the table, avoiding
	duplicates.
	(Generate_Reference): Avoid duplicates.
	* sem_ch8.ads, sem_ch8.adb (Find_Direct_Name): Remove _OK
	parameters, which are no longer needed. Ignore errors in
	Ignore_Errors mode.
	* sem_util.ads, sem_util.adb (Preanalyze_Without_Errors): Make
	this public, so we can call it from Ghost.
	* errout.ads, scng.adb, sem_prag.adb: Minor.
2020-10-19 05:53:39 -04:00
Ghjuvan Lacambre
08b0a5e200 [Ada] Do not replace bounds for packed arrays that depend on discriminants
gcc/ada/

	* exp_attr.adb (Expand_N_Attribute_Reference): Check if type
	depends on discriminant.
2020-10-19 05:53:38 -04:00
Bob Duff
ec28faefe1 [Ada] Ada2020: AI12-0304 Put_Image attrs of lang-def types
gcc/ada/

	* libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call
	Iterate.
2020-10-19 05:53:38 -04:00
Arnaud Charlet
b6bcca6dc1 [Ada] ACATS 4.1R - Exception missed
gcc/ada/

	* sem_aggr.adb (Resolve_Record_Aggregate): Properly apply
	subtype constraints when using a Default_Value.
	* freeze.adb: Fix typo.
2020-10-19 05:53:38 -04:00
Yannick Moy
be8d605f16 [Ada] Reject use of Relaxed_Initialization on scalar/access param or result
gcc/ada/

	* sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix bug
	where a call to Error_Msg_N leads to crash due to
	Error_Msg_Name_1 being removed by the call, while a subsequent
	call to Error_Msg_N tries to use it. The variable
	Error_Msg_Name_1 should be restored prior to the next call. Also
	add checking for the new rules.
2020-10-19 05:53:38 -04:00
Arnaud Charlet
17ea7fad28 [Ada] No range check on fixed point to integer conversion
gcc/ada/

	* checks.adb (Apply_Type_Conversion_Checks): Minor code clean
	up.
	* exp_ch4.adb (Discrete_Range_Check): Optimize range checks.
	Update comments.
	(Expand_N_Type_Conversion): Generate range check when rewriting
	a type conversion if needed. Add assertion.
	* exp_ch6.adb (Expand_Simple_Function_Return): Minor code clean
	up.
	* sem_res.adb (Resolve_Type_Conversion): Apply range check when
	needed.  Update comments.
2020-10-19 05:53:37 -04:00
Yannick Moy
a6272b85b5 [Ada] Clarify protection offered by preconditions on Ada.Text_IO units
gcc/ada/

	* libgnat/a-textio.ads: Update top-level comment.
2020-10-19 05:53:37 -04:00
Piotr Trojanek
b7fd826414 [Ada] Fix typo in error message about contract cases
gcc/ada/

	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.
2020-10-19 05:53:37 -04:00
Piotr Trojanek
2e2e6cf16f [Ada] Simplify detection of by-copy types
gcc/ada/

	* exp_ch6.adb (Expand_Actuals): Simplify condition for by-copy
	types.
2020-10-19 05:53:37 -04:00
Yannick Moy
fa366a96d0 [Ada] Clarify current design of Errout wrt global variable usage
gcc/ada/

	* errout.ads: Add comment regarding lack of preservation of
	Errout state across successive calls to the API.
2020-10-19 05:53:36 -04:00
Bob Duff
26349b6d9a [Ada] Ada2020: AI12-0304 Put_Image attrs of lang-def types
gcc/ada/

	* exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the
	base type to recognize various cases of access types.
	* libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb,
	libgnat/a-cbhama.ads, libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
	libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads, libgnat/a-cborma.adb,
	libgnat/a-cborma.ads, libgnat/a-cborse.adb, libgnat/a-cborse.ads,
	libgnat/a-cdlili.adb, libgnat/a-cdlili.ads, libgnat/a-cidlli.adb,
	libgnat/a-cidlli.ads, libgnat/a-cihama.adb, libgnat/a-cihama.ads,
	libgnat/a-cihase.adb, libgnat/a-cihase.ads, libgnat/a-cimutr.adb,
	libgnat/a-cimutr.ads, libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
	libgnat/a-ciormu.adb, libgnat/a-ciormu.ads, libgnat/a-ciorse.adb,
	libgnat/a-ciorse.ads, libgnat/a-coboho.adb, libgnat/a-coboho.ads,
	libgnat/a-cobove.adb, libgnat/a-cobove.ads, libgnat/a-cohama.adb,
	libgnat/a-cohama.ads, libgnat/a-cohase.adb, libgnat/a-cohase.ads,
	libgnat/a-coinho.adb, libgnat/a-coinho.ads,
	libgnat/a-coinho__shared.adb, libgnat/a-coinho__shared.ads,
	libgnat/a-coinve.adb, libgnat/a-coinve.ads, libgnat/a-comutr.adb,
	libgnat/a-comutr.ads, libgnat/a-coorma.adb, libgnat/a-coorma.ads,
	libgnat/a-coormu.adb, libgnat/a-coormu.ads, libgnat/a-coorse.adb,
	libgnat/a-coorse.ads, libgnat/a-strunb.adb, libgnat/a-strunb.ads,
	libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads:
	Implement Put_Image attibute.
	* libgnat/a-stteou.ads, libgnat/s-putima.ads,
	libgnat/a-stouut.ads, libgnat/a-stoubu.adb: Make
	Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
	System.Put_Images Pure, so they can be with'ed by Pure units
	that should have Put_Image defined.
	* libgnat/a-stouut.adb: Add missing column adjustments, and
	remove a redundant one.
	* libgnat/s-putima.adb (Put_Arrow): New routine to print an
	arrow. Avoids adding a with clause to some containers.
2020-10-19 05:53:36 -04:00
Bob Duff
8c8b92dcc8 [Ada] Ada2020: matching parentheses and brackets
gcc/ada/

	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Require matching
	parens or brackets.
	* par.adb, par-tchk.adb (T_Right_Bracket): New procedure to give
	an error on missing ].
2020-10-19 05:53:36 -04:00
Javier Miranda
b9d685922c [Ada] Crash in expression function defined in protected object
gcc/ada/

	* sem_ch8.adb (Find_Direct_Name): Do not trust in the decoration
	of the Entity attribute in constants associated with
	discriminals of protected types.
2020-10-19 05:53:36 -04:00
Gary Dismukes
c95f21001d [Ada] AI12-0170: Abstract subprogram calls in class-wide precond exprs
gcc/ada/

	* sem_disp.adb (Check_Dispatching_Context): When the enclosing
	subprogram is abstract, bypass early return if the call is
	tag-indeterminate, to continue with the later error checking.
2020-10-19 05:53:35 -04:00
Javier Miranda
e40cb362d0 [Ada] Private type unexpectedly visible
gcc/ada/

	* sem_ch7.adb (Uninstall_Declarations): Uninstall the
	declaration of a subtype declaration defined in the private part
	of a package.
2020-10-19 05:53:35 -04:00
Arnaud Charlet
e335bd2e6e [Ada] Clean up support of square brackets
gcc/ada/

	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify code since
	we are always under -gnatX if we encounter a Tok_Left_Bracket.
	* scng.adb (Scan): [] is an aggregate under -gnatX and a wide
	character otherwise.
2020-10-19 05:53:35 -04:00
Piotr Trojanek
52ad13baa5 [Ada] Remove useless initialization and refine type of a local variable
gcc/ada/

	* exp_ch6.adb (Expand_Call_Helper): Cleanup.
2020-10-19 05:53:34 -04:00
Piotr Trojanek
b0fa1c6806 [Ada] Refine type of a local variable
gcc/ada/

	* exp_ch6.adb (Is_Direct_Deep_Call): Refine type from Node_Id to
	Entity_Id.
2020-10-19 05:53:34 -04:00
Piotr Trojanek
5a36f3d9b8 [Ada] Simplify membership test for operators
gcc/ada/

	* exp_ch6.adb (May_Fold): Detect all operators, i.e. both binary
	and unary ones.
2020-10-19 05:53:34 -04:00
Piotr Trojanek
00bccdf048 [Ada] Simplify repeated calls with membership test
gcc/ada/

	* inline.adb (Expand_Inlined_Call): Simplify repeated calls to
	Nkind.
2020-10-19 05:53:34 -04:00
Aldy Hernandez
5b80069c7e Handle right shifts by zero in range-ops.
If the shift amount in operator_lshift::op1_range was zero, an invalid range
of [1, 0] was being created.

gcc/ChangeLog:

	PR tree-optimization/97467
	* range-op.cc (operator_lshift::op1_range): Handle shifts by 0.

gcc/testsuite/ChangeLog:

	* gcc.dg/pr97467.c: New test.
2020-10-19 11:37:15 +02:00
Richard Biener
95f27849a5 tree-optimization/97466 - remove spurious assert
This removes an assertion that was supposed to be only for temporary
debugging.  I've also re-indented the code which I missed as well.

2020-10-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97466
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
	spurious assert, re-indent.
2020-10-19 11:35:24 +02:00
guojiufu
222f312a77 [PATCH] fold x << (n % C) to x << (n & C-1) if C meets power2
This patch fixes PR66552 which is also as:
https://gcc.gnu.org/pipermail/gcc-patches/2020-February/540930.html
which requests to optimizes (x shift (n mod C)) to
(x shift (n bit_and (C - 1))) when C is a constant and power of two.

gcc/ChangeLog
2020-10-19  Li Jia He  <helijia@gcc.gnu.org>

	PR tree-optimization/66552
	* match.pd (x << (n % C) -> x << (n & C-1)): New simplification.

gcc/testsuite/ChangeLog
2020-10-19  Li Jia He  <helijia@gcc.gnu.org>

	PR tree-optimization/66552
	* gcc.dg/pr66552.c: New testcase.
2020-10-19 17:26:41 +08:00
Richard Biener
dccb0f8801 Simplify comparison GIMPLE IL verification
There's an old extra allowance for same-mode pointer comparison
for which I don't see any good reason today where the only special-case
of pointers in useless_type_conversion_p is that of function/method
pointers vs. non-function/method pointers.

2020-10-19  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_comparison): Drop special-case
	for pointer comparison.
2020-10-19 10:44:11 +02:00
Martin Liska
04ffed2ef2 libsanitizer: Add recently added commit to LOCAL_PATCHES.
libsanitizer/ChangeLog:

	* LOCAL_PATCHES: Add one commit.
2020-10-19 09:05:34 +02:00
GCC Administrator
3acb91a48e Daily bump. 2020-10-19 00:16:22 +00:00
Alexandre Oliva
1e70b1a358 revamp ada.numerics.aux
Instead of mapping elementary functions for all types to a single
type, use the intrinsics available for the various base types.

A new Ada.Numerics.Aux_Generic_Float is introduced to explicitly
dispatch, based on the 'Digits attribute of the base type, to the
various newly-added Aux_Short_Float, Aux_Float, Aux_Long_Float, or
Aux_Long_Long_Float.

The Aux_Short_Float unit is implemented in terms of the Aux_Float one,
and the others rely on the elementary functions from the C Math
library for float, double and long double types, respectively.

An Aux_Linker_Options is added, and units that import intrinsics from
libm/libc depend on it to provide the "-lm" linker option if needed.
The option is provided by default, but there is an alternate version
that doesn't, that is used for vxworks targets.

The Aux variant that used to open-code Sin and Cos for the ancient
ppc-darwin, because of insufficient precision in libc, is dropped,
along with the alternate dummy body for Aux.  Both are presumed no
longer needed.

The original Ada.Numerics.Aux is retained, for backward compatibility,
as a wrapper for a newly-added Aux_Compat, that renames
Aux_Long_Float, except on x86, in which an alternate version renames
Aux_Long_Long_Float.

Generic_Elementary_Functions and Generic_Complex_Types are adjusted to
use Aux_Generic_Float, avoiding the type conversions and inefficiencies of
computing results in higher precision than requested.

Generic_Complex_Elementary_Functions is adjusted to enable an
additional instance of the sincos optimization, even without -gnatn.


for  gcc/ada/ChangeLog

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Compile Ada.Numerics
	child units Aux_Generic_Float, Aux_Long_Long_Float, Aux_Long_Float,
	Aux_Float, Aux_Short_Float, Aux_Compat, and Aux_Linker_Options.
	(X86_TARGET_PAIRS): Drop dummy body for Aux.  Use x86 version
	of Aux_Compat.
	(X86_64_TARGET_PAIRS): Likewise.
	(LIBGNAT_TARGET_PAIRS): On VxWorks, select the nolibm
	variants.  Drop the darwin version of Aux.  Drop the redundant
	libc-x86 numaux variants on x86* kfreebsd variants.
	* libgnat/a-nagefl.ads: New Aux_Generic_Float.
	* libgnat/a-naliop.ads: New Aux_Linker_Options.
	* libgnat/a-naliop__nolibm.ads: New.
	* libgnat/a-nallfl.ads: New Aux_Long_Long_Float.
	* libgnat/a-nalofl.ads: New Aux_Long_Float.
	* libgnat/a-nuaufl.ads: New Aux_Float.
	* libgnat/a-nashfl.ads: New Aux_Short_Float.
	* libgnat/a-ngcefu.adb (Exp): Factor out the Im (X) passed to
	Sin and Cos in the Complex variant too.
	* libgnat/a-ngcoty.adb: Switch to Aux_Generic_Float.  Drop
	redundant conversions.
	* libgnat/a-ngelfu.adb: Likewise.
	* libgnat/a-nuauco.ads: New Aux_Compat.
	* libgnat/a-nuauco__x86.ads: New.
	* libgnat/a-numaux.ads: Replace with Compat wrapper.
	* libgnat/a-numaux__darwin.adb: Remove.
	* libgnat/a-numaux__darwin.ads: Remove.
	* libgnat/a-numaux__dummy.adb: Remove.
	* libgnat/a-numaux__libc-x86.ads: Remove.
	* libgnat/a-numaux__vxworks.ads: Remove.
2020-10-18 17:19:53 -03:00
Iain Sandoe
476036b35c libsanitizer, Darwin, Bootstrap : Fix bootstrap on Darwin <= 15.
The latest upstream merge for libsanitizer introduces code that makes
use of some macro values that are not available in SDKs for versions
of Darwin <= 15 (macOS 10.11).

Add definitions for these where they are not present.

libsanitizer/ChangeLog:

	* sanitizer_common/sanitizer_mac.h: Ensure that TARGET_OS_
	macros are defined where the macOS SDK does not contain
	them.
	(TARGET_OS_OSX, TARGET_OS_IOS, TARGET_OS_TV, TARGET_OS_WATCH):
	Define where needed.
2020-10-18 20:55:58 +01:00
Harald Anlauf
cd6cd6aed1 PR libfortran/97063 - Wrong result for vector (step size is negative) * matrix
The MATMUL intrinsic provided a wrong result for rank-1 times rank-2 array
when a negative stride was used for addressing the elements of the rank-1
array, because a check on strides was erroneously placed before the check
on the rank.  Interchange order of checks.

libgfortran/ChangeLog:

	* m4/matmul_internal.m4: Move check for rank-1 times rank-2 before
	checks on strides for rank-2 times rank-2.
	* generated/matmul_c10.c: Regenerated.
	* generated/matmul_c16.c: Likewise.
	* generated/matmul_c4.c: Likewise.
	* generated/matmul_c8.c: Likewise.
	* generated/matmul_i1.c: Likewise.
	* generated/matmul_i16.c: Likewise.
	* generated/matmul_i2.c: Likewise.
	* generated/matmul_i4.c: Likewise.
	* generated/matmul_i8.c: Likewise.
	* generated/matmul_r10.c: Likewise.
	* generated/matmul_r16.c: Likewise.
	* generated/matmul_r4.c: Likewise.
	* generated/matmul_r8.c: Likewise.
	* generated/matmulavx128_c10.c: Likewise.
	* generated/matmulavx128_c16.c: Likewise.
	* generated/matmulavx128_c4.c: Likewise.
	* generated/matmulavx128_c8.c: Likewise.
	* generated/matmulavx128_i1.c: Likewise.
	* generated/matmulavx128_i16.c: Likewise.
	* generated/matmulavx128_i2.c: Likewise.
	* generated/matmulavx128_i4.c: Likewise.
	* generated/matmulavx128_i8.c: Likewise.
	* generated/matmulavx128_r10.c: Likewise.
	* generated/matmulavx128_r16.c: Likewise.
	* generated/matmulavx128_r4.c: Likewise.
	* generated/matmulavx128_r8.c: Likewise.

gcc/testsuite/ChangeLog:

	* gfortran.dg/matmul_20.f90: New test.
2020-10-18 20:15:26 +02:00
GCC Administrator
019e1c85fe Daily bump. 2020-10-18 00:16:23 +00:00
David Edelsohn
cb6b952a22 testsuite: simplify target requirements for various Power9 testcases.
This patch removes unnnecessary or simplifies requirements for various
Power9 testcase.

gcc/testsuite/ChangeLog:

	* gcc.target/powerpc/p9-dimode1.c: Remove target.
	* gcc.target/powerpc/p9-dimode2.c: Remove target.
	* gcc.target/powerpc/p9-fpcvt-1.c: Remove target.
	* gcc.target/powerpc/p9-fpcvt-2.c: Require lp64.
	* gcc.target/powerpc/p9-minmax-1.c: Remove target.
	* gcc.target/powerpc/p9-minmax-2.c: Remove target.
	* gcc.target/powerpc/p9-minmax-3.c: Remove target.
	* gcc.target/powerpc/p9-splat-1.c: Require lp64.
	* gcc.target/powerpc/p9-splat-2.c: Remove target.
	* gcc.target/powerpc/p9-splat-3.c: Remove target.
	* gcc.target/powerpc/p9-splat-4.c: Require lp64.
	* gcc.target/powerpc/p9-vbpermd.c: Require lp64.
	* gcc.target/powerpc/p9-vneg.c: Require lp64.
	* gcc.target/powerpc/p9-vparity.c: Require lp64.
	* gcc.target/powerpc/p9-vpermr.c: Require LE.
	* gcc.target/powerpc/p9-xxbr-1.c: Remove target.
	* gcc.target/powerpc/p9-xxbr-2.c: Require lp64.
	* gcc.target/powerpc/p9-xxbr-3.c: Require lp64.
2020-10-17 17:07:19 -04:00
Ville Voutilainen
1f65bf2aa6 libstdc++: Fix visitor return type diagnostics [PR97449]
libstdc++-v3/ChangeLog:

	PR libstdc++/97449
	* include/std/variant
	(__gen_vtable_impl<>::_S_apply_single_alt):
	Diagnose visitor return type mismatches here..
	(__gen_vtable_impl</*base case*/>::_S_apply):
	..not here.
2020-10-17 23:10:40 +03:00
David Edelsohn
f476a9fe91 testsuite: Enable builtins-3-p9.c on BE targets.
This patch removes the unnecessary "le" target requirement
of the builtins-3-p9.c testcase.

gcc/testsuite/ChangeLog:

2020-10-16  David Edelsohn  <dje.gcc@gmail.com>

	* gcc.target/powerpc/builtins-3-p9.c: Remove le.
2020-10-16 20:27:41 -04:00
GCC Administrator
56e4eee935 Daily bump. 2020-10-17 00:16:29 +00:00
David Edelsohn
4e4d0f703d testsuite: remove explicit -m32/-m64 from testcases
Two tests in the powerpc-specific testsuite explicitly add the -m32
and -m64 commandline options, which only are valid for Linux.  And the
tests check for lp64 or ilp32, which is redundant.  This patch removes
the unnecessary commandline options.

gcc/testsuite/ChangeLog:

2020-10-16  David Edelsohn  <dje.gcc@gmail.com>

	* gcc.target/powerpc/pr96139-a.c: Remove -m32.
	* gcc.target/powerpc/pr96139-b.c: Remove -m64.
2020-10-16 20:11:26 -04:00
Harald Anlauf
02629b116e PR fortran/95979 - ICE in get_kind, at fortran/simplify.c:129
Simplification of the elemental intrinsic INDEX with constant array-valued
arguments failed with an ICE or did not reduce to a constant array, depending
also on the presence of the optional KIND argument.  Add a further attempt of
simplification in the case of elemental intrinsics, and make sure the KIND
argument is not removed prematurely during simplification of INDEX.

gcc/fortran/ChangeLog:

	PR fortran/95979
	* expr.c (gfc_check_init_expr): Fix check of return code from
	gfc_intrinsic_func_interface.
	* intrinsic.c (gfc_intrinsic_func_interface): Add further attempt
	of simplification of elemental intrinsics with array arguments.
	* iresolve.c (gfc_resolve_index_func): Keep optional KIND argument
	for simplification of elemental use of INDEX.

gcc/testsuite/ChangeLog:

	PR fortran/95979
	* gfortran.dg/index_4.f90: New test.
2020-10-16 22:17:46 +02:00