aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-08-07wrap math.h for M_PI et al in target/i386 testsAlexandre Oliva79-117/+108
Most but not all of the tests that expect M_PI, M_PI_2 and/or M_PI_4 to be defined in math.h explicitly exclude one target system that does not satisfy this non-standard assumption. This patch introduces a wrapper header that includes math.h and then conditionally supplies the missing non-standard macro definitions. With that, we can drop the dg-skip-if "no M_PI" exclusions. for gcc/testsuite/ChangeLog * gcc.target/i386/math_m_pi.h: New. * gcc.target/i386/sse4_1-round.h: Use it. * gcc.target/i386/pr73350.c: Likewise. * gcc.target/i386/avx512f-vfixupimmpd-2.c: Likewise. * gcc.target/i386/avx512f-vfixupimmps-2.c: Likewise. * gcc.target/i386/avx512f-vfixupimmsd-2.c: Likewise. * gcc.target/i386/avx512f-vfixupimmss-2.c: Likewise. * gcc.target/i386/avx512f-vfixupimmss-2.c: Likewise. * gcc.target/i386/avx-ceil-sfix-2-vec.c: Likewise. Drop dg-skip-if "no M_PI". * gcc.target/i386/avx-cvt-2-vec.c: Likewise. * gcc.target/i386/avx-floor-sfix-2-vec.c: Likewise. * gcc.target/i386/avx-rint-sfix-2-vec.c: Likewise. * gcc.target/i386/avx-round-sfix-2-vec.c: Likewise. * gcc.target/i386/avx512f-ceil-sfix-vec-1.c: Likewise. * gcc.target/i386/avx512f-ceil-vec-1.c: Likewise. * gcc.target/i386/avx512f-ceilf-sfix-vec-1.c: Likewise. * gcc.target/i386/avx512f-ceilf-vec-1.c: Likewise. * gcc.target/i386/avx512f-floor-sfix-vec-1.c: Likewise. * gcc.target/i386/avx512f-floor-vec-1.c: Likewise. * gcc.target/i386/avx512f-floorf-sfix-vec-1.c: Likewise. * gcc.target/i386/avx512f-floorf-vec-1.c: Likewise. * gcc.target/i386/avx512f-rint-sfix-vec-1.c: Likewise. * gcc.target/i386/avx512f-rintf-sfix-vec-1.c: Likewise. * gcc.target/i386/avx512f-round-sfix-vec-1.c: Likewise. * gcc.target/i386/avx512f-roundf-sfix-vec-1.c: Likewise. * gcc.target/i386/avx512f-trunc-vec-1.c: Likewise. * gcc.target/i386/avx512f-truncf-vec-1.c: Likewise. * gcc.target/i386/sse2-cvt-vec.c: Likewise. * gcc.target/i386/sse4_1-ceil-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-ceil-vec.c: Likewise. * gcc.target/i386/sse4_1-ceilf-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-ceilf-vec.c: Likewise. * gcc.target/i386/sse4_1-floor-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-floor-vec.c: Likewise. * gcc.target/i386/sse4_1-floorf-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-floorf-vec.c: Likewise. * gcc.target/i386/sse4_1-rint-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-rint-vec.c: Likewise. * gcc.target/i386/sse4_1-rintf-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-rintf-vec.c: Likewise. * gcc.target/i386/sse4_1-round-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-round-vec.c: Likewise. * gcc.target/i386/sse4_1-roundf-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-roundf-vec.c: Likewise. * gcc.target/i386/sse4_1-roundsd-4.c: Likewise. * gcc.target/i386/sse4_1-roundss-4.c: Likewise. * gcc.target/i386/sse4_1-trunc-vec.c: Likewise. * gcc.target/i386/sse4_1-truncf-vec.c: Likewise. From-SVN: r274157
2019-08-07RISC-V: Handle g extension in multilib-generatorKito Cheng2-3/+9
gcc/ChangeLog * gcc/config/riscv/multilib-generator: (canonical_order): Add 'g'. (arch_canonicalize): Support rv32g and rv64g and fix error handling. From-SVN: r274156
2019-08-07Daily bump.GCC Administrator1-1/+1
From-SVN: r274155
2019-08-06re PR fortran/91359 (logical function X returns .TRUE. - Warning: spaghetti ↵Steven G. Kargl5-0/+58
code) 2019-08-06 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91359 * trans-decl.c (gfc_generate_return): Ensure something is returned from a function. 2019-08-06 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91359 * gfortran.dg/pr91359_1.f: New test. * gfortran.dg/pr91359_2.f: Ditto. From-SVN: r274149
2019-08-06re PR fortran/42546 (ALLOCATED statement typo in the docs and for scalar ↵Steven G. Kargl6-0/+91
variables) 2019-08-01 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/42546 * check.c(gfc_check_allocated): Add comment pointing to ... * intrinsic.c(sort_actual): ... the checking done here. 2019-08-01 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/42546 * gfortran.dg/allocated_1.f90: New test. * gfortran.dg/allocated_2.f90: Ditto. From-SVN: r274147
2019-08-06P1651R0 bind_front should not unwrap reference_wrapperJonathan Wakely5-4/+102
P1651R0 bind_front should not unwrap reference_wrapper * include/std/functional (bind_front): Don't unwrap reference_wrapper. * include/std/version (__cpp_lib_bind_front): Update value. * testsuite/20_util/function_objects/bind_front/1.cc: Fix test for feature test macro. * testsuite/20_util/function_objects/bind_front/2.cc: New test. From-SVN: r274146
2019-08-06Specialize std::numbers constants for __float128Jonathan Wakely3-0/+115
* include/std/numbers [!__STRICT_ANSI__ && _GLIBCXX_USE_FLOAT128] (e_v, log2e_v, log10e_v, pi_v, inv_pi_v, inv_sqrtpi_v, ln2_v, ln10_v) (sqrt2_v, sqrt3_v, inv_sqrt3, egamma_v, phi_v): Add explicit specializations for __float128. * testsuite/26_numerics/numbers/float128.cc: New test. From-SVN: r274145
2019-08-06Fix gcc.target/i386/avx512vp2intersect-2intersect-1b.c etc. execution testsRainer Orth3-2/+11
gcc/testsuite: * gcc.target/i386/avx512vp2intersect-2intersect-1b.c (AVX512F): Remove. (AVX512VP2INTERSECT): Define. * gcc.target/i386/avx512vp2intersect-2intersectvl-1b.c (AVX512F): Remove. (AVX512VP2INTERSECT): Define. From-SVN: r274144
2019-08-06PR c++/91378 - ICE with noexcept and auto return type.Jason Merrill3-5/+26
Here, since the call to g is not type-dependent, we call mark_used on it to determine its return type. This also wants to instantiate the noexcept-expression. But since nothing in maybe_instantiate_noexcept was calling push_to_top_level, we substituted b.i with processing_template_decl set, so we left it unresolved for later access checking. As a result, the type of C::g<int> remained instantiation-dependent, leading to an ICE in type_dependent_expression_p on the assert that the type of a function template with no dependent template arguments must be non-dependent. * pt.c (maybe_instantiate_noexcept): push_to_top_level. From-SVN: r274143
2019-08-06decl.c (check_array_designated_initializer): Use cp_expr_loc_or_input_loc in ↵Paolo Carlini4-3/+13
one place. /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
2019-08-06Add operator new/delete to cgraph_node::dump.Martin Liska2-0/+10
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
2019-08-06tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...Jakub Jelinek14-40/+1237
* 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
2019-08-06RISC-V: Handle extensions combination correctly in multilib-generator.Kito Cheng2-0/+43
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
2019-08-06DR 2413 - typename in conversion-function-ids.Marek Polacek4-2/+21
* 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
2019-08-05PR middle-end/50476 - Warn of pointer set to object whose lifetime is limitedMartin Sebor2-0/+21
gcc/testsuite/ChangeLog: * gcc.dg/uninit-pr50476.c: New test. From-SVN: r274135
2019-08-06Daily bump.GCC Administrator1-1/+1
From-SVN: r274134
2019-08-05PR c++/60517 - warning/error for taking address of member of a temporary objectMartin Sebor2-0/+27
testsuite/ChangeLog: * g++.dg/pr60517.C: New test. From-SVN: r274130
2019-08-05Add missing ChangeLog entry.Michael Meissner1-0/+6
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
2019-08-05extend.texi (Common Variable Attributes): Document alias attribute.Martin Sebor2-0/+32
gcc/ChangeLog: * doc/extend.texi (Common Variable Attributes): Document alias attribute. From-SVN: r274127
2019-08-05cp-tree.h (cp_expr_loc_or_input_loc): New.Paolo Carlini17-74/+115
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
2019-08-05PR c++/88095, CTAD for literal operator templates per P0732Tom Honermann9-2/+130
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
2019-08-05re PR fortran/91372 (Error: Unclassifiable statement)Steven G. Kargl4-2/+23
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
2019-08-05PR c++/91338 - Implement P1161R3: Deprecate a[b,c].Marek Polacek12-9/+236
* 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
2019-08-05* semantics.c (force_paren_expr): Preserve location.Jason Merrill2-2/+8
From-SVN: r274120
2019-08-05Make function_code a 32-bit fieldRichard Sandiford2-12/+15
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
2019-08-05Fold MASK_LOAD/STORE with an all-true maskRichard Sandiford4-0/+86
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
2019-08-05Add a gimple_move_vops helper functionRichard Sandiford12-70/+48
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
2019-08-05pr80993.c: Add cleanup-saved-temps to final actions.Jozef Lawrynowicz2-0/+6
2019-08-05 Jozef Lawrynowicz <jozef.l@mittosystems.com> * gcc.target/msp430/pr80993.c: Add cleanup-saved-temps to final actions. From-SVN: r274116
2019-08-05Handle new operators with no arguments in DCE.Martin Liska4-6/+42
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
2019-08-05re PR tree-optimization/91169 (cd2a31a FAILs)Richard Biener4-15/+69
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
2019-08-05re PR target/91341 (Missing AVX Intrinsics: load/store u2)Jakub Jelinek15-0/+242
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
2019-08-05RISC-V: Promote type correctly for libcallsKito Cheng4-1/+73
- 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
2019-08-05PR91349, powerpc64*-*-freebsd* defines _GNU_SOURCEAlan Modra2-0/+10
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
2019-08-05Daily bump.GCC Administrator1-1/+1
From-SVN: r274103
2019-08-04update_web_docs_svn: Proceed even if the invocation of sphinx fails.David Malcolm2-1/+6
* update_web_docs_svn: Proceed even if the invocation of sphinx fails. From-SVN: r274099
2019-08-04re PR fortran/88227 (ICE in gfc_convert_boz, at fortran/target-memory.c:788)Steven G. Kargl2-8/+189
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
2019-08-04documentation_hacking.xml: doxygen.org is now doxygen.nl.Gerald Pfeifer2-1/+6
* doc/xml/manual/documentation_hacking.xml: doxygen.org is now doxygen.nl. From-SVN: r274094
2019-08-04install.texi (Prerequisites): Remove reference to Tcl 8.6 bug that was fixed ↵Gerald Pfeifer2-4/+6
in Tcl 8.6.1. * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6 bug that was fixed in Tcl 8.6.1. From-SVN: r274089
2019-08-04Daily bump.GCC Administrator1-1/+1
From-SVN: r274054
2019-08-03Daily bump.GCC Administrator1-1/+1
From-SVN: r274037
2019-08-02re PR fortran/90985 (Wrong error message with variables named "DATA*")Steven G. Kargl4-0/+32
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
2019-08-02Correct the PR number for 90297 to 90986.Steven G. Kargl2-2/+2
From-SVN: r274032
2019-08-02re PR fortran/90297 (gcc/fortran/resolve.c: 2 * possibly redundant code ?)Steven G. Kargl4-0/+35
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
2019-08-02Add future.md.Michael Meissner3-0/+523
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
2019-08-02rework Ada EH Machine_Occurrence deallocationAlexandre Oliva3-47/+316
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
2019-08-02re PR c++/56428 ([C++11] "is not a constant expression" when comparing ↵Marek Polacek2-0/+30
non-type template argument to nullptr) PR c++/56428 * g++.dg/cpp0x/nontype4.C: New test. From-SVN: r274028
2019-08-02re PR c++/53009 (pointer to static member function of template class is ↵Marek Polacek2-0/+37
“invalid” as a template argument of another template class) PR c++/53009 * g++.dg/cpp0x/nontype3.C: New test. From-SVN: r274027
2019-08-02function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT check to ↵Bernd Edlinger2-2/+6
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
2019-08-02re PR c++/77575 (Bogus error when alias template yielding a reference type ↵Marek Polacek2-0/+12
used as template template argument) PR c++/77575 * g++.dg/cpp0x/nontype2.C: New test. From-SVN: r274024
2019-08-02function.c (assign_param_data_one): Remove unused data members.Bernd Edlinger2-2/+4
2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de> * function.c (assign_param_data_one): Remove unused data members. From-SVN: r274023