165763 Commits

Author SHA1 Message Date
Marek Polacek
b46e1a6997 PR c++/88216 - ICE with class type in non-type template parameter.
* mangle.c (write_expression): Handle TARGET_EXPR and
	VIEW_CONVERT_EXPR.
	* pt.c (convert_nontype_argument): Don't call
	get_template_parm_object for value-dependent expressions.

	* g++.dg/cpp2a/nontype-class9.C: New test.

From-SVN: r267108
2018-12-13 20:47:32 +00:00
Jonathan Wakely
2b462958e2 Fix handling of POSIX paths containing a root-name
Fix path appending and concatenating to work correctly for a leading
root-name. Check a new macro, SLASHSLASH_IS_ROOT_NAME, instead of making
the behaviour depend directly on __CYGWIN__.

	* src/filesystem/std-path.cc (SLASHSLASH_IS_ROOT_NAME): New macro to
	control whether interpret paths with two slashes as a root-name.
	(path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Add a
	root-directory when appending to a root-name.
	(path::_M_append(basic_string_view<value_type>))
	[SLASHSLASH_IS_ROOT_NAME]: Likewise.
	(path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Likewise.
	(path::_M_concat(basic_string_view<value_type>))
	[SLASHSLASH_IS_ROOT_NAME]: Likewise.
	(path::lexically_normal()) [SLASHSLASH_IS_ROOT_NAME]: Use += instead
	of /= to add a root-directory to the result.
	* testsuite/27_io/filesystem/path/decompose/root_directory.cc: Fix
	expected result for Cygwin.

From-SVN: r267107
2018-12-13 20:34:10 +00:00
Jonathan Wakely
4f87bb8d6e PR libstdc++/71044 optimize std::filesystem::path construction
This new implementation has a smaller footprint than the previous
implementation, due to replacing std::vector<_Cmpt> with a custom pimpl
type that only needs a single pointer. The _M_type enumeration is also
combined with the pimpl type, by using a tagged pointer, reducing
sizeof(path) further still.

Construction and modification of paths is now done more efficiently, by
splitting the input into a stack-based buffer of string_view objects
instead of a dynamically-allocated vector containing strings. Once the
final size is known only a single allocation is needed to reserve space
for it.  The append and concat operations no longer require constructing
temporary path objects, nor re-parsing the entire native pathname.

This results in algorithmic improvements to path construction, and
working with large paths is much faster.

	PR libstdc++/71044
	* include/bits/fs_path.h (path::path(path&&)): Add noexcept when
	appropriate. Move _M_cmpts instead of reparsing the native pathname.
	(path::operator=(const path&)): Do not define as defaulted.
	(path::operator/=, path::append): Call _M_append.
	(path::concat): Call _M_concat.
	(path::path(string_type, _Type): Change type of first parameter to
	basic_string_view<value_type>.
	(path::_M_append(basic_string_view<value_type>)): New member function.
	(path::_M_concat(basic_string_view<value_type>)): New member function.
	(_S_convert(value_type*, __null_terminated)): Return string view.
	(_S_convert(const value_type*, __null_terminated)): Return string view.
	(_S_convert(value_type*, value_type*))
	(_S_convert(const value_type*, const value_type*)): Add overloads for
	pairs of pointers.
	(_S_convert(_InputIterator, __null_terminated)): Construct string_type
	explicitly, for cases where _S_convert returns a string view.
	(path::_S_is_dir_sep): Replace with non-member is_dir_sep.
	(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
	(path::_M_add_filename): Remove.
	(path::_M_type()): New member function to replace _M_type data member.
	(path::_List): Define new struct type instead of using std::vector.
	(path::_Cmpt::_Cmpt(string_type, _Type, size_t)): Change type of
	first parameter to basic_string_view<value_type>.
	(path::operator+=(const path&)): Do not define inline.
	(path::operator+=(const string_type&)): Call _M_concat.
	(path::operator+=(const value_type*)): Likewise.
	(path::operator+=(value_type)): Likewise.
	(path::operator+=(basic_string_view<value_type>)): Likewise.
	(path::operator/=(const path&)): Do not define inline.
	(path::_M_append(path)): Remove.
	* python/libstdcxx/v6/printers.py (StdPathPrinter): New printer that
	understands the new path::_List type.
	* src/filesystem/std-path.cc (is_dir_sep): New function to replace
	path::_S_is_dir_sep.
	(path::_Parser): New helper class to parse strings as paths.
	(path::_List::_Impl): Define container type for path components.
	(path::_List): Define members.
	(path::operator=(const path&)): Define explicitly, to provide the
	strong exception safety guarantee.
	(path::operator/=(const path&)): Implement manually by processing
	each component of the argument, rather than using _M_split_cmpts
	to parse the entire string again.
	(path::_M_append(string_type)): Likewise.
	(path::operator+=(const path&)): Likewise.
	(path::_M_concat(string_type)): Likewise.
	(path::remove_filename()): Perform trim directly instead of calling
	_M_trim().
	(path::_M_split_cmpts()): Rewrite in terms of _Parser class.
	(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
	(path::_M_add_filename): Remove.
	* testsuite/27_io/filesystem/path/append/source.cc: Test appending a
	string view that aliases the path.
	testsuite/27_io/filesystem/path/concat/strings.cc: Test concatenating
	a string view that aliases the path.

From-SVN: r267106
2018-12-13 20:33:55 +00:00
Jakub Jelinek
51beaeba8a re PR rtl-optimization/88416 (ICE in in df_uses_record, at df-scan.c:3013)
PR rtl-optimization/88416
	* valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify
	even if !AUTO_INC_DEC.

	* gcc.target/i386/pr88416.c: New test.

From-SVN: r267105
2018-12-13 20:44:50 +01:00
David Edelsohn
ab0cdfdd97 rs6000.c (rs6000_function_arg): Ensure type is non-NULL.
* config/rs6000/rs6000.c (rs6000_function_arg): Ensure type is non-NULL.
(rs6000_arg_partial_bytes): Same.

From-SVN: r267104
2018-12-13 14:25:59 -05:00
Peter Bergner
d1573fe051 target.h (htm_available): Add support for PPC_FEATURE2_HTM_NO_SUSPEND.
libitm/
	* config/powerpc/target.h (htm_available):  Add support for
	PPC_FEATURE2_HTM_NO_SUSPEND.  Use __builtin_cpu_supports if available.

From-SVN: r267101
2018-12-13 12:04:11 -06:00
Tom de Vries
fe0827eed0 [libgomp, nvptx] Fix libgomp.c/target-5.c compilation
Libgomp test-case libgomp.c/target-5.c is failing to compile when building for
x86_64 with nvptx accelerator due to missing:
- getpid
- gethostname
- isatty (pulled in by fwrite)
in the nvptx newlib.

This patch fixes the build failure by:
- adding a function gomp_print_string which limits the use of fwrite to a single
  location (in affinity-fmt.c), and
- creating an nvptx version of affinity-fmt.c, which:
  - overrides the configure test results HAVE_GETPID and HAVE_GETHOSTNAME, and
  - implements fwrite using write.

Build and reg-tested on x86_64 with nvptx accelerator.

2018-12-13  Tom de Vries  <tdevries@suse.de>

	* affinity-fmt.c (gomp_print_string): New function, factored out of ...
	(omp_display_affinity, gomp_display_affinity_thread): ... here, and ...
	* fortran.c (omp_display_affinity_): ... here.
	* libgomp.h (gomp_print_string): Declare.
	* config/nvptx/affinity-fmt.c: New file.  Include affinity-fmt.c,
	undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to
	write.

From-SVN: r267100
2018-12-13 18:04:05 +00:00
Jason Merrill
b3147e5928 gdbinit.in (pp): New macro.
* gdbinit.in (pp): New macro.

	(pbb): Remove.

From-SVN: r267098
2018-12-13 12:45:40 -05:00
Jakub Jelinek
0e350f135b re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter failing with "not suitable for scatter store")
PR tree-optimization/88464
	* tree-vect-stmts.c (vect_build_gather_load_calls): Handle INTEGER_TYPE
	masktype if mask is non-NULL.
	(vectorizable_load): Don't reject masked gather loads if masktype
	in the decl is INTEGER_TYPE.

	* gcc.target/i386/avx512f-pr88462-1.c: New test.
	* gcc.target/i386/avx512f-pr88462-2.c: New test.

From-SVN: r267097
2018-12-13 18:01:50 +01:00
Nathan Sidwell
2139fd74f3 [PR c++/87531] Fix second bug
https://gcc.gnu.org/ml/gcc-patches/2018-12/msg00929.html

	PR c++/87531
	* class.c (finish_struct): Set DECL_CONTEXT of template assign op.
	* name-lookup.c (get_class_binding_direct): Don't strip using-decl
	of overload here.
	* parser.c (cp_parser_postfix_expression): Cope with using decl in
	overload set.
	* semantics.c (finish_id_expr): Likewise.

	* g++.dg/lookup/pr87531-2.C: New.

From-SVN: r267096
2018-12-13 15:57:24 +00:00
Rainer Orth
f1d42e85ad Include gdc.test prefix in test names (PR testsuite/88041)
PR testsuite/88041
	* lib/gdc-dg.exp (gdc-dg-test): Strip gdc.test prefix.
	* gdc.test/gdc-test.exp (gdc-do-test): Create $subdir link.
	Include $subdir in filename.
	Cleanup generated source.
	* gdc.test/compilable/ddoc9676a.d (EXTRA_SOURCES): Don't use
	absolute path.
	* gdc.test/compilable/depsOutput9948.d: Likewise.

From-SVN: r267094
2018-12-13 14:41:34 +00:00
Jakub Jelinek
a51f8c92e2 re PR libgomp/88460 ([nvptx] FAIL: libgomp.c++/for-24.C (internal compiler error))
PR libgomp/88460
	* testsuite/libgomp.c++/for-24.C (results): Include it in
	omp declare target region.
	(main): Use map (always, tofrom: results) instead of
	map (tofrom: results).

From-SVN: r267093
2018-12-13 13:53:19 +01:00
Jakub Jelinek
b9cbcd3ef0 re PR testsuite/88454 (test case gcc.dg/tree-ssa/split-path-5.c fails after r266971)
PR testsuite/88454
	* gcc.dg/tree-ssa/split-path-5.c (__ctype_ptr__): Change type from
	const char * to const signed char *.
	(bmhi_init): Change pattern parameter's type the same.  Use
	__builtin_strlen instead of undeclared strlen.

From-SVN: r267092
2018-12-13 13:52:11 +01:00
Jonathan Wakely
a7a6c14a55 Fix [fs.path.gen] tests to use backslashes for mingw
The normalized paths contain backslashes so fix the expected values to
use backslashes too.

	* testsuite/27_io/filesystem/path/generation/proximate.cc: Use
	preferred directory separators for normalized paths.
	* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.

From-SVN: r267090
2018-12-13 12:26:52 +00:00
Jonathan Wakely
ebfaf34570 Fix test to work when path::native() returns wstring
* testsuite/27_io/filesystem/path/itr/traversal.cc: Fix test for
	mingw.

From-SVN: r267089
2018-12-13 12:09:33 +00:00
Andreas Krebbel
a00ccce858 S/390: Fix zvector vec_double builtin
The (unsigned) long int to double vector conversion instructions
expect 2 immediate parameters. One for the inexact suppression
control and another one for the rounding mode.  However, the
vec_double builtin has just the vector source operand.  The 2
addtional operands need to be added with an intermediate expander.
The expanders were already there but unfortunately not wired up
correctly to the builtin.

gcc/ChangeLog:

2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtins.def (s390_vec_double_s64): Map to
	s390_vec_double_s64 instead of s390_vcdgb.
	(s390_vec_double_u64): Map to s390_vec_double_u64 instead of
	s390_vcdlgb.

gcc/testsuite/ChangeLog:

2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-double-1.c: New test.
	* gcc.target/s390/zvector/vec-double-2.c: New test.

From-SVN: r267084
2018-12-13 11:57:16 +00:00
Andreas Krebbel
99daf8e848 S/390: Use VEC_INEXACT/VEC_NOINEXACT instead of magic numbers.
2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64")
	("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT.
	("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT.

From-SVN: r267083
2018-12-13 11:55:43 +00:00
Jonathan Wakely
bc51a764a3 Disable new tests for configurations with no libstdc++fs.a
* testsuite/27_io/filesystem/path/construct/80762.cc: Skip test if
	the Filesystem TS support is not configured.
	* testsuite/experimental/filesystem/path/construct/80762.cc: Likewise.

From-SVN: r267082
2018-12-13 11:01:03 +00:00
Kyrylo Tkachov
ee03c51c0b [AArch64][doc] Clarify -msve-vector-bits=128 behaviour
We've received reports about the -msve-vector-bits=128 bits being somewhat ambiguous.
It isn't clear whether -msve-vector-bits=128 forces vector-length-agnostic code or whether
-msve-vector-bits=scalable forces 128-bit vector-lengh-specific code.
The latter is a, perhaps unintuitive, reading that we want to exclude.

This patch makes it more explicit that -msve-vector-bits=128 is special and produces
vector-length *agnostic* code. In the end, I've rewritten the whole option documentation.

Checked make pdf that the output looks reasonable.

    * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128
    behavior.

From-SVN: r267081
2018-12-13 10:37:15 +00:00
Wei Xiao
7cab07f089 i386-common.c (processor_names): Add cascadelake.
gcc/
      * common/config/i386/i386-common.c (processor_names): Add cascadelake.
      (processor_alias_table): Add cascadelake.
      * config.gcc: Add -march=cascadelake.
      * config/i386/i386-c.c (ix86_target_macros_internal): Handle cascadelake.
      * config/i386/i386.c (Add m_CASCADELAKE): New.
      (processor_cost_table): Add cascadelake.
      (get_builtin_code_for_version): Handle cascadelake.
      * config/i386/i386.h (TARGET_CASCADELAKE, PROCESSOR_CASCADELAKE): New.
      (PTA_CASCADELAKE): Ditto.
      * doc/invoke.texi: Add -march=cascadelake.

gcc/testsuite/
      * gcc.target/i386/funcspec-56.inc: Handle new march.

From-SVN: r267080
2018-12-13 08:57:28 +00:00
Arnaud Charlet
81f3e60f5b Add note about abort and ZCX runtime.
Part of RC12-001

From-SVN: r267079
2018-12-13 09:11:45 +01:00
Jakub Jelinek
26b57b93b3 re PR target/88465 (AVX512: optimize loading of constant values to kN registers)
PR target/88465
	* config/i386/i386.md (*movdi_internal, *movsi_internal,
	*movhi_internal, *movqi_internal): Add alternative(s) to load
	0 or -1 into k registers using kxor or kxnoq instructions.

	* gcc.target/i386/avx512f-pr88465.c: New test.
	* gcc.target/i386/avx512dq-pr88465.c: New test.

From-SVN: r267078
2018-12-13 09:08:22 +01:00
Jakub Jelinek
e00199d7b7 re PR target/88461 (AVX512: gcc should keep value in kN registers if possible)
PR target/88461
	* config/i386/sse.md (VI1248_AVX512VLBW, AVX512ZEXTMASK): New
	mode iterators.
	(<avx512>_testm<mode>3<mask_scalar_merge_name>,
	<avx512>_testnm<mode>3<mask_scalar_merge_name>): Merge patterns
	with VI12_AVX512VL and VI48_AVX512VL iterators into ones with
	VI1248_AVX512VLBW iterator.
	(*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
	*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
	*<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
	*<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask): New
	define_insns.

	* gcc.target/i386/pr88461.c: New test.

From-SVN: r267077
2018-12-13 09:00:42 +01:00
Jakub Jelinek
87d570a022 re PR target/88461 (AVX512: gcc should keep value in kN registers if possible)
PR target/88461
	* config/i386/i386.md (*zero_extendsidi2, zero_extend<mode>di2,
	*zero_extend<mode>si2, *zero_extendqihi2): Add =*k, *km alternatives.

From-SVN: r267076
2018-12-13 08:58:42 +01:00
GCC Administrator
401069dab8 Daily bump.
From-SVN: r267074
2018-12-13 00:16:35 +00:00
Ian Lance Taylor
e7db55f636 runtime: handle DW_EH_PE_absptr in type table encoding
The type table encoding can be DW_EH_PE_absptr, but this case
    was missing, which was causing abort on ARM32 EABI. Add the
    missing case.
    
    Reviewed-on: https://go-review.googlesource.com/c/153857

From-SVN: r267070
2018-12-12 23:26:58 +00:00
Jakub Jelinek
7a289b7d0a re PR fortran/88463 (Rejects conforming source, OpenMP Parallel region Default(None) reference to module parameter array, separate source)
PR fortran/88463
	* trans-openmp.c (gfc_omp_predetermined_sharing): Handle TREE_READONLY
	VAR_DECLs with DECL_EXTERNAL like those with TREE_STATIC.

	* testsuite/libgomp.fortran/pr88463-1.f90: New test.
	* testsuite/libgomp.fortran/pr88463-2.f90: New test.

From-SVN: r267069
2018-12-12 23:49:35 +01:00
Ian Lance Taylor
44cacba39d os/signal: increase deliver time for signal testcase
This increases the time to wait for signals to be delivered in the
    TestAtomicStop testcase. When running gccgo tests on ppc64 or ppc64le,
    there are intermittent failures in this test because the wait time is
    too small.
    
    Updates golang/go#29046
    
    Reviewed-on: https://go-review.googlesource.com/c/153879

From-SVN: r267068
2018-12-12 22:48:46 +00:00
Jakub Jelinek
a6ef2ac9d9 omp-builtins.def (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START, [...]): Fix up function types - remove one argument.
* omp-builtins.def (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START,
	BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME,
	BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME): Fix up
	function types - remove one argument.

	* testsuite/libgomp.c-c++-common/for-16.c: New test.

From-SVN: r267067
2018-12-12 23:47:55 +01:00
Paolo Carlini
77a2428600 decl.c (grokdeclarator): Fix location of error message about static data member definition.
/cp
2018-12-12  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (grokdeclarator): Fix location of error message about
	static data member definition.

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

	* g++.dg/other/static5.C: New.

From-SVN: r267066
2018-12-12 21:36:26 +00:00
Martin Sebor
293267bcdf extend.texi (attribute copy): Fix typos.
gcc/ChangeLog:

	* doc/extend.texi (attribute copy): Fix typos.

From-SVN: r267065
2018-12-12 14:02:41 -07:00
Martin Sebor
348846ff36 extend.texi (Function Attributes): Clarify C++ aspects.
gcc/ChangeLog:

	* doc/extend.texi (Function Attributes): Clarify C++ aspects.
	(Variable Attributes): Same.
	(Type Attributes): Same.

From-SVN: r267064
2018-12-12 13:48:00 -07:00
Segher Boessenkool
c46eb97906 Fix independent-cloneids-1.c testcase (PR88318)
The testcase uses REs like {(?n)\m_*bar[.$_]constprop[.$_]0:} to find
what functions are defined.  But, this also matches lines like
.L.bar.constprop.0:(which are used on powerpc64-linux).
The "(?n)" doesn't do anything here either.  We should use "^" here
instead of just "\m".


	PR testsuite/88318
	* gcc.dg/independent-cloneids-1.c: Use ^ not \m.

From-SVN: r267063
2018-12-12 20:45:45 +01:00
Olivier Hainque
6881e3c13e Add support for SUBTARGET_OVERRIDE_OPTIONS on aarch64
* config/aarch64/aarch64.c (aarch64_override_options): Once arch,
	cpu and tune were validated, insert SUBTARGET_OVERRIDE_OPTIONS if
	defined.

From-SVN: r267060
2018-12-12 17:12:25 +00:00
Olivier Hainque
8921ccbb04 Use REGNUM macros in the definitions of aarch64 PROBE_STACK regs
* config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG) : Redefine as
	R9_REGNUM instead of 9.
	(PROBE_STACK_SECOND_REG): Redefine as R10_REGNUM instead of 10.

From-SVN: r267059
2018-12-12 17:10:44 +00:00
Richard Earnshaw
7bd0ca1100 Fix PR number in my last commit
From-SVN: r267058
2018-12-12 16:31:12 +00:00
Jonathan Wakely
9e16052644 Overload std::distance and std::advance for path::iterator
Although filesystem::path::iterator is only a bidirectional iterator,
the underlying sequence has random access iterators (specifically, raw
pointers). This means std::distance and std::advance can be implemented
more efficiently than the generic versions which apply ++ and --
repeatedly.

	PR libstdc++/71044 (partial)
	* include/bits/fs_path.h (__path_iter_distance, __path_iter_advance):
	New friend functions to implement std::distance and std::advance more
	efficiently.
	(distance, advance): Add overloads for path::iterator.
	* testsuite/27_io/filesystem/path/itr/components.cc: Test new
	overload.

From-SVN: r267057
2018-12-12 16:13:49 +00:00
Jonathan Wakely
6b7c0b5559 PR libstdc++/80762 avoid ambiguous __constructible_from<void, void>
Ensure we don't try to instantiate __is_constructible_from<void, void>,
because there are two partial specializations that are equally good
matches.

	PR libstdc++/80762
	* include/bits/fs_path.h (path::_Path): Use remove_cv_t and is_void.
	* include/experimental/bits/fs_path.h (path::_Path): Likewise.
	* testsuite/27_io/filesystem/path/construct/80762.cc: New test.
	* testsuite/experimental/filesystem/path/construct/80762.cc: New test.

From-SVN: r267056
2018-12-12 16:13:43 +00:00
Joel Brobecker
5da5fefeeb require profiling support for gcc.dg/lto/20100430-1_0.c test
This test currently fails unexpectedly if GCC is configured with
--disable-gcov, because it requires -fprofile-arcs. This patch
fixes the issue by requiring profiling support in order to run
this test.

Tested with two compilers, one built with --disable-gcov, resulting
in the test reporting an UNSUPPORTED result; and one built with gcov
support, resulting in 2 PASS tests.

gcc/testsuite/ChangeLog:

        * gcc.dg/lto/20100430-1_0.c: Add dg-require-profiling requirement.

From-SVN: r267055
2018-12-12 14:22:37 +00:00
Tom de Vries
d665cd9b13 [libbacktrace] Add allocfail.sh test-case
Add test-case that forces alloc.c functions to fail, and check whether fail
handling is robust.

This is the test-case for "[libbacktrace] Fix segfault upon allocation
failure".  Without that patch, this test-case fails like this:
...
allocfail.sh: line 71: 26041 Segmentation fault      (core dumped) \
  ./allocfail $i > /dev/null 2>&1
Unallowed fail found: 13
FAIL allocfail.sh (exit status: 1)
...

This is a seperate patch because the test-case is nontrivial.

Bootstrapped and reg-tested on x86_64.

2018-12-12  Tom de Vries  <tdevries@suse.de>

	* Makefile.am (TESTS): Add allocfail.sh.
	(check_PROGRAMS): Add allocfail.
	* Makefile.in: Regenerate.
	* instrumented_alloc.c: New file.  Redefine malloc and realloc.
	Include alloc.c.
	* allocfail.c: New file.
	* allocfail.sh: New file.

From-SVN: r267054
2018-12-12 13:50:51 +00:00
Eric Botcazou
bf4eca2e56 re PR target/86806 (SPARC port needs updating for CVE-2017-5753)
PR target/86806
	* config/sparc/sparc.md (unspecv): Add UNSPECV_SPECULATION_BARRIER.
	(speculation_barrier): New instruction for V9.

From-SVN: r267053
2018-12-12 11:40:28 +00:00
Andreas Schwab
9c47a01994 Don't mark stack pointer as clobbered in asm
* config/linux/ia64/futex.h (sys_futex0): Don't mark r12 as
clobbered.

From-SVN: r267052
2018-12-12 11:22:42 +00:00
Rasmus Villemoes
5a2580b6ad libgcc: rs6000: tramp.S: fix placement of .cfi_endproc for __trampoline_setup
Currently, .cfi_endproc and FUNC_END(__trampoline_setup) are placed
inside the #else branch of an "#if defined (__VXWORKS__) ...", so
non-pic vxworks does not get proper CFI nor a .size directive for
__trampoline_setup. I assume there's no magic reason for that (which
would warrant a comment), so move them outside.

From-SVN: r267051
2018-12-12 10:12:36 +00:00
Iain Sandoe
0c1342dfad rs6000 - add missed hunk
This add the hunk
	(macho_call_template): Remove.

missed from r267049

From-SVN: r267050
2018-12-12 09:25:13 +00:00
Segher Boessenkool
be611c9c5a rs6000 - Fix PR target/88343
The PR is about unnecessary saves of the pic base register, it shows on m32 Linux and m32/m64 Darwin.

The fix is to check that we are in a pic mode and that the picbase has actually been used.
As a bonus, some #ifdef’d TARGET_MACHO code is no longer required.

2018-12-12 Segher Boessenkool  <segher@kernel.crashing.org>
	   Iain Sandoe  <iain@sandoe.co.uk>

	PR target/88343
	* config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg
	unless it has been used.
	(first_reg_to_save): Remove dead code.


Co-Authored-By: Iain Sandoe <iain@sandoe.co.uk>

From-SVN: r267049
2018-12-12 08:53:49 +00:00
Iain Sandoe
aa3a2eca42 rs6000, update Darwin call handling to latest scheme.
This patch mormalises Darwin's call handling to match the scheme
recently introduced and gives it target-specific call expanders.

2018-12-12  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/rs6000-protos.h (rs6000_call_darwin): New.
	(rs6000_sibcall_darwin): New. (macho_call_template): Remove.
	* config/rs6000/rs6000.c (get_prev_label): Forward declaration. 
	(rs6000_call_template_1): Handle Darwin.
	(macho_call_template): Remove.
	(rs6000_call_sysv): Remove handling for Darwin.
	(rs6000_call_darwin_1, rs6000_call_darwin): New
	(rs6000_sibcall_darwin): New.
	* config/rs6000/rs6000.md (define_expand “call”): Handle Darwin
	with its own expander. (define_expand “call_value”): Likewise.
	(define_expand “sibcall”): Likewise.
	(define_expand “sibcall_value”): Likewise.
	(call_nonlocal_sysv): Remove Darwin special-casing.
	(call_value_nonlocal_sysv): Likewise.

From-SVN: r267048
2018-12-12 08:47:16 +00:00
Jakub Jelinek
13de99bc7d re PR c++/88446 (__builtin_is_constant_evaluated rejects some converted constant expressions.)
PR c++/88446
	* cp-tree.h (maybe_constant_value): Add manifestly_const_eval
	argument.
	* constexpr.c (struct constexpr_call): Rename pretend_const_required
	member to manifestly_const_eval.
	(struct constexpr_ctx): Likewise.
	(constexpr_call_hasher::equal): Adjust users.
	(cxx_eval_builtin_function_call): Likewise.  Formatting fix.
	(cxx_eval_call_expression): Adjust users.
	(cxx_eval_outermost_constant_expr, maybe_constant_init_1,
	maybe_constant_init): Rename pretend_const_required argument to
	manifestly_const_eval, adjust function comments.
	(maybe_constant_value): Add manifestly_const_eval argument.  If true,
	don't cache and call cxx_eval_outermost_constant_expr with true as
	manifestly_const_eval.
	* decl.c (compute_array_index_type_loc): Call maybe_constant_value
	with true as manifestly_const_eval.

	* g++.dg/cpp2a/is-constant-evaluated3.C: New test.

From-SVN: r267047
2018-12-12 09:44:27 +01:00
Iain Sandoe
66e30545db rs6000, darwin - fix bootstrap.
Recent changes to the lowerings for call handling in rs6000
have broken bootstrap for powerpc-darwin.  This patch modifies
the calls to handle Darwin asa subset, a subsequent patch will
split Darwin out.

2018-12-12  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/darwin.md (call_indirect_nonlocal_darwin64): Remove.
	(call_nonlocal_darwin64): Remove.
	(call_value_indirect_nonlocal_darwin64): Remove.
	(call_value_nonlocal_darwin64): Remove.
	* config/rs6000/rs6000.c (rs6000_call_template_1): Handle Darwin with
	the same asm output as AIX/ELFv2.  (rs6000_call_sysv): Preserve the
	CALL_LONG flag when needed for Darwin.
	* config/rs6000/rs6000.md (define expand “call”): Expand Darwin as
	per sysv.
	(define_expand “call_value”): Likewise.
	(define_expand “sibcall”): Likewise.
	(define_expand “sibcall_value”): Likewise.
	(call_indirect_nonlocal_sysv): Mark the clobber mode P.
	(call_nonlocal_sysv): Likewise.
	(call_nonlocal_sysv_secure): Likewise.
	(call_value_indirect_nonlocal_sysv): Likewise.
	(call_value_nonlocal_sysv): Likewise.
	(call_value_nonlocal_sysv_secure): Likewise.
	(call_local64): Mark the clobber DI.
	(call_value_local64): Likewise.

From-SVN: r267046
2018-12-12 08:42:28 +00:00
Jakub Jelinek
0d7924f2e7 P0595R2 - is_constant_evaluated
P0595R2 - is_constant_evaluated
	* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED):
	Define if __builtin_is_constant_evaluated is available.
	* include/std/type_traits (std::is_constant_evaluated): New constexpr
	inline function.
	* testsuite/20_util/is_constant_evaluated/1.cc: New test.
	* testsuite/20_util/is_constant_evaluated/noexcept.cc: New test.

From-SVN: r267045
2018-12-12 09:31:01 +01:00
Jakub Jelinek
cce3ae91f2 re PR c++/88449 (__builtin_is_constant_evaluated misbehaves due to constexpr call caching)
PR c++/88449
	* constexpr.c (struct constexpr_call): Add pretend_const_required
	member.
	(constexpr_call_hasher::equal): Return false if pretend_const_required
	members differ.
	(cxx_eval_call_expression): Adjust new_call initialization.  Hash in
	ctx->pretend_const_required.

	* g++.dg/cpp2a/is-constant-evaluated1.C: Change from dg-do compile
	to dg-do run.
	(e): Adjust comment with correct expected value.
	(main): Expect e == 1.
	* g++.dg/cpp2a/is-constant-evaluated2.C: New test.

From-SVN: r267044
2018-12-12 09:28:43 +01:00