Commit Graph

167160 Commits

Author SHA1 Message Date
Jonathan Wakely
08abbddaaa PR libstdc++/89477 constrain deduction guides for maps and sets
The Compare, Hash, and Pred template parameters should be constrained in
the C++17 deduction guides for associative and unordered containers.

The deduction guides for stack, queue and priority_queue are already
constrained, but this patch makes them use the _RequireNotAllocator
helper instead of reproducing the logic each time.

	PR libstdc++/89477
	* include/bits/alloc_traits.h (_RequireNotAllocator): New helper for
	container deduction guides.
	* include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise.
	* include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain
	parameters in deduction guides.
	* include/bits/stl_multimap.h (multimap): Likewise.
	* include/bits/stl_multiset.h (multiset): Likewise.
	* include/bits/stl_queue.h (queue, priority_queue): Likewise.
	* include/bits/stl_set.h (set): Likewise.
	* include/bits/stl_stack.h (stack): Likewise.
	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
	use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to
	constrain parameters in deduction guides.
	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
	Likewise.
	* testsuite/23_containers/map/cons/deduction.cc: Test additional
	deduction cases.
	* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
	* testsuite/23_containers/set/cons/deduction.cc: Likewise.
	* testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.

From-SVN: r269234
2019-02-26 23:12:44 +00:00
Jakub Jelinek
8735903781 re PR c++/89507 (bogus "size of array exceeds maximum object size")
PR c++/89507
	* tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
	with types other than sizetype/ssizetype.

	* g++.dg/other/new2.C: New test.

From-SVN: r269233
2019-02-26 22:27:33 +01:00
Eric Botcazou
1405bf4c9c sparc-opts.h (enum processor_type): Rename to...
* config/sparc/sparc-opts.h (enum processor_type): Rename to...
	(enum sparc_processor_type): ...this.
	(enum sparc_code_model_type): New enumeration type.
	(enum sparc_memory_model_type): Tweak comments.
	* config/sparc/sparc.opt (mcpu): Adjust to above renaming.
	(mtune): Likewise.
	(mcmodel): Use sparc_code_model enumeration and variable.
	(sparc_code_model): New enumeration.
	(mdebug): Add Undocumented marker.
	* config/sparc/sparc.h (enum cmodel): Delete.
	(sparc_cmodel): Likewise.
	(TARGET_CM_MEDLOW): Adjust to above renaming.
	(TARGET_CM_MEDMID): Likewise.
	(TARGET_CM_MEDANY): Likewise.
	(TARGET_CM_EMBMEDANY): Likewise.
	* config/sparc/sparc.c (sparc_cmodel): Delete.
	(sparc_option_override): Remove string/value mapping support for the
	code model.  Move code and memory model support to after the handling
	of target flags.  Do private machine setup last.
	(sparc_emit_set_symbolic_const64): Use sparc_code_model.
	(sparc_legitimize_reload_address): Likewise.
	(sparc_output_mi_thunk): Likewise.
	* config/sparc/sparc.md (cpu): Adjust comment to above renaming.

From-SVN: r269232
2019-02-26 21:08:22 +00:00
Jakub Jelinek
9bc83f27a7 re PR tree-optimization/89500 (ICE: tree check: expected integer_cst, have ssa_name in get_len, at tree.h:5653)
PR tree-optimization/89500
	* tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
	(handle_builtin_strlen): Remove noncst_bound variable.  Always
	optimize strnlen (x, 0) to 0.  Optimize strnlen (x, cst) to
	cst if the first cst bytes starting at x are known to be non-zero,
	even if the string is not zero terminated.  Don't try to modify
	*si for strnlen.  Update strlen_to_stridx only for strlen or if
	we can prove strnlen returns the same value as strlen would.

	* gcc.dg/pr89500.c: New test.
	* gcc.dg/Wstringop-overflow-10.c: New test.
	* gcc.dg/strlenopt-60.c: New test.

From-SVN: r269230
2019-02-26 21:36:29 +01:00
Jonathan Wakely
3d7beb79e0 PR libstdc++/89416 fix alloc insertable trait for clang (again)
PR libstdc++/89416
	* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Change
	to class template and partial specialization using void_t.
	(__is_copy_insertable, __is_move_insertable): Adjust base class.

From-SVN: r269229
2019-02-26 20:34:46 +00:00
Harald Anlauf
ec2d749a10 re PR fortran/89492 (Endless compilation of an invalid TRANSFER after r269177)
2019-02-26  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/89492
	* check.c (gfc_calculate_transfer_sizes): Handle cases where
	storage size of elements of MOLD is 0.

	PR fortran/89492
	* gfortran.dg/pr89492.f90: New test.

From-SVN: r269227
2019-02-26 20:03:08 +00:00
Thomas Koenig
e5bf8dee56 re PR fortran/89496 (gcc/fortran/trans-types.c:3015:9: runtime error: member access within null pointer of type 'struct gfc_formal_arglist')
2019-02-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/89496
	* trans-types.c (get_formal_from_actual_arglist): If
	the actual arglist has no expression, the corresponding
	formal arglist is an alternate return.

2019-02-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/89496
	* gfortran.dg/altreturn_9_0.f90: New file.
	* gfortran.dg/altreturn_9_1.f90: New file.

From-SVN: r269226
2019-02-26 19:10:00 +00:00
Uros Bizjak
140a0bddcc transfer.c (transfer_array_inner): Do not cast charlen to index_type.
* io/transfer.c (transfer_array_inner): Do not
	cast charlen to index_type.

From-SVN: r269224
2019-02-26 19:41:53 +01:00
Martin Liska
60448173c4 Improve memory statistics report readability.
2019-02-26  Martin Liska  <mliska@suse.cz>

	* alloc-pool.h (struct pool_usage): Remove extra
	print_dash_line.
	* bitmap.h (struct bitmap_usage): Likewise.
	* ggc-common.c (struct ggc_usage): Likewise.
	* mem-stats.h (struct mem_usage): Likewise.
	(mem_alloc_description::dump): Print dash lines
	here and repeat header at the end of a table report.
	It's then more readable.
	* tree-phinodes.c (phinodes_print_statistics): Make
	horizontal alignment.
	* tree-ssanames.c (ssanames_print_statistics): Likewise.
	* vec.c (struct vec_usage): Remove extra print_dash_line.
	* vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
2019-02-26  Martin Liska  <mliska@suse.cz>

	* symtab.c (ht_dump_statistics): Make
	horizontal alignment for statistics.

From-SVN: r269221
2019-02-26 17:27:52 +00:00
Martin Liska
24f0c84247 Remove a legacy lto-symtab.c file.
2019-02-26  Martin Liska  <mliska@suse.cz>

	* lto-symtab.c: Remove.

From-SVN: r269220
2019-02-26 17:27:36 +00:00
Uros Bizjak
062937663c extend.texi (__builtin_object_size): Use @pxref instead of @xref inside parenthesis.
* doc/extend.texi (__builtin_object_size):
	Use @pxref instead of @xref inside parenthesis.
	(__builtin_has_attribute): Add missing comma after @xref.
	(__builtin_object_size): Ditto.
	* doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
	* fortran/invoke.texi (-ffpe-trap): Use @var for every item
	in the list.

From-SVN: r269219
2019-02-26 18:21:43 +01:00
Jeff Law
f73675e3c7 re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398)
PR rtl-optimization/87761
	* regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
	detect obviously dead insns and delete them.

From-SVN: r269218
2019-02-26 10:08:06 -07:00
Tom de Vries
067aef033f [libbacktrace] Fix btest-lto for older gcc
With gcc 4.8.5, btest_lto ends up with a privatized name for the variable with
name 'global':
...
$ nm btest_lto | grep ' d ' | grep global
0000000000617150 d global.2530
...
which makes test5 fail:
...
    test5: unexpected syminfo name got global.2530 expected global
...

Fix this failure by accepting this type of name as a valid name in btest_lto.

2019-02-26  Tom de Vries  <tdevries@suse.de>

	* btest.c (test5): Allow global.* as minimal symbol name for global.

From-SVN: r269217
2019-02-26 16:09:40 +00:00
Ian Lance Taylor
4fd3c8aad9 libgo: update to Go 1.12 release
Reviewed-on: https://go-review.googlesource.com/c/163742

From-SVN: r269216
2019-02-26 15:38:12 +00:00
Ian Lance Taylor
5c98b419f7 re PR go/86535 (FreeBSD/PowerPC64 - Building Go Frontend support for gcc 7.3.0 fails)
PR go/86535
    runtime: always declare nanotime in Go
    
    For libgo it's always defined in C.
    
    Updates https://gcc.gnu.org/PR86535
    
    Reviewed-on: https://go-review.googlesource.com/c/163743

From-SVN: r269214
2019-02-26 14:46:56 +00:00
Jakub Jelinek
c7f7c313c0 re PR c++/89481 (constexpr function allows writing one active union member and reading another)
PR c++/89481
	* constexpr.c (cxx_eval_store_expression): When changing active union
	member, set no_zero_init.

	* g++.dg/cpp1y/constexpr-89481.C: New test.

From-SVN: r269213
2019-02-26 15:37:39 +01:00
Richard Biener
01c3ddcffb re PR tree-optimization/89505 (LibreOffice miscompilation starting with r260383)
2019-02-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89505
	* tree-ssa-structalias.c (compute_dependence_clique): Make sure
	to handle restrict pointed-to vars with multiple subvars
	correctly.

	* gcc.dg/torture/pr89505.c: New testcase.

From-SVN: r269212
2019-02-26 14:09:19 +00:00
Richard Biener
302fe7500a re PR tree-optimization/89489 (ICE in gimple_duplicate_bb, at tree-cfg.c:6257)
2019-02-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89489
	* tree-parloops.c (create_loop_fn): Copy over last_clique.

From-SVN: r269210
2019-02-26 11:03:45 +00:00
Eric Botcazou
cf02f8a350 opt77.adb: New test.
* gnat.dg/opt77.adb: New test.
	* gnat.dg/opt77_pkg.ad[sb]: New helper.

From-SVN: r269208
2019-02-26 10:55:16 +00:00
Jakub Jelinek
0eaf141239 re PR fortran/43210 (Initializer of huge static arrays should be improved)
PR fortran/43210
	* trans-array.c (gfc_conv_array_initializer): Use RANGE_EXPR instead
	of duplicating the initializer possibly many times.

From-SVN: r269207
2019-02-26 11:36:05 +01:00
Jakub Jelinek
ba790e6f5e re PR target/89474 (ice in df_reg_chain_verify_unmarked, at df-scan.c:3995)
PR target/89474
	* config/i386/i386.c (remove_partial_avx_dependency): Call
	df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
	after changing possibly many instructions to use that pseudo.  Fix up
	insertion of v4sf_const0 setter at the start of bb.

	* gcc.target/i386/pr89474.c: New test.

From-SVN: r269206
2019-02-26 11:08:29 +01:00
Tom de Vries
d831b1ec03 [libbacktrace] Require dwz for b3test_dwz_buildid
If dwz is not available, then the libbacktrace test b3test_dwz_buildid fails
like this:
...
gmake[4]: *** No rule to make target 'b3test_dwz_buildid'
...

Fix this by guarding the test with HAVE_DWZ.

Tested on x86_64 with and without dwz installed.

2019-02-26  Tom de Vries  <tdevries@suse.de>

	* Makefile.am (TESTS): Only add b3test_dwz_buildid if HAVE_DWZ.
	* Makefile.in: Regenerate.

From-SVN: r269204
2019-02-26 07:54:57 +00:00
Sandra Loosemore
476e0d3747 re PR c/80409 (Document that va_arg(ap, void*) can be used to consume any pointer argument)
2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>

	PR c/80409

	gcc/
	* doc/extend.texi (Variadic Pointer Args): New section.

From-SVN: r269203
2019-02-25 21:33:26 -05:00
Ian Lance Taylor
99e20ba51d libgo: update to Go1.12rc1
Reviewed-on: https://go-review.googlesource.com/c/162881

From-SVN: r269202
2019-02-26 01:00:39 +00:00
GCC Administrator
e5e9b91bc6 Daily bump.
From-SVN: r269201
2019-02-26 00:16:21 +00:00
Jakub Jelinek
7da73ba7ef re PR c/89495 (gcc/c-family/c-format.c:1272:20: runtime error: signed integer overflow: 214748365 * 10 cannot be represented in type 'int')
PR c/89495
	* c-format.c (maybe_read_dollar_number): Compute nargnum in
	HOST_WIDE_INT type to avoid overflows and change overflow_flag
	checking.

From-SVN: r269198
2019-02-26 00:43:51 +01:00
Jakub Jelinek
7969545012 re PR c/77754 (internal compiler error : tree code 'call_expr' is not supported in LTO streams)
PR c/77754
	* gcc.c-torture/compile/pr77754-1.c: New test.
	* gcc.c-torture/compile/pr77754-2.c: New test.
	* gcc.c-torture/compile/pr77754-3.c: New test.
	* gcc.c-torture/compile/pr77754-4.c: New test.
	* gcc.c-torture/compile/pr77754-5.c: New test.
	* gcc.c-torture/compile/pr77754-6.c: New test.

From-SVN: r269197
2019-02-25 23:58:45 +01:00
Sandra Loosemore
d3a02ae53b c.opt (Wmissing-attributes): Clean up doc string.
2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
	    Martin Sebor  <msebor@gmail.com>

	gcc/
	* c-family/c.opt (Wmissing-attributes): Clean up doc string.
	* common.opt (Wattribute-alias): Likewise.
	* doc/invoke.texi (Option Summary): List general form of
	-Wattribute-alias=.  List positive form of -Wmissing-attributes.
	(-Wmissing-attributes): Invert entry, rewrite and correct default.
	Add cross-references.
	(-Wattribute-alias): Rewrite and correct default.  Mention
	considered attributes (same as for -Wmissing-attributes).

Co-Authored-By: Martin Sebor <msebor@gmail.com>

From-SVN: r269196
2019-02-25 15:38:42 -05:00
Paul A. Clarke
db739d3ca3 [rs6000] PR89338, PR89339: Fix compat vector intrinsics for BE and 32-bit
Test FAILS: sse2-cvtpd2dq-1, sse2-cvtpd2ps, sse2-cvttpd2dq on powerpc64
(big-endian).

_mm_cvtpd_epi32, _mm_cvtpd_ps, _mm_cvttpd_epi32: Type conversion from
vector doubleword type to vector word type leaves the results in even
lanes in big endian mode.

Test FAILS: sse-cvtss2si-1, sse-cvtss2si-2, sse-movmskb-1 on powerpc
(32-bit big-endian).

Incorrect type for interpreting the result from mfvsrd instruction leads
to incorrect results.  Also, mfvsrd instruction only works as expected in
64-bit mode or for 32-bit quantities in 32-bit mode.  A more general,
if slower, solution is needed for 32-bit mode.

2019-02-25  Paul A. Clarke  <pc@us.ibm.com>

[gcc]

	* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
	(_mm_cvtpd_ps): Likewise.
	(_mm_cvttpd_epi32): Likewise.

	PR target/89338
	* config/rs6000/xmmintrin.h (_mm_cvtss_f32):  Fix type mismatch.
	(_mm_cvt_ss2si): Fix type mismatch and 32-bit.

	PR target/89339
	* config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.

From-SVN: r269195
2019-02-25 19:36:05 +00:00
Joseph Myers
b5c44c5778 * fr.po: Update.
From-SVN: r269194
2019-02-25 18:48:48 +00:00
Tamar Christina
4ca82fc9f8 AArch64: Fix command line options canonicalization version #2. (PR target/88530)
Commandline options on AArch64 don't get canonicalized into the smallest
possible set before output to the assembler. This means that overlapping feature
sets are emitted with superfluous parts.

Normally this isn't an issue, but in the case of crypto we have retro-actively
split it into aes and sha2. We need to emit only +crypto to the assembler
so old assemblers continue to work.

Because of how -mcpu=native and -march=native work they end up enabling all
feature bits. Instead we need to get the smallest possible set, which would also
fix the problem with older the assemblers and the retro-active split.

The function that handles this is called quite often.  It is called for any
push/pop options or attribute that changes arch, cpu etc.  In order to not make
this search for the smallest set too expensive we sort the options based on the
number of features (bits) they enable.  This allows us to process the list
linearly instead of quadratically (Once we have enabled a feature, we know that
anything else that enables it can be ignored.  By sorting we'll get the biggest
groups first and thus the smallest combination of commandline flags).

The Option handling structures have been extended to have a boolean to indicate
whether the option is synthetic, with that I mean if the option flag itself
enables a new feature.

e.g. +crypto isn't an actual feature, it just enables other features, but others
like +rdma enable multiple dependent features but is itself also a feature.

There are two ways to solve this.

1) Either have the options that are feature bits also turn themselves on, e.g.
   change rdma to turn on FP, SIMD and RDMA as dependency bits.

2) Make a distinction between these two different type of features and have the
   framework handle it correctly.

Even though it's more code I went for the second approach, as it's the one
that'll be less fragile (people can't forget it) and gives the least surprises.

Effectively this patch changes the following:

The values before the => are the old compiler and after the => the new code.

-march=armv8.2-a+crypto+sha2 => -march=armv8.2-a+crypto
-march=armv8.2-a+sha2+aes => -march=armv8.2-a+crypto

The remaining behaviors stay the same.

gcc/ChangeLog:

	PR target/88530
	* common/config/aarch64/aarch64-common.c
	(struct aarch64_option_extension): Add is_synthetic.
	(all_extensions): Use it.
	(TARGET_OPTION_INIT_STRUCT): Define hook.
	(struct gcc_targetm_common): Moved to end.
	(all_extensions_by_on): New.
	(opt_ext_cmp, typedef opt_ext): New.
	(aarch64_option_init_struct): New.
	(aarch64_contains_opt): New.
	(aarch64_get_extension_string_for_isa_flags): Output smallest set.
	* config/aarch64/aarch64-option-extensions.def
	(AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
	(fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
	sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
	Set is_synthetic to false.
	(crypto): Set is_synthetic to true.
	* config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
	SYNTHETIC.

gcc/testsuite/ChangeLog:

	PR target/88530
	* gcc.target/aarch64/options_set_1.c: New test.
	* gcc.target/aarch64/options_set_2.c: New test.
	* gcc.target/aarch64/options_set_3.c: New test.
	* gcc.target/aarch64/options_set_4.c: New test.
	* gcc.target/aarch64/options_set_5.c: New test.
	* gcc.target/aarch64/options_set_6.c: New test.
	* gcc.target/aarch64/options_set_7.c: New test.
	* gcc.target/aarch64/options_set_8.c: New test.
	* gcc.target/aarch64/options_set_9.c: New test.

From-SVN: r269193
2019-02-25 17:57:01 +00:00
Tamar Christina
99cf78cf2e Arm: Update Armv8.4-a's FP16 FML intrinsics
This patch updates the Armv8.4-a FP16 FML intrinsics's suffixes from u32 to f16
to be more consistent with the naming convention for intrinsics.

The specifications for these intrinsics have not been published yet so we do
not need to maintain the old names.

The patch was created with the following script:

grep -lIE "(vfml[as].+)_u32" -r gcc/ | grep -iEv ".+Changelog.*" \
  | xargs sed -i -E -e "s/(vfml[as].+)_u32/\1_f16/g" 

gcc/ChangeLog:

	* config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
	vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
	vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
	vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
	vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
	vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
	vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
	vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
	Rename ...
	(vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
	vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
	vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
	vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
	vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
	vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
	vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
	vfmlsl_laneq_high_f16): ... To this.
	* config/arm/neon.md: Update comments.

gcc/testsuite/ChangeLog:

	* gcc.target/arm/simd/fp16fml_high.c (test_vfmlal_high_u32,
	test_vfmlalq_high_u32, test_vfmlsl_high_u32, test_vfmlslq_high_u32):
	Rename ....
	(test_vfmlal_high_f16, test_vfmlalq_high_f16, test_vfmlsl_high_f16,
	test_vfmlslq_high_f16): ... To this.
	* gcc.target/arm/simd/fp16fml_lane_high.c (test_vfmlal_lane_high_u32,
	tets_vfmlsl_lane_high_u32, test_vfmlal_laneq_high_u32,
	test_vfmlsl_laneq_high_u32, test_vfmlalq_lane_high_u32,
	test_vfmlslq_lane_high_u32, test_vfmlalq_laneq_high_u32,
	test_vfmlslq_laneq_high_u32): Rename ...
	(test_vfmlal_lane_high_f16, tets_vfmlsl_lane_high_f16,
	test_vfmlal_laneq_high_f16, test_vfmlsl_laneq_high_f16,
	test_vfmlalq_lane_high_f16, test_vfmlslq_lane_high_f16,
	test_vfmlalq_laneq_high_f16, test_vfmlslq_laneq_high_f16): ... To this.
	* gcc.target/arm/simd/fp16fml_lane_low.c (test_vfmlal_lane_low_u32,
	test_vfmlsl_lane_low_u32, test_vfmlal_laneq_low_u32,
	test_vfmlsl_laneq_low_u32, test_vfmlalq_lane_low_u32,
	test_vfmlslq_lane_low_u32, test_vfmlalq_laneq_low_u32,
	test_vfmlslq_laneq_low_u32): Rename ...
	(test_vfmlal_lane_low_f16, test_vfmlsl_lane_low_f16,
	test_vfmlal_laneq_low_f16, test_vfmlsl_laneq_low_f16,
	test_vfmlalq_lane_low_f16, test_vfmlslq_lane_low_f16,
	test_vfmlalq_laneq_low_f16, test_vfmlslq_laneq_low_f16): ... To this.
	* gcc.target/arm/simd/fp16fml_low.c (test_vfmlal_low_u32,
	test_vfmlalq_low_u32, test_vfmlsl_low_u32, test_vfmlslq_low_u32):
	Rename ...
	(test_vfmlal_low_f16, test_vfmlalq_low_f16, test_vfmlsl_low_f16,
	test_vfmlslq_low_f16): ... To this.

From-SVN: r269192
2019-02-25 17:48:55 +00:00
Tamar Christina
9d04c986b6 AArch64: Update Armv8.4-a's FP16 FML intrinsics
This patch updates the Armv8.4-a FP16 FML intrinsics's suffixes from u32 to f16
to be more consistent with the naming convention for intrinsics.

The specifications for these intrinsics have not been published yet so we do
not need to maintain the old names.

The patch was created with the following script:

grep -lIE "(vfml[as].+)_u32" -r gcc/ | grep -iEv ".+Changelog.*" \
  | xargs sed -i -E -e "s/(vfml[as].+)_u32/\1_f16/g"

gcc/ChangeLog:

	* config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
	vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
	vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
	vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
	vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
	vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
	vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
	vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
	Rename ...
	(vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
	vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
	vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
	vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
	vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
	vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
	vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
	vfmlslq_laneq_high_f16): ... To this.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/fp16_fmul_high.h (test_vfmlal_high_u32,
	test_vfmlalq_high_u32, test_vfmlsl_high_u32, test_vfmlslq_high_u32):
	Rename ...
	(test_vfmlal_high_f16, test_vfmlalq_high_f16, test_vfmlsl_high_f16,
	test_vfmlslq_high_f16): ... To this.
	* gcc.target/aarch64/fp16_fmul_lane_high.h (test_vfmlal_lane_high_u32,
	tets_vfmlsl_lane_high_u32, test_vfmlal_laneq_high_u32,
	test_vfmlsl_laneq_high_u32, test_vfmlalq_lane_high_u32,
	test_vfmlslq_lane_high_u32, test_vfmlalq_laneq_high_u32,
	test_vfmlslq_laneq_high_u32): Rename ...
	(test_vfmlal_lane_high_f16, tets_vfmlsl_lane_high_f16,
	test_vfmlal_laneq_high_f16, test_vfmlsl_laneq_high_f16,
	test_vfmlalq_lane_high_f16, test_vfmlslq_lane_high_f16,
	test_vfmlalq_laneq_high_f16, test_vfmlslq_laneq_high_f16): ... To this.
	* gcc.target/aarch64/fp16_fmul_lane_low.h (test_vfmlal_lane_low_u32,
	test_vfmlsl_lane_low_u32, test_vfmlal_laneq_low_u32,
	test_vfmlsl_laneq_low_u32, test_vfmlalq_lane_low_u32,
	test_vfmlslq_lane_low_u32, test_vfmlalq_laneq_low_u32,
	test_vfmlslq_laneq_low_u32): Rename ...
	(test_vfmlal_lane_low_f16, test_vfmlsl_lane_low_f16,
	test_vfmlal_laneq_low_f16, test_vfmlsl_laneq_low_f16,
	test_vfmlalq_lane_low_f16, test_vfmlslq_lane_low_f16,
	test_vfmlalq_laneq_low_f16, test_vfmlslq_laneq_low_f16): ... To this.
	* gcc.target/aarch64/fp16_fmul_low.h (test_vfmlal_low_u32,
	test_vfmlalq_low_u32, test_vfmlsl_low_u32, test_vfmlslq_low_u32):
	Rename ...
	(test_vfmlal_low_f16, test_vfmlalq_low_f16, test_vfmlsl_low_f16,
	test_vfmlslq_low_f16): ... To This.
	* lib/target-supports.exp
	(check_effective_target_arm_fp16fml_neon_ok_nocache): Update test.

From-SVN: r269191
2019-02-25 17:46:16 +00:00
Dominique d'Humieres
6388eda068 re PR fortran/89282 (Garbage arithmetics results in fortran with -O3 and overloaded operators)
2019-02-25  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR fortran/89282
	* gfortran.dg/overload_3.f90: New test.

From-SVN: r269190
2019-02-25 16:19:45 +01:00
Alexander Monakov
74a4de687d df-scan: fix use of mw_order in df_mw_compare (PR 86096)
PR rtl-optimization/86096
	* df-scan.c (df_mw_compare): Do not check mw_reg fields when
	comparing mw_order values.

From-SVN: r269189
2019-02-25 18:14:39 +03:00
Jakub Jelinek
ea229aa8a1 re PR c++/89285 (ICE after casting the this pointer in the constructor in C++17 mode)
PR c++/89285
	* g++.dg/cpp1y/constexpr-89285-2.C: New test.

From-SVN: r269188
2019-02-25 16:01:01 +01:00
Dominique d'Humieres
b8f412849b re PR libfortran/89274 (Inconsistent list directed output of INTEGER(16))
2019-02-25  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR libfortran/89274
	* gfortran.dg/list_directed_large.f90: New test. 

2019-02-25  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR libfortran/89274
	* io/write.c (write_integer): Add width for INTEGER(16).

From-SVN: r269187
2019-02-25 11:39:38 +01:00
Jakub Jelinek
5c56124837 re PR target/89434 (wrong code with -Og and __builtin_mul_overflow())
PR target/89434
	* config/arm/arm.md (*subsi3_carryin_const): Use
	arm_neg_immediate_operand predicate instead of
	arm_not_immediate_operand, "L" constraint instead of "K" and
	print it using %n2 instead of %B2.
	(*subsi3_carryin_const0): New define_insn.
	(*subsi3_carryin_compare_const): Use const_int_I_operand predicate
	instead of arm_not_operand and "I" constraint instead of "K" and
	print it using %n3 instead of %B2.  Instead of using match_dup 2 add
	another match_operand and in the condition check that it is negation
	of operands[2].
	(*subsi3_carryin_compare_const0): New define_ins.
	(*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
	*subsi3_carryin_const.
	(*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
	split into *subsi3_carryin_compare_const0 if the highpart is zero.

	* gcc.c-torture/execute/pr89434.c: New test.

From-SVN: r269186
2019-02-25 11:32:38 +01:00
Jakub Jelinek
4199c859ac re PR target/89438 (ICE in glibc/sysdeps/ieee754/dbl-64/e_pow.c (internal compiler error: in decompose, at rtl.h:2266))
PR target/89438
	* config/arm.vfp.md (*negdf2_vfp): Use
	gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
	* config/arm/neon.md (neon_copysignf<mode>): Likewise.

	* gcc.dg/pr89438.c: New test.

From-SVN: r269185
2019-02-25 10:51:27 +01:00
GCC Administrator
82eadb9458 Daily bump.
From-SVN: r269183
2019-02-25 00:16:31 +00:00
Paolo Carlini
34b2e931cd re PR c++/84585 (internal compiler error: in get_local_decls, at cp/name-lookup.c:3654)
2019-02-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84585
	* g++.dg/cpp0x/pr84585.C: New.

From-SVN: r269180
2019-02-24 23:44:11 +00:00
Thomas Koenig
4afe82523f re PR fortran/89174 (Allocation segfault with CLASS(*) MOLD)
2019-02-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/89174
	* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Add is_mold
	to garguments. If we are dealing with a MOLD, call
	gfc_expr_to_initialize().
	* trans-stmt.c (gfc_trans_allocate): For MOLD, pass is_mold=true
	to gfc_find_and_cut_at_last_class_ref.
	* trans.h (gfc_find_and_cut_at_last_class_ref): Add optional
	argument is_mold with default false.

2019-02-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/89174
	* gfortran.dg/allocate_with_mold_3.f90: New test.

From-SVN: r269179
2019-02-24 22:49:47 +00:00
H.J. Lu
28d08ad204 i386: Compile PR target/87007 tests with -mfpmath=sse
-mfpmath=sse is needed to enable SSE for FP math in 32-bit.

	PR target/87007
	* gcc.target/i386/pr87007-1.c: Compile with -mfpmath=sse.
	* gcc.target/i386/pr87007-2.c: Likewise.

From-SVN: r269178
2019-02-24 14:41:55 -08:00
Harald Anlauf
cdd1793162 re PR fortran/89266 (ICE with TRANSFER of len=0 character array constructor)
2019-02-24  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/89266
	PR fortran/88326
	* target-memory.c (gfc_element_size): Return false if element size
	cannot be determined; element size is returned separately.
	(gfc_target_expr_size): Return false if expression size cannot be
	determined; expression size is returned separately.
	* target-memory.h: Adjust prototypes.
	* check.c (gfc_calculate_transfer_sizes): Adjust references to
	gfc_target_expr_size, gfc_element_size.
	* arith.c (hollerith2representation): Likewise.
	* class.c (find_intrinsic_vtab): Likewise.
	* simplify.c (gfc_simplify_sizeof): Likewise.

	PR fortran/89266
	PR fortran/88326
	* gfortran.dg/pr89266.f90: New test.
	* gfortran.dg/pr88326.f90: New test.

From-SVN: r269177
2019-02-24 20:03:28 +00:00
Jakub Jelinek
953e25c44a re PR rtl-optimization/89445 (_mm512_maskz_loadu_pd "forgets" to use the mask)
PR rtl-optimization/89445
	* simplify-rtx.c (simplify_ternary_operation): Don't use
	simplify_merge_mask on operands that may trap.
	* rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
	SCALAR_FLOAT_MODE_P checks.  For integral division by zero, if
	second operand is CONST_VECTOR, check if any element could be zero.
	Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
	their operands can trap.

	* gcc.target/i386/avx512f-pr89445.c: New test.

From-SVN: r269176
2019-02-24 20:23:51 +01:00
Jonathan Wakely
c7f01cb61d PR libstdc++/89416 fix accessibility of members
PR libstdc++/89416
	* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Make
	copy and move members public.

From-SVN: r269175
2019-02-24 15:44:18 +00:00
GCC Administrator
00c80d9c23 Daily bump.
From-SVN: r269173
2019-02-24 00:16:26 +00:00
Jonathan Wakely
4746651327 Improve error message for bad arguments to script
* generate_libstdcxx_web_docs: Improve error output.

From-SVN: r269169
2019-02-23 21:19:04 +00:00
Jonathan Wakely
3c26b7598c P0340R2 Making std::underlying_type SFINAE-friendly
* include/std/type_traits (__underlying_type_impl): New helper to
	make underlying_type SFINAE-friendly.
	(underlying_type): Derive from __underlying_type_impl.
	* testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New
	test.

From-SVN: r269168
2019-02-23 21:19:00 +00:00
Martin Sebor
46d496b9d9 builtin-sprintf-10.c: Cast remaining wchar_t to wint_t to avoid a bogus -Wformat warning in ILP32...
gcc/testsuite/ChangeLog:
	* gcc.dg/tree-ssa/builtin-sprintf-10.c: Cast remaining
	wchar_t to wint_t to avoid a bogus -Wformat warning in
	ILP32 (bug 77970).

From-SVN: r269167
2019-02-23 13:46:04 -07:00