1. 07 Aug, 2019 5 commits
    • tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR OpenMP description. · 398e3feb
      	* tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
      	OpenMP description.  Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
      	* tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
      	for OMP_CLAUSE_USE_DEVICE_ADDR clause.
      	(walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
      	* tree-pretty-print.c (dump_omp_clause): Likewise.
      	* tree-nested.c (convert_nonlocal_omp_clauses,
      	convert_local_omp_clauses): Likewise.
      	* gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
      	Likewise.
      	* omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
      	Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
      	clause with array or reference to array types, no matter what type
      	except for reference it has.
      gcc/c-family/
      	* c-pragma.h (enum pragma_omp_clause): Add
      	PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.  Set PRAGMA_OACC_CLAUSE_USE_DEVICE
      	equal to PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR instead of being a separate
      	enumeration value.
      gcc/c/
      	* c-parser.c (c_parser_omp_clause_name): Parse use_device_addr clause.
      	(c_parser_omp_clause_use_device_addr): New function.
      	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
      	(OMP_TARGET_DATA_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
      	(c_parser_omp_target_data): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR
      	like PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR, adjust diagnostics about no
      	map or use_device_* clauses.
      	* c-typeck.c (c_finish_omp_clauses): For OMP_CLAUSE_USE_DEVICE_PTR
      	in OpenMP, require pointer type rather than pointer or array type.
      	Handle OMP_CLAUSE_USE_DEVICE_ADDR.
      gcc/cp/
      	* parser.c (cp_parser_omp_clause_name): Parse use_device_addr clause.
      	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
      	(OMP_TARGET_DATA_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
      	(cp_parser_omp_target_data): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR
      	like PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR, adjust diagnostics about no
      	map or use_device_* clauses.
      	* semantics.c (finish_omp_clauses): For OMP_CLAUSE_USE_DEVICE_PTR
      	in OpenMP, require pointer or reference to pointer type rather than
      	pointer or array or reference to pointer or array type. Handle
      	OMP_CLAUSE_USE_DEVICE_ADDR.
      	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
      gcc/testsuite/
      	* c-c++-common/gomp/target-data-1.c (foo): Use use_device_addr clause
      	instead of use_device_ptr clause where required by OpenMP 5.0, add
      	further tests for both use_device_ptr and use_device_addr clauses.
      libgomp/
      	* testsuite/libgomp.c/target-18.c (struct S): New type.
      	(foo): Use use_device_addr clause instead of use_device_ptr clause
      	where required by OpenMP 5.0, add further tests for both use_device_ptr
      	and use_device_addr clauses.
      	* testsuite/libgomp.c++/target-9.C (struct S): New type.
      	(foo): Use use_device_addr clause instead of use_device_ptr clause
      	where required by OpenMP 5.0, add further tests for both use_device_ptr
      	and use_device_addr clauses.  Add t and u arguments.
      	(main): Adjust caller.
      
      From-SVN: r274159
      Jakub Jelinek committed
    • rs6000: support vector int type rotatert · 4e708f5e
      gcc/ChangeLog
      
      2019-08-07  Kewen Lin  <linkw@gcc.gnu.org>
      
          * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
      
      gcc/testsuite/ChangeLog
      
      2019-08-07  Kewen Lin  <linkw@gcc.gnu.org>
      
          * gcc.target/powerpc/vec_rotate-1.c: New test.
          * gcc.target/powerpc/vec_rotate-2.c: New test.
          * gcc.target/powerpc/vec_rotate-3.c: New test.
          * gcc.target/powerpc/vec_rotate-4.c: New test.
      
      From-SVN: r274158
      Kewen Lin committed
    • wrap math.h for M_PI et al in target/i386 tests · b69e0fab
      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
      Alexandre Oliva committed
    • RISC-V: Handle g extension in multilib-generator · 609d9bde
      gcc/ChangeLog
      
      	* gcc/config/riscv/multilib-generator: (canonical_order): Add 'g'.
      	(arch_canonicalize): Support rv32g and rv64g and fix error
      	handling.
      
      From-SVN: r274156
      Kito Cheng committed
    • Daily bump. · 8a54b93d
      From-SVN: r274155
      GCC Administrator committed
  2. 06 Aug, 2019 14 commits
    • re PR fortran/91359 (logical function X returns .TRUE. - Warning: spaghetti code) · e0af8f52
      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
      Steven G. Kargl committed
    • re PR fortran/42546 (ALLOCATED statement typo in the docs and for scalar variables) · 1a392065
      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
      Steven G. Kargl committed
    • P1651R0 bind_front should not unwrap reference_wrapper · ffc500dd
      	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
      Jonathan Wakely committed
    • Specialize std::numbers constants for __float128 · a38b51bc
      	* 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
      Jonathan Wakely committed
    • Fix gcc.target/i386/avx512vp2intersect-2intersect-1b.c etc. execution tests · 1934e97d
      	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
      Rainer Orth committed
    • PR c++/91378 - ICE with noexcept and auto return type. · d40e3631
      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
      Jason Merrill committed
    • decl.c (check_array_designated_initializer): Use cp_expr_loc_or_input_loc in one place. · 1a013865
      /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
    • Add operator new/delete to cgraph_node::dump. · 3a961aea
      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 ... · d81ab49d
      	* 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
    • RISC-V: Handle extensions combination correctly in multilib-generator. · 7551a6e4
      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
    • DR 2413 - typename in conversion-function-ids. · c026e334
      	* 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
    • PR middle-end/50476 - Warn of pointer set to object whose lifetime is limited · 5e74e93c
      gcc/testsuite/ChangeLog:
      	* gcc.dg/uninit-pr50476.c: New test.
      
      From-SVN: r274135
      Martin Sebor committed
    • Daily bump. · 57771366
      From-SVN: r274134
      GCC Administrator committed
    • PR c++/60517 - warning/error for taking address of member of a temporary object · 57436cb1
      testsuite/ChangeLog:
      	* g++.dg/pr60517.C: New test.
      
      From-SVN: r274130
      Martin Sebor committed
  3. 05 Aug, 2019 17 commits
    • Add missing ChangeLog entry. · 05989533
      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
    • extend.texi (Common Variable Attributes): Document alias attribute. · 75720b3e
      
      gcc/ChangeLog:
      
      	* doc/extend.texi (Common Variable Attributes): Document alias
      	attribute.
      
      From-SVN: r274127
      Martin Sebor committed
    • cp-tree.h (cp_expr_loc_or_input_loc): New. · f9d0ca40
      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
    • PR c++/88095, CTAD for literal operator templates per P0732 · 8744c37d
      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
    • re PR fortran/91372 (Error: Unclassifiable statement) · 719f5a10
      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
    • PR c++/91338 - Implement P1161R3: Deprecate a[b,c]. · ab574db6
      	* 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
    • * semantics.c (force_paren_expr): Preserve location. · ea55c915
      From-SVN: r274120
      Jason Merrill committed
    • Make function_code a 32-bit field · 55f863c4
      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
    • Fold MASK_LOAD/STORE with an all-true mask · 868363d4
      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
    • Add a gimple_move_vops helper function · 779724a5
      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
    • pr80993.c: Add cleanup-saved-temps to final actions. · 09eff11a
      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
    • Handle new operators with no arguments in DCE. · efe5143f
      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
    • re PR tree-optimization/91169 (cd2a31a FAILs) · a2001d44
      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
    • re PR target/91341 (Missing AVX Intrinsics: load/store u2) · 96d5c6dc
      	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
    • RISC-V: Promote type correctly for libcalls · 860edc46
       - 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
    • PR91349, powerpc64*-*-freebsd* defines _GNU_SOURCE · 89c78fb2
      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
    • Daily bump. · b4d2d2a8
      From-SVN: r274103
      GCC Administrator committed
  4. 04 Aug, 2019 4 commits