Commit Graph

166683 Commits

Author SHA1 Message Date
Ian Lance Taylor
b52a3881f0 runtime, sync: use __atomic intrinsics instead of __sync
GCC has supported the __atomic intrinsics since 4.7.  They are better
    than the __sync intrinsics in that they specify a memory model and,
    more importantly for our purposes, they are reliably implemented
    either in the compiler or in libatomic.
    
    Fixes https://gcc.gnu.org/PR52084
    
    Reviewed-on: https://go-review.googlesource.com/c/160820

From-SVN: r268458
2019-02-01 21:55:38 +00:00
Marek Polacek
a53a893b4f PR c++/88325 - ICE with invalid out-of-line template member definition.
* parser.c (cp_parser_class_name): Don't call make_typename_type
	for overloads.

	* g++.dg/cpp2a/typename14.C: New test.

From-SVN: r268455
2019-02-01 19:58:44 +00:00
Segher Boessenkool
e71ac16355 combine: Use TDF_DETAILS for "can't combine" dump prints
Some people use the -fdump-rtl-combine dumps (instead of the -da or
-fdump-rtl-combine-all dump), but the "Can't combine iN into iM"
messages do not make any sense if the failed combine attempts are not
printed otherwise.  So let's change that.


	* combine.c (try_combine): Do not print "Can't combine" messages unless
	printing failed combination attempts.

From-SVN: r268453
2019-02-01 17:26:48 +01:00
Martin Jambor
09e3944e2b [PR hsa/87863] Set assembler name of group and global variables early
2019-02-01  Martin Jambor  <mjambor@suse.cz>

	PR hsa/87863
	* omp-grid.c (grid_mark_variable_segment): Set assembler name of group
	segment and global segment variables before making them static.

From-SVN: r268452
2019-02-01 17:22:13 +01:00
Martin Jambor
b2a8d77a99 Add two missing dump_enabled_p calls
2019-02-01  Martin Jambor  <mjambor@suse.cz>

	* omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
	missed optimization dump with dump_enabled_p.

From-SVN: r268451
2019-02-01 17:15:36 +01:00
Ian Lance Taylor
284c00e210 compiler: support alias to pointer type as receiver in method declaration
Fixes golang/go#27994.
    
    Reviewed-on: https://go-review.googlesource.com/c/160459

From-SVN: r268450
2019-02-01 15:00:46 +00:00
Richard Biener
577d65881e re PR tree-optimization/88597 (Compile time hog w/ -O1 -fpeel-loops)
2019-02-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/88597
	* tree-scalar-evolution.c (analyze_scalar_evolution): Set up
	the instantiate cache.
	(instantiate_scev_binary): Elide second operand procesing
	if equal to the first.
	* tree-chrec.c (chrec_contains_symbols): Add visited set.
	(chrec_contains_undetermined): Likewise.
	(tree_contains_chrecs): Likewise.

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

From-SVN: r268449
2019-02-01 13:41:43 +00:00
Jan Hubicka
61a8637c88 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
From-SVN: r268448
2019-02-01 10:46:36 +00:00
Richard Biener
3c54b7d606 re PR tree-optimization/85497 ([graphite] ICE in set_codegen_error, at graphite-isl-ast-to-gimple.c:206)
2019-02-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/85497
	* gcc.dg/graphite/pr85497.c: New testcase.

From-SVN: r268447
2019-02-01 09:17:14 +00:00
Richard Biener
ff9d5a2a4a re PR debug/87451 (FAIL: gcc.dg/debug/dwarf2/inline5.c)
2019-02-01  Richard Biener  <rguenther@suse.de>

	PR testsuite/87451
	* gcc.dg/debug/dwarf2/inline5.c: Allow more comment variants.

From-SVN: r268446
2019-02-01 09:08:55 +00:00
Jakub Jelinek
1651b09414 re PR tree-optimization/89143 (comparison of abs(i) against excessive constant less than UXXX_MAX no longer folded)
PR tree-optimization/89143
	* wide-int-range.h (wide_int_range_absu): Declare.
	* wide-int-range.cc (wide_int_range_absu): New function.
	* tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.

	* gcc.dg/tree-ssa/vrp121.c: New test.

From-SVN: r268445
2019-02-01 09:44:23 +01:00
Jakub Jelinek
ac33bce89c re PR tree-optimization/88107 (ICE in find_outermost_region_in_block, at tree-cfg.c:7157)
PR tree-optimization/88107
	* tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
	instead of assertion that eh_region_outermost is non-NULL, if it
	is NULL, set *ALL to true and return NULL.
	(move_sese_region_to_fn): Adjust caller, if all is set, call
	duplicate_eh_regions with NULL region.

	* gcc.dg/gomp/pr88107.c: New test.

From-SVN: r268444
2019-02-01 09:43:02 +01:00
Jakub Jelinek
7beb51f914 re PR c++/87175 (__attribute__)) is ignored by the parser)
PR c++/87175
	* parser.c (cp_parser_gnu_attributes_opt): Set ok to false
	if require_open failed.

	* g++.dg/ext/attrib57.C: New test.

From-SVN: r268443
2019-02-01 09:42:01 +01:00
Richard Biener
09822562e4 re PR rtl-optimization/88593 (cleanup_cfg may make cached dominance info stale)
2019-02-01  Richard Biener  <rguenth@suse.de>

	PR rtl-optimization/88593
	* mode-switching.c (optimize_mode_switching): Free dominators before
	calling cleanup_cfg.

From-SVN: r268442
2019-02-01 08:07:35 +00:00
Bin Cheng
3c2df91668 re PR tree-optimization/88932 (ICE: verify_ssa failed (Error: definition in block 29 does not dominate use in block 25))
PR tree-optimization/88932
	* tree-predcom.c (try_combine_chains): Get loop bbs in dom order.

	gcc/testsuite
	* gfortran.dg/pr88932.f90: New test.

From-SVN: r268439
2019-02-01 02:39:52 +00:00
Marek Polacek
e9fa2f6ded PR c++/88983 - ICE with switch in constexpr function.
* constexpr.c (cxx_eval_switch_expr): Use SWITCH_COND and SWITCH_BODY.
	(cxx_eval_constant_expression) <case COND_EXPR>: Don't look for the
	label in the else branch if we found it in the then branch.

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

From-SVN: r268438
2019-02-01 00:30:46 +00:00
GCC Administrator
bb9160aeb0 Daily bump.
From-SVN: r268437
2019-02-01 00:16:21 +00:00
Jakub Jelinek
829a433832 re PR middle-end/89137 (gcc/omp-low.c:7135: possible read of uninit memory ?)
PR middle-end/89137
	* omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
	bogus clang warning.

From-SVN: r268434
2019-02-01 00:05:01 +01:00
Uros Bizjak
8d169fc1b1 * libgfortran/ChangeLog: Better commit message for my last commit.
From-SVN: r268433
2019-01-31 23:59:36 +01:00
Thomas Koenig
1bd83e0b0b re PR fortran/88669 (Contiguous attribute wrongly rejected)
2019-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/88669
	* resolve.c (resolve_component): If the reference is a BT_CLASS,
	copy the contiguous attribute from the reference and use the
	correct attributes.

2019-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/88669
	* gfortran.dg/contiguous_9.f90: New test.

From-SVN: r268432
2019-01-31 22:21:28 +00:00
Uros Bizjak
ba2c1ca8c3 t-linux: Add -mfp-rounding-mode=d to HOST_LIBGCC2_CFLAGS.
* config/alpha/t-linux: Add -mfp-rounding-mode=d
	to HOST_LIBGCC2_CFLAGS.

From-SVN: r268430
2019-01-31 21:49:02 +01:00
Marek Polacek
b27f74e777 PR c++/89083, c++/80864 - ICE with list initialization in template.
* constexpr.c (adjust_temp_type): Use copy_node and change the type
	instead of using build_constructor.
	* decl.c (reshape_init_r): Don't reshape a digested initializer.
	Return the initializer for COMPOUND_LITERAL_P.

	* g++.dg/cpp0x/initlist107.C: New test.
	* g++.dg/cpp0x/initlist108.C: New test.
	* g++.dg/cpp0x/initlist109.C: New test.
	* g++.dg/cpp0x/initlist110.C: New test.
	* g++.dg/cpp0x/initlist111.C: New test.
	* g++.dg/cpp0x/initlist112.C: New test.
	* g++.dg/init/ptrfn4.C: New test.

From-SVN: r268428
2019-01-31 20:21:11 +00:00
Uros Bizjak
1d4b4f4979 re PR target/89071 (AVX vcvtsd2ss lets us avoid PXOR dependency breaking for scalar float<->double and other scalar xmm,xmm instructions)
PR target/89071
	* config/i386/i386.md (*extendsfdf2): Split out reg->reg
	alternative to avoid partial SSE register stall for TARGET_AVX.
	(truncdfsf2): Ditto.
	(sse4_1_round<mode>2): Ditto.

From-SVN: r268427
2019-01-31 21:06:42 +01:00
David Malcolm
ec2be203d1 Fix bogus fix-it for FLT_MAX (PR c/89122)
PR c/89122 reports that we emit a bogus fix-it hint for the case where
the code uses FLT_MAX, but has included <limits.h> rather than <float.h>:

x.c:3:11: error: 'FLT_MAX' undeclared here (not in a function); did you
  mean 'INT_MAX'?
    3 | float f = FLT_MAX;
      |           ^~~~~~~
      |           INT_MAX

This patch adds some knowledge of <float.h> (and <cfloat>) to
known-headers.cc, fixing the issue:

x.c:3:11: error: 'FLT_MAX' undeclared here (not in a function)
    3 | float f = FLT_MAX;
      |           ^~~~~~~
x.c:2:1: note: 'FLT_MAX' is defined in header '<float.h>'; did you forget
  to '#include <float.h>'?
    1 | #include <limits.h>
  +++ |+#include <float.h>
    2 |

gcc/c-family/ChangeLog:
	PR c/89122
	* known-headers.cc (get_stdlib_header_for_name): Add
	{FLT|DBL|LDBL}_{MAX|MIN} to "hints" array.

gcc/testsuite/ChangeLog:
	PR c/89122
	* g++.dg/spellcheck-stdlib.C (test_FLT_MAX): New test.
	* gcc.dg/spellcheck-stdlib.c (test_FLT_MAX): New test.

From-SVN: r268426
2019-01-31 18:09:29 +00:00
Jason Merrill
636ecb78a3 PR c++/88752 - ICE with lambda and constexpr if.
In this testcase, we look for an instantiation of the outer lambda from
within the inner lambda.  enclosing_instantiation_of didn't handle this
properly, as it assumed that any references would be from the same lambda
nesting depth.  Fixed thus.

	* cp-tree.h (LAMBDA_EXPR_INSTANTIATED): New.
	* pt.c (tsubst_lambda_expr): Set it.
	(instantiated_lambda_fn_p): Check it.
	(enclosing_instantiation_of): Use it.

From-SVN: r268424
2019-01-31 10:03:21 -05:00
Bill Schmidt
f942ef18b8 re PR middle-end/89008 (O2 and O1 results differ for simple test)
2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR tree-optimization/89008
	* gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
	process anything of the form X * 0.

From-SVN: r268422
2019-01-31 13:53:06 +00:00
Tom de Vries
3a3f5dd1af [libbacktrace] Fix .gnu_debugaltlink build-id check
The 'debugaltlink_name_len =+ 1' bug reported in PR89136 exposes the fact that
the build-id is not verified for the .gnu_debugaltlink.

Fix both problems.

2019-01-31  Tom de Vries  <tdevries@suse.de>

	PR libbacktrace/89136
	* elf.c (elf_add): Read build-id if with_buildid_data.  Fix
	'debugaltlink_name_len =+ 1'.

From-SVN: r268419
2019-01-31 12:17:32 +00:00
Richard Biener
7ad97d1777 re PR tree-optimization/89135 (internal compiler error: in gimple_split_edge, at tree-cfg.c:2747)
2019-01-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89135
	* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
	with abnormal preds.

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

From-SVN: r268417
2019-01-31 11:51:59 +00:00
Jakub Jelinek
6206a883fe re PR sanitizer/89124 (__attribute__((no_sanitize_address)) interferes with __attribute__((target(xxx))))
PR sanitizer/89124
	* ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
	always_inline callees into no_sanitize_address callers.

	* c-c++-common/asan/pr89124.c: New test.

From-SVN: r268415
2019-01-31 09:20:45 +01:00
Richard Biener
f4caead02f re PR rtl-optimization/89115 (compile time and memory hog)
2019-01-31  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/89115
	* lra.c (lra_rtx_hash): Properly hash CONST_INT values.

From-SVN: r268414
2019-01-31 08:09:59 +00:00
Jakub Jelinek
8936f047c0 re PR libstdc++/88170 (pretty printer FAILs)
PR libstdc++/88170
	* c-pretty-print.c (pp_c_enumeration_constant): Print always as
	a C cast in pp_c_flag_gnu_v3 mode.

	* cxx-pretty-print.c (pp_cxx_enumeration_constant): Print always as
	a C cast in pp_c_flag_gnu_v3 mode.

From-SVN: r268413
2019-01-31 08:37:34 +01:00
Jerry DeLisle
474175e925 re PR fortran/52564 (Accepts invalid: Missing I/O list after comma)
2019-01-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/52564
	* io.c (match_io): Add check for comma after '*' without subsequent
	IO list.

	* gfortran.dg/print_2.f90: New test.

From-SVN: r268412
2019-01-31 03:37:16 +00:00
Martin Sebor
f7478e4e33 PR other/89106 - cast-to-union documentation incorrect w.r.t. lvalueness
gcc/ChangeLog:

	PR other/89106
	* doc/extend.texi (cast to a union): Correct and expand.

From-SVN: r268411
2019-01-30 19:33:58 -07:00
GCC Administrator
15b77e7407 Daily bump.
From-SVN: r268410
2019-01-31 00:16:25 +00:00
Jakub Jelinek
8b44f8ec4b re PR c++/88988 (ICE: Segmentation fault (in lookup_name_real_1))
PR c++/88988
	* lambda.c (is_capture_proxy): Don't return true for
	DECL_OMP_PRIVATIZED_MEMBER artificial vars.

	* testsuite/libgomp.c++/pr88988.C: New test.

From-SVN: r268407
2019-01-31 00:28:53 +01:00
Jonathan Wakely
9c5365902a PR libstdc++/89117 fix path::replace_extension("") case
Previously the operator+=(extension) call would have re-parsed the path
and recreated the components with the right extension. Since optimising
it to not re-parse the whole string, we need to actually remove the
extension from the final filename before appending anything to it, and
append the dot to that final component too.

	PR libstdc++/89117
	* src/c++17/fs_path.cc (path::replace_extension): Erase extension from
	final component as well as from _M_pathname. Append the dot using
	operator+= instead of only to _M_pathname.
	(path::_M_find_extension): Reformat slightly.
	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
	Add more test cases.

From-SVN: r268406
2019-01-30 23:18:22 +00:00
Uros Bizjak
d1ac2471e7 sfp-exceptions.c (__sfp_handle_exceptions): Remove stray semicolon.
* config/i386/sfp-exceptions.c (__sfp_handle_exceptions):
	Remove stray semicolon.

From-SVN: r268405
2019-01-31 00:09:40 +01:00
Vladimir Makarov
8eaff6ef97 re PR rtl-optimization/87246 (ICE in decompose_normal_address, at rtlanal.c:6379)
2019-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/87246
	* lra-constraints.c (simplify_operand_subreg): Reload memory
	in subreg if the address became invalid.

2019-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/87246
	* gcc.target/i386/pr87246.c: New.

From-SVN: r268404
2019-01-30 21:49:23 +00:00
Bill Schmidt
03bb10aad4 re PR target/87064 (libgomp.oacc-fortran/reduction-3.f90 fails starting with r263751)
2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR target/87064
	* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
	Disable for little-endian.

From-SVN: r268403
2019-01-30 20:52:08 +00:00
Uros Bizjak
05dfdd6c5a re PR fortran/88678 (Many gfortran.dg/ieee/ieee_X.f90 test cases fail starting with r267465)
PR fortran/88678
	* config/fpu-glibc.h (support_fpu_trap): Do not try to enable
	exceptions to determine if exception is supported.

From-SVN: r268402
2019-01-30 21:44:35 +01:00
Marek Polacek
9f4e09a89a PR c++/89119 - ICE with value-initialization in template.
* pt.c (tsubst_copy_and_build): Handle RANGE_EXPR.

	* g++.dg/cpp0x/initlist-value3.C: New test.

From-SVN: r268400
2019-01-30 19:04:05 +00:00
Ulrich Drepper
7341a03ab8 * doc/xml/manual/status_cxx2020.xml: Update P0600 entry.
From-SVN: r268398
2019-01-30 16:23:44 +00:00
Ian Lance Taylor
284fdc4c15 compiler: support alias to pointer type as method receiver
Fixes golang/go#28252.
    
    Reviewed-on: https://go-review.googlesource.com/c/160077

From-SVN: r268397
2019-01-30 15:57:46 +00:00
Dominique d'Humieres
8ff7780cb2 re PR fortran/52884 (double precision constants promoted to 16 byte by -fdefault-real-8)
2019-01-30  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR fortran/52884
	* invoke.texi: Document the promotion of double precision
	constants.

From-SVN: r268396
2019-01-30 16:53:51 +01:00
Richard Biener
2eb8a3e56f re PR rtl-optimization/89115 (compile time and memory hog)
2019-01-30  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/89115
	* opts.c (default_options_optimization): Reduce
	PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
	Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
	to the default.

From-SVN: r268394
2019-01-30 15:11:04 +00:00
Uros Bizjak
de0c04f99c re PR fortran/88678 (Many gfortran.dg/ieee/ieee_X.f90 test cases fail starting with r267465)
PR fortran/88678
	* config/fpu-glibc.h (set_fpu_trap_exceptions): Clear stalled
	exception flags before changing trap mode.  Optimize to call
	feenableexcept and fedisableexcept only once.

From-SVN: r268392
2019-01-30 16:04:06 +01:00
Kelvin Nilsen
83a67c0cd7 rs6000-c.c (altivec-resolve_overloaded_builtin): Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.
gcc/ChangeLog:

2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
	Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
	type of vector element when vec_extract is implemented by direct
	move.

gcc/testsuite/ChangeLog:

2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* gcc.target/powerpc/vec-extract-schar-1.c: New test.
	* gcc.target/powerpc/vec-extract-sint-1.c: New test.
	* gcc.target/powerpc/vec-extract-sint128-1.c: New test.
	* gcc.target/powerpc/vec-extract-slong-1.c: New test.
	* gcc.target/powerpc/vec-extract-sshort-1.c: New test.
	* gcc.target/powerpc/vec-extract-uchar-1.c: New test.
	* gcc.target/powerpc/vec-extract-uint-1.c: New test.
	* gcc.target/powerpc/vec-extract-uint128-1.c: New test.
	* gcc.target/powerpc/vec-extract-ulong-1.c: New test.
	* gcc.target/powerpc/vec-extract-ushort-1.c: New test.

From-SVN: r268391
2019-01-30 15:01:40 +00:00
Thomas Schwinge
c7e503a592 Default compute dimensions: list "-fopenacc-dim" in documentation
gcc/
	* doc/invoke.texi (C Language Options): List "-fopenacc-dim".

From-SVN: r268390
2019-01-30 15:40:10 +01:00
Richard Biener
79977c82ff re PR tree-optimization/89111 (wrong code at -O1 and above on x86_64-linux-gnu)
2019-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89111
	* tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
	canonicalization to appropriately sized access types.

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

From-SVN: r268388
2019-01-30 12:41:13 +00:00
Andrew Stubbs
8c11f2693e Cache effective-target llvm_binutils result.
2019-01-30  Andrew Stubbs  <ams@codesourcery.com>

	PR testsuite/88920

	gcc/testsuite/
	* lib/target-supports.exp: Cache result.

From-SVN: r268384
2019-01-30 11:26:31 +00:00