Commit Graph

163884 Commits

Author SHA1 Message Date
Vlad Lazar
0795f659b0 [AArch64] Add support for TARGET_COMPUTE_FRAME_LAYOUT
The patch adds support for the TARGET_COMPUTE_FRAME_LAYOUT hook on AArch64
and removes unneeded frame layout recalculation.

2018-09-13  Vlad Lazar  <vlad.lazar@arm.com>

	* config/aarch64/aarch64.h (TARGET_COMPUTE_FRAME_LAYOUT): Define.
	* config/aarch64/aarch64.c (aarch64_expand_prologue): Remove
	aarch64_layout_frame call.
	(aarch64_expand_epilogue): Likewise.
	(aarch64_initial_elimination_offset): Likewise.
	(aarch64_get_separate_components): Likewise.
	(aarch64_use_return_insn_p): Likewise.
	(aarch64_layout_frame): Remove unneeded check.

From-SVN: r264263
2018-09-13 09:36:58 +00:00
Jakub Jelinek
54de7d7dd0 configure.ac: Only append " ...
* configure.ac: Only append
	" : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS" to
	gcc_config_arguments if it was never reconfigured or last reconfigure
	was with different arguments.
	* configure: Regenerated.

From-SVN: r264262
2018-09-13 09:43:29 +02:00
Jakub Jelinek
d51232fb3b re PR middle-end/87290 (Optimize signed x % pow2p == cst)
PR middle-end/87290
	* expr.c (maybe_optimize_pow2p_mod_cmp): New function.
	(maybe_optimize_mod_cmp): Use it if integer_pow2p treeop1.

	* gcc.target/i386/pr87290.c: New test.
	* gcc.c-torture/execute/pr87290.c: New test.

Co-Authored-By: Kyrylo Tkachov <kyrylo.tkachov@arm.com>

From-SVN: r264261
2018-09-13 09:42:55 +02:00
Jakub Jelinek
392750c53e re PR tree-optimization/87287 (Move signed (x % pow2) == 0 optimization to gimple)
PR tree-optimization/87287
	* fold-const.c (fold_binary_loc) <case EQ_EXPR>: Move signed modulo
	X % C == 0 to X % (unsigned) C == 0 optimization to ...
	* match.pd (X % C == 0): ... here.  New optimization.

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

From-SVN: r264260
2018-09-13 09:36:50 +02:00
Ian Lance Taylor
8a90f559d7 compiler: omit a couple of write barriers
Omit a write barrier for
        s = s[0:]
    for a slice s.  In this case the pointer is not changing and no write
    barrier is required.
    
    Omit a write barrier for
        s = append(s, v)
    in the case where len(s) < cap(s) (and similarly when appending more
    values).  When the slice has enough capacity the pointer is not
    changing and no write barrier is required.
    
    These changes are required to avoid write barriers in the method
    randomOrder.reset in the runtime package.  That method is called from
    procresize, at a point where we do not want to allocate memory.
    Otherwise that method can use a write barrier, allocate memory, and
    break TestReadMemStats.
    
    Reviewed-on: https://go-review.googlesource.com/134219

From-SVN: r264259
2018-09-13 00:45:55 +00:00
GCC Administrator
6201be94cd Daily bump.
From-SVN: r264258
2018-09-13 00:16:32 +00:00
Ville Voutilainen
b51da998ee re PR c++/87093 (is_constructible (__is_constructible() instrinsic) explicitly instantiates conversion member function of source)
PR c++/87093

gcc/cp

PR c++/87093
* method.c (constructible_expr): We're in an unevaluated context
in all cases, not just for class targets.

testsuite/

PR c++/87093
* g++.dg/ext/is_constructible2.C: New.

From-SVN: r264253
2018-09-13 00:10:43 +03:00
David Malcolm
4911b24d71 C++: special-case single non-viable candidate (more PR c++/85110)
I broke out the "no viable candidates" case in build_new_method_call_1
into a subroutine, and added special-case handling for when there's
a single non-viable candidate where there's an argument conversion
error.  I turned the error-handling from convert_for_assignment into
a subroutine, calling it from this new special-case.

This converts:

demo.cc: In function 'int test_4(int, const char*, float)':
demo.cc:5:44: error: no matching function for call to 's4::member_1(int&, const char*&, float&)'
5 |   return s4::member_1 (first, second, third);
  |                                            ^
demo.cc:1:24: note: candidate: 'static int s4::member_1(int, const char**, float)'
1 | struct s4 { static int member_1 (int one, const char **two, float three); };
  |                        ^~~~~~~~
demo.cc:1:56: note:   no known conversion for argument 2 from 'const char*' to 'const char**'
1 | struct s4 { static int member_1 (int one, const char **two, float three); };
  |                                           ~~~~~~~~~~~~~^~~

to:

demo.cc: In function 'int test_4(int, const char*, float)':
demo.cc:5:31: error: cannot convert 'const char*' to 'const char**'
5 |   return s4::member_1 (first, second, third);
  |                               ^~~~~~
  |                               |
  |                               const char*
demo.cc:1:56: note:   initializing argument 2 of 'static int s4::member_1(int, const char**, float)'
1 | struct s4 { static int member_1 (int one, const char **two, float three); };
  |                                           ~~~~~~~~~~~~~^~~

thus highlighting the problematic argument at the callsite (and its type).

gcc/cp/ChangeLog:
	PR c++/85110
	* call.c (struct conversion_info): Add "loc" field.
	(arg_conversion_rejection): Add "loc" param, using it to
	initialize the new field.
	(bad_arg_conversion_rejection): Likewise.
	(explicit_conversion_rejection): Initialize the new field to
	UNKNOWN_LOCATION.
	(template_conversion_rejection): Likewise.
	(add_function_candidate): Pass on the argument location to the new
	param of arg_conversion_rejection.
	(add_conv_candidate): Likewise.
	(build_builtin_candidate): Likewise.
	(build_user_type_conversion_1): Likewise.
	(single_z_candidate): New function.
	(maybe_get_bad_conversion_for_unmatched_call): New function.
	(complain_about_bad_argument): New function, based on part of
	convert_for_assignment.
	(build_new_method_call_1): Split out handling of the "no viable
	candidates" case into...
	(complain_about_no_candidates_for_method_call): ...this new
	function, and use the new functions above to special-case the
	handling of a single non-viable candidate due to a bad argument.
	* cp-tree.h (complain_about_bad_argument): New decl.
	* typeck.c (convert_for_assignment): Split out one error-handling
	case into complain_about_bad_argument.

gcc/testsuite/ChangeLog:
	PR c++/85110
	* g++.dg/cpp0x/explicit4.C: Update expected output to reflect
	special-casing of diagnostic for a single non-viable candidate due
	to a bad argument.
	* g++.dg/diagnostic/param-type-mismatch-2.C: Likewise.
	Add test coverage for an unmatched overloaded operator.
	* g++.dg/expr/pmf-1.C: Likewise.
	* g++.old-deja/g++.bugs/900330_02.C: Likewise.
	* g++.old-deja/g++.jason/conversion11.C: Likewise.
	* g++.old-deja/g++.law/arg11.C: Likewise.
	* g++.old-deja/g++.law/arm9.C: Likewise.
	* g++.old-deja/g++.robertl/eb131.C: Likewise.

From-SVN: r264250
2018-09-12 18:50:08 +00:00
Paul Thomas
3b582f1f3b re PR fortran/87284 (Allocation of class arrays with mold results in "conditional jump or move depends on uninitialised value")
2018-09-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87284
	* trans-expr.c (gfc_trans_class_init_assign): Access to
	to array elements of the dynamic type requires that the array
	reference be added to the class expression and not the _data
	component, unlike scalar expressions.

2018-09-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87284
	* gfortran.dg/allocate_with_mold_2.f90: New test.

From-SVN: r264249
2018-09-12 18:33:13 +00:00
Jakub Jelinek
c0cbe5260f re PR middle-end/82853 (Optimize x % 3 == 0 without modulo)
PR middle-end/82853
	* expr.h (maybe_optimize_mod_cmp): Declare.
	* expr.c (mod_inv): New function.
	(maybe_optimize_mod_cmp): New function.
	(do_store_flag): Use it.
	* cfgexpand.c (expand_gimple_cond): Likewise.

	* gcc.target/i386/pr82853-1.c: New test.
	* gcc.target/i386/pr82853-2.c: New test.

From-SVN: r264248
2018-09-12 20:28:20 +02:00
Cesar Philippidis
8e36332cf6 [OpenACC] C++ reference mapping
2018-09-09  Cesar Philippidis  <cesar@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	PR middle-end/86336

	gcc/cp/
	* semantics.c (finish_omp_clauses): Treat C++ references the same in
	OpenACC as OpenMP.

	gcc/
	* gimplify.c (gimplify_scan_omp_clauses): Set
	target_firstprivatize_array_bases in OpenACC parallel and kernels
	region contexts.  Remove GOMP_MAP_FIRSTPRIVATE_REFERENCE clauses from
	OpenACC data regions.

	libgomp/
	* testsuite/libgomp.oacc-c++/non-scalar-data.C: Remove XFAIL.

Co-Authored-By: Julian Brown <julian@codesourcery.com>

From-SVN: r264244
2018-09-12 15:21:19 +00:00
Uros Bizjak
c749305900 i386.md (sqrt_extend<mode>xf3_i387): Remove.
* config/i386/i386.md (sqrt_extend<mode>xf3_i387): Remove.
	(sqrt<mode>2): Extend operand 1 to XFmode and generate sqrtxf3 insn.

From-SVN: r264243
2018-09-12 17:04:41 +02:00
Richard Biener
b25508e0cc re PR tree-optimization/87280 (ICE in set_ssa_val_to, at tree-ssa-sccvn.c:3647)
2018-09-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87280
	* tree-ssa-sccvn.c (process_bb): Handle the case of executable
	edge but unreachable target.
	(do_rpo_vn): For conservatively handling a PHI only mark
	the backedge executable but not the block reachable.

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

From-SVN: r264241
2018-09-12 14:03:21 +00:00
Kwok Cheung Yeung
72ced87475 Fix interleaving of Fortran STOP messages
Fortran STOP and ERROR STOP use a different function to print the "STOP" string
and the message string.  On GCN this results in out-of-order output, such as
"<msg>ERROR STOP ".

This patch fixes the problem by making estr_write use the proper Fortran write,
not C printf, so both parts are now output the same way.  This also ensures
that both parts are output to STDERR (not that that means anything on GCN).

2018-09-12  Kwok Cheung Yeung  <kcy@codesourcery.com>

	libgfortran/
	* runtime/minimal.c (estr_write): Define in terms of write.

From-SVN: r264239
2018-09-12 13:53:34 +00:00
Andrew Stubbs
4986a9568a Fix Fortran STOP.
The minimal libgfortran setup was created for NVPTX, but will also be used by
AMD GCN.

This patch simply removes an assumption that NVPTX is the only user.
Specifically, NVPTX exit is broken, but AMD GCN exit works just fine.

2018-09-12  Andrew Stubbs  <ams@codesourcery.com>

	libgfortran/
	* runtime/minimal.c (exit): Only work around nvptx bugs on nvptx.

From-SVN: r264238
2018-09-12 13:53:32 +00:00
Richard Biener
28c4b740a6 re PR tree-optimization/87266 (ICE: Segmentation fault (in useless_type_conversion_p, tree_nop_conversion_p, or is_gimple_reg_type))
2018-09-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87266
	* tree-ssa-sccvn.c (do_rpo_vn): Always iterate to not yet
	visited blocks.

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

From-SVN: r264237
2018-09-12 12:14:27 +00:00
Andreas Krebbel
ced8d88234 S/390: Use proper rounding mode for DFP to BFD conversions
According to IEEE 754 2008 4.3 'Rounding-direction attributes' the
rounding mode of the target format needs to be used. By not setting
the value so far we have always used the DFP rounding mode.

gcc/ChangeLog:

2018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New
	constants.
	("trunc<BFP:mode><DFP_ALL:mode>2")
	("trunc<DFP_ALL:mode><BFP:mode>2")
	("extend<BFP:mode><DFP_ALL:mode>2")
	("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode
	according to the target operand type.

gcc/testsuite/ChangeLog:

2018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/dfp_to_bfp_rounding.c: New test.

From-SVN: r264234
2018-09-12 10:58:42 +00:00
Martin Liska
7e7a6ed74d Add quotes for -fconstexpr-depth= in an error message.
From-SVN: r264233
2018-09-12 10:39:45 +00:00
Jakub Jelinek
6cd4c66e9b re PR tree-optimization/86844 (wrong code caused by store merging pass)
PR tree-optimization/86844
	* gimple-ssa-store-merging.c
	(imm_store_chain_info::coalesce_immediate): For overlapping stores, if
	there are any overlapping stores in between them, make sure they are
	also coalesced or we give up completely.

	* gcc.c-torture/execute/pr86844.c: New test.
	* gcc.dg/store_merging_22.c: New test.
	* gcc.dg/store_merging_23.c: New test.

Co-Authored-By: Andreas Krebbel <krebbel@linux.ibm.com>

From-SVN: r264232
2018-09-12 11:25:07 +02:00
Jakub Jelinek
9095b53a8c re PR middle-end/87248 (Bad code for masked operations involving signed ints)
PR middle-end/87248
	* fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that
	BIT_AND_EXPR's second operand is a power of two.  Formatting fix.

	* c-c++-common/torture/pr87248.c: New test.

From-SVN: r264230
2018-09-12 11:18:55 +02:00
Tom de Vries
03e992acea [debug] Add -gdescribe-dies
This patch adds option -gdescribe-dies.  It sets the DW_AT_description
attribute of dies that do not get a DW_AT_name attribute, to make it easier
to figure out what the die is describing.

The option exports the names of artificial variables:
...
 DIE    0: DW_TAG_variable (0x7fa934dd54b0)
+  DW_AT_description: "D.1922"
   DW_AT_type: die -> 0 (0x7fa934dd0d70)
   DW_AT_artificial: 1

...
which can be traced back to gimple dumps:
...
  char a[0:D.1922] [value-expr: *a.0];
...

Furthermore, it adds names to external references:
...
 DIE    0: DW_TAG_subprogram (0x7fa88b9650f0)
+DW_AT_description: "main"
 DW_AT_abstract_origin: die -> label: vla_1.c.6719312a + 29 (0x7fa88b965140)
...
and likewise to DW_TAG_call_site_parameter DIEs.

Bootstrapped and reg-tested on x86_64.

2018-09-12  Tom de Vries  <tdevries@suse.de>

	* common.opt (gdescribe-dies): Add option.
	* dwarf2out.c (add_name_and_src_coords_attributes): Add description
	attribute for artifical and nameless decls.
	(dwarf2out_register_external_die): Add description attribute to
	external reference die.
	(add_desc_attribute): New functions.
	(gen_subprogram_die): Add description attribute to
	DW_TAG_call_site_parameter.
	* tree-pretty-print.c (print_generic_expr_to_str): New function.
	* tree-pretty-print.h (print_generic_expr_to_str): Declare.
	* doc/invoke.texi (@item Debugging Options): Add -gdescribe-dies and
	-gno-describe-dies.
	(@item -gdescribe-dies): Add.

From-SVN: r264229
2018-09-12 07:27:26 +00:00
Aldy Hernandez
28aa632320 tree-vrp.c (vrp_shift_undefined_p): Remove.
* tree-vrp.c (vrp_shift_undefined_p): Remove.
	(extract_range_from_binary_expr_1: Call
	wide_int_range_shift_undefined_p instead of vrp_shift_undefined_p.
	* wide-int-range.h (wide_int_range_shift_undefined_p): Do not
	depend on sign.

From-SVN: r264228
2018-09-12 07:04:19 +00:00
Aldy Hernandez
bb753cad99 * gimple-ssa-warn-alloca.c
(alloca_type_and_limit::alloca_type_and_limit): Initialize limit
	field for ALLOCA_BOUND_*_LARGE.

From-SVN: r264227
2018-09-12 06:50:34 +00:00
GCC Administrator
be67308441 Daily bump.
From-SVN: r264226
2018-09-12 00:16:47 +00:00
Nathan Sidwell
3d80fcaa4a * gcc.c (load_specs, execute, run_attempt): Use %qs not '%s'.
From-SVN: r264217
2018-09-11 21:34:14 +00:00
Uros Bizjak
1f621085b8 reg-stack.c (subst_asm_stack_regs): Call replace_reg also for clobbers.
* reg-stack.c (subst_asm_stack_regs): Call replace_reg also
	for clobbers.  Remove obsolete comment.

From-SVN: r264216
2018-09-11 21:36:35 +02:00
Janus Weil
0e4cb16f56 re PR fortran/87172 (Spurious "Derived type 'c_funptr' at (1) has not been declared" error after r263782)
fix PR 87172

2018-09-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/87172
	* resolve.c (resolve_fl_derived): If a type has the 'use_assoc'
	attribute, then it was declared in another module, so there should be
	no error that it has not been declared.

2018-09-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/87172
	* gfortran.dg/iso_c_binding_only_2.f90: New test case.

From-SVN: r264214
2018-09-11 19:44:04 +02:00
Uros Bizjak
2e3d242234 i386.md (define_attr "type"): Remove mpxmov, mpxmk, mpxchk, mpxld and mpxst types.
* config/i386/i386.md (define_attr "type"): Remove mpxmov, mpxmk,
	mpxchk, mpxld and mpxst types.
	(define_attr length_immediate): Remove all processing of mpx types.
	(define_attr prefix_0f): Ditto.
	(define_attr memory): Ditto.

From-SVN: r264212
2018-09-11 18:53:15 +02:00
Uros Bizjak
ae1ef78018 i386.md (fyl2x_extend<mode>xf3_i387): Remove.
* config/i386/i386.md (fyl2x_extend<mode>xf3_i387): Remove.
	(log<mode>2): Change operand 1 predicate to general_operand.
	Extend operand 1 to XFmode and generate logxf3 insn.
	(log10<mode>2): Change operand 1 predicate to general_operand.
	Extend operand 1 to XFmode and generate log10xf3 insn.
	(log2<mode>2): Change operand 1 predicate to general_operand.
	Extend operand 1 to XFmode and generate log2xf3 insn.
	(fyl2xp1_extend<mode>xf3_i387): Remove.
	(log1p<mode>2): Change operand 1 predicate to general_operand.
	Extend operand 1 to XFmode and generate log1pxf3 insn.
	(fxtract_extend<mode>xf3_i387): Remove.
	(logb<mode>2): Change operand 1 predicate to general_operand.
	Extend operand 1 to XFmode and generate logbxf3 insn.
	(ilogb<mode>2): Change operand 1 predicate to general_operand.
	Extend operand 1 to XFmode and generate fxtractxf3_i387 insn.
	(significand<mode>2): Change operand 1 predicate to general_operand.
	Extend operand 1 to XFmode and generate significandxf3 insn.

From-SVN: r264211
2018-09-11 18:42:35 +02:00
Paul Thomas
3b949026d4 re PR fortran/87277 (Segfault on using array component of class scalar pointer as an actual argument)
2018-09-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87277
	* expr.c (is_subref_array): Add the check of dimensionality for
	class, dummy, pointer arrays.

2018-09-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87277
	* gfortran.dg/select_type_43.f90: New test.

From-SVN: r264210
2018-09-11 15:59:07 +00:00
Nathan Sidwell
b34e743c9c [driver] Use regular error routines
https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00545.html
	* gcc.c (perror_with_name, pfatal_with_name): Delete.
	(load_specs): Use fatal_error.
	(DELETE_IF_ORDINARY, process_command): Use error.
	(execute, run_attempt): Use fatal_error.

	* gcc.dg/driver-specs.c: New.

From-SVN: r264209
2018-09-11 15:03:05 +00:00
Jonathan Wakely
9e2d426c17 PR libstdc++/87278 restore support for std::make_shared<volatile T>()
PR libstdc++/87278
	* include/bits/shared_ptr.h (make_shared): Use remove_cv instead of
	remove_const.
	* testsuite/20_util/shared_ptr/creation/87278.cc: New test.

From-SVN: r264207
2018-09-11 12:50:39 +01:00
Jonathan Wakely
86fc6ec9f3 Implement LWG 2905 changes to constrain unique_ptr constructors
LWG DR 2905 says that is_constructible_v<unique_ptr<P, D>, P, D const &>
should be false when D is not copy constructible. This commit implements
the changes from the DR and simplifies the signatures as per
https://github.com/cplusplus/draft/issues/1530

	* include/bits/unique_ptr.h (__uniq_ptr_impl): Add assertions to
	check deleter type.
	(unique_ptr::unique_ptr(pointer, const deleter_type&)): Add copy
	constructible constraint.
	(unique_ptr::unique_ptr(pointer, deleter_type&&)): Disable for
	deleters of reference type and add move constructible constraint.
	(unique_ptr::unique_ptr(pointer, remove_reference_t<deleter_type>&&)):
	Disable for deleters of non-reference type. Define as deleted.
	(unique_ptr<T[], D>): Likewise.
	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
	directives with unstable line numbers with dg-prune-output.
	* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/lwg2905.cc: New test.
	* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
	Make deleter types invocable.

From-SVN: r264206
2018-09-11 11:55:49 +01:00
Aldy Hernandez
9356a18eb4 Fix typo in my last ChangeLog entry.
From-SVN: r264205
2018-09-11 10:36:20 +00:00
Andrew Stubbs
ad172f720d Add sorry_at diagnostic function.
The plain "sorry" diagnostic only gives the "current" location, which is
typically the last line of the function or translation unit by time we get to
the back end.

GCN uses "sorry" to report unsupported language features, such as static
constructors, so it's useful to have a "sorry_at" variant.

This patch implements "sorry_at" according to the pattern of the other "at"
variants.

2018-09-11  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* diagnostic-core.h (sorry_at): New prototype.
	* diagnostic.c (sorry_at): New function.

From-SVN: r264204
2018-09-11 10:26:57 +00:00
Aldy Hernandez
075cdac363 tree-vrp (extract_range_from_binary_expr_1): Treat all divisions by zero as VR_UNDEFINED.
* tree-vrp (extract_range_from_binary_expr_1): Treat all divisions
	by zero as VR_UNDEFINED.

From-SVN: r264203
2018-09-11 10:19:45 +00:00
Joey Ye
a93a92aa53 gcov.exp (verify-intermediate): Add missing close.
2018-09-11  Joey Ye  <joey.ye@arm.com>

    * lib/gcov.exp (verify-intermediate): Add missing close.

From-SVN: r264202
2018-09-11 08:55:25 +00:00
Janus Weil
f5da9bfb9e re PR fortran/86830 (Contiguous array pointer function result not recognized as contiguous)
fix PR 86830

2018-09-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/86830
	* expr.c (gfc_is_simply_contiguous): Handle type-bound procedure calls
	with non-polymorphic objects.

2018-09-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/86830
	* gfortran.dg/typebound_call_30.f90: New test case.

From-SVN: r264201
2018-09-11 08:33:39 +02:00
GCC Administrator
672ce110a8 Daily bump.
From-SVN: r264200
2018-09-11 00:16:33 +00:00
Janus Weil
d4beaf2a22 re PR fortran/85395 ([F03] private clause contained in derived type acquires spurious scope)
fix PR 85395

2018-09-10  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/85395
	* decl.c (match_binding_attributes): Use correct default accessibility
	for procedure pointer components.

2018-09-10  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/85395
	* gfortran.dg/proc_ptr_comp_52.f90: New test case.

From-SVN: r264196
2018-09-10 23:25:33 +02:00
Uros Bizjak
6f2dde9cf6 i386.md (<sincos>xf2): Rename from *<sincos>xf2_i387.
* config/i386/i386.md (<sincos>xf2): Rename from *<sincos>xf2_i387.
	(*<sincos>_extend<mode>xf2_i387): Remove insn pattern.
	(<sincos>mode2): New expander.
	(sincos_extend<mode>xf3_i387): Remove insn pattern.
	(sincos -> sin, cos splitters): Remove splitter patterns.
	(sincos<mode>3): Change operand 2 predicate to general_operand.
	Extend operand 2 to XFmode and generate sincosxf3 insn.
	(fptanxf4_i387): Change mode of operands 0 and 3 to SFmode.
	Change operand 3 predicate to const1_operand.
	(fptan_extend<mode>xf4_i387): Remove insn pattern.
	(tanxf2): Update operands in the call to fptanxf4_i387.
	(tan<mode>2): Change operand 1 predicate to general_operand.
	Extend operand 1 to XFmode and generate tanxf3 insn.
	(atan2xf3): Rename from *fpatanxf3_i387.
	(fpatan_extend<mode>xf3_i387): Remove insn pattern.
	(atan2xf3): Remove expander.
	(atan2<mode<3):  Change operand 1 and 2 predicates to general_operand.
	Extend operands 1 and 2 to XFmode and generate atan2xf3 insn.
	(atan<mode>2): Change operand 1 predicate to general_operand.
	Extend operand 1 to XFmode and generate atanxf3 insn.

From-SVN: r264195
2018-09-10 21:13:49 +02:00
Uros Bizjak
dfc741557e i386.md (x87/SSE constant load splitter): Use memory_operand instead of nonimmediate_operand for input operand predicate.
* config/i386/i386.md (x87/SSE constant load splitter): Use
	memory_operand instead of nonimmediate_operand for input operand
	predicate.

From-SVN: r264194
2018-09-10 20:46:11 +02:00
Marek Polacek
fe56b8a294 class.c (build_vtbl_ref): Remove.
* class.c (build_vtbl_ref): Remove.
	(build_vtbl_ref_1): Rename to build_vtbl_ref.
	(build_vfn_ref): Call build_vtbl_ref instead of build_vtbl_ref_1.

From-SVN: r264193
2018-09-10 14:49:18 +00:00
GCC Administrator
0fa6c49be6 Daily bump.
From-SVN: r264189
2018-09-10 00:16:42 +00:00
Uros Bizjak
4801cc61b1 i386.md (float partial SSE register stall splitter): Move splitter near its instruction pattern.
* config/i386/i386.md (float partial SSE register stall splitter): Move
	splitter near its instruction pattern.
	(float_extend partial SSE register stall splitter): Ditto.
	(float_truncate partial SSE register stall splitter): Ditto.

From-SVN: r264185
2018-09-09 23:32:08 +02:00
Hans-Peter Nilsson
8eb7aec132 re PR target/86794 (mmix port needs updating for CVE-2017-5753)
PR target/86794
	* config/mmix/mmix.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine
	to speculation_safe_value_not_needed.

From-SVN: r264184
2018-09-09 18:13:18 +00:00
Hans-Peter Nilsson
8023c7a49c re PR target/85666 (gcc-8.0.1 fails to build mmix target: gcc/libgcc/libgcc2.h:203:20: internal compiler error: in leaf_function_p, at final.c:4488)
PR target/85666
	* config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size
	non-CONST_INT rtx:es using assemble_integer_with_op ".byte".

From-SVN: r264183
2018-09-09 18:12:14 +00:00
Hans-Peter Nilsson
a236f9d640 re PR target/85666 (gcc-8.0.1 fails to build mmix target: gcc/libgcc/libgcc2.h:203:20: internal compiler error: in leaf_function_p, at final.c:4488)
PR target/85666
	* config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't
	call leaf_function_p, instead use has_hard_reg_initial_val.

From-SVN: r264182
2018-09-09 18:05:48 +00:00
Ian Lance Taylor
b8106e8fd7 compiler: make sure type descriptor initializers go in .rodata
When creating type descriptor variables, the compiler (specifically
    Type::make_type_descriptor_var) invokes the immutable_struct() and
    immutable_struct_set_init() back end methods, so as to insure that
    these items go into the ".rodata" section of the generate object file.
    The expression initializers for these variables can contain nested
    subexpressions, however, and these subexpressions were not always
    being placed into .rodata. This patch changes the backend-gen code for
    slice initializers to emit implicit variables into .rodata if those
    initializers are part of a type descriptor init.
    
    Reviewed-on: https://go-review.googlesource.com/132596

From-SVN: r264181
2018-09-09 13:26:17 +00:00
Nathan Sidwell
04dad37c39 [PATCH] internalize a driver fn
https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00462.html
	* gcc.h (pfatal_with_name): Don't declare here.
	* gcc.c (pfatal_with_name): Make static.

From-SVN: r264178
2018-09-09 07:42:17 +00:00