Commit Graph

167057 Commits

Author SHA1 Message Date
Tom Honermann 65bbaf3125 Disambiguate __gnu_cxx::append_ partial specialization
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
2019-02-22 01:15:58 +00:00
Ian Lance Taylor f08e60e988 re PR go/89406 (Go testing leaves many temporary directories in /tmp around)
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
2019-02-22 00:47:30 +00:00
Ian Lance Taylor 8aef6e02ad cmd/go: remove work directory on usage error
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
2019-02-22 00:41:25 +00:00
GCC Administrator 2496137abd Daily bump.
From-SVN: r269085
2019-02-22 00:16:20 +00:00
Martin Sebor a90b0cdd44 extend.texi (__clear_cache): Correct signature.
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
2019-02-21 16:23:12 -07:00
Jason Merrill 4bcd47e2e1 PR c++/89422 - ICE with -g and lambda in default arg in template.
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
2019-02-21 18:07:47 -05:00
Jason Merrill 5498361c0f PR c++/88419 - C++17 ICE with class template arg deduction.
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
2019-02-21 18:07:12 -05:00
Ian Lance Taylor eeb20b9696 re PR go/89170 (FAIL: net/http)
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
2019-02-21 22:50:24 +00:00
Jakub Jelinek 43574e4ff2 re PR c++/89285 (ICE after casting the this pointer in the constructor in C++17 mode)
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
2019-02-21 22:21:25 +01:00
Jonathan Wakely d331c5f10d PR libstdc++/89416 fix __is_move_insertable trait
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
2019-02-21 20:47:43 +00:00
H.J. Lu f43044a3d7 i386: Replace -fcf-protection with -fcf-protection=branch
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
2019-02-21 10:59:00 -08:00
Jason Merrill 7b45322a5e PR c++/88690 - C++17 ICE with empty base in aggregate.
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
2019-02-21 13:16:15 -05:00
Wilco Dijkstra f64629aa9a Fix pr88850-2 test
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
2019-02-21 18:08:56 +00:00
Thomas Koenig 5ea0d4df1e dump-parse-tree.c (debug): Implement for gfc_expr *, gfc_typespec *, gfc_typespec and gfc_symbol *.
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
2019-02-21 18:03:30 +00:00
Thomas Koenig 9e6644c6fd re PR fortran/86119 (Intrinsic len has wrong type if used within select type for a class(*) string)
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
2019-02-21 18:01:41 +00:00
H.J. Lu eb74a883e8 i386: Check -mindirect-branch/-mfunction-return with -fcf-protection
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
2019-02-21 05:41:53 -08:00
Jakub Jelinek 8be5348868 re PR bootstrap/88714 (bootstrap comparison failure on armv7l since r265398)
PR bootstrap/88714
	* constraints.md (q): Remove.
	* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
	instead of q.

From-SVN: r269067
2019-02-21 13:04:26 +01:00
Martin Jambor 031c5c8b60 [omp] Move NE_EXPR handling to omp_adjust_for_condition
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
2019-02-21 12:00:47 +01:00
Richard Biener 0864e3fcb6 re PR c++/89392 (ICE in bitmap_bit_p, at bitmap.c:978)
2019-02-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/89392
	cp/
	* vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
	make symtab process new functions here.

From-SVN: r269065
2019-02-21 08:03:40 +00:00
Jason Merrill 752620bec6 PR c++/87921 - wrong error with inline static data member.
c_parse_final_cleanups checks DECL_IN_AGGR_P to avoid trying to emit a
static data member that has not been defined.  The inline variable patch
changed that to exempt inline variables.  But in this case we haven't
instantiated the variable yet, so we really don't have a definition.  This
patch changes inline variable handling such that DECL_IN_AGGR_P is not set
for a defined inline variable, so we can remove all the checks of
DECL_INLINE_VAR_P after DECL_IN_AGGR_P.

With that change we were failing on a static data member that had been
instantiated due to a use before we got around to processing it in
instantiate_class_template; we should detect that and avoid all the
finish_static_data_member_decl processing, which assumes that it is the
first time we're seeing the variable.

	* decl2.c (finish_static_data_member_decl): Don't set DECL_IN_AGGR_P
	for a non-template inline variable.  Do nothing for an
	already-instantiated variable.
	(c_parse_final_cleanups): Check DECL_IN_AGGR_P without
	DECL_INLINE_VAR_P.
	* decl.c (check_initializer): Likewise.
	(make_rtl_for_nonlocal_decl): Likewise.
	* pt.c (instantiate_decl): Likewise.
	* typeck2.c (store_init_value): Likewise.

From-SVN: r269064
2019-02-20 21:24:40 -05:00
Ian Lance Taylor 556bef7efc re PR go/89407 (go bootstrap failure on s390x starting with r268941)
PR go/89407
    internal/cpu: use #ifdef __s390x__ in C code
    
    Patch by Jakub Jelinek.
    
    Fixes https://gcc.gnu.org/PR89407
    
    Reviewed-on: https://go-review.googlesource.com/c/163297

From-SVN: r269063
2019-02-21 01:06:01 +00:00
GCC Administrator a9977ffb13 Daily bump.
From-SVN: r269062
2019-02-21 00:16:45 +00:00
Jakub Jelinek e843f1890b re PR c++/89403 (ICE in maybe_clone_body, at cp/optimize.c:693)
PR c++/89403
	* decl2.c (c_parse_final_cleanups): Move TREE_ASM_WRITTEN setting
	for flag_syntax_only from here...
	* semantics.c (expand_or_defer_fn_1): ... here.

	* g++.dg/cpp0x/pr89403.C: New test.

From-SVN: r269059
2019-02-21 01:09:47 +01:00
Jakub Jelinek 73ab3eb732 re PR c++/89405 (ICE in import_export_decl, at cp/decl2.c:2959)
PR c++/89405
	* decl.c (maybe_commonize_var): When clearing TREE_PUBLIC and
	DECL_COMMON, set DECL_INTERFACE_KNOWN.

	* g++.dg/cpp1z/inline-var5.C: New test.

From-SVN: r269058
2019-02-21 01:08:59 +01:00
Jakub Jelinek 37d7267f80 re PR middle-end/89412 (gcc ICE in simplify_subreg, at simplify-rtx.c:6273 on i686-linux-gnu)
PR middle-end/89412
	* expr.c (expand_assignment): If result is a MEM, use change_address
	instead of simplify_gen_subreg.

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

From-SVN: r269057
2019-02-21 00:02:29 +01:00
Jakub Jelinek cd56fb7957 re PR middle-end/89091 (ICE: Segmentation fault (in tree_class_check))
PR middle-end/89091
	* fold-const.c (decode_field_reference): Return NULL_TREE if
	lang_hooks.types.type_for_size returns NULL.  Check it before
	overwriting *exp_.  Use return NULL_TREE instead of return 0.

	* gcc.dg/torture/pr89091.c: New test.

Co-Authored-By: David Malcolm <dmalcolm@redhat.com>

From-SVN: r269056
2019-02-21 00:01:41 +01:00
Jakub Jelinek b2d6c9e88c re PR tree-optimization/88074 (g++ hangs on math expression)
PR middle-end/88074
	PR middle-end/89415
	* toplev.c (do_compile): Double the emin/emax exponents to workaround
	buggy mpc_norm.

	* gcc.dg/pr88074-2.c: New test.

From-SVN: r269055
2019-02-20 23:41:26 +01:00
Uros Bizjak c5a32f1ae9 re PR target/89397 (ICE in build_call_expr_loc_array at gcc/tree.c:11563 since r229082)
PR target/89397
	* config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
	TARGET_SSE in addition to TARGET_SSE_MATH.

	(ix86_excess_precision): Ditto.
	(ix86_float_exceptions_rounding_supported_p): Ditto.
	(use_rsqrt_p): Ditto.
	* config/i386/sse.md (rsqrt<mode>2): Ditto.

From-SVN: r269054
2019-02-20 22:58:45 +01:00
Uros Bizjak 1ed28eda9f linux-unwind.h (alpha_fallback_frame_state): Cast 'mcontext_t *' &rt_->uc.uc_mcontext to 'struct sigcontext *'.
* config/alpha/linux-unwind.h (alpha_fallback_frame_state):
	Cast 'mcontext_t *' &rt_->uc.uc_mcontext to 'struct sigcontext *'.

From-SVN: r269053
2019-02-20 22:37:21 +01:00
Jakub Jelinek ed4ec9ceba re PR c++/89336 (internal compiler error when compiling a constexpr function)
PR c++/89336
	* constexpr.c (cxx_eval_store_expression): Diagnose changing of active
	union member for -std=c++17 and earlier.

	* g++.dg/cpp1y/constexpr-89336-3.C: New test.

From-SVN: r269052
2019-02-20 22:16:27 +01:00
David Malcolm 200a8e1a38 Fix ICE with #line directive (PR c/89410)
PR c/89410 reports various issues with #line directives with very
large numbers; one of them is an ICE inside diagnostic-show-locus.c
when emitting a diagnostic at line 0xffffffff.

The issue is that the arithmetic in layout::calculate_line_spans to
determine if two line spans are sufficiently close to consolidate
was using the unsigned 32-bit linenum_type, which was overflowing
when comparing the line for the expanded location with those of
the location range (all on line 0xffffffff), leading to it
erroneously adding two spans for the same line, leading to an
assertion failure.

This patch fixes the ICE by generalizing the use of long long in
line-map.h's comparison function for linenum_type into a new
linenum_arith_t typedef, and using it here.

Doing so uncovered a second problem: the loop to print the lines
within the line_span for this case is infinite: looping from
0xfffffff upwards, overflowing to 0, and then never becoming
greater than 0xfffffff.  The patch fixes this by using linenum_arith_t
there also.

gcc/ChangeLog:
	PR c/89410
	* diagnostic-show-locus.c (layout::calculate_line_spans): Use
	linenum_arith_t when determining if two adjacent line spans are
	close enough to merge.
	(diagnostic_show_locus): Use linenum_arith_t when iterating over
	lines within each line_span.

gcc/testsuite/ChangeLog:
	PR c/89410
	* gcc.dg/pr89410-1.c: New test.
	* gcc.dg/pr89410-2.c: New test.

libcpp/ChangeLog:
	PR c/89410
	* include/line-map.h (linenum_arith_t): New typedef.
	(compare): Use it.

From-SVN: r269050
2019-02-20 20:07:20 +00:00
Ian Lance Taylor b054705ae6 compiler: fix a typo in comments
Reviewed-on: https://go-review.googlesource.com/c/163097

From-SVN: r269049
2019-02-20 19:14:12 +00:00
Jason Merrill 60067b8763 PR c++/87513 - 'sorry' mangling PMF template-id.
Here build_offset_ref calls build_qualified_name to make a SCOPE_REF because
the dependent template arguments make type_dependent_expression_p (member)
true.  We could probably work hard to prevent this, but it doesn't seem
necessary, and it's easy to fix write_expression to handle the result.

	* mangle.c (write_expression): Handle SCOPE_REF to BASELINK.

From-SVN: r269048
2019-02-20 13:59:18 -05:00
Jason Merrill e3fe9cfb2f * g++.old-deja/g++.robertl/eb92.C: Handle warning as well.
From-SVN: r269047
2019-02-20 13:58:46 -05:00
Jason Merrill e0737c209b PR c++/88380 - wrong-code with flexible array and NSDMI.
Here 'skipped' was set to -1 to force an explicit initializer for 'uninit'
before the initializer for 'initialized', and so we also tried to emit an
explicit initializer for the flexible array, for which build_zero_init
returns error_mark_node.  We should ignore flexarrays even when
skipped < 0.

	* typeck2.c (process_init_constructor_record): Skip flexarrays.

From-SVN: r269046
2019-02-20 13:54:45 -05:00
Will Wray cb13308543 PR c++/88572 - wrong handling of braces on scalar init.
* decl.c (reshape_init_r): Allow braces around scalar initializer
	within aggregate init.  Reject double braced-init of scalar
	variable.

From-SVN: r269045
2019-02-20 13:50:32 -05:00
Pat Haugen 990525f659 target-supports.exp (check_effective_target_vect_usad_char): Add PowerPC support.
* lib/target-supports.exp (check_effective_target_vect_usad_char):
	Add PowerPC support.
	* gcc.dg/vect/slp-reduc-sad.c: Update scan string.
	* gcc.dg/vect/vect-reduc-sad.c: Likewise.

From-SVN: r269043
2019-02-20 17:50:28 +00:00
H.J. Lu 4dfc5b351f libsanitizer: Restore internal_readlink for x32
Cherry-pick compiler-rt revision 354451:

r316591 has

@@ -389,13 +383,11 @@ uptr internal_dup2(int oldfd, int newfd) {
 }

 uptr internal_readlink(const char *path, char *buf, uptr bufsize) {
-#if SANITIZER_NETBSD
-  return internal_syscall_ptr(SYSCALL(readlink), path, buf, bufsize);
-#elif SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
+#if SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
   return internal_syscall(SYSCALL(readlinkat), AT_FDCWD,
                           (uptr)path, (uptr)buf, bufsize);
 #else
-  return internal_syscall(SYSCALL(readlink), (uptr)path, (uptr)buf, bufsize);
+  return internal_syscall_ptr(SYSCALL(readlink), path, buf, bufsize);
 #endif
 }

which dropped the (uptr) cast and broke x32.  This patch puts back the
(uptr) cast to restore x32 and fixes:

https://bugs.llvm.org/show_bug.cgi?id=40783

Differential Revision: https://reviews.llvm.org/D58413

	PR sanitizer/89409
	* sanitizer_common/sanitizer_linux.cc (internal_readlink):
	Cherry-pick compiler-rt r354451.

From-SVN: r269042
2019-02-20 08:20:50 -08:00
Caroline Tice 9e8fc96cdc Fix testsuite
2019-02-19  Caroline Tice <cmtice@google.com>

	Fix testsuite
	* testsuite/libvtv.cc/const_vtable.cc (main): Fix function signature.

From-SVN: r269041
2019-02-20 08:07:19 -08:00
Uros Bizjak 0024731fda revert: re PR target/89397 (ICE in build_call_expr_loc_array at gcc/tree.c:11563 since r229082)
Revert:
        PR target/89397
        * config/i386/i386.c (ix86_option_override_internal): Set
        opts->x_ix86_fpmath to FPMATH_387 when SSE is disabled.

        gcc/testsuite/

        PR target/89397
        * gcc.target/i386/pr89397.c: New test.

From-SVN: r269040
2019-02-20 16:23:47 +01:00
Andre Vieira 145d4e1a4e [GCC] PR target/86487: fix the way 'uses_hard_regs_p' handles paradoxical
subregs

gcc/ChangeLog:
2019-02-20 Andre Vieira  <andre.simoesdiasvieira@arm.com>

	PR target/86487
	* lra-constraints.c(uses_hard_regs_p): Fix handling of
	paradoxical SUBREGS.

gcc/testsuite/ChangeLog:
2019-02-20 Andre Vieira  <andre.simoesdiasvieira@arm.com>

	PR target/86487
	* gcc.target/arm/pr86487.c: New.

From-SVN: r269039
2019-02-20 14:11:43 +00:00
Martin Liska c9ea5b639b Change singular to plural in gfortran.texi.
2019-02-20  Martin Liska  <mliska@suse.cz>

	* gfortran.texi: Change singular to plural.

From-SVN: r269038
2019-02-20 11:12:10 +00:00
Paolo Carlini 9ccdc43d5e re PR c++/84536 (ICE with non-type template parameter)
/cp
2019-02-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84536
	* pt.c (tsubst_init): Diagnose an initializer expanding to an
	empty list of expressions; tweak wrt dependent types.
	(regenerate_decl_from_template): For VAR_DECLs call tsubst_init
	instead of tsubst_expr.

/testsuite
2019-02-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84536
	* g++.dg/cpp1y/var-templ60.C: New.

From-SVN: r269037
2019-02-20 10:47:02 +00:00
Thomas Schwinge 54603edcb1 Correction of ChangeLog entry, Thomas provided the code for this change.
2019-02-19  Thomas Schwinge  <thomas@codesourcery.com>

	PR c/87924
	* openmp.c (gfc_match_omp_clauses): Add representation of wait clause
	without argument as 'wait (GOMP_ASYNC_NOVAL)'.

From-SVN: r269036
2019-02-20 10:09:53 +00:00
Martin Liska 7ac75976af Document Fortran header directive.
2019-02-20  Martin Liska  <mliska@suse.cz>

	* gfortran.texi: Document Fortran header directive.

From-SVN: r269035
2019-02-20 09:23:12 +00:00
Jakub Jelinek ea1c2a95ba re PR libstdc++/89402 (warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less restrictive attribute than its target)
PR libstdc++/89402
	* src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Add
	_GLIBCXX_PURE to the alias declaration.

From-SVN: r269034
2019-02-20 08:57:41 +01:00
Li Jia He e86ae7bab3 [rs6000] fix PR 88100, range check for vec_splat_{su}{8,16,32}
GCC revision 259524 implemented range check for the vec_splat_{su}{8,16,32}
builtins.  However, as a consequence of the implementation, the range check
is not done correctly for the expected vspltis[bhw] instructions.  The result
is that we may not get a valid error message if the valid range of the data
is exceeded.

Although the input of the function prototype of vec_splat_{su}{8,16,32} is
const int, the actual data usage range is limited to the data range of 5 bits
signed.  We should limit the int_cst.val[0] data to the 5 bit signed data range
without any modification in the input arg0 parameter.  However, the sext_hwi
function intercepts the data of TREE_INT_CST_LOW (arg0) as size bits in the
sext_hwi (TREE_INT_CST_LOW (arg0), size) statement.  This will cause some of
the excess data to fall within the range of 5 bits signed, so that the correct
diagnostic information cannot be generated, we need to remove the sext_hwi to
ensure that the input data has not been modified.

This patch fix range check for the vec_splat_s[8,16,32] builtins.  The argument
must be a 5-bit const int as specified for the vspltis[bhw] instructions.

for gcc/ChangeLog

	PR target/88100
	* gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
	<case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
	ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
	range checking it.

for gcc/testsuite/ChangeLog

	PR target/88100
	* gcc/testsuite/gcc.target/powerpc/pr88100.c: New testcase.

From-SVN: r269033
2019-02-20 02:35:39 +00:00
Jason Merrill 9d35a27a83 PR c++/88368 - wrong 'use of deleted function'
Since my patch for 81359 allowed us to signal failure on return from
maybe_instantiate_noexcept, we no longer need to turn an error into
noexcept(false).  We also need to handle NSDMI instantiation errors under
synthesized_method_walk.  This change caused some instantiation context
notes to be lost in the testsuite, so I added push_tinst_level to
get_defaulted_eh_spec to restore that context.

	* method.c (walk_field_subobs): Remember errors from get_nsdmi.
	(get_defaulted_eh_spec): Call push_tinst_level.
	* pt.c (maybe_instantiate_noexcept): Keep error_mark_node.
	* typeck2.c (merge_exception_specifiers): Handle error_mark_node.

From-SVN: r269032
2019-02-19 21:00:29 -05:00
GCC Administrator 8dca1dc386 Daily bump.
From-SVN: r269031
2019-02-20 00:16:45 +00:00
Jonathan Wakely a94d5170f8 * config/gcn/gcn.c (print_operand): Fix typo.
From-SVN: r269028
2019-02-19 19:30:59 +00:00