- 12 Sep, 2018 18 commits
-
-
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
Ville Voutilainen committed -
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
David Malcolm committed -
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
Paul Thomas committed -
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
Jakub Jelinek committed -
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
Cesar Philippidis committed -
* 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
Uros Bizjak committed -
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
Richard Biener committed -
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
Kwok Cheung Yeung committed -
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
Andrew Stubbs committed -
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
Richard Biener committed -
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
Andreas Krebbel committed -
From-SVN: r264233
Martin Liska committed -
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
Jakub Jelinek committed -
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
Jakub Jelinek committed -
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
Tom de Vries committed -
* 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
Aldy Hernandez committed -
(alloca_type_and_limit::alloca_type_and_limit): Initialize limit field for ALLOCA_BOUND_*_LARGE. From-SVN: r264227
Aldy Hernandez committed -
From-SVN: r264226
GCC Administrator committed
-
- 11 Sep, 2018 15 commits
-
-
From-SVN: r264217
Nathan Sidwell committed -
* reg-stack.c (subst_asm_stack_regs): Call replace_reg also for clobbers. Remove obsolete comment. From-SVN: r264216
Uros Bizjak committed -
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
Janus Weil committed -
* 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
Uros Bizjak committed -
* 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
Uros Bizjak committed -
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
Paul Thomas committed -
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
Nathan Sidwell committed -
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
Jonathan Wakely committed -
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
Jonathan Wakely committed -
From-SVN: r264205
Aldy Hernandez committed -
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
Andrew Stubbs committed -
* tree-vrp (extract_range_from_binary_expr_1): Treat all divisions by zero as VR_UNDEFINED. From-SVN: r264203
Aldy Hernandez committed -
2018-09-11 Joey Ye <joey.ye@arm.com> * lib/gcov.exp (verify-intermediate): Add missing close. From-SVN: r264202
Joey Ye committed -
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
Janus Weil committed -
From-SVN: r264200
GCC Administrator committed
-
- 10 Sep, 2018 5 commits
-
-
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
Janus Weil committed -
* 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
Uros Bizjak committed -
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
Uros Bizjak committed -
* 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
Marek Polacek committed -
From-SVN: r264189
GCC Administrator committed
-
- 09 Sep, 2018 2 commits
-
-
* 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
Uros Bizjak committed -
PR target/86794 * config/mmix/mmix.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine to speculation_safe_value_not_needed. From-SVN: r264184
Hans-Peter Nilsson committed
-