- 06 Aug, 2019 8 commits
-
-
/cp 2019-08-06 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (check_array_designated_initializer): Use cp_expr_loc_or_input_loc in one place. /testsuite 2019-08-06 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/desig1.C: Check location too. From-SVN: r274141
Paolo Carlini committed -
2019-08-06 Martin Liska <mliska@suse.cz> * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P and DECL_IS_OPERATOR_DELETE_P. From-SVN: r274139
Martin Liska committed -
* tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ... (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment. * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable new vars into GOVD_PRIVATE rather than GOVD_LOCAL. (gimplify_omp_for): Don't do C++ random access iterator clause adjustments on combined constructs from OMP_LOOP. For OMP_LOOP, don't predetermine the artificial iterator in case of C++ random access iterators as lastprivate, but private. For OMP_LOOP, force bind expr around simd body and force for_pre_body before the construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV. (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for diff var of C++ random access iterators. Handle OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause on the OMP_FOR and OMP_DISTRIBUTE constructs if any. * omp-low.c (lower_rec_input_clauses): For OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private variables instead of default constructing them. (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the is_taskloop_ctx check from the assert to the guarding condition. gcc/cp/ * parser.c (cp_parser_omp_for_loop): For OMP_LOOP, ignore parallel clauses and predetermine iterator as lastprivate. * semantics.c (handle_omp_for_class_iterator): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV, set it for lastprivate also on OMP_LOOP construct. If a clause is missing for class iterator on OMP_LOOP, add firstprivate clause, and if there is private clause, turn it into firstprivate too. (finish_omp_for): Formatting fix. For OMP_LOOP, adjust OMP_CLAUSE_LASTPRIVATE_LOOP_IV clause CP_CLAUSE_INFO, so that it uses copy ctor instead of default ctor. * cp-gimplify.c (cp_gimplify_expr): Handle OMP_LOOP like OMP_DISTRIBUTE etc. (cp_fold_r): Likewise. (cp_genericize_r): Likewise. (cxx_omp_finish_clause): Also finish lastprivate clause with OMP_CLAUSE_LASTPRIVATE_LOOP_IV flag. * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_BIND. (tsubst_omp_for_iterator): For OMP_LOOP, ignore parallel clauses and predetermine iterator as lastprivate. * constexpr.c (potential_constant_expression_1): Handle OMP_LOOP like OMP_DISTRIBUTE etc. libgomp/ * testsuite/libgomp.c++/loop-13.C: New test. * testsuite/libgomp.c++/loop-14.C: New test. * testsuite/libgomp.c++/loop-15.C: New test. From-SVN: r274138
Jakub Jelinek committed -
Input string consist of four parts: <primary arch>-<abi>-<additional arches>-<extensions> and generator doing combination with <extensions> part, but it just append the extension at the end of arch string, it might generate invalid arch. For example, without this patch `./multilib-generator rv32imafc-ilp32--d` will generate: MULTILIB_OPTIONS = march=rv32imafc/march=rv32imafcd mabi=ilp32 ^^^^^^^^^^ and rv32imafcd is not in canonical order. Tested with python 2.7 and python 3.6/3.7. gcc/ChangeLog * gcc/config/riscv/multilib-generator: (canonical_order): New. (arch_canonicalize): Dito. Apply arch_canonicalize for alts. From-SVN: r274137
Kito Cheng committed -
* parser.c (cp_parser_conversion_type_id): Call cp_parser_type_specifier_seq with CP_PARSER_FLAGS_TYPENAME_OPTIONAL instead of CP_PARSER_FLAGS_NONE. * g++.dg/cpp2a/typename17.C: New test. From-SVN: r274136
Marek Polacek committed -
gcc/testsuite/ChangeLog: * gcc.dg/uninit-pr50476.c: New test. From-SVN: r274135
Martin Sebor committed -
From-SVN: r274134
GCC Administrator committed -
testsuite/ChangeLog: * g++.dg/pr60517.C: New test. From-SVN: r274130
Martin Sebor committed
-
- 05 Aug, 2019 17 commits
-
-
2019-08-02 Michael Meissner <meissner@linux.ibm.com> * config/rs6000/future.md: New file. * config/rs6000/rs6000.md: Include future.md. * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md. From-SVN: r274129
Michael Meissner committed -
gcc/ChangeLog: * doc/extend.texi (Common Variable Attributes): Document alias attribute. From-SVN: r274127
Martin Sebor committed -
2019-08-05 Paolo Carlini <paolo.carlini@oracle.com> * cp-tree.h (cp_expr_loc_or_input_loc): New. (cxx_incomplete_type_diagnostic): Use it. * call.c (build_converted_constant_expr_internal, convert_like_real, convert_arg_to_ellipsis, convert_for_arg_passing, build_over_call, build_cxx_call, perform_implicit_conversion_flags, initialize_reference): Likewise. * constexpr.c (cxx_eval_internal_function, cxx_eval_call_expression, eval_and_check_array_index, cxx_eval_store_expression, cxx_eval_statement_list, cxx_eval_loop_expr, cxx_eval_constant_expression, potential_constant_expression_1): Likewise. * constraint.cc (check_for_logical_overloads, satisfy_predicate_constraint): Likewise. * cp-gimplify.c (cp_gimplify_expr): Likewise. * cvt.c (cp_convert_to_pointer, convert_to_reference, cp_convert_and_check, ocp_convert, maybe_warn_nodiscard): Likewise. * decl.c (pop_switch): Likewise. * decl2.c (delete_sanity): Likewise. * error.c (location_of): Likewise. * init.c (maybe_warn_list_ctor, build_aggr_init, warn_placement_new_too_small, build_new_1, build_vec_init): Likewise. * lex.c (unqualified_name_lookup_error): Likewise. * parser.c (cp_parser_initializer_list, cp_parser_omp_for_cond): Likewise. * pt.c (check_for_bare_parameter_packs, check_valid_ptrmem_cst_expr, unify_arg_conversion, convert_nontype_argument, tsubst_copy_and_build, resolve_typename_type): Likewise. * semantics.c (maybe_convert_cond, finish_call_expr, cp_build_vec_convert): Likewise. * typeck.c (decay_conversion, rationalize_conditional_expr, cp_build_unary_op, build_x_compound_expr_from_list, maybe_warn_about_returning_address_of_local, maybe_warn_pessimizing_move): Likewise. * typeck2.c (check_narrowing, digest_init_r, process_init_constructor_array): Likewise. From-SVN: r274124
Paolo Carlini committed -
This patch fixes PR c++/88095: class nontype template parameter UDL string literals doesn't accepts deduction placeholder It also addresses a latent issue; literal operator templates with template parameter packs of literal class type were previously accepted. The patch corrects this and adds a test (udlit-class-nttp-neg.C). This fix is needed for one of the char8_t remediation approaches documented in P1423, and may be helpful for existing code bases impacted by the char8_t changes adopted via P0482 for C++20. gcc/cp/ChangeLog: 2019-08-02 Tom Honermann <tom@honermann.net> * parser.c (cp_parser_template_declaration_after_parameters): Enable class template argument deduction for non-type template parameters in literal operator templates. gcc/testsuite/ChangeLog: 2019-08-02 Tom Honermann <tom@honermann.net> PR c++/88095 * g++.dg/cpp2a/udlit-class-nttp-ctad.C: New test. * g++.dg/cpp2a/udlit-class-nttp-ctad-neg.C: New test. * g++.dg/cpp2a/udlit-class-nttp-ctad-neg2.C: New test. * g++.dg/cpp2a/udlit-class-nttp.C: New test. * g++.dg/cpp2a/udlit-class-nttp-neg.C: New test. * g++.dg/cpp2a/udlit-class-nttp-neg2.C: New test. From-SVN: r274123
Tom Honermann committed -
2019-08-05 Steven g. Kargl <kargl@gcc.gnu.org> PR fortran/91372 * decl.c (gfc_match_data): Allow an implied do-loop to nestle against DATA. 2019-08-05 Steven g. Kargl <kargl@gcc.gnu.org> PR fortran/91372 * gfortran.dg/pr91372.f90: New test. From-SVN: r274122
Steven G. Kargl committed -
* c-opts.c (c_common_post_options): Enable -Wcomma-subscript by default for C++2a, unless -Wno-deprecated. * c.opt (Wcomma-subscript): New warning. * parser.c (cp_parser_postfix_open_square_expression): Warn about uses of a comma operator within a subscripting expression. (cp_parser_skip_to_closing_square_bracket_1): New function, made out of... (cp_parser_skip_to_closing_square_bracket): ...this. * doc/invoke.texi: Document -Wcomma-subscript. * g++.dg/cpp2a/comma1.C: New test. * g++.dg/cpp2a/comma2.C: New test. * g++.dg/cpp2a/comma3.C: New test. * g++.dg/cpp2a/comma4.C: New test. From-SVN: r274121
Marek Polacek committed -
From-SVN: r274120
Jason Merrill committed -
Adding SVE intrinsics on top of the existing AArch64 intrinsics blows the 12-bit function_code in tree_function_decl. That bitfield has no spare bits, but it comes at the end of the structure and is preceded by a pointer, so on LP64 hosts there's currently a 32-bit hole at end. This patch therefore makes function_code an independent field and moves the bitfield to the 32-bit hole. I wondered about instead making function_code 16 bits, so that the patch leaves 28 spare bits instead of just 12. That seemed a bit short-term though; I can't guarantee that we won't blow 16 bits once the SVE2 functions are added... If we run out of bits again, we can start chomping from the top of the enum. E.g. 24 bits should surely be enough, but there's no point paying the overhead of the masking until we need it. 2019-08-05 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-core.h (tree_function_decl): Make function_code an independent field. Group the remaining bitfields into bytes and move decl_type so that it contines to be at a byte boundary. Leave 12 bits for future expansion. From-SVN: r274119
Richard Sandiford committed -
This patch folds IFN_MASK_LOAD and IFN_MASK_STOREs to normal accesses if the mask is all-true. This can happen for fully-masked loops that didn't actually need to be (which could be handled by the vectoriser instead), or for unrolled fully-masked loops whose first iteration is guaranteed to operate on a full vector. It's also useful when the accesses are generated directly by intrinsics (to follow for SVE). 2019-08-05 Richard Sandiford <richard.sandiford@arm.com> gcc/ * gimple-fold.c (gimple_fold_mask_load_store_mem_ref) (gimple_fold_mask_load, gimple_fold_mask_store): New functions. (gimple_fold_call): Use them to fold IFN_MASK_LOAD and IFN_MASK_STORE. gcc/testsuite/ * gcc.target/aarch64/sve/mask_load_1.c: New test. From-SVN: r274118
Richard Sandiford committed -
I needed to add another instance of this idiom, so thought it'd be worth having a helper function. 2019-08-05 Richard Sandiford <richard.sandiford@arm.com> gcc/ * gimple.h (gimple_move_vops): Declare. * gimple.c (gimple_move_vops): New function * gimple-fold.c (replace_call_with_call_and_fold) (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset) (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange) (gimple_fold_call): Use it. * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise. * tree-call-cdce.c (use_internal_fn): Likewise. * tree-if-conv.c (predicate_load_or_store): Likewise. * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. * tree-ssa-propagate.c (finish_update_gimple_call): Likewise. (update_call_from_tree): Likewise. * tree-vect-stmts.c (vectorizable_load): Likewise. * tree-vectorizer.c (adjust_simduid_builtins): Likewise. From-SVN: r274117
Richard Sandiford committed -
2019-08-05 Jozef Lawrynowicz <jozef.l@mittosystems.com> * gcc.target/msp430/pr80993.c: Add cleanup-saved-temps to final actions. From-SVN: r274116
Jozef Lawrynowicz committed -
2019-08-05 Martin Liska <mliska@suse.cz> PR c++/91334 * tree-ssa-dce.c (propagate_necessity): Handle new operators with not arguments. (eliminate_unnecessary_stmts): Likewise. 2019-08-05 Martin Liska <mliska@suse.cz> PR c++/91334 * g++.dg/torture/pr91334.C: New test. From-SVN: r274115
Martin Liska committed -
2019-08-05 Richard Biener <rguenther@suse.de> PR middle-end/91169 * fold-const.c (get_array_ctor_element_at_index): Create offset_ints according to the sign of the index type and treat that as signed if it is obviously so. * gnat.dg/array37.adb: New testcase. From-SVN: r274114
Richard Biener committed -
PR target/91341 * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128, _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i, _mm256_storeu2_m128i): New function. * gcc.target/i386/avx-loadu2-m128-1.c: New test. * gcc.target/i386/avx-loadu2-m128-2.c: New test. * gcc.target/i386/avx-loadu2-m128d-1.c: New test. * gcc.target/i386/avx-loadu2-m128d-2.c: New test. * gcc.target/i386/avx-loadu2-m128i-1.c: New test. * gcc.target/i386/avx-loadu2-m128i-2.c: New test. * gcc.target/i386/avx-storeu2-m128-1.c: New test. * gcc.target/i386/avx-storeu2-m128-2.c: New test. * gcc.target/i386/avx-storeu2-m128d-1.c: New test. * gcc.target/i386/avx-storeu2-m128d-2.c: New test. * gcc.target/i386/avx-storeu2-m128i-1.c: New test. * gcc.target/i386/avx-storeu2-m128i-2.c: New test. From-SVN: r274109
Jakub Jelinek committed -
- argument and return value for libcall won't promote at default_promote_function_mode_always_promote, however we expect it should sign-extend as normal function. - Witout this patch, this test case will fail at -march=rv64i -mabi=lp64. - The implementation of riscv_promote_function_mode is borrowed from MIPS. gcc/ChangeLog * config/riscv/riscv.c (riscv_promote_function_mode): New. (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode. gcc/testsuite/ChangeLog * gcc.target/riscv/promote-type-for-libcall.c: New. From-SVN: r274107
Kito Cheng committed -
rev 266496 (git ab6b1bb456) undefined some macros in rs6000/freebsd.h but missed doing the same in rs6000/freebsd64.h. PR target/91349 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC), (LINK_GCC_C_SEQUENCE_SPEC): Undef. From-SVN: r274105
Alan Modra committed -
From-SVN: r274103
GCC Administrator committed
-
- 04 Aug, 2019 5 commits
-
-
* update_web_docs_svn: Proceed even if the invocation of sphinx fails. From-SVN: r274099
David Malcolm committed -
2019-08-04 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88227 * check.c (oct2bin): New function. Convert octal string to binary. (hex2bin): New function. Convert hexidecimal string to binary. (bin2real): New function. Convert binary string to REAL. Use oct2bin and hex2bin. (gfc_boz2real): Use fallback conversion bin2real. From-SVN: r274096
Steven G. Kargl committed -
* doc/xml/manual/documentation_hacking.xml: doxygen.org is now doxygen.nl. From-SVN: r274094
Gerald Pfeifer committed -
* doc/install.texi (Prerequisites): Remove reference to Tcl 8.6 bug that was fixed in Tcl 8.6.1. From-SVN: r274089
Gerald Pfeifer committed -
From-SVN: r274054
GCC Administrator committed
-
- 03 Aug, 2019 1 commit
-
-
From-SVN: r274037
GCC Administrator committed
-
- 02 Aug, 2019 9 commits
-
-
2019-08-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90985 * decl.c (gfc_match_data): In free-form code, DATA be followed by whitespace. 2019-08-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90985 * gfortran.dg/pr90985.f90: New test. From-SVN: r274033
Steven G. Kargl committed -
From-SVN: r274032
Steven G. Kargl committed -
2019-08-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90297 * match.c (gfc_match_equivalence): Check that EQUIVALENCE is followed by '('. 2019-08-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90297 * gfortran.dg/equiv_10.f90: New test. From-SVN: r274031
Steven G. Kargl committed -
2019-08-02 Michael Meissner <meissner@linux.ibm.com> * config/rs6000/future.md: New file. * config/rs6000/rs6000.md: Include future.md. * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md. From-SVN: r274030
Michael Meissner committed -
Introduce exception handler ABI #1 to ensure single release, no access after release of reraised Machine_Occurrences, and no failure to re-reraise a Machine_Occurrence. Unlike Ada exceptions, foreign exceptions do not get a new Machine_Occurrence upon reraise, but each handler would delete the exception upon completion, normal or exceptional, save for the case of a 'raise;' statement within the handler, that avoided the delete by clearing the exception pointer that the cleanup would use to release it. The cleared exception pointer might then be used by a subsequent reraise within the same handler. Get_Current_Excep.all would also expose the Machine_Occurrence to reuse by Reraise_Occurrence, even for native exceptions. Under ABI #1, Begin_Handler_v1 claims responsibility for releasing an exception by saving its cleanup and setting it to Claimed_Cleanup. End_Handler_v1 restores the cleanup and runs it, as long as it isn't still Claimed_Cleanup (which indicates an enclosing handler has already claimed responsibility for releasing it), and as long as the same exception is not being propagated up (the next handler of the propagating exception will then claim responsibility for releasing it), so reraise no longer needs to clear the exception pointer, and it can just propagate the exception, just like Reraise_Occurrence. ABI #1 is fully interoperable with ABI #0, i.e., exception handlers that call the #0 primitives can be linked together with ones that call the #1 primitives, and they will not misbehave. When a #1 handler claims responsibility for releasing an exception, even #0 reraises dynamically nested within it will refrain from releasing it. However, when a #0 handler is a handler of a foreign exception that would have been responsible for releasing it with #1, a Reraise_Occurrence of that foreign or other Machine_Occurrence-carrying exception may still cause the exception to be released multiple times, and to be used after it is first released, even if other handlers of the foreign exception use #1. for gcc/ada/ChangeLog * libgnat/a-exexpr.adb (Begin_Handler_v1, End_Handler_v1): New. (Claimed_Cleanup): New. (Begin_Handler, End_Handler): Document. * gcc-interface/trans.c (gigi): Switch to exception handler ABI #1. (Exception_Handler_to_gnu_gcc): Save the original cleanup returned by begin handler, pass it to end handler, and use EH_ELSE_EXPR to pass a propagating exception to end handler. (gnat_to_gnu): Leave the exception pointer alone for reraise. (add_cleanup): Handle EH_ELSE_EXPR, require it by itself. From-SVN: r274029
Alexandre Oliva committed -
re PR c++/56428 ([C++11] "is not a constant expression" when comparing non-type template argument to nullptr) PR c++/56428 * g++.dg/cpp0x/nontype4.C: New test. From-SVN: r274028
Marek Polacek committed -
re PR c++/53009 (pointer to static member function of template class is “invalid” as a template argument of another template class) PR c++/53009 * g++.dg/cpp0x/nontype3.C: New test. From-SVN: r274027
Marek Polacek committed -
function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT check to use targetm.slow_unaligned_access instead. 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de> * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT check to use targetm.slow_unaligned_access instead. From-SVN: r274025
Bernd Edlinger committed -
re PR c++/77575 (Bogus error when alias template yielding a reference type used as template template argument) PR c++/77575 * g++.dg/cpp0x/nontype2.C: New test. From-SVN: r274024
Marek Polacek committed
-