Commit Graph

168187 Commits

Author SHA1 Message Date
Jonathan Wakely 0cb78ef4bc Define std::hash specializations for C++17 PMR strings
These hash specializations should have been added when the pmr::string
and related typedefs were added.

	* include/std/string (__hash_string_base): New class template defining
	operator() for hashing strings.
	(hash<pmr::string>, hash<pmr::u8string>, hash<pmr::u16string>)
	(hash<pmr::u32string>, hash<pmr::wstring>): Define for C++17.
	* testsuite/21_strings/basic_string/hash/hash.cc: New test.
	* testsuite/21_strings/basic_string/hash/hash_char8_t.cc: New test.

From-SVN: r270116
2019-04-03 10:47:47 +01:00
Dominique d'Humieres 3a3976b14e re PR fortran/89375 (fortran/expr.c:4723:5: warning: logical ‘or’ of equal expressions [-Wlogical-op])
2019-04-03  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR fortran/89375
	* expr.c (comp_pointer): Remove redundant condition.

From-SVN: r270115
2019-04-03 11:00:27 +02:00
Richard Biener bb52a82aff re PR lto/89896 (-flto=4 is confused by presence of 'all.c' in a local directory. -flto=1 is not.)
2019-04-03  Richard Biener  <rguenther@suse.de>

	PR lto/89896
	* lto-wrapper.c (run_gcc): Avoid implicit rules making
	the all target phony.

From-SVN: r270112
2019-04-03 08:46:00 +00:00
Jason Merrill a337918676 PR c++/89917 - ICE with lambda in variadic mem-init.
A mem-initializer is not a type, and we don't want to turn autos within it
into packs.

	* pt.c (make_pack_expansion): Change type_pack_expansion_p to false.

From-SVN: r270111
2019-04-03 00:48:45 -04:00
GCC Administrator 38802907f2 Daily bump.
From-SVN: r270110
2019-04-03 00:16:11 +00:00
Jeff Law 5e4ea79dc2 * gcc.target/visium/bit_shift.c: xfail.
From-SVN: r270105
2019-04-02 13:45:14 -06:00
Uros Bizjak f401d62362 re PR target/89902 (ICE: in extract_insn, at recog.c:2310: unrecognizable insn with -mavx512bitalg)
PR target/89902
	PR target/89903
	* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
	Return false for variable DImode shifts.
	(dimode_scalar_chain::compute_convert_gain): Do not handle
	register count operand in variable DImode shifts.
	(dimode_scalar_chain::make_vector_copies): Remove support to copy
	count argument of a variable shift instruction to a vector register.
	(dimode_scalar_chain::convert_reg): Remove support to convert
	count argument of a variable shift instruction.

testsuite/ChangeLog:

	PR target/89902
	PR target/89903
	* gcc.target/i386/pr70799-4.c: Remove.
	* gcc.target/i386/pr70799-5.c: Remove.
	* gcc.target/i386/pr89902.c: New test.
	* gcc.target/i386/pr89903.c: Ditto.

From-SVN: r270102
2019-04-02 19:05:59 +02:00
Andrey Belevantsev 6fb8055edd sel-sched: skip outer loop in get_all_loop_exits (PR 84206)
2019-04-02  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/84206
	* sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
	iterating over loop headers.

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

From-SVN: r270096
2019-04-02 18:45:57 +03:00
Andrey Belevantsev 7dc69ec076 sel-sched: fixup reset of first_insn (PR 85876)
2019-04-02  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/85876
	* sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
	beyond the original fence.

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

From-SVN: r270095
2019-04-02 18:39:22 +03:00
Ulrich Weigand 43f47cdf13 Obsolete Cell Broadband Engine SPU target support
gcc/ChangeLog:
2019-04-02  Ulrich Weigand  <uweigand@de.ibm.com>

        * config.gcc: Mark spu* targets as deprecated/obsolete.

From-SVN: r270092
2019-04-02 14:08:06 +00:00
Andreas Krebbel 59f7879992 S/390: arch13: vector float-int conversion builtins
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: New builtin function type
	definitions. Remove unused types.
	* config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
	(s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
	(s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
	overloaded builtins.
	(s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
	(s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
	* config/s390/vecintrin.h (vec_float): New builtin macro definition.
	(vec_double, vec_signed, vec_unsigned): Define to use the new
	overloaded builtins.
	* config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
	Remove expanders.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-double-compile.c: New test.
	* gcc.target/s390/zvector/vec-float-compile.c: New test.
	* gcc.target/s390/zvector/vec-signed-compile.c: New test.
	* gcc.target/s390/zvector/vec-unsigned-compile.c: New test.

From-SVN: r270091
2019-04-02 11:10:13 +00:00
Andreas Krebbel 49adc46180 S/390: arch13: vector string search builtins
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: New builtin function type
	definitions.
	* config/s390/s390-builtins.def (s390_vec_search_string_cc)
	(s390_vec_search_string_until_zero_cc): New overloaded builtins.
	(s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
	(s390_vstrszh, s390_vstrszf): New low-level builtins.
	* config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
	constant definitions.
	* config/s390/vecintrin.h (vec_search_string_cc)
	(vec_search_string_until_zero_cc): New builtin name definitions.
	* config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
	expanders.
	("vec_vstrs<mode>"): New insn definition.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-search-string-cc-1.c: New test.
	* gcc.target/s390/zvector/vec-search-string-cc-compile.c: New test.
	* gcc.target/s390/zvector/vec-search-string-until-zero-cc-1.c: New test.
	* gcc.target/s390/zvector/vec-search-string-until-zero-cc-compile.c: New test.

From-SVN: r270090
2019-04-02 11:08:54 +00:00
Andreas Krebbel ad7a3e3997 S/390: arch13: vector shift double by bit builtins
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new builtin function
	types.
	* config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
	New overloaded builtins.
	(s390_vec_sldb, s390_vec_srdb): New low-level builtins.  and
	s390_vsrd.
	* config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
	(UNSPEC_VEC_SLDBYTE): ... this.
	(UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
	* config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
	definitions.
	* config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
	Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
	("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-shift-left-double-by-bit-1.c: New test.
	* gcc.target/s390/zvector/vec-shift-right-double-by-bit-1.c: New test.

From-SVN: r270089
2019-04-02 11:07:44 +00:00
Andreas Krebbel 6913111a95 S/390: arch13: vector load byte reversed element and replicate
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
	New insn definition.
	* config/s390/vx-builtins.md (V_HW_HSD): Move to ...
	* config/s390/vector.md (V_HW_HSD): ... here.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/replicate-bswap-1.c: New test.
	* gcc.target/s390/zvector/replicate-bswap-2.c: New test.

From-SVN: r270088
2019-04-02 11:06:30 +00:00
Alexander Monakov b5e100c5e3 testsuite: do not try to add -m32 (PR 89916)
PR testsuite/89916
	* gcc.dg/pr86928.c: Do not attempt to add -m32.

From-SVN: r270087
2019-04-02 14:04:22 +03:00
Andreas Krebbel b112d1c928 S/390: arch13: vector load/store byte reversed element for builtins
2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
	* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
	("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
	("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
	New insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/bswap-and-replicate-1.c: New test.
	* gcc.target/s390/zvector/get-element-bswap-1.c: New test.
	* gcc.target/s390/zvector/get-element-bswap-2.c: New test.
	* gcc.target/s390/zvector/get-element-bswap-3.c: New test.
	* gcc.target/s390/zvector/get-element-bswap-4.c: New test.
	* gcc.target/s390/zvector/set-element-bswap-1.c: New test.
	* gcc.target/s390/zvector/set-element-bswap-2.c: New test.
	* gcc.target/s390/zvector/set-element-bswap-3.c: New test.

From-SVN: r270086
2019-04-02 11:03:40 +00:00
Andreas Krebbel 3278804e59 S/390: arch13: vec_reve element order reversal builtins
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new builtin function type.
	* config/s390/s390-builtins.def: Add overloaded builtin
	s390_vec_reve and low-level builtins for s390_vler and s390_vster.
	* config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
	* config/s390/vecintrin.h (vec_reve): New builtin name definition.
	* config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
	("eltswap<mode>"): New expander.
	("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
	insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-reve-load-byte-z14.c: New test.
	* gcc.target/s390/zvector/vec-reve-load-byte.c: New test.
	* gcc.target/s390/zvector/vec-reve-load-halfword-z14.c: New test.
	* gcc.target/s390/zvector/vec-reve-load-halfword.c: New test.
	* gcc.target/s390/zvector/vec-reve-store-byte-z14.c: New test.
	* gcc.target/s390/zvector/vec-reve-store-byte.c: New test.

From-SVN: r270085
2019-04-02 11:02:22 +00:00
Andreas Krebbel 1b3bbaf647 S/390: arch13: vec_revb vector byte swap builtin
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new builtin function types.
	* config/s390/s390-builtins.def: Add overloaded builtin
	s390_vec_revb. Add low-level builtins for vlbr and vstbr
	instructions.
	* config/s390/vecintrin.h (vec_revb): New builtin name definition.
	* config/s390/vector.md (VT_HW_HSDT): New mode iterator.
	("bswap<mode>"): New expander.
	("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-revb-load-double-z14.c: New test.
	* gcc.target/s390/zvector/vec-revb-load-double.c: New test.
	* gcc.target/s390/zvector/vec-revb-store-double-z14.c: New test.
	* gcc.target/s390/zvector/vec-revb-store-double.c: New test.

From-SVN: r270084
2019-04-02 11:01:06 +00:00
Andreas Krebbel e633a4f255 S/390: arch13: New vector builtins - preparation
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
	vector builtin version number in __VEC__.

From-SVN: r270083
2019-04-02 10:59:30 +00:00
Andreas Krebbel 026bfe8937 S/390: arch13: Support 32 bit fp-int scalar converts
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
	iterators.
	(SFSI): New mode attribute.
	("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
	("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
	rename to ...
	("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
	("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
	("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
	("floatsi<mode>2"): Add wcefb instruction.

From-SVN: r270082
2019-04-02 10:58:33 +00:00
Andreas Krebbel 4156b05639 S/390: arch13: Support 32 bit fp-int vector converts
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.md ("xde"): Extend mode attribute to vector
	types.
	* config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
	mode iterators.
	("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
	("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
	support 32 bit fp-int conversions. Rename to ...
	("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
	("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
	("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
	("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
	... to these.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/arch13/fp-signedint-convert-1.c: New test.
	* gcc.target/s390/arch13/fp-unsignedint-convert-1.c: New test.

From-SVN: r270081
2019-04-02 10:57:39 +00:00
Andreas Krebbel 618eef38d9 S/390: arch13: Add support for new select instruction
Compared to the load on condition instructions we already have the new
select instruction allows to have a THEN and and ELSE source operand -
but only for register to register loads.

gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
	if-then-else constructs if we can use the select instruction.
	* config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/arch13/sel-1.c: New test.

From-SVN: r270080
2019-04-02 10:56:34 +00:00
Andreas Krebbel 25cb5165c1 S/390: arch13: Support new popcount instruction
variant.

The new arch13 popcount instruction counts bits in the entire 64 bit
register instead of just in 8 bit portions.

gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.md ("*popcountdi_arch13_cc")
	("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
	definition.
	("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
	Append _z196 to make it ...
	("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
	("popcounthi2_z196"): ... this.
	("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
	("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/arch13/popcount-1.c: New test.

From-SVN: r270079
2019-04-02 10:55:26 +00:00
Andreas Krebbel 4a9733f3df S/390: arch13: Support new bit operations
Make use of the new bit operation instructions when generating code
for the arch13 level.

gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_canonicalize_comparison): Convert
	certain compares for arch13 in order to make use of the condition
	code result produced by the new instructions.
	(s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
	nxrk, and nxgrk instruction patterns.
	* config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
	(inv_no): Add new code iterator together with some attributes.
	("*andc_split_<mode>"): Disable splitter for arch13.
	("*<ANDOR:bitops_name>c<GPR:mode>_cc")
	("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
	("*<ANDOR:bitops_name>c<GPR:mode>")
	("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
	("*n<ANDOR:inv_bitops_name><mode>_cconly")
	("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
	("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/arch13/bitops-1.c: New test.
	* gcc.target/s390/arch13/bitops-2.c: New test.
	* gcc.target/s390/md/andc-splitter-1.c: Add -march=z14 build
	option and adjust line numbers.
	* gcc.target/s390/md/andc-splitter-2.c: Likewise.

From-SVN: r270078
2019-04-02 10:51:53 +00:00
Andreas Krebbel 511ea1538b S/390: arch13: Add arch13 as architecture option
This patch enables the command line options and provides the proper
macros for checking.

gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* common/config/s390/s390-common.c (processor_flags_table): New
	entry for arch13.
	* config.gcc: Support arch13 with the --with-arch= configure flag.
	* config/s390/driver-native.c (s390_host_detect_local_cpu):
	* config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
	* config/s390/s390.c (s390_get_sched_attrmask)
	(s390_get_unit_mask): Add PROCESSOR_ARCH13.
	* config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
	* config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
	(TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
	(TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
	definitions.
	* config/s390/s390.opt: Support arch13 as processor type in
	command line options.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/s390.exp: Run tests in arch13 subdir.
	* lib/target-supports.exp (check_effective_target_s390_vxe2): New
	runtime check for the vxe2 hardware feature on IBM Z.

From-SVN: r270077
2019-04-02 10:50:03 +00:00
Martin Liska 6de6b21052 Fix param description of graphite-max-arrays-per-scop (PR translation/89912).
2019-04-02  Martin Liska  <mliska@suse.cz>

	PR translation/89912
	* params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
	Fix param description of graphite-max-arrays-per-scop.

From-SVN: r270076
2019-04-02 07:55:30 +00:00
Eric Botcazou 381a3c757f linux64.h (ASAN_REJECT_SPEC): New macro.
* config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
	(ASAN_CC1_SPEC): Use it in 64-bit mode.
	* config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.

From-SVN: r270075
2019-04-02 07:40:30 +00:00
Iain Buclaw b8b137fb52 re PR d/89823 (Composed message only partially translatable)
gcc/po/ChangeLog:

2019-04-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/89823
	* EXCLUDES: Update list of d/dmd sources.
	* gcc.pot: Regenerated.

From-SVN: r270074
2019-04-02 05:23:20 +00:00
GCC Administrator 1ff7f65257 Daily bump.
From-SVN: r270072
2019-04-02 00:16:22 +00:00
Joseph Myers 601fa15874 * fr.po, sv.po: Update.
From-SVN: r270069
2019-04-01 22:42:32 +01:00
Jason Merrill b491c59fb5 PR c++/86946 - ICE with function call in template argument.
DR 1321 clarified that two dependent names are equivalent if the names are
the same, even if the result of name lookup is different.  We need to
implement that in hashing like we already do in comparison and mangling.

	* pt.c (iterative_hash_template_arg) [CALL_EXPR]: Use
	dependent_name.

From-SVN: r270068
2019-04-01 16:43:13 -04:00
H.J. Lu b33ef29fff Check avx2_available in check_avx2_available
check_avx2_available should check avx2_available, instead of avx_available.
Otherwise, check_avx2_available may use result from check_avx_available.

	PR testsuite/89907
	* lib/target-supports.exp (check_avx2_available): Replace
	avx_available with avx2_available.

From-SVN: r270066
2019-04-01 11:34:00 -07:00
Andrey Belevantsev 4b52560099 sel-sched: correct reset of reset_sched_cycles_p (PR 85412)
2019-04-01  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/85412
	* sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
	sel_sched_region_1, not after.

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

From-SVN: r270065
2019-04-01 21:05:08 +03:00
Paolo Carlini 5ed22cbbfc re PR c++/62207 (ICE: tree check: expected tree that contains 'decl minimal' structure, have 'overload' in tsubst_copy, at cp/pt.c)
/cp
2019-04-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/62207
	* pt.c (tsubst_copy): Deal with lookup_name not returing a variable.

/testsuite
2019-04-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/62207
	* g++.dg/template/crash130.C: New.
	* g++.dg/template/crash131.C: Likewise.

From-SVN: r270064
2019-04-01 17:09:47 +00:00
Martin Sebor ddeae8c8ac PR c/89685 - ICE on attribute copy with a compound expression
gcc/c-family/ChangeLog:

	PR c/89685
	* c-attribs.c (handle_copy_attribute): Handle references and
	non-constant expressions.

gcc/testsuite/ChangeLog:

	PR c/89685
	* gcc.dg/attr-copy-8.c: New test.
	* g++.dg/ext/attr-copy-2.C: New test.

From-SVN: r270062
2019-04-01 11:04:10 -06:00
Andrey Belevantsev 8bad0ced9f sel-sched: update liveness in redirect_edge_and_branch hooks (PR 86928)
2019-04-01  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/86928
	* sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
	compute_live if necessary.
	(sel_redirect_edge_and_branch): Likewise.

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

From-SVN: r270061
2019-04-01 19:32:24 +03:00
Vladimir Makarov 0d2a576a14 re PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times \\\\), % 45)
2019-04-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/89865
	* ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
	register if it is a part of small class.

From-SVN: r270060
2019-04-01 16:18:30 +00:00
Andrey Belevantsev a0802144bb sel-sched: remove assert in merge_fences (PR 87273)
2019-04-01  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/87273
	* sel-sched-ir.c (merge_fences): Remove assert.

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

From-SVN: r270059
2019-04-01 18:20:13 +03:00
Iain Buclaw ca0f5734fe re PR d/88462 (All D execution tests FAIL on Solaris/SPARC)
PR d/88462
libphobos: Fix abort in pthread_mutex_init on Solaris.

Merges upstream druntime d57fa1ff.

Reviewed-on: https://github.com/dlang/druntime/pull/2534

From-SVN: r270057
2019-04-01 14:44:04 +00:00
Ville Voutilainen f1ba6c5a51 Use single-visitation in variant assignment and swap and relops.
Also use indices instead of types when checking whether
variants hold the same thing.
* include/std/variant (__do_visit): Add a template parameter
for index visitation, invoke with indices if index visitation
is used.
(__variant_idx_cookie): New.
(__visit_with_index): Likewise.
(_Copy_assign_base::operator=): Do single-visitation with
an index visitor.
(_Move_assign_base::operator=): Likewise.
(_Extra_visit_slot_needed): Adjust.
(__visit_invoke): Call with indices if it's an index visitor.
(relops): Do single-visitation with an index visitor.
(swap): Likewise.
(__visitor_result_type): New.

From-SVN: r270056
2019-04-01 16:57:41 +03:00
Richard Biener e37240b0b5 re PR tree-optimization/46590 (long compile time with -O2 and many loops)
2019-04-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/46590
	* domwalk.h (dom_walker::dom_walker): Consolidate constructors.
	(dom_walker::m_reachability): Add in place of...
	(dom_walker::m_skip_unreachable_blocks): ...this.
	* domwalk.c (dom_walker::dom_walker): Consoliate constructors.
	Move complex initialization ...
	(dom_walker::walk): Here.  Especially compute m_bb_to_rpo
	lazily and initialize edge flags on each invocation.
	(dom_walker::bb_reachable): Use m_reachability.

From-SVN: r270055
2019-04-01 11:36:25 +00:00
Martin Liska 90f1430589 Enhance option suggestion for options expected an argument (PR driver/89861).
2019-04-01  Martin Liska  <mliska@suse.cz>

	PR driver/89861
	* opt-suggestions.c (option_proposer::build_option_suggestions):
	Add variant without any argument in order to provide better
	hints.
2019-04-01  Martin Liska  <mliska@suse.cz>

	PR driver/89861
	* gcc.dg/spellcheck-options-18.c: New test.
	* gcc.dg/spellcheck-options-19.c: New test.
	* gcc.dg/spellcheck-options-20.c: New test.
	* gcc.dg/spellcheck-options-13.c: Adjust expected output.
	* gcc.dg/completion-2.c: Add one variant with no argument.

From-SVN: r270053
2019-04-01 07:17:38 +00:00
Richard Biener 2a82beaa82 re PR c/71598 (Wrong optimization with aliasing enums)
2019-04-01  Richard Biener  <rguenther@suse.de>

	PR c/71598
	* gimple.c: Include langhooks.h.
	(gimple_get_alias_set): Treat enumeral types as the underlying
	integer type.

	c/
	* c-tree.h (c_get_alias_set): Declare.
	* c-objc-common.h (LANG_HOOKS_GET_ALIAS_SET): Use c_get_alias_set.
	* c-objc-common.c (c_get_alias_set): Treat enumeral types
	as the underlying integer type.

	* gcc.dg/torture/pr71598-1.c: New testcase.
	* gcc.dg/torture/pr71598-2.c: Likewise.
	* gcc.dg/torture/pr71598-3.c: Likewise.

From-SVN: r270052
2019-04-01 07:16:38 +00:00
GCC Administrator acf8e57ae2 Daily bump.
From-SVN: r270051
2019-04-01 00:16:21 +00:00
Marek Polacek a81c8e8c9a PR c++/89852 - ICE with C++11 functional cast with { }.
* constexpr.c (fold_non_dependent_expr_template): New static function
	broken out of...
	(fold_non_dependent_expr): ...here.
	(fold_non_dependent_init): New function.
	* cp-tree.h (fold_non_dependent_init): Declare.
	* typeck2.c (massage_init_elt): Call fold_non_dependent_init instead
	of fold_non_dependent_expr.  Don't call maybe_constant_init.

	* g++.dg/cpp0x/initlist115.C: New test.

From-SVN: r270048
2019-03-31 20:37:22 +00:00
Harald Anlauf 93755deb5c re PR fortran/83515 (ICE: Invalid expression in gfc_element_size)
2019-03-31  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/83515
	PR fortran/85797
	* trans-types.c (gfc_typenode_for_spec): Handle conversion for
	procedure pointers.
	* target-memory.c (gfc_element_size): Handle size determination
	for procedure pointers.

	PR fortran/83515
	PR fortran/85797
	* gfortran.dg/pr85797.f90: New test.

From-SVN: r270045
2019-03-31 18:33:51 +00:00
Thomas Koenig 60e8cda674 dump-parse-tree.c (debug): Add for symbol_attribute *, symbol_attribute and gfc_ref * arguments.
2019-03-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

    * dump-parse-tree.c (debug):  Add for symbol_attribute *,
    symbol_attribute and gfc_ref * arguments.

From-SVN: r270044
2019-03-31 15:21:10 +00:00
Iain Buclaw 1605fb3ed0 d: Fix run-time SIGSEGV reading ModuleInfo.flags()
The current forced alignment is not necessary, and is problematic on
targets that have strict alignment rules.

gcc/d/ChangeLog:

2019-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/88462
	* modules.cc (layout_moduleinfo_fields): Properly align ModuleInfo,
	instead of forcing alignment to be 1.

From-SVN: r270043
2019-03-31 14:34:41 +00:00
Rainer Orth 16216c7fbe Enable gcc.dg/attr-aligned-3.c on Solaris
* gcc.dg/attr-aligned-3.c: Enable on *-*-solaris2.*.

From-SVN: r270042
2019-03-31 09:26:22 +00:00
GCC Administrator e27f601405 Daily bump.
From-SVN: r270041
2019-03-31 00:16:29 +00:00