1. 22 Feb, 2019 26 commits
    • re PR tree-optimization/89440 (ICE in vect_create_epilog_for_reduction, at tree-vect-loop.c:5502) · 9f0ffb2b
      2019-02-22  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/89440
      	* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
      	not necessary assert.
      
      	* gcc.dg/vect/pr89440.c: New testcase.
      
      From-SVN: r269111
      Richard Biener committed
    • Remove unused check_effective_target_offload_nvptx · aceb1067
      	gcc/testsuite/
      	* lib/target-supports.exp (check_effective_target_offload_nvptx):
      	Remove.
      
      From-SVN: r269110
      Thomas Schwinge committed
    • [libgomp] In OpenACC testing, by default only build for the offload target that… · b03d721a
      [libgomp] In OpenACC testing, by default only build for the offload target that we're actually going to test
      
      ... to avoid compilation overhead, and to keep simple '-foffload=[...]'
      handling in test cases.
      
      	libgomp/
      	* testsuite/libgomp.oacc-c++/c++.exp: Specify
      	"-foffload=$offload_target".
      	* testsuite/libgomp.oacc-c/c.exp: Likewise.
      	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
      	* testsuite/lib/libgomp.exp
      	(check_effective_target_openacc_nvidia_accel_configured): Remove,
      	as (conceptually) merged into
      	check_effective_target_openacc_nvidia_accel_selected.  Adjust all
      	users.
      
      From-SVN: r269109
      Thomas Schwinge committed
    • [libgomp] In OpenACC testing, cycle though all offload targets · 0a0384b4
      ... instead of through offload plugins.
      
      	libgomp/
      	* plugin/configfrag.ac: Populate and AC_SUBST offload_targets.
      	* testsuite/libgomp-test-support.exp.in: Adjust.
      	* testsuite/lib/libgomp.exp: Likewise.  Don't populate
      	openacc_device_types_s.
      	(offload_target_to_openacc_device_type): New proc.
      	* testsuite/libgomp.oacc-c++/c++.exp: Adjust.
      	* testsuite/libgomp.oacc-c/c.exp: Likewise.
      	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
      	* Makefile.in: Regenerate.
      	* configure: Likewise.
      	* testsuite/Makefile.in: Likewise.
      
      From-SVN: r269108
      Thomas Schwinge committed
    • [libgomp] Clarify difference between offload target, offload plugin, and OpenACC device type · ee332b4a
      	libgomp/
      	* plugin/configfrag.ac: Populate and AC_SUBST offload_plugins
      	instead of offload_targets, and AC_DEFINE_UNQUOTED OFFLOAD_PLUGINS
      	instead of OFFLOAD_TARGETS.
      	* target.c (gomp_target_init): Adjust.
      	* testsuite/libgomp-test-support.exp.in: Likewise.
      	* testsuite/lib/libgomp.exp: Likewise.  Populate
      	openacc_device_types_s instead of offload_targets_s_openacc.
      	(check_effective_target_openacc_nvidia_accel_selected)
      	(check_effective_target_openacc_host_selected): Adjust.
      	* testsuite/libgomp.oacc-c++/c++.exp: Likewise.
      	* testsuite/libgomp.oacc-c/c.exp: Likewise.
      	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
      	* Makefile.in: Regenerate.
      	* config.h.in: Likewise.
      	* configure: Likewise.
      	* testsuite/Makefile.in: Likewise.
      
      From-SVN: r269107
      Thomas Schwinge committed
    • [libgomp] In OpenACC offloading testing, be more explicit in what is supported,… · 1241136c
      [libgomp] In OpenACC offloading testing, be more explicit in what is supported, and what is not, or why not
      
      	libgomp/
      	* testsuite/lib/libgomp.exp: Error out for unknown offload target.
      	* testsuite/libgomp.oacc-c++/c++.exp: Likewise.  Report if
      	"offloading: supported, but hardware not accessible".
      	* testsuite/libgomp.oacc-c/c.exp: Likewise.
      	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
      
      From-SVN: r269106
      Thomas Schwinge committed
    • [PR72741] Use 'oacc_build_routine_dims' for Fortran OpenACC 'routine' directives, too · 68034b1b
      ... instead of having an incomplete local implementation.
      
      With these changes in place, we can then also revert the work-around r267213
      "[nvptx] Unify C/Fortran routine handling in nvptx_goacc_validate_dims".
      
      	gcc/fortran/
      	PR fortran/72741
      	* gfortran.h (oacc_routine_lop): New enum.
      	(symbol_attribute): Use it.
      	* openmp.c (gfc_oacc_routine_dims): Replace with...
      	(gfc_oacc_routine_lop): ... this new function.
      	(gfc_match_oacc_routine): Adjust.
      	* trans-decl.c (add_attributes_to_decl): Likewise.
      	gcc/
      	PR fortran/72741
      	* omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
      	(oacc_replace_fn_attrib_attr): ... this new function.
      	* omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
      	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
      	gcc/testsuite/
      	PR fortran/72741
      	* gfortran.dg/goacc/classify-routine.f95: Adjust.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      
      From-SVN: r269105
      Thomas Schwinge committed
    • Revert earlier OpenACC 'routine' changes · c319667a
      ..., which were committed as part of, but logically don't belong into r261813
      "Update OpenACC data clause semantics to the 2.5 behavior", and which confuse
      later changes.
      
      	gcc/fortran/
      	* openmp.c (gfc_match_oacc_declare): Revert earlier changes.
      	gcc/testsuite/
      	* c-c++-common/goacc/routine-5.c: Revert earlier changes.
      	* g++.dg/goacc/template.C: Likewise.
      
      From-SVN: r269104
      Thomas Schwinge committed
    • Silence '-Whsa' diagnostic in 'gfortran.dg/goacc/pr78027.f90' · 568de949
      ... which has been present (with HSA offloading configured) ever since this
      test case got added.
      
      	gcc/testsuite/
      	PR fortran/78027
      	* gfortran.dg/goacc/pr78027.f90: Add 'dg-additional-options "-Wno-hsa"'.
      
      From-SVN: r269103
      Thomas Schwinge committed
    • [C, C++] Use correct location information for OpenACC shape and simple clauses · 2263c9f2
      	gcc/c/
      	* c-parser.c (c_parser_oacc_shape_clause): Add loc formal
      	parameter.  Adjust all users.
      	(c_parser_oacc_simple_clause): Replace parser with loc formal
      	parameter.  Adjust all users.
      	gcc/cp/
      	* parser.c (cp_parser_oacc_simple_clause): Remove parser formal
      	parameter, move loc formal parameter to the front.  Adjust all
      	users.
      	(cp_parser_oacc_shape_clause): Add loc formal parameter.  Adjust
      	all users.
      
      From-SVN: r269102
      Thomas Schwinge committed
    • [arm] Add support for Neoverse N1 · 81a5f36d
      This patch adds support for the Neoverse N1 [1]. This CPU was previously supported through the Ares codename.
      -mcpu=ares is retained as an alias of the new -mcpu=neoverse-n1.
      
      Bootstrapped and tested on arm-none-linux-gnueabihf. 
      
      	* config/arm/arm-cpus.in (ares): Rename to...
      	(neoverse-n1): ... This.  Add ares as alias.
      	* config/arm/arm-tables.opt: Regenerate.
      	* config/arm/arm-tune.md: Likewise.
      	* doc/invoke.txt (ARM Options): Document neoverse-n1.
      
      From-SVN: r269101
      Kyrylo Tkachov committed
    • [AArch64] Add support for Neoverse E1 · 3f23539c
      This patch adds -mcpu and -mtune support for the Neoverse E1 CPU [1].
      The new option is -mcpu=neoverse-e1.
      Bootstrapped and tested on aarch64-none-linux-gnu. 
      
      	* config/aarch64/aarch64-cores.def (neoverse-e1): Define.
      	* config/aarch64/aarch64-tune.md: Regenerate.
      	* doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
      
      From-SVN: r269100
      Kyrylo Tkachov committed
    • [AArch64] Add support for Neoverse N1 · 9ed6834d
      
      This patch adds support for the Neoverse N1 CPU [1]. This was supported in GCC earlier through the codename Ares,
      which it now replaces. -mcpu=ares is still accepted as there's been a binutils release supporting it,
      but the internal structures are renamed to use Neoverse N1-related identifiers.
      
      Bootstrapped and tested on aarch64-none-linux-gnu.
      
      
      	* config/aarch64/aarch64.c (ares_tunings): Rename to...
      	(neoversen1_tunings): ... This.
      	* config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
      	(neoverse-n1): New CPU.
      	* config/aarch64/aarch64-tune.md: Regenerate.
      	* doc/invoke.txt (AArch64 Options): Document neoverse-n1.
      
      From-SVN: r269099
      Kyrylo Tkachov committed
    • re PR tree-optimization/87609 (miscompilation with restrict and loop) · 229d576c
      2019-02-22  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/87609
      	* cfghooks.h (dependence_hash): New typedef.
      	(struct copy_bb_data): New type.
      	(cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
      	(duplicate_block): Likewise.
      	* cfghooks.c (duplicate_block): Pass down copy_bb_data.
      	(copy_bbs): Create and pass down copy_bb_data.
      	* cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
      	(rtl_duplicate_bb): Likewise.
      	* tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
      	remap dependence info.
      
      	* gcc.dg/torture/restrict-7.c: New testcase.
      
      From-SVN: r269098
      Richard Biener committed
    • re PR tree-optimization/87609 (miscompilation with restrict and loop) · 3c8b06dc
      2019-02-22  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87609
      	* tree-core.h (tree_base): Document special clique values.
      	* tree-inline.c (remap_dependence_clique): Do not use the
      	special clique value of one.
      	(maybe_set_dependence_info): Use clique one.
      	(clear_dependence_clique): New callback.
      	(compute_dependence_clique): Clear clique one from all refs
      	before assigning it (again).
      
      From-SVN: r269097
      Richard Biener committed
    • configure.host (abi_baseline_pair): Adjust for SPARC64/Linux. · 406e4908
      	* configure.host (abi_baseline_pair): Adjust for SPARC64/Linux.
      	* config/abi/post/sparc64-linux-gnu: New directory.
      	* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: New file.
      	* config/abi/post/sparc64-linux-gnu/32: New directory.
      	* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: New file.
      
      From-SVN: r269096
      Eric Botcazou committed
    • PR c++/87685 - generic lambda 'this' capture error. · 9adf74a3
      The standard says that in a generic lambda we should speculatively capture
      'this' if we see a call to an overload set that contains a non-static member
      function, but it seems wrong to reject the program if we can't capture,
      since it might not actually be needed.
      
      	* lambda.c (lambda_expr_this_capture): Change add_capture_p to int.
      	(maybe_generic_this_capture): Pass -1.
      
      From-SVN: r269095
      Jason Merrill committed
    • PR c++/88394 - ICE with VLA init-capture. · d36b4bf7
      We mostly use is_normal_capture_proxy to decide whether or not to use
      DECL_CAPTURED_VARIABLE; we could just check whether it's set.  VLA capture
      is still mostly broken, but this fixes this ICE.
      
      	* lambda.c (is_normal_capture_proxy): Check DECL_CAPTURED_VARIABLE.
      
      From-SVN: r269094
      Jason Merrill committed
    • PR c++/88869 - C++17 ICE with CTAD and explicit specialization. · c8b7e64d
      The members of an explicit specialization of a class template don't have the
      template parameters of that class template, so we shouldn't try to provide
      arguments for them.  Only set outer_args when the class is an instantiation.
      
      	* pt.c (do_class_deduction): Don't include explicit specialization
      	args in outer_args.
      
      From-SVN: r269093
      Jason Merrill committed
    • Add tests for C++2a content of <atomic> header · 148864cb
      	* testsuite/29_atomics/headers/atomic/types_std_c++20.cc: New test.
      	* testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc: New
      	test.
      
      From-SVN: r269091
      Jonathan Wakely committed
    • P0482R5 char8_t: Updates to gdb pretty printing support · 5940bb02
      This patch adds recognition of the u8string and u8string_view type
      aliases to the gdb pretty printer extension.
      
      2019-02-22  Tom Honermann  <tom@honermann.net>
      
      	* python/libstdcxx/v6/printers.py (register_type_printers): Add type
      	printers for u8string and u8string_view.
      
      From-SVN: r269090
      Tom Honermann committed
    • P0482R5 char8_t: Updates to existing standard library tests · 59019b42
      This patch augments existing tests to validate behavior for char8_t.  In
      all cases, added test cases are cloned from existing tests for wchar_t
      or char16_t.
      
      A few tests required updates to line numbers for diagnostic messages.
      
      2019-02-22  Tom Honermann  <tom@honermann.net>
      
      	* testsuite/18_support/byte/ops.cc: Validate
      	std::to_integer<char8_t>, std::to_integer<char16_t>, and
      	std::to_integer<char32_t>.
      	* testsuite/18_support/numeric_limits/dr559.cc: Validate
      	std::numeric_limits<char8_t>.
      	* testsuite/18_support/numeric_limits/lowest.cc: Validate
      	std::numeric_limits<char8_t>::lowest().
      	* testsuite/18_support/numeric_limits/max_digits10.cc: Validate
      	std::numeric_limits<char8_t>::max_digits10.
      	* testsuite/18_support/type_info/fundamental.cc: Validate
      	typeinfo for char8_t.
      	* testsuite/20_util/from_chars/1_c++20_neg.cc: New test, validating
      	std::from_chars with char8_t.
      	* testsuite/20_util/hash/requirements/explicit_instantiation.cc:
      	Validate explicit instantiation of std::hash<char8_t>.
      	* testsuite/20_util/is_integral/value.cc: Validate
      	std::is_integral<char8_t>.
      	* testsuite/20_util/make_signed/requirements/typedefs-4.cc:
      	Validate std::make_signed<char8_t>.
      	* testsuite/21_strings/basic_string/cons/char/deduction.cc:
      	Validate u8string construction from char8_t sources.
      	* testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Validate
      	std::pmr::u8string.
      	* testsuite/21_strings/basic_string_view/operations/compare/
      	char/70483.cc: Validate substr operations on u8string_view.
      	* testsuite/21_strings/basic_string_view/typedefs.cc: Validate that
      	the u8string_view typedef is defined.
      	* testsuite/21_strings/char_traits/requirements/
      	constexpr_functions.cc: Validate char_traits<char8_t> constexpr
      	member functions.
      	* testsuite/21_strings/char_traits/requirements/
      	constexpr_functions_c++17.cc: Validate char_traits<char8_t> C++17
      	constexpr member functions.
      	* testsuite/21_strings/headers/string/types_std_c++0x.cc: Validate
      	that the u8string typedef is defined.
      	* testsuite/22_locale/locale/cons/unicode.cc: Validate the presence
      	of the std::codecvt<char16_t, char8_t, std::mbstate_t> and
      	std::codecvt<char32_t, char8_t, std::mbstate_t> facets.
      	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Update line
      	numbers.
      	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
      	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
      	Likewise.
      	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
      	* testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
      	Validate std::atomic<char8_t>::is_always_lock_free
      	* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
      	Update line numbers.
      	* testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
      	Likewise.
      	* testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
      	Likewise.
      	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
      	Validate std::experimental::pmr::u8string.
      	* testsuite/experimental/string_view/typedefs.cc: Validate that the
      	u8string_view typedef is defined.
      	* testsuite/util/testsuite_common_types.h: Add char8_t, char16_t and
      	char32_t to the typelists.
      
      From-SVN: r269089
      Tom Honermann committed
    • Disambiguate __gnu_cxx::append_ partial specialization · 65bbaf31
      This patch corrects ambiguous partial specializations of
      typelist::detail::append_.  Previously, neither append_<chain<Hd, Tl>,
      Typelist_Chain> nor append_<Typelist_Chain, null_type> was a better
      match for append_<chain<Hd, Tl>, null_type>.
      
      2019-02-22  Tom Honermann  <tom@honermann.net>
      
      	* include/ext/typelist.h: Constrain a partial specialization of
      	typelist::detail::append_ to only match chain<T1,T2>.
      
      From-SVN: r269088
      Tom Honermann committed
    • re PR go/89406 (Go testing leaves many temporary directories in /tmp around) · f08e60e9
      	PR go/89406
          net: remove unixgram test sockets
          
          Backport https://golang.org/cl/163277 from the master library.
          
          Updates https://gcc.gnu.org/PR89406
          
          Reviewed-on: https://go-review.googlesource.com/c/163200
      
      From-SVN: r269087
      Ian Lance Taylor committed
    • cmd/go: remove work directory on usage error · 8aef6e02
          
          Backport https://golang.org/cl/163237 from the master library:
          
              Ensure that cmd/go consistently calls base.Exit rather than os.Exit,
              so that we don't incorrectly leave the work directory around on exit.
          
              Test this by modifying the testsuite to run all the tests with TMPDIR
              set to a temporary directory, and then check that no files are left
              behind in that temporary directory. Adjust a couple of tests to make
              this approach work.
          
          Updates https://gcc.gnu.org/PR89406
          
          Reviewed-on: https://go-review.googlesource.com/c/163198
      
      From-SVN: r269086
      Ian Lance Taylor committed
    • Daily bump. · 2496137a
      From-SVN: r269085
      GCC Administrator committed
  2. 21 Feb, 2019 14 commits
    • extend.texi (__clear_cache): Correct signature. · a90b0cdd
      gcc/ChangeLog:
      
      	* doc/extend.texi (__clear_cache): Correct signature.
      
      libgcc/ChangeLog:
      
      	* libgcc2.h (__clear_cache): Correct signature.
      	* libgcc2.c (__clear_cache): Same.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/Wbuiltin-declaration-mismatch-12.c: New test.
      
      From-SVN: r269082
      Martin Sebor committed
    • PR c++/89422 - ICE with -g and lambda in default arg in template. · 4bcd47e2
      Here, we were trying to instantiate the default argument before setting
      DECL_FRIEND_CONTEXT, so that the instantiated lambda ended up being treated
      as part of the S template, which confused dwarf2out.
      
      	* pt.c (tsubst_function_decl): SET_DECL_FRIEND_CONTEXT sooner.
      
      From-SVN: r269081
      Jason Merrill committed
    • PR c++/88419 - C++17 ICE with class template arg deduction. · 5498361c
      Just like in make_constrained_auto, we need to defer setting TYPE_CANONICAL
      until we've set fields that will affect structural_comptypes.
      
      	* pt.c (make_template_placeholder): Set TYPE_CANONICAL after
      	CLASS_PLACEHOLDER_TEMPLATE.
      
      From-SVN: r269080
      Jason Merrill committed
    • re PR go/89170 (FAIL: net/http) · eeb20b96
      	PR go/89170
      	* varasm.c (decode_addr_const): Call lookup_constant_def rather
      	than output_constant_def.
      	(add_constant_to_table): New static function.
      	(output_constant_def): Call add_constant_to_table.
      	(tree_output_constant_def): Likewise.
      
      From-SVN: r269079
      Ian Lance Taylor committed
    • re PR c++/89285 (ICE after casting the this pointer in the constructor in C++17 mode) · 43574e4f
      	PR c++/89285
      	* builtins.c (fold_builtin_arith_overflow): If first two args are
      	INTEGER_CSTs, set intres and ovfres to constants rather than calls
      	to ifn.
      
      	* constexpr.c (struct constexpr_fundef): Add parms and result members.
      	(retrieve_constexpr_fundef): Adjust for the above change.
      	(register_constexpr_fundef): Save constexpr body with copy_fn,
      	temporarily set DECL_CONTEXT on DECL_RESULT before that.
      	(get_fundef_copy): Change FUN argument to FUNDEF with
      	constexpr_fundef * type, grab body and parms/result out of
      	constexpr_fundef struct and temporarily change it for copy_fn calls
      	too.
      	(cxx_eval_builtin_function_call): For __builtin_FUNCTION temporarily
      	adjust current_function_decl from ctx->call context.  Test
      	!potential_constant_expression instead of !is_constant_expression.
      	(cxx_bind_parameters_in_call): Grab parameters from new_call.  Undo
      	convert_for_arg_passing changes for TREE_ADDRESSABLE type passing.
      	(cxx_eval_call_expression): Adjust get_fundef_copy caller.
      	(cxx_eval_conditional_expression): For IF_STMT, allow then or else
      	operands to be NULL.
      	(label_matches): Handle BREAK_STMT and CONTINUE_STMT.
      	(cxx_eval_loop_expr): Add support for FOR_STMT, WHILE_STMT and DO_STMT.
      	(cxx_eval_switch_expr): Add support for SWITCH_STMT.
      	(cxx_eval_constant_expression): Handle IF_STMT, FOR_STMT, WHILE_STMT,
      	DO_STMT, CONTINUE_STMT, SWITCH_STMT, BREAK_STMT and CONTINUE_STMT.
      	For SIZEOF_EXPR, recurse on the result of fold_sizeof_expr.  Ignore
      	DECL_EXPR with USING_DECL operand.
      	* lambda.c (maybe_add_lambda_conv_op): Build thisarg using
      	build_int_cst to make it a valid constant expression.
      
      	* g++.dg/ubsan/vptr-4.C: Expect reinterpret_cast errors.
      	* g++.dg/cpp1y/constexpr-84192.C (f2): Adjust expected diagnostics.
      	* g++.dg/cpp1y/constexpr-70265-2.C (foo): Adjust expected line of
      	diagnostics.
      	* g++.dg/cpp1y/constexpr-89285.C: New test.
      	* g++.dg/cpp0x/constexpr-arith-overflow.C (add, sub, mul): Ifdef out
      	for C++11.
      	(TEST_ADD, TEST_SUB, TEST_MUL): Define to Assert (true) for C++11.
      	* g++.dg/cpp0x/constexpr-arith-overflow2.C: New test.
      
      From-SVN: r269078
      Jakub Jelinek committed
    • PR libstdc++/89416 fix __is_move_insertable trait · d331c5f1
      The common base class for __is_move_insertable and __is_copy_insertable
      instantiates both the copy and move tests, when only one is needed. The
      unneeded one might cause errors outside the immediate context.
      
      The solution used in this patch is to replace them with alias templates,
      which will only be instantiated as needed.
      
      	PR libstdc++/89416
      	* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Replace
      	class template with class. Replace move and copy member types with
      	member alias templates, so they are only instantiated when needed.
      	(__is_copy_insertable, __is_move_insertable): Adjust base class.
      	* testsuite/23_containers/vector/modifiers/push_back/89130.cc: Enable
      	test for C++11/14/17 as well.
      	* testsuite/23_containers/vector/modifiers/push_back/89416.cc: New
      	test.
      
      From-SVN: r269075
      Jonathan Wakely committed
    • i386: Replace -fcf-protection with -fcf-protection=branch · f43044a3
      Since -mindirect-branch is incompatible with -fcf-protection=return and
      -fcf-protection, replace -fcf-protection with -fcf-protection=branch.
      
      	PR target/87412
      	* gcc.target/i386/indirect-thunk-attr-14.c: Replace
      	-fcf-protection with -fcf-protection=branch.
      	* gcc.target/i386/indirect-thunk-attr-15.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-16.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-8.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-9.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-10.c: Likewise.
      
      From-SVN: r269074
      H.J. Lu committed
    • PR c++/88690 - C++17 ICE with empty base in aggregate. · 7b45322a
      Base fields for empty bases appear in initialization order, which may not be
      the same as layout order.  If they also show up in a CONSTRUCTOR in that
      order, output_constructor_regular_field aborts because it understandably
      doesn't want to go backwards.  I also considered making o_c_r_f more
      tolerant of the case where the out-of-order field has fieldsize 0, and so no
      actual data needs to be emitted, but we might as well avoid adding an
      element to the CONSTRUCTOR in the first place.
      
      	* typeck2.c (process_init_constructor_record): Skip trivial
      	initialization of an empty base.
      
      From-SVN: r269073
      Jason Merrill committed
    • Fix pr88850-2 test · f64629aa
      Like the pr88850.c test, also fix the pr88850-2.c testcase which
      was failing in hardfp environments.
      
      Committed as obvious.
      
          gcc/testsuite/
      	* gcc.target/arm/pr88850-2.c: Block -mfloat-abi override.
      	* gcc.target/arm/pr88850.c: Use -mfloat-abi=softfp.
      
      From-SVN: r269072
      Wilco Dijkstra committed
    • dump-parse-tree.c (debug): Implement for gfc_expr *, gfc_typespec *, gfc_typespec and gfc_symbol *. · 5ea0d4df
      2019-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          * dump-parse-tree.c (debug): Implement for gfc_expr *,
          gfc_typespec *, gfc_typespec and gfc_symbol *.
      
      From-SVN: r269071
      Thomas Koenig committed
    • re PR fortran/86119 (Intrinsic len has wrong type if used within select type for a class(*) string) · 9e6644c6
      2019-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/86119
          * class.c (gfc_get_len_component): Add argument k for kind.
          If the kind of the resulting expression is not equal to k,
          convert it.
          * gfortran.h (gfc_len_component): Adjust prototype.
          * simplify.c (gfc_simplify_len): Pass kind to
          gfc_get_len_component.
      
      2019-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/86119
          * gfortran.dg/warn_conversion_11.f90: New test.
      
      From-SVN: r269070
      Thomas Koenig committed
    • i386: Check -mindirect-branch/-mfunction-return with -fcf-protection · eb74a883
      Issue an error when -mindirect-branch or -mfunction-return are used
      with incompatible -fcf-protection.
      
      gcc/
      
      	PR target/87412
      	* config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
      	error for -mindirect-branch/-mfunction-return with incompatible
      	-fcf-protection.
      
      gcc/testsuite/
      
      	PR target/87412
      	* gcc.target/i386/pr87412-1.c: New file.
      	* gcc.target/i386/pr87412-2.c: Likewise.
      	* gcc.target/i386/pr87412-3.c: Likewise.
      	* gcc.target/i386/pr87412-4.c: Likewise.
      
      From-SVN: r269068
      H.J. Lu committed
    • re PR bootstrap/88714 (bootstrap comparison failure on armv7l since r265398) · 8be53488
      	PR bootstrap/88714
      	* constraints.md (q): Remove.
      	* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
      	instead of q.
      
      From-SVN: r269067
      Jakub Jelinek committed
    • [omp] Move NE_EXPR handling to omp_adjust_for_condition · 031c5c8b
      2019-02-21  Martin Jambor  <mjambor@suse.cz>
      
      	PR hsa/89302
      	* omp-general.c (omp_extract_for_data): Removed a duplicate call
      	to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
      	(omp_adjust_for_condition): ...here.  Added necessary parameters.
      	* omp-general.h (omp_adjust_for_condition): Updated declaration.
      	* omp-grid.c (grid_attempt_target_gridification): Adjust to pass
      	proper values to new parameters of omp_adjust_for_condition.
      
      From-SVN: r269066
      Martin Jambor committed