Commit graph

162186 commits

Author SHA1 Message Date
Jakub Jelinek
da8ea71e37 re PR middle-end/85878 (ICE in convert_mode_scalar, at expr.c:287)
PR middle-end/85878
	* expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P
	check from first store_expr, use to_mode instead of GET_MODE (to_rtx).
	Only call store_expr for halves if the mode is the same.

	* gfortran.fortran-torture/compile/pr85878.f90: New test.

From-SVN: r261659
2018-06-15 22:36:38 +02:00
Jason Merrill
fe7a23a611 pt.c (tsubst_default_argument): Use push_to/pop_from_top_level.
* pt.c (tsubst_default_argument): Use push_to/pop_from_top_level.

	* name-lookup.c (do_pushtag): Don't look through complete types, but
	don't add to them either.  Get context from current_binding_level.

From-SVN: r261656
2018-06-15 16:23:00 -04:00
Jason Merrill
b4cf2e42b5 * decl.c (start_enum): Do compare dependent underlying type.
From-SVN: r261655
2018-06-15 16:22:55 -04:00
Jason Merrill
582f844c6e PR c++/82882 - ICE with lambda in template default argument.
* lambda.c (record_null_lambda_scope): New.
	* pt.c (tsubst_lambda_expr): Use it.
	* name-lookup.c (do_pushtag): Don't give a lambda DECL_CONTEXT of a
	function that isn't open.

From-SVN: r261654
2018-06-15 16:22:44 -04:00
Jason Merrill
508f1cb51f * tree.c (maybe_warn_parm_abi): Inform the location of the class.
From-SVN: r261653
2018-06-15 16:22:38 -04:00
Jakub Jelinek
b8d8500568 re PR middle-end/86123 (ICE in prepare_cmp_insn, at optabs.c:3967)
PR middle-end/86123
	* match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions.
	Fix up comment formatting.

	* gcc.c-torture/compile/pr86123.c: New test.

From-SVN: r261647
2018-06-15 21:30:58 +02:00
Bernd Edlinger
b48f2352a9 typed-splay-tree.h (typed_splay_tree::remove): New function.
2018-06-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * typed-splay-tree.h (typed_splay_tree::remove): New function.
        (typed_splay_tree::closure,
        typed_splay_tree::inner_foreach_fn, typed_splay_tree::m_inner): Deleted.
        (typed_splay_tree::typed_splay_tree,
        typed_splay_tree::operator =): Declared private.
        (typed_splay_tree::splay_tree_key, typed_splay_tree::splay_tree_value,
        typed_splay_tree::splay_tree_node_s, typed_splay_tree::KDEL,
        typed_splay_tree::VDEL, typed_splay_tree::splay_tree_delete_helper,
        typed_splay_tree::rotate_left, typed_splay_tree::rotate_right,
        typed_splay_tree::splay_tree_splay,
        typed_splay_tree::splay_tree_foreach_helper,
        typed_splay_tree::splay_tree_insert,
        typed_splay_tree::splay_tree_remove,
        typed_splay_tree::splay_tree_lookup,
        typed_splay_tree::splay_tree_predecessor,
        typed_splay_tree::splay_tree_successor,
        typed_splay_tree::splay_tree_min,
        typed_splay_tree::splay_tree_max): Took over from splay-tree.c/.h.
        (typed_splay_tree::root, typed_splay_tree::comp,
        typed_splay_tree::delete_key,
        typed_splay_tree::delete_value): New data members.
        * typed-splay-tree.c (selftest::test_str_to_int): Add a test for
        typed_splay_tree::remove.

From-SVN: r261645
2018-06-15 19:17:19 +00:00
Tom de Vries
df25ffcc41 [testsuite] Run dg-final.exp sequentially
2018-06-15  Tom de Vries  <tdevries@suse.de>

	* gcc.dg-selftests/dg-final.exp: Force sequential execution.

From-SVN: r261643
2018-06-15 18:51:07 +00:00
Jonathan Wakely
525d67d42f PR libstdc++/86169 unshare COW string when non-const data() called
PR libstdc++/86169
	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
	(basic_string::data()): Unshare string.
	* testsuite/21_strings/basic_string/operations/data/char/86169.cc:
	New.

From-SVN: r261642
2018-06-15 19:47:29 +01:00
Jonathan Wakely
36eec25a6f Decorate string_view members with nonnull attribute
The C++ committee has confirmed that passing a null pointer to the
unary basic_string_view constructor is undefined. This removes the check
from our implementation, and adds the nonnull attribute to warn when the
compiler can detect undefined input.

	* include/std/string_view (basic_string_view(const CharT*)): Remove
	check for null pointer and add nonnull attribute.
	(compare(const CharT*), compare(size_type, size_type, const CharT*))
	(find(const CharT*, size_type), rfind(const CharT*, size_type))
	(find_first_of(const CharT*, size_type))
	(find_last_of(const CharT*, size_type))
	(find_first_not_of(const CharT*, size_type))
	(find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
	* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
	* testsuite/21_strings/basic_string_view/operations/compare/char/
	nonnull.cc: New.
	* testsuite/21_strings/basic_string_view/operations/find/char/
	nonnull.cc: New.
	* testsuite/21_strings/basic_string_view/operations/rfind/char/
	nonnull.cc: New.

From-SVN: r261638
2018-06-15 17:47:55 +01:00
Jonathan Wakely
3438bf7b9f PR libstdc++/86168 fix ambiguous default constructor
PR libstdc++/86168
	* include/bits/random.h (random_device(const string&)): Remove
	default argument.

From-SVN: r261636
2018-06-15 17:11:12 +01:00
Matthew Fortune
9e9e626420 MIPS: Add support for -mcrc and -mginv options.
gcc/ChangeLog:

2018-06-15  Matthew Fortune  <matthew.fortune@mips.com>

	* config/mips/mips.h (ASM_SPEC): Pass through -mcrc, -mno-crc,
	-mginv and -mno-ginv to the assembler.
	* config/mips/mips.opt (-mcrc): New option.
	(-mginv): Likewise.
	* doc/invoke.text (-mcrc): Document.
	(-mginv): Likewise.

From-SVN: r261635
2018-06-15 15:50:25 +00:00
Jonathan Wakely
5a95794c58 Only define __cpp_lib_constexpr_char_traits for C++17
* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
	define for C++17 and above.

From-SVN: r261634
2018-06-15 16:47:56 +01:00
Nick Clifton
490cced415 Force user provided warning and error messages to only occupy one line.
PR 84195
gcc: 	* tree.c (escaped_string): New class.  Converts an unescaped
 	string into its escaped equivalent.
 	(warn_deprecated_use): Use the new class to convert the
 	deprecation message, if present.
 	(test_escaped_strings): New self test.
 	(test_c_tests): Add test_escaped_strings.
 	* doc/extend.texi (deprecated): Add a note that the
 	deprecation message is affected by the -fmessage-length
 	option, and that control characters will be escaped.
 	(#pragma GCC error): Document this pragma.
 	(#pragma GCC warning): Likewise.
 	* doc/invoke.texi (-fmessage-length): Document this option's
 	effect on the #warning and #error preprocessor directives and
 	the deprecated attribute.
	
testsuite;
 	* gcc.c-torture/compile/pr84195.c: New test.

From-SVN: r261633
2018-06-15 15:25:16 +00:00
Jonathan Wakely
7f93abd805 LWG 2993 reference_wrapper<T> conversion from T&&
* doc/xml/manual/intro.xml: Document LWG 2993 change.
	* include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
	(reference_wrapper(_Tp&&)): Remove.
	(reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
	template.
	(reference_wrapper): Add deduction guide.
	* testsuite/20_util/reference_wrapper/deduction.cc: New.
	* testsuite/20_util/reference_wrapper/lwg2993.cc: New.

From-SVN: r261632
2018-06-15 15:19:47 +01:00
Richard Biener
d1ac60d575 tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS here, also noting vector size used.
2018-06-15  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS
	here, also noting vector size used.
	* tree-vectorizer.c (vectorize_loops): Adjust.  Note vector
	size used in MSG_OPTIMIZED_LOCATIONS dump.
	(pass_slp_vectorize::execute): Adjust.

From-SVN: r261626
2018-06-15 12:41:46 +00:00
Claudiu Zissulescu
738cb23206 [ARC] Fix warning in arc_return_address_register.
The if condition in arc_return_address_register which selects the arc
return address is not correct. The issue is signalized in bugzilla 85968.

gcc/
2018-06-15  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_return_address_register): Fix if-condition.

From-SVN: r261623
2018-06-15 13:22:10 +02:00
Richard Biener
fa68523173 re PR tree-optimization/86159 (g++ ICE at -O1 and above on valid code: incorrect type of vector CONSTRUCTOR elements)
2018-06-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/86159
	* tree-cfg.c (gimplify_build3): Do not strip sign conversions,
	leave useless conversion stripping to force_gimple_operand_gsi.
	(gimplify_build2): Likewise.
	(gimplify_build1): Likewise.

	* g++.dg/pr86159.C: New testcase.

From-SVN: r261622
2018-06-15 11:08:30 +00:00
Richard Biener
5b32ec1039 re PR tree-optimization/86076 (ICE: verify_gimple failed (error: location references block not in block tree))
2018-06-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/86076
	* tree-cfg.c (move_stmt_op): unshare invariant addresses
	before adjusting their block.

	* gcc.dg/pr86076.c: New testcase.

From-SVN: r261620
2018-06-15 07:25:13 +00:00
Sebastian Huber
a8ef8061e1 RISC-V: Add custom RTEMS multilibs
Add multilib variants for -march=rv64imafd, e.g. to support the BOOMv2 core.

Add -mcmodel=medany as a variant of the 64-bit multilibs for RTEMS.  The
rationale for this change is that several existing RISC-V chips map the
RAM at 0x80000000.  In RTEMS, we do not use virtual memory, so
applications will run at this location which is outside the +-2GiB range
in a 64-bit configuration.

gcc/
	* config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom
	multilibs for *-*-rtems*.
	* config/riscv/t-rtems: New file.

From-SVN: r261619
2018-06-15 05:19:44 +00:00
Jonathan Wakely
cb4f9a8c05 LWG 3039 Unnecessary decay in thread and packaged_task
* include/std/future (__constrain_pkgdtask): Replace with ...
	(packaged_task::__not_same): New alias template, using
	__remove_cvref_t instead of decay.
	* include/std/thread (thread::__not_same): Add comment.

From-SVN: r261618
2018-06-15 01:19:07 +01:00
GCC Administrator
024e96b90b Daily bump.
From-SVN: r261617
2018-06-15 00:16:45 +00:00
Marek Polacek
cf4763bd72 re PR c++/86063 (g++ ICE at tree check: expected tree_list, have expr_pack_expansion in cp_check_const_attributes, at cp/decl2.c:1391)
PR c++/86063
	* decl2.c (cp_check_const_attributes): Skip trees that are not
	TREE_LISTs.

	* g++.dg/cpp0x/gen-attrs-65.C: New test.

From-SVN: r261613
2018-06-14 21:07:14 +00:00
Jonathan Wakely
53e926c8cd LWG 3075 basic_string needs deduction guides from basic_string_view
* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
	deduction from string views.
	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
	Likewise.

From-SVN: r261612
2018-06-14 21:27:04 +01:00
Jonathan Wakely
db5ab3aa92 LWG 3074 make scalar types non-deduced in valarray non-member functions
* include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
	scalar parameters to be a non-deduced context.
	* include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
	whitespace.
	* testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
	* testsuite/26_numerics/valarray/transcend.cc: New.

From-SVN: r261610
2018-06-14 20:36:54 +01:00
Jakub Jelinek
bf7595376f re PR target/86048 (.seh_savexmm offset is negative error when compiling libpng)
PR target/86048
	* gcc.target/i386/pr86048.c: Require sse2 effective target.  Add
	-msse2 to dg-options.

From-SVN: r261608
2018-06-14 21:16:14 +02:00
Jakub Jelinek
48fcd201c4 re PR middle-end/86122 (ICE in useless_type_conversion_p, at gimple-expr.c:87)
PR middle-end/86122
	* match.pd ((A +- CST1) +- CST2): Punt if last resort
	unsigned_type_for returns NULL.

	* gcc.c-torture/compile/pr86122.c: New test.

From-SVN: r261606
2018-06-14 21:07:45 +02:00
Jakub Jelinek
bc04d1ff62 P0624R2 - Default constructible and assignable stateless lambdas
P0624R2 - Default constructible and assignable stateless lambdas
	* method.c (synthesized_method_walk): For C++2a don't mark
	sfk_constructor or sfk_copy_assignment as deleted if lambda has
	no lambda-captures.

	* g++.dg/cpp2a/lambda1.C: New test.
	* g++.dg/cpp0x/lambda/lambda-ice2.C: Adjust expected diagnostics
	for -std=c++2a.

From-SVN: r261605
2018-06-14 21:05:13 +02:00
Jonathan Wakely
2d26d4ce69 Partially revert move of std::tuple_element_t to <tuple>
Defining std::tuple_element_t in <utility> makes it available wherever
std::tuple_element is available.

	* include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
	Move back to <utility>.
	* include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
	Restore to here.

From-SVN: r261604
2018-06-14 20:02:40 +01:00
Paolo Carlini
d4d4475339 decl.c (duplicate_decls): Use DECL_SOURCE_LOCATION in OPT_Wshadow warning_at.
/cp
2018-06-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (duplicate_decls): Use DECL_SOURCE_LOCATION in
	OPT_Wshadow warning_at.
	(grokfndecl): Consistently use the location_t argument in
	literal operator diagnostic messages.
	(grokdeclarator): Use declspecs->locations[ds_storage_class]
	in error_at call.
	* decl2.c (finish_static_data_member_decl): Use DECL_SOURCE_LOCATION
	in permerror call.

/testsuite
2018-06-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/other/static3.C: New.
	* g++.dg/other/static4.C: Likewise.
	* g++.dg/warn/Wshadow-15.C: Likewise.
	* g++.dg/cpp0x/gnu_fext-numeric-literals.C: Test locations too.
	* g++.dg/cpp0x/std_fext-numeric-literals.C: Likewise.
	* g++.dg/cpp0x/std_fno-ext-numeric-literals.C: Likewise.
	* g++.dg/cpp0x/udlit-args-neg.C: Likewise.
	* g++.dg/cpp0x/udlit-clink-neg.C: Likewise.
	* g++.dg/cpp0x/udlit-extern-c.C: Likewise.
	* g++.dg/cpp0x/udlit-member-neg.C: Likewise.

From-SVN: r261601
2018-06-14 17:49:21 +00:00
Jonathan Wakely
e9ecac306b P0935R0 Eradicating unnecessarily explicit default constructors
More pieces of P0935R0, making default constructors non-explicit.

	* include/backward/strstream (strstreambuf): Add non-explicit default
	constructor.
	* include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
	Likewise.
	* include/bits/regex.h (match_results): Likewise.
	* testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
	default constructor.
	* testsuite/22_locale/conversions/string/1.cc: Likewise.
	* testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
	* testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.

From-SVN: r261597
2018-06-14 15:12:24 +01:00
Jonathan Wakely
74755c6afc Define __cpp_lib_tuple_element_t in <tuple> not <utility>
* include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
	macro from <utility> and change type to long.
	* include/std/utility (__cpp_lib_tuple_element_t): Remove.
	* testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
	macro.

From-SVN: r261596
2018-06-14 15:01:29 +01:00
Jakub Jelinek
75b5bc017b re PR target/85945 (ICE in resolve_subreg_use, at lower-subreg.c:751)
PR target/85945
	* lower-subreg.c (find_decomposable_subregs): Don't decompose float
	subregs of multi-word pseudos unless the float mode has word size.

	* gcc.c-torture/compile/pr85945.c: New test.

From-SVN: r261593
2018-06-14 15:35:06 +02:00
Jonathan Wakely
977ac63eab P0935R0 Eradicating unnecessarily explicit default constructors
The param_type constructors of each random number distribution should
mirror the constructors of the distribution itself, so make the same
changes w.r.t explicit on default constructors.

	* include/bits/random.h (uniform_real_distribution::param_type)
	(normal_distribution::param_type, lognormal_distribution::param_type)
	(gamma_distribution::param_type, chi_squared_distribution::param_type)
	(cauchy_distribution::param_type, fisher_f_distribution::param_type)
	(student_t_distribution::param_type)
	(bernoulli_distribution::param_type)
	(binomial_distribution::param_type)
	(geometric_distribution::param_type)
	(negative_binomial_distribution::param_type)
	(poisson_distribution::param_type)
	(exponential_distribution::param_type)
	(weibull_distribution::param_type)
	(extreme_value_distribution::param_type): Add non-explicit default
	constructors. Remove default argument for first parameter of explicit
	constructors.
	* include/bits/uniform_int_dist.h
	(uniform_int_distribution::param_type): Likewise.
	* include/ext/random
	(beta_distribution::param_type, rice_distribution::param_type)
	(nakagami_distribution::param_type, pareto_distribution::param_type)
	(k_distribution::param_type, arcsine_distribution::param_type)
	(hoyt_distribution::param_type, triangular_distribution::param_type)
	(von_mises_distribution::param_type)
	(hypergeometric_distribution::param_type)
	(logistic_distribution::param_type)
	(uniform_inside_sphere_distribution::param_type): Likewise.
	(uniform_on_sphere_distribution::param_type): Make default constructor
	non-explicit.
	* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
	Test param_type for non-explicit default constructor.
	* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/triangular_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/von_mises_distribution/cons/default.cc:
	Likewise.

From-SVN: r261592
2018-06-14 14:32:53 +01:00
Jonathan Wakely
8513bec38c Fix errors in libstdc++-v3/ChangeLog entries.
From-SVN: r261589
2018-06-14 11:59:14 +01:00
Richard Biener
bb4291d9de re PR target/86139 (ICE in in store_constructor, at expr.c:6849 on arm-linux-gnueabihf)
2018-06-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/86139
	* tree-vect-generic.c (build_word_mode_vector_type): Remove
	duplicate and harmful type_hash_canon.
	* tree.c (type_hash_canon): Assert we didn't find ourselves.

From-SVN: r261588
2018-06-14 10:55:31 +00:00
Richard Biener
a16fa075a8 re PR ipa/86124 (ICE in create_variable_info_for, at tree-ssa-structalias.c:6123)
2018-06-14  Richard Biener  <rguenther@suse.de>

	PR ipa/86124
	* tree-ssa-struct-alias.c (create_variable_info_for): Handle
	NULL cgraph_node.

	* gcc.dg/pr86124.c: New testcase.

From-SVN: r261587
2018-06-14 10:55:00 +00:00
Daniel Trebbien
4c1d999a7e PR libstdc++/83982 fix exception-safety guarantee of std::vector::resize
Construct new elements before moving existing ones, so that if a default
constructor throws, the existing elements are not left in a moved-from
state.

2018-06-14  Daniel Trebbien <dtrebbien@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/83982
	* include/bits/vector.tcc (vector::_M_default_append(size_type)):
	Default-construct new elements before moving existing ones.
	* testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
	New.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r261585
2018-06-14 10:26:51 +01:00
Sebastian Huber
c7a42ade9b RTEMS: Prefer int for int32_t
Common systems like glibc and FreeBSD define int32_t to int.  This means
a lot of third party code works well in these cases:

  #include <stdint.h>

  void f(int32_t);

  void f(int);

  void g(int32_t *);

  void h(void)
  {
    int i;
    g(&i);
  }

On RTEMS you got however in C

  test.c:5:6: error: conflicting types for 'f'
    void f(int);
        ^
  test.c:3:6: note: previous declaration of 'f' was here
    void f(int32_t);
        ^
  test.c: In function 'h':
  test.c:12:4: warning: passing argument 1 of 'g' from incompatible
  pointer type [-Wincompatible-pointer-types]
    g(&i);
      ^
  test.c:7:6: note: expected 'int32_t * {aka long int *}' but argument
  is of type 'int *' void g(int32_t *);

and C++

  test.c: In function 'void h()':
  test.c:12:4: error: invalid conversion from 'int*' to 'int32_t* {aka
  long int*}' [-fpermissive]
    g(&i);
      ^~
  test.c:7:6: note:   initializing argument 1 of 'void g(int32_t*)'
    void g(int32_t *);
      ^

This was due to a Newlib speciality which uses long for int32_t if long
is a 32-bit type.  To ease the use of third party software in RTEMS we
override this Newlib option now and use int for int32_t if int is a
32-bit type.

gcc/
	* config/rtems.h (STDINT_LONG32): Define.

From-SVN: r261582
2018-06-14 05:10:51 +00:00
GCC Administrator
6c07e43960 Daily bump.
From-SVN: r261580
2018-06-14 00:16:19 +00:00
Jason Merrill
4fdda3ceb3 PR c++/86099 - ICE with trivial copy and non-trivial default ctor.
* constexpr.c (instantiate_cx_fn_r): Don't synthesize trivial
	constructors.

From-SVN: r261576
2018-06-13 20:02:42 -04:00
Jason Merrill
5cef373359 c-opts.c (c_common_post_options): Warn about useless -Wabi.
* c-opts.c (c_common_post_options): Warn about useless -Wabi.

	(c_common_handle_option) [OPT_Wabi_]: Remove flag_abi_compat_version
	handling.

From-SVN: r261571
2018-06-13 17:05:34 -04:00
Matthew Fortune
30c0ee9ca6 MIPS: Add support for P6600.
gcc/ChangeLog:

2018-06-13  Matthew Fortune  <matthew.fortune@mips.com>
            Prachi Godbole  <prachi.godbole@imgtec.com>

	* config/mips/mips-cpus.def: Define P6600.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/mips.c (mips_ucbranch_type): New enum.
	(mips_rtx_cost_data): Add support for P6600.
	(mips_issue_rate): Likewise.
	(mips_multipass_dfa_lookahead): Likewise.
	(mips_avoid_hazard): Likewise.
	(mips_reorg_process_insns): Likewise.
	(mips_classify_branch_p6600): New function.
	* config/mips/mips.h (TUNE_P6600): New define.
	(MIPS_ISA_LEVEL_SPEC): Infer mips64r6 from p6600.
	(ENABLE_LD_ST_PAIRS): Enable load/store bonding for p6600.
	* config/mips/mips.md: Include p6600.md.
	(processor): Add p6600.
	* config/mips/p6600.md: New file.
	* doc/invoke.texi: Add p6600 to supported architectures.

Co-Authored-By: Prachi Godbole <prachi.godbole@imgtec.com>

From-SVN: r261570
2018-06-13 20:40:28 +00:00
Ian Lance Taylor
1df5fce42a compiler: avoid introducing redundant write barriers
The traversal used by the write barrier insertion phase can sometimes
    wind up visiting new statements inserted during the traversal, which
    then results in duplicate / redundant write barrier guards. Example
    program to reproduce:
    
      package small
      type S struct {
            N *S
            K int
      }
      var G *S = &S{N: nil, K: 101}
    
    This patch changes the traversal code to keep track of statements
    already added and avoid processing them again later in the traversal.
    
    Fixes golang/go#25867
    
    Reviewed-on: https://go-review.googlesource.com/118637

From-SVN: r261568
2018-06-13 20:32:10 +00:00
Martin Sebor
a7bf6c0889 PR tree-optimization/86114 - ICE in gimple_fold_builtin_strlen with an invalid call to strnlen
gcc/testsuite/ChangeLog:

	PR tree-optimization/86114
	* gcc.dg/pr86114.c: New test.

gcc/ChangeLog:

	PR tree-optimization/86114
	* gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS
	of integer types.
	* tree-ssa-strlen.c (maybe_set_strlen_range): Same.

From-SVN: r261567
2018-06-13 14:29:04 -06:00
François Dumont
eb04ee1d0f 2018-06-13 François Dumont <fdumont@gcc.gnu.org>
* include/debug/helper_functions.h
	(__gnu_debug::_Safe_iterator<>): Add declaration.
	(__can_advance(_Ite, _Size)): New.
	(__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
	* include/debug/functions.h
	(__gnu_debug::_Safe_iterator<>): Remove declaration.
	* include/debug/stl_iterator.h
	(__can_advance(const _Safe_iterator<>&)): New definition.
	* include/debug/stl_iterator.h
	(__can_advance(const std::reverse_iterator<>&, _Size)): New.
	(__can_advance(const std::move_iterator<>&, _Size)): New.
	* include/debug/macros.h (__glibcxx_check_can_increment): New.
	* include/debug/debug.h (__glibcxx_requires_can_increment): New.
	* include/bits/stl_algobase.h (fill_n): Use latter.
	* testsuite/25_algorithms/fill_n/2.cc: New.
	* testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
	* testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
	* testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
	* testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.

From-SVN: r261566
2018-06-13 20:27:26 +00:00
Denis Khalikov
3b07c0e5e4 re PR sanitizer/86090 ([ASAN] ASAN does not properly configure libbacktrace.)
2018-06-13  Denis Khalikov  <d.khalikov@partner.samsung.com>

libsanitizer/

	PR sanitizer/86090
	* configure.ac: Check for lstat and readlink.
	* configure, config.h.in: Rebuild.

From-SVN: r261564
2018-06-13 22:51:42 +03:00
Jason Merrill
34a7a2308d PR c++/86094 - wrong code with defaulted move ctor.
gcc/c-family/
	* c-opts.c (c_common_post_options): Bump the current ABI version to
	13.  Set warn_abi_version and flag_abi_compat_version to the current
	version rather than 0.  Fix defaulting flag_abi_compat_version from
	warn_abi_version.
gcc/cp/
	* class.c (classtype_has_non_deleted_move_ctor): New.
	* tree.c (maybe_warn_parm_abi, type_has_nontrivial_copy_init):
	Handle v12 breakage.

From-SVN: r261562
2018-06-13 15:39:36 -04:00
Steven G. Kargl
010b9a3ec0 re PR fortran/86110 (ICE in gfc_resolve_character_array_constructor, at fortran/array.c:2044)
2018-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/86110
	* array.c (gfc_resolve_character_array_constructor): Avoid NULL 
	pointer dereference.

2018-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/86110
	* gfortran.dg/pr86110.f90: New test.

From-SVN: r261561
2018-06-13 19:37:50 +00:00
Ian Lance Taylor
de001ec777 compiler: include global variable preinit blocks in ast dumps
Dump out the blocks corresponding to variable pre-inits when
    -fgo-dump-ast is in effect. Each preinit block is prefixed with a
    comment indicating the variable it is initializing.
    
    Reviewed-on: https://go-review.googlesource.com/118636

From-SVN: r261555
2018-06-13 17:24:45 +00:00