Commit Graph

166873 Commits

Author SHA1 Message Date
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
Jakub Jelinek 787e2debb8 re PR c++/89105 (-Wabi warns for functions with internal linkage)
PR c++/89105
	* config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
	for arguments to functions that are TU-local and shouldn't be
	referenced by assembly.

	* g++.target/i386/pr89105.C: New test.

From-SVN: r268382
2019-01-30 08:51:24 +01:00
Jakub Jelinek fe509359cf re PR c/89061 (GCC 9 introduces false positive in -Wjump-misses-init)
PR c/89061
	* c-tree.h (C_DECL_COMPOUND_LITERAL_P): Define.
	* c-decl.c (decl_jump_unsafe): Return false for
	C_DECL_COMPOUND_LITERAL_P decls.
	(build_compound_literal): Set C_DECL_COMPOUND_LITERAL_P.

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

From-SVN: r268381
2019-01-30 08:49:58 +01:00
Ulrich Drepper 2ab6839bcc dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears after '='.
* dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
	after '='.

From-SVN: r268380
2019-01-30 07:18:22 +00:00
Martin Sebor 6aa238a135 PR middle-end/88956 - ICE: Floating point exception on a memcpy from
PR middle-end/88956 - ICE: Floating point exception on a memcpy from
a zero-length constant array

gcc/ChangeLog:

	PR c/88956
	* gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.

gcc/testsuite/ChangeLog:

	PR c/88956
	* gcc.dg/Warray-bounds-39.c: New test.

From-SVN: r268378
2019-01-29 20:04:14 -07:00
Jason Merrill 538a530848 PR c++/86943 - wrong code converting lambda to function pointer.
In this PR, instantiating the static thunk returned from the generic lambda
conversion function template was using normal overload resolution, which
meant calling an extra constructor when forwarding its argument.  Fixed by
special-casing thunk calls significantly more.

	* lambda.c (maybe_add_lambda_conv_op): Use a template-id in the
	call.  Only forward parms for decltype.
	* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Handle CALL_FROM_THUNK_P
	specially.
	* typeck.c (check_return_expr): Don't mess with a thunk call.

From-SVN: r268377
2019-01-29 21:43:04 -05:00
Marek Polacek dca2770bc0 re PR testsuite/89110 (r268343 breaks several tests in c++2a)
PR testsuite/89110
	* g++.dg/other/nontype-1.C: Expect error in all modes.
	* g++.dg/parse/crash13.C: Likewise.
	* g++.dg/parse/error36.C: Likewise.
	* g++.dg/template/error29.C: Likewise.

From-SVN: r268376
2019-01-30 02:32:33 +00:00
GCC Administrator 2365cf7269 Daily bump.
From-SVN: r268375
2019-01-30 00:16:31 +00:00
Thomas Koenig 5af5f1de35 re PR fortran/57048 (Handling of C_PTR and C_FUNPTR leads to reject valid)
2019-01-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/57048
	* interface.c (gfc_compare_types): If a derived type and an
	integer both have a derived type, and they are identical,
	this is a C binding type and compares equal.

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

	PR fortran/57048
	* gfortran.dg/c_funptr_1.f90: New file.
	* gfortran.dg/c_funptr_1_mod.f90: New file.

From-SVN: r268372
2019-01-29 22:40:26 +00:00
Jakub Jelinek b33d65e302 re PR c++/66676 (pragma omp simd aligned(x) results in "internal compiler error: Segmentation fault")
PR c++/66676
	PR ipa/89104
	* omp-simd-clone.c (simd_clone_clauses_extract)
	<case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
	OMP_CLAUSE_ALIGNED_ALIGNMENT.

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

From-SVN: r268370
2019-01-29 22:09:41 +01:00
Tom de Vries fddbc19325 [libbacktrace] Add test-cases exercising build-id and dwz
Add test-cases b2test_buildid and b3test_dwz_buildid.

The last one triggers the segfault fixed by "[backtrace] Avoid segfault"
( r268275 ).

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

	* install-debuginfo-for-buildid.sh.in: New script.
	* Makefile.am (check_PROGRAMS): Add b2test and b3test.
	(TESTS): Add b2test_buildid and b3test_dwz_buildid.
	* Makefile.in: Regenerate.
	* configure.ac (HAVE_ELF): Set with AM_CONDITIONAL.
	(READELF): Set with AC_CHECK_PROG.
	(install-debuginfo-for-buildid.sh): Generate with AC_CONFIG_FILES.
	* configure: Regenerate.
	* elf.c (SYSTEM_BUILD_ID_DIR): Factor out of ...
	(elf_open_debugfile_by_buildid): ... here.

From-SVN: r268369
2019-01-29 16:25:46 +00:00