- 11 Sep, 2018 7 commits
-
-
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 8 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 -
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
Hans-Peter Nilsson committed -
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
Hans-Peter Nilsson committed -
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
Ian Lance Taylor committed -
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
Nathan Sidwell committed -
2018-09-09 Xianmiao Qu <xianmiao_qu@c-sky.com> * config/csky/csky.md (*cskyv2_adddi3, *cskyv2_subdi3): Add earlyclobber. From-SVN: r264177
Xianmiao Qu committed -
From-SVN: r264176
GCC Administrator committed
-
- 08 Sep, 2018 6 commits
-
-
* call.c (struct conversion): Update commentary. (standard_conversion): Set rvaluedness_matches_p if LOOKUP_PREFER_RVALUE for ck_base. * g++.dg/cpp0x/move-return2.C: New test. From-SVN: r264172
Marek Polacek committed -
In this testcase, the call to f() can never be a constant expression, but that's not a problem because it isn't always reached by calls to g. We were wrongly rejecting this because potential_constant_expression_1 lacked the jump tracking that cxx_eval_constant_expression has. So this patch adds a simpler version of that tracking. * constexpr.c (potential_constant_expression_1): Add jump_target. (breaks): Check for BREAK_STMT. (continues): Check for CONTINUE_STMT. From-SVN: r264171
Jason Merrill committed -
* cxx-pretty-print.c (cxx_pretty_printer::statement) <case RANGE_FOR_SMT>: Handle RANGE_FOR_INIT_STMT. From-SVN: r264170
Marek Polacek committed -
* c-c++-common/array-init.c: Add dg-prune-output. * g++.dg/cpp0x/lambda/lambda-const-this.C: Add dg-warning. * g++.dg/cpp0x/lambda/lambda-in-class-neg.C: Likewise. * g++.dg/cpp0x/lambda/lambda-in-class.C: Likewise. * g++.dg/cpp0x/lambda/lambda-nested.C: Likewise. * g++.dg/cpp0x/lambda/lambda-nsdmi1.C: Likewise. * g++.dg/cpp0x/lambda/lambda-nsdmi4.C: Likewise. * g++.dg/cpp0x/lambda/lambda-this.C: Likewise. * g++.dg/cpp0x/lambda/lambda-this17.C: Likewise. * g++.dg/cpp0x/lambda/lambda-this18.C: Likewise. * g++.dg/cpp0x/lambda/lambda-this2.C: Likewise. * g++.dg/cpp0x/lambda/lambda-this8.C: Likewise. * g++.dg/cpp1y/pr64382.C: Likewise. * g++.dg/cpp1y/pr77739.C: Likewise. * g++.dg/cpp1z/lambda-this1.C: Likewise. * g++.dg/cpp1z/lambda-this2.C: Likewise. * g++.dg/template/crash84.C: Adjust dg-error. From-SVN: r264169
Marek Polacek committed -
PR rtl-optimization/85458 * sel-sched.c (sel_target_adjust_priority): Allow backend adjust priority hook to reduce the priority of EXPR. From-SVN: r264168
John David Anglin committed -
From-SVN: r264167
GCC Administrator committed
-
- 07 Sep, 2018 6 commits
-
-
As pointed out by Bernhard Reutner-Fischer, this function is unused since the fix for PR 53796 in November 2017. 2018-09-07 Janne Blomqvist <jb@gcc.gnu.org> * runtime/environ.c (init_unsigned_integer): Remove. From-SVN: r264163
Janne Blomqvist committed -
DImode for x87 on 32bit targets. Conditionally disable x87 modes with X87_ENABLE_FLOAT. Remove preparation code. (*float<SWI48:mode><MODEF:mode>2): Rename from *float<SWI48:mode><MODEF:mode>2_mixed. Handle x87, SSE and mixed math using "enabled" attribute. (*floatdi<MODEF:mode>2_i387): Rename from *float<SWI48x:mode><MODEF:mode>2_i387. Handle only DImode and enable for 32bit targets only. (floatdi<X87MODEF:mode>2_i387_with_xmm pre-reload splitter): New splitter. (floatdi<X87MODEF:mode>2_i387_with_xmm): Use register_operand as operand 1 predicate. Rewrite as define_insn_and_split. (floatdi<X87MODEF:mode>2_i387_with_xmm memory input splitter): Remove. From-SVN: r264160
Uros Bizjak committed -
* g++.dg/cpp1z/direct-enum-init1.C: Remove "inside" from diagnostic messages. From-SVN: r264159
Marek Polacek committed -
* constexpr.c (potential_constant_expression_1) <case RANGE_FOR_STMT>: Recur into RANGE_FOR_INIT_STMT. * cp-tree.def: Add RANGE_FOR_INIT_STMT to RANGE_FOR_STMT. * cp-tree.h (RANGE_FOR_INIT_STMT): Define. * dump.c (cp_dump_tree) <case RANGE_FOR_STMT>: Also dump RANGE_FOR_INIT_STMT. * pt.c (tsubst_expr) <case RANGE_FOR_STMT>: Recur into RANGE_FOR_INIT_STMT. * semantics.c (begin_range_for_stmt): Adjust call to build_stmt. Do put the init statement in RANGE_FOR_INIT_STMT. (finish_range_for_decl): Pop it for templates. * g++.dg/cpp2a/range-for11.C: New test. * g++.dg/cpp2a/range-for12.C: New test. * g++.dg/cpp2a/range-for13.C: New test. * g++.dg/cpp2a/range-for14.C: New test. * g++.dg/cpp2a/range-for15.C: New test. * g++.dg/cpp2a/range-for16.C: New test. * g++.dg/cpp2a/range-for17.C: New test. * g++.dg/cpp2a/range-for18.C: New test. * g++.dg/parse/error61.C (foo): Adjust dg-error. From-SVN: r264158
Marek Polacek committed -
* g++.dg/template/ptrmem20.C: Adjust expected diagnostic. * g++.dg/template/ptrmem8.C: Likewise. From-SVN: r264157
Jason Merrill committed -
From-SVN: r264155
GCC Administrator committed
-
- 06 Sep, 2018 8 commits
-
-
* reg-stack.c (get_true_reg) <case FLOAT_TRUNCATE>: Reorder to fallthru to FLOAT case. From-SVN: r264151
Uros Bizjak committed -
[gcc] 2018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com> PR target/86731 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Update logic around folding of vec_sl to handle out of range shift values. [testsuite] 2018-08-15 Will Schmidt <will_schmidt@vnet.ibm.com> PR target/86731 * gcc.target/powerpc/pr86731.c: New test. * gcc.target/powerpc/pr86731-longlong.c: New test. * gcc.target/powerpc/pr86731-fwrapv.c: New test. * gcc.target/powerpc/pr86731-fwrapv-longlong.c: New test. * gcc.target/powerpc/pr86731-nogimplefold.c: New test. * gcc.target/powerpc/pr86731-nogimplefold-longlong.c: New test. From-SVN: r264150
Will Schmidt committed -
* config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Remove. Update callers to gen_fix_trunc<mode>_i387_fisttp (fix_trunc<mode>_i387_fisttp): Change operand 0 predicate to nonimmediate_operand. (fix_trunc<mode>_i387_fisttp_with_temp): Remove insn pattern and corresponding splitters. (*fix_trunc<mode>_i387_1): Always expand with fix_trunc<mode>_i387. (fix_truncdi_i387): Change operand 0 predicate to nonimmediate_operand. (fix_truncdi_i387_with_temp): Remove insn pattern and corresponding splitters. (fix_trunc<mode>_i387): Change operand 0 predicate to nonimmediate_operand. (fix_trunc<mode>_i387_with_temp): Remove insn pattern and corresponding splitters. (*fistdi2_1): Remove. (fistdi2): Ditto. (fistdi2_with_temp): Remove insn pattern and corresponding splitters. (lrintxfdi2): Remove expander. Reimplement as define_insn. (*fist<mode>2_1): Remove. (fist<mode>2): Ditto. (fist<mode>2_with_temp): Remove insn pattern and corresponding splitters. (lrintxf<mode>2): Remove expander. Reimplement as define_insn. (*fist<mode>2_<rounding>_1): Always expand with fist<mode>2_<rounding>. (fistdi2_<rounding>): Change operand 0 predicate to nonimmediate_operand. (fistdi2_<rounding>_with_temp): Remove insn pattern and corresponding splitters. (fist<mode>2_<rounding>): Change operand 0 predicate to nonimmediate_operand. (fist<mode>2_<rounding>_with_temp): Remove insn pattern and corresponding splitters. (*fixuns_trunc<mode>si2_avx512f_zext): Depend on TARGET_SSE_MATH. From-SVN: r264148
Uros Bizjak committed -
* varasm.c (output_constructor_regular_field): Check TYPE_SIZE_UNIT of the init value. * c-common.c (complete_flexible_array_elts): New helper function. * c-common.h (complete_flexible_array_elts): Declare. * c-decl.c (finish_decl): Call complete_flexible_array_elts. * decl.c (check_initializer): Call cp_complete_array_type. From-SVN: r264147
Bernd Edlinger committed -
[gcc] 2018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com> * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for early gimple folding of vec_splat(). * tree-vect-generic.c: Remove static from tree_vec_extract() definition. * gimple-fold.h: Add an extern define for tree_vec_extract(). From-SVN: r264146
Will Schmidt committed -
[gcc] 2018-08-20 Will Schmidt <will_schmidt@vnet.ibm.com> * config/rs6000/rs6000.c (fold_mergehl_helper): Add types_compatible_p wrappers around TREE_TYPE comparisons. From-SVN: r264145
Will Schmidt committed -
Inhibit constant propagation inlining SYMBOL_REF loads into UNSPECV_CAS. Even though reload can later undo it, the resulting code will be less efficient. gcc/ChangeLog: 2018-09-06 Ilya Leoshkevich <iii@linux.ibm.com> PR target/80080 * config/s390/predicates.md: Add nonsym_memory_operand. * config/s390/s390.c (s390_legitimize_cs_operand): If operand contains a SYMBOL_REF, load it into an intermediate pseudo. (s390_emit_compare_and_swap): Legitimize operand. * config/s390/s390.md: Use the new nonsym_memory_operand with UNSPECV_CAS patterns. gcc/testsuite/ChangeLog: 2018-09-06 Ilya Leoshkevich <iii@linux.ibm.com> PR target/80080 * gcc.target/s390/pr80080-3.c: New test. * gcc.target/s390/s390.exp: Make sure the new test passes on all optimization levels. From-SVN: r264143
Ilya Leoshkevich committed -
The dump file used to come at the end of the sorted dump file list, because the pass was registered dynamically. This did not reflect the order in which passes are executed. Static registration fixes this: * foo4.c.277r.split2 * foo4.c.281r.early_mach * foo4.c.282r.pro_and_epilogue gcc/ChangeLog: 2018-09-06 Ilya Leoshkevich <iii@linux.ibm.com> PR target/80080 * config/s390/s390-passes.def: New file. * config/s390/s390-protos.h (class rtl_opt_pass): Add forward declaration. (make_pass_s390_early_mach): Add declaration. * config/s390/s390.c (make_pass_s390_early_mach): (s390_option_override): Remove dynamic registration. * config/s390/t-s390: Add s390-passes.def. From-SVN: r264142
Ilya Leoshkevich committed
-