Commit Graph

167686 Commits

Author SHA1 Message Date
Paul Thomas 0324a4978e re PR fortran/89841 (improper descriptor information passed to C)
2019-03-30  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/89841
	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Use the formal
	argument attributes rather than those of the actual argument.

	PR fortran/89842
	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Call
	'set_dtype_for_unallocated' for any type of arrayspec.

2019-03-30  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/89841
	* gfortran.dg/ISO_Fortran_binding_1.f90: Change the interfaces
	for c_deallocate, c_allocate and c_assumed_size so that the
	attributes of the array arguments are correct and are typed.
	* gfortran.dg/ISO_Fortran_binding_7.f90: New test.
	* gfortran.dg/ISO_Fortran_binding_7.c: Additional source.

	PR fortran/89842
	* gfortran.dg/ISO_Fortran_binding_8.f90: New test.
	* gfortran.dg/ISO_Fortran_binding_8.c: Additional source.

From-SVN: r270037
2019-03-30 15:39:00 +00:00
Jason Merrill 26b81a446f PR c++/89744 - ICE with specialization of member class template.
My fix five years ago for PR 60241 was incomplete: when we reassign implicit
instances of a partial instantiation of a member template to the explicit
specialization of that partial instantiation, we also need to adjust the
CLASSTYPE_TI_ARGS to match what we'd get when looking up that instance after
the explicit specialization.  We also need to do this when we later look up
the instance in a way that only finds the explicit specialization halfway
through lookup_template_class_1.

	* pt.c (lookup_template_class_1): If the partial instantiation is
	explicitly specialized, adjust.
	(maybe_process_partial_specialization): Also adjust
	CLASSTYPE_TI_ARGS.

From-SVN: r270036
2019-03-30 11:23:37 -04:00
Thomas Koenig 5c95b82b61 re PR fortran/89866 ([F08] wrong-code problem with POINTER, INTENT(IN) argument)
2019-03-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/89866
	* gfortran.dg/pointer_intent_8.f90: New test.

From-SVN: r270034
2019-03-30 13:41:10 +00:00
Eric Botcazou 29b129b855 * src/c++17/fs_ops.cc (fs::permissions): Use std::errc::not_supported.
From-SVN: r270033
2019-03-30 13:36:16 +00:00
Kugan Vivekanandarajah 09062aa45c re PR rtl-optimization/89862 (LTO bootstrap fails for ARM)
2019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
	    Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/89862
	* rtl.h (word_register_operation_p): Exclude CONST_INT from operations
	that operates on the full registers for WORD_REGISTER_OPERATIONS
	architectures.


Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r270030
2019-03-30 04:24:22 +00:00
GCC Administrator 593f8d6466 Daily bump.
From-SVN: r270029
2019-03-30 00:16:18 +00:00
Jim Wilson 76d4accffd RISC-V: Fix __riscv_compressed regression.
This was accidentally broken by the patch adding ELF attribute support.
The __riscv_compressed predefined macro is not being defined when the
target supports the C extension.  The fix adds testcases to verify that
all of the predefined macros are correct for various option combinations.

	gcc/
	* common/config/riscv/riscv-common.c (riscv_parse_arch_string):
	Clear MASK_RVC and then set if C subset supported.

	gcc/testsuite/
	* gcc.target/riscv/predef-1.c: New.
	* gcc.target/riscv/predef-2.c: New.
	* gcc.target/riscv/predef-3.c: New.
	* gcc.target/riscv/predef-4.c: New.
	* gcc.target/riscv/predef-5.c: New.
	* gcc.target/riscv/predef-6.c: New.
	* gcc.target/riscv/predef-7.c: New.
	* gcc.target/riscv/predef-8.c: New.

From-SVN: r270026
2019-03-29 14:51:58 -07:00
Jakub Jelinek 54ae50ac45 re PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times \\\\), % 45)
PR rtl-optimization/89865
	* gcc.target/i386/pr49095.c: Include in scan-assembler-times patterns
	the first argument register, so that occassional spills/fills are
	ignored.

From-SVN: r270025
2019-03-29 21:51:15 +01:00
Jakub Jelinek 2b53407efb re PR sanitizer/89869 (-fsanitize=undefined miscompilation)
PR sanitizer/89869
	* typeck.c: Include gimplify.h.
	(cp_build_modify_expr) <case COND_EXPR>: Unshare rhs before using it
	for second time.  Formatting fixes.

	* g++.dg/ubsan/vptr-14.C: New test.

From-SVN: r270024
2019-03-29 21:10:19 +01:00
Jakub Jelinek 77527d8ac4 re PR c/89872 (GCC does not generate read access to volatile compound literal)
PR c/89872
	* gimplify.c (gimplify_compound_literal_expr): Don't optimize a
	non-addressable complit into its initializer if it is volatile.

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

From-SVN: r270023
2019-03-29 20:32:20 +01:00
Roman Zhuykov 7ad99f7d21 opts-common.c (integral_argument): Set errno properly in one case.
* opts-common.c (integral_argument): Set errno properly in one case.

    * gcc.dg/diag-sanity.c: New test.

From-SVN: r270022
2019-03-29 12:44:01 -06:00
Marek Polacek c072398e0f PR c++/89876 - ICE with deprecated conversion.
* call.c (convert_like_real): Only give warnings with tf_warning.

	* g++.dg/warn/conv5.C: New test.

From-SVN: r270021
2019-03-29 18:40:31 +00:00
Marek Polacek a1c56deaa2 re PR c++/89871 (Wall + designated initializers)
PR c++/89871
	* g++.dg/cpp2a/desig14.C: New test.

From-SVN: r270019
2019-03-29 15:24:00 +00:00
Martin Liska b56c578ce4 Remove -Wchkp from documentation.
2019-03-29  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Remove -Wchkp from documentation.

From-SVN: r270017
2019-03-29 14:53:12 +00:00
Martin Liska dd7fa0d4f3 Dump -fdbg-cnt limit reach also to stderr stream.
2019-03-29  Martin Liska  <mliska@suse.cz>

	* dbgcnt.c (print_limit_reach): New function.
	(dbg_cnt): Use it.
2019-03-29  Martin Liska  <mliska@suse.cz>

	* gcc.dg/ipa/ipa-icf-39.c: Prine '***dbgcnt' output.
	* gcc.dg/pr68766.c: Likewise.

From-SVN: r270015
2019-03-29 11:45:56 +00:00
Martin Liska 2a7108b96e Fix multiple values for -fdbg-cnt.
2019-03-29  Martin Liska  <mliska@suse.cz>

	* dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
	(dbg_cnt_process_opt): Parse first tokens aas
	dbg_cnt_process_single_pair is also using strtok.

From-SVN: r270014
2019-03-29 11:45:39 +00:00
Jakub Jelinek a6240447c4 re PR rtl-optimization/87485 (Compile time hog w/ -O2 -fschedule-insns -fno-guess-branch-probability -fno-isolate-erroneous-paths-dereference -fno-omit-frame-pointer -fno-split-wide-types -fno-tree-ccp -fno-tree-sra)
PR rtl-optimization/87485
	* function.c (expand_function_end): Move stack_protect_epilogue
	before loading of return value into hard register(s).

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

From-SVN: r270013
2019-03-29 12:42:51 +01:00
GCC Administrator 34f95cbdc5 Daily bump.
From-SVN: r270012
2019-03-29 00:16:31 +00:00
Jakub Jelinek 79d64ee829 re PR middle-end/89621 (ICE with allocatable character and openmp)
PR middle-end/89621
	* tree-inline.h (struct copy_body_data): Add
	dont_remap_vla_if_no_change flag.
	* tree-inline.c (remap_type_3, remap_type_2): New functions.
	(remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
	and remap_type_2 returns false.
	* omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
	Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
	only from where it is copied to nested contexts.

	* gfortran.dg/gomp/pr89621.f90: New test.

From-SVN: r270009
2019-03-28 23:33:29 +01:00
Martin Sebor e4479ec676 PR c++/66548 - Invalid class member access expression in decltype sometimes
PR c++/66548 - Invalid class member access expression in decltype sometimes
accepted

gcc/testsuite/ChangeLog:
	* g++.dg/cpp0x/decltype-pr66548.C: New test.

From-SVN: r270007
2019-03-28 15:32:11 -06:00
Martin Sebor 4eb8255191 PR c++/81506 - Invalid declaration with decltype accepted
testsuite/ChangeLog:
	* g++.dg/cpp0x/decltype-pr81506.C: New test.

From-SVN: r270006
2019-03-28 15:20:18 -06:00
Marek Polacek c526171d73 PR c++/89612 - ICE with member friend template with noexcept.
* pt.c (maybe_instantiate_noexcept): For function templates, use their
	template result (function decl).  Don't set up local specializations.
	Temporarily turn on processing_template_decl.  Update the template type
	too.

	* g++.dg/cpp0x/noexcept38.C: New test.
	* g++.dg/cpp0x/noexcept39.C: New test.
	* g++.dg/cpp1z/noexcept-type21.C: New test.

From-SVN: r270005
2019-03-28 20:24:48 +00:00
Uros Bizjak ddfd99ac13 re PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times \\\\), % 45)
PR target/89865
	* config/i386/i386.md (RMW operation with LEA peephole):
	Use LEAMODE mode attribute instead of SWI mode iterator for
	LEA pattern.

From-SVN: r270004
2019-03-28 20:33:22 +01:00
Uros Bizjak 198c27e983 re PR target/89848 (ICE: in convert_op, at config/i386/i386.c:2099 with -O2 -msse2 -mtune=pentium3m)
PR target/89848
	* config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
	Also process XEXP (src, 0) of a shift insn.

testsuite/ChangeLog:

	PR target/89848
	* gcc.target/i386/pr89848.c: New test.

From-SVN: r270003
2019-03-28 20:15:58 +01:00
Marek Polacek c91b271552 PR c++/89836 - bool constant expression and explicit conversions.
* call.c (build_converted_constant_expr_internal): New function,
	renamed from...
	(build_converted_constant_expr): ...this.  New.
	(build_converted_constant_bool_expr): New.
	* cp-tree.h (build_converted_constant_bool_expr): Declare.
	* decl.c (build_explicit_specifier): Call
	build_converted_constant_bool_expr.

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

From-SVN: r270002
2019-03-28 18:23:18 +00:00
Jakub Jelinek bb15c8b7f7 re PR c/89812 (incorrect maximum in error: requested alignment ‘536870912’ exceeds maximum 2147483648)
PR c/89812
	* gcc.dg/attr-aligned-3.c: Limit the test to known ELF targets
	other than AVR.  Add dg-options "".

From-SVN: r270001
2019-03-28 18:14:05 +01:00
Ville Voutilainen 337d1fec36 Don't revisit a variant we are already visiting.
* include/std/variant (__variant_construct_single): New.
(__variant_construct): Use it.
(_M_destructive_move): Likewise.
(_M_destructive_copy): Likewise.
(_Copy_assign_base::operator=): Adjust.
(_Move_assign_base::operator=): Likewise.
(swap): Likewise.

From-SVN: r269996
2019-03-28 18:18:49 +02:00
Jakub Jelinek c7a53bdbb1 re PR c++/89785 (Incorrect "not a constant expression" error with switch statement that returns)
PR c++/89785
	* constexpr.c (struct check_for_return_continue_data): New type.
	(check_for_return_continue): New function.
	(potential_constant_expression_1) <case SWITCH_STMT>: Walk
	SWITCH_STMT_BODY to find RETURN_EXPRs or CONTINUE_STMTs not nested
	in loop bodies and set *jump_target to that if found.

	* g++.dg/cpp1y/constexpr-89785-1.C: New test.
	* g++.dg/cpp1y/constexpr-89785-2.C: New test.

From-SVN: r269995
2019-03-28 15:47:47 +01:00
David Malcolm 12b9247b19 optinfo-emit-json.cc: don't call get_fnname_from_decl (PR middle-end/89725)
optrecord_json_writer::optinfo_to_json can in theory be called from any
optimization pass, but currently uses get_fnname_from_decl, which
is RTL-specific.

In that PR, Jakub suggested using either DECL_ASSEMBLER_NAME or the
"printable name" (via current_function_name).

This patch makes it use DECL_ASSEMBLER_NAME.

gcc/ChangeLog:
	PR middle-end/89725
	* optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
	Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.

From-SVN: r269994
2019-03-28 14:40:56 +00:00
Jakub Jelinek cdd82c1ee8 regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P test.
* regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
	test.
	(cprop_hardreg_bb, cprop_hardreg_debug): New functions.
	(pass_cprop_hardreg::execute): Use those.  Don't repeat bb processing
	immediately after first one with df_analyze in between, but rather
	process all bbs, queueing ones that need second pass in a worklist,
	df_analyze, process queued debug insn changes and if second pass is
	needed, process bbs from worklist, df_analyze, process queued debug
	insns again.

From-SVN: r269992
2019-03-28 15:20:10 +01:00
Jakub Jelinek c84e2d3d18 rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P or CALL_P instead of INSN_P && !DEBUG_INSN_P.
* rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
	or CALL_P instead of INSN_P && !DEBUG_INSN_P.
	(INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.

From-SVN: r269991
2019-03-28 15:07:40 +01:00
Jonathan Wakely 92cf93d98f PR c/79022 fix mismatch parameter order in declaratio
The declaration of create_nested_ptr_option in the header has the 'from'
and 'to' parameters in the opposite order from the definition in
gengtype.c:

  /* Return an options structure for a "nested_ptr" option.  */
  options_p
  create_nested_ptr_option (options_p next, type_p t,
                            const char *to, const char *from)

and the only caller in gengtype-parse.c:

  return create_nested_ptr_option (prev, ty, to, from);

This patch swaps the parameter names in the declaration.

	PR c/79022
	* gengtype.h (create_nested_ptr_option): Fix parameter names to match
	definition.

From-SVN: r269990
2019-03-28 13:42:48 +00:00
Martin Liska 684f60085b Revert r254150 (PR bootstrap/89829).
2019-03-28  Martin Liska  <mliska@suse.cz>

	PR bootstrap/89829
	* Makefile.in: Revert r254150.
	* Makefile.tpl: Likewise.

From-SVN: r269985
2019-03-28 08:44:44 +00:00
Ben Elliston fed156ac66 MAINTAINERS (Various Maintainers): Remove myself from dfp.c and related, and libdecnumber.
* MAINTAINERS (Various Maintainers): Remove myself from dfp.c and
	related, and libdecnumber.

From-SVN: r269984
2019-03-28 17:55:57 +11:00
GCC Administrator bad1b9594c Daily bump.
From-SVN: r269983
2019-03-28 00:16:26 +00:00
Janus Weil 7076b27b74 re PR fortran/85537 ([F08] Invalid memory reference at runtime when calling subroutine through procedure pointer)
fix PR 85537

2019-03-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/85537
	* expr.c (gfc_check_assign_symbol): Reject internal and dummy procedures
	in procedure pointer initialization.

2019-03-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/85537
	* gfortran.dg/dummy_procedure_11.f90: Fix test case.
	* gfortran.dg/pointer_init_11.f90: New test case.

From-SVN: r269980
2019-03-27 23:40:22 +01:00
Mateusz B 303d6cb276 re PR target/85667 (ms_abi rules aren't followed when returning short structs with float values)
PR target/85667
	* config/i386/i386.c (ix86_function_value_1): Call the newly added
	function for 32-bit MS_ABI.
	(function_value_ms_32): New function.

testsuite/ChangeLog:

	PR target/85667
	* gcc.target/i386/pr85667-5.c: New testcase.
	* gcc.target/i386/pr85667-6.c: New testcase.

From-SVN: r269979
2019-03-27 22:17:48 +01:00
Bill Schmidt 1509905e82 pr81740-2.c: Require vect_hw_misalign.
2019-03-27  Bill Schmidt  <wschmidt@linux.ibm.com>

	* gcc.dg/vect/pr81740-2.c: Require vect_hw_misalign.

From-SVN: r269978
2019-03-27 20:39:22 +00:00
Jason Merrill dd03c093bc PR c++/89831 - error with qualified-id in const member function.
Since the fix for 15272 we were remembering the wrong function to use at
instantiation time, because the type of the SCOPE_REF didn't reflect the
cv-quals of 'this'.  Conveniently, we can fix this by simplifying the code.

	* semantics.c (finish_non_static_data_member): Use object cv-quals
	in scoped case, too.

From-SVN: r269977
2019-03-27 16:39:19 -04:00
Jason Merrill fad170232c Fix ChangeLog
From-SVN: r269976
2019-03-27 15:26:17 -04:00
Jason Merrill 03bed1538f PR c++/89241 - ICE with lambda in template parameter list.
We were getting confused by a lambda in template definition context that
isn't actually in the scope of any templated entity.  Fixed by telling
type_dependent_expression_p that such a lambda is type-dependent even if we
can't tell that from its closure type.  I've also restored the error for
defining a non-lambda class in a default template argument, and for a lambda
befor C++20.

	* parser.c (cp_parser_lambda_expression): Also reject a lambda in a
	template parameter list before C++20.
	* pt.c (type_dependent_expression_p): True for LAMBDA_EXPR.
	* semantics.c (begin_class_definition): Restore error about defining
	non-lambda class in template parm list.

From-SVN: r269972
2019-03-27 14:39:20 -04:00
Kevin Buettner bbf1efe1b4 team.c (gomp_team_start): Initialize pool->threads[0].
libgomp/ChangeLog:

	* team.c (gomp_team_start): Initialize pool->threads[0].

From-SVN: r269971
2019-03-27 18:30:44 +00:00
Andrew Stubbs c2709ec42b Fix scc clobber in movdi_symbol.
2019-03-27  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/gcn/gcn.md (CC_SAVE_REG): New constant.
	(movdi): Call gen_movdi_symbol_save_scc.
	(gen_movdi_symbol_save_scc): New insn and split.

From-SVN: r269970
2019-03-27 17:06:26 +00:00
Peter Bergner 6732373ed2 re PR rtl-optimization/89313 (ICE in process_alt_operands, at lra-constraints.c:2962)
gcc/
	PR rtl-optimization/89313
	* function.c (matching_constraint_num): New static function.
	(match_asm_constraints_1): Use it.  Fixup white space and comment.
	Don't replace inputs with non-matching constraints which conflict
	with early clobber outputs.

gcc/testsuite/
	PR rtl-optimization/89313
	* gcc.dg/pr89313.c: New test.

From-SVN: r269969
2019-03-27 11:59:15 -05:00
Jeff Law 52295c2de4 re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398)
PR rtl-optimization/87761
	PR rtl-optimization/89826
	* regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
	slightly later.
	(pass_cprop_hardreg::execute): Call df_analyze after adding the
	note problem to get REG_DEAD/REG_UNUSED notes updated.

	PR rtl-optimization/87761
	PR rtl-optimization/89826
	* gcc.c-torture/execute/pr89826.c: New test.

From-SVN: r269967
2019-03-27 10:18:06 -06:00
Jason Merrill ce4609958f PR c++/86932 - missed SFINAE with empty pack.
The issue here was that when processing the explicit template args in
fn_type_unification we added an empty argument pack for the parameter pack,
so we never tried to do any deduction for it, and therefore never looked at
its type.  We need that empty pack behavior for partial ordering, but we
don't want it here, so let's make it conditional on tf_partial.

	* pt.c (coerce_template_parms): Don't add an empty pack if
	tf_partial.
	(fn_type_unification): Pass tf_partial to coerce_template_parms.

From-SVN: r269965
2019-03-27 10:27:00 -04:00
Richard Biener 079c81dabf 20190327-1.c: New testcase.
2019-03-27  Richard Biener  <rguenther@suse.de>

	* gcc.dg/torture/20190327-1.c: New testcase.

From-SVN: r269964
2019-03-27 13:18:39 +00:00
Paul Thomas d5f48c7c62 re PR fortran/88247 (ICE in get_array_ctor_var_strlen, at fortran/trans-array.c:2068)
2019-03-27  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/88247
	* expr.c (is_subref_array): Permit substrings to be detected
	as subref arrays.
	* trans-array.c (get_array_ctor_var_strlen): Obtain the length
	of deferred length strings. Handle substrings with a NULL end
	expression.
	(trans_array_constructor): Remove an unnecessary blank line.
	(gfc_conv_scalarized_array_ref): Skip to label 'done' if 'decl'
	is a pointer array.
	(get_array_charlen): If the expression is an array, convert the
	first element of the constructor and use its string length. Get
	a new charlen if necessary.
	(gfc_conv_expr_descriptor): Call 'get_array_charlen' for array
	constructor expressions. If the ss_info string length is
	available, use that to set the span of character arrays.
	* trans-expr.c (gfc_get_expr_charlen): Handle substrings
	* trans-stmt.c (trans_associate_var): Set the pointer array
	flag for variable targets and constant array constructors. Take
	care not to reset the string length or the span in the case of
	expressions that are not converted as direct by reference.

2019-03-27  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/88247
	* gfortran.dg/associate_47.f90: New test.

From-SVN: r269962
2019-03-27 12:51:43 +00:00
Richard Biener 6461f211e0 re PR debug/89463 (debug information for iterator of an empty loop is gone (at -O3))
2019-03-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89463
	* tree-ssa-dce.c (remove_dead_stmt): Take output vector to
	queue edges to remove.
	(eliminate_unnecessary_stmts): Remove dead PHIs alongside
	dead stmts.  Delay edge removal until PHIs are removed to
	make debug-stmt creation not confused by seemingly degenerate
	PHIs.

	* gcc.dg/guality/pr89463.c: New testcase.

From-SVN: r269961
2019-03-27 09:31:53 +00:00
Alan Modra c686fcbc77 [RS6000] Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
* config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
	throughout file.
	* config/rs6000/darwin.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.

From-SVN: r269960
2019-03-27 11:45:50 +10:30