- 22 Mar, 2018 12 commits
-
-
2018-03-22 Christophe Lyon <christophe.lyon@linaro.org> gcc/testsuite/ * gcc.target/arm/addr-modes-float.c: Move dg-do before dg-require-effective-target. * gcc.target/arm/addr-modes-int.c: Likewise. * gcc.target/nios2/lo-addr-tls.c: Likewise. From-SVN: r258776
Christophe Lyon committed -
gcc/ChangeLog: 2018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/84760 * doc/extend.texi: Add four new prototypes for vec_ld. * config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol definitions for more logical presentation. * config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add entries for V1TI variants of __builtin_altivec_ld builtin. * config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and handling of V1TI variant of LVX icode pattern. (altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI. (rs6000_gimple_fold_builtin): Likewise. (altivec_init_builtins): Add code to define __builtin_altivec_lvx_v1ti function. gcc/testsuite/ChangeLog: 2018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/84760 * gcc.target/powerpc/altivec-ld-1.c: New test. From-SVN: r258774
Kelvin Nilsen committed -
PR libstdc++/85040 * include/bits/stl_function.h (greater::__not_overloaded) (less::__not_overloaded, greater_equal::__not_overloaded) (less_equal::__not_overloaded): Fix ambiguous specializations. * testsuite/20_util/function_objects/comparisons_pointer.cc: Add tests for type with overlaoded operators. From-SVN: r258773
Jonathan Wakely committed -
gcc/testsuite * gcc.dg/graphite/pr83126.c: Require pthread for the test. From-SVN: r258768
Bin Cheng committed -
PR libstdc++/77691 * testsuite/experimental/memory_resource/resource_adaptor.cc: xfail execution on 32-bit Solaris/x86. From-SVN: r258766
Rainer Orth committed -
re PR inline-asm/84941 (internal compiler error: in reg_overlap_mentioned_p, at rtlanal.c:1870 (reg_overlap_mentioned_p()/match_asm_constraints_1())) PR inline-asm/84941 * function.c (match_asm_constraints_1): Don't do the optimization if input isn't a REG, SUBREG, MEM or constant. * gcc.dg/pr84941.c: New test. From-SVN: r258764
Jakub Jelinek committed -
PR target/85025 * config/i386/shadow-stack-unwind.h (_Unwind_Frames_Extra): Fix a typo, tmp => 255. From-SVN: r258763
Igor Tsimbalist committed -
2018-03-22 Tom de Vries <tom@codesourcery.com> PR tree-optimization/84956 * tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with bb_has_abnormal_pred. * gcc.dg/pr84956.c: New test. From-SVN: r258758
Tom de Vries committed -
PR sanitizer/85018 * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to decl at the end. * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change, adjust the comment. From-SVN: r258757
Jakub Jelinek committed -
re PR c++/84854 (ICE: unexpected expression in cxx_eval_constant_expression, at cp/constexpr.c:4774) PR c++/84854 * semantics.c (finish_if_stmt_cond): Check if the type of the condition is boolean. * g++.dg/cpp1z/constexpr-if15.C: New test. * g++.dg/cpp1z/constexpr-if16.C: New test. From-SVN: r258756
Marek Polacek committed -
* call.c (build_user_type_conversion_1): Remove C++17 code. (conv_binds_ref_to_prvalue): New. (build_over_call): Handle C++17 copy elision. (build_special_member_call): Only do C++17 copy elision here if the argument is already the right type. From-SVN: r258755
Jason Merrill committed -
From-SVN: r258754
GCC Administrator committed
-
- 21 Mar, 2018 28 commits
-
-
When adding __builtin_tgmath to support a better tgmath.h implementation, I noted that further changes might be needed regarding the TS 18661 functions that round their results to a narrower type, because of unresolved issues with how the corresponding type-generic macros are defined in TS 18661. The resolution of those issues is still in flux, but the latest version does indeed require something slightly different from __builtin_tgmath. It specifies that integer arguments to type-generic macros such as f32xadd are treated as _Float64 not double - which was also present in earlier versions of the resolution - but then it also specifies different handling for _Float64 arguments and double arguments, which wasn't in earlier versions. Specifically, in the latest version <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2213.pdf>, f32xadd with _Float64 arguments would call f32xaddf64, while f32xadd with double arguments would call f32xaddf64x. Since integer arguments are converted directly to the argument type of the selected function (not to double / _Float64x unless that ends up as the argument type), this is a user-visible difference in semantics that means __builtin_tgmath actually needs to implement treating integer arguments as _Float64 in this case (the rest of the latest semantics can then be implemented in the header, with a few inline functions there). To avoid releasing with the older version of the __builtin_tgmath semantics that doesn't work with the latest proposed DR#13 resolution, this patch implements a rule in __builtin_tgmath that maps integer types to _Float64 (respectively _Complex _Float64 for complex integer types) where all the specified functions return the same _FloatN or _FloatNx type. This does not affect any existing uses of __builtin_tgmath in glibc's or GCC's tgmath.h since I haven't yet added any of these type-generic macros to glibc when adding the corresponding narrowing functions. Bootstrapped with no regressions on x86_64-pc-linux-gnu. * doc/extend.texi (__builtin_tgmath): Document when complex integer types are treated as _Complex _Float64. gcc/c: * c-parser.c (c_parser_postfix_expression): For __builtin_tgmath where all functions return the same _FloatN or _FloatNx type, treat integer types as _Float64 instead of double. gcc/testsuite: * gcc.dg/builtin-tgmath-3.c: New test. From-SVN: r258751
Joseph Myers committed -
2018-03-21 Tom de Vries <tom@codesourcery.com> * doc/extend.texi (__builtin_extend_pointer): Remove pasto. From-SVN: r258750
Tom de Vries committed -
We shouldn't substitute templates into short-circuited-out concepts constraints, but we do, and to add insult to injury, we issue a sorry() error when a concept that shouldn't even have been substituted attempts to perform a multi-dimensional array initialization with a new{} expression. Although fixing the requirements short-circuiting is probably too risky at this point, we can get closer to the intended effect by silencing that sorry just as we silence other errors. for gcc/cp/ChangeLog PR c++/71965 * init.c (build_vec_init): Silence error, former sorry, without tf_error. for gcc/testsuite/ChangeLog PR c++/71965 * g++.dg/concepts/pr71965.C: New. From-SVN: r258749
Alexandre Oliva committed -
If we get a parse error during an attempted fully implicit function template parse, and need to skip to the end of the statement or block, we may discard the function parms scope rather than the enclosing injected implicit template parms scope. If we rollback a tentative parse and try something else, we'll no longer be in a function parms scope, but rather in a template parms scope, but we may still attempt to synthesize implicit template parms and then fail the assert that checks we're in a function parms scope. This patch introduces an alternative to finish_fully_implicit_template_p, to be used during error recovery, that floats the implicit template parm scope to the top so that it gets discarded as we finish and discard the failed implicit template data, while other scopes are retained as expected. It also clears the implicit template parser data as we finish the template, so that it doesn't linger on referencing discarded or used scopes and parms. for gcc/cp/ChangeLog PR c++/84610 PR c++/84642 * parser.c (abort_fully_implicit_template_p): New. (cp_parser_skip_to_end_of_statement): Use it. (cp_parser_skip_to_end_of_block_or_statement): Likewise. (finish_fully_implicit_template_p): Clear implicit_template_parms and implicit_template_scope. for gcc/testsuite/ChangeLog PR c++/84610 PR c++/84642 * g++.dg/cpp0x/pr84610.C: New. * g++.dg/cpp0x/pr84642.C: New. From-SVN: r258748
Alexandre Oliva committed -
PR c/84999 * c-typeck.c (build_binary_op): If c_common_type_for_size fails when building vector comparison, diagnose it and return error_mark_node. * c-c++-common/pr84999.c: New test. From-SVN: r258747
Jakub Jelinek committed -
re PR c++/84972 (ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in extended_tree, at tree.h:5545) /cp 2018-03-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84972 * decl.c (maybe_deduce_size_from_array_init): Set TREE_TYPE to error_mark_node when check_array_designated_initializer fails. /testsuite 2018-03-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84972 * g++.dg/ext/desig10.C: New. From-SVN: r258746
Paolo Carlini committed -
2018-03-21 Thomas Koenig <tkoenig@gcc.gnu.org> Harald Anlauf <anlauf@gmx.de> PR fortran/84957 * trans-types.c (gfc_sym_type): Do not dereference NULL pointer. 2018-03-21 Thomas Koenig <tkoenig@gcc.gnu.org> Harald Anlauf <anlauf@gmx.de> PR fortran/84957 * gfortran.dg/pr84957.f90: New test. Co-Authored-By: Harald Anlauf <anlauf@gmx.de> From-SVN: r258745
Thomas Koenig committed -
PR tree-optimization/84960 * tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb if it is ENTRY block, move them into single succ of ENTRY in that case. * gcc.c-torture/compile/pr84960.c: New test. From-SVN: r258744
Jakub Jelinek committed -
This patch fixes incorrect results for HOST_WIDE_INT positions at opposite extremes when used with HOST_WIDE_INT sizes. It also fixes UB when comparing such positions with unsigned HOST_WIDE_INT sizes (although the results in that case were wrapv-correct). 2018-03-20 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR tree-optimization/84811 * poly-int.h (poly_span_traits): Remove the T3 parameter and promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT. (maybe_in_range_p, known_in_range_p, ranges_known_overlap_p): (known_subrange_p): Update accordingly. Cast each value involved in the size comparison, rather than casting the result of the subtraction. gcc/testsuite/ PR tree-optimization/84811 * gcc.dg/torture/pr84811.c: New test. From-SVN: r258743
Richard Sandiford committed -
re PR tree-optimization/84982 (logically inverting bools into local array results in bitwise negation) PR tree-optimization/84982 * gimple-ssa-store-merging.c (invert_op): Handle boolean inversion by flipping the least significant bit rather than all bits from bitpos to bitpos + bitsize - 1. * c-c++-common/pr84982.c: New test. From-SVN: r258742
Jakub Jelinek committed -
PR c++/84961 * cp-tree.h (genericize_compound_lvalue): Declare. * typeck.c (genericize_compound_lvalue): New function. (unary_complex_lvalue, cp_build_modify_expr): Use it. * semantics.c (finish_asm_stmt): Replace MODIFY_EXPR, PREINCREMENT_EXPR and PREDECREMENT_EXPR in output and "m" constrained input operands with COMPOUND_EXPR. Call cxx_mark_addressable on the rightmost COMPOUND_EXPR operand. * c-c++-common/pr43690.c: Don't expect errors on "m" (--x) and "m" (++x) in C++. * g++.dg/torture/pr84961-1.C: New test. * g++.dg/torture/pr84961-2.C: New test. From-SVN: r258741
Jakub Jelinek committed -
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg01129.html PR c++/85008 * tree.c (decl_linkage): Use DECL_CLONED_FUNCTION_P. * decl2.c (vague_linkage_p): Likewise. PR c++/85008 * g++.dg/pr85008.C: New. From-SVN: r258738
Nathan Sidwell committed -
Since the kind of the hidden character length variable is not part of the character variable definition, we must ensure that character lengths are always of the same kind in interfaces, regardless of how they were declared in the source. This patch ensures this when calling a procedure. Regtested on x86_64-pc-linux-gnu and i686-pc-linux-gnu. gcc/fortran/ChangeLog: 2018-03-21 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/84615 * trans-expr.c (gfc_conv_procedure_call): Convert charlen to gfc_charlen_type_node when calling procedure. gcc/testsuite/ChangeLog: 2018-03-21 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/84615 * gfortran.dg/char_result_17.f90: New test. From-SVN: r258736
Janne Blomqvist committed -
gcc/cp/ChangeLog: PR c++/84994 * constexpr.c (constexpr_fn_retval): Make non-"static". * cp-tree.h (constexpr_fn_retval): New decl. * search.c (direct_accessor_p): Update leading comment. (reference_accessor_p): Likewise. (field_accessor_p): Replace check that function body is a RETURN_EXPR with a call to constexpr_fn_retval. Fix indentation of "field_type" decl. gcc/testsuite/ChangeLog: PR c++/84994 * g++.dg/other/accessor-fixits-1.C: Move to... * g++.dg/torture/accessor-fixits-1.C: ...here. * g++.dg/other/accessor-fixits-2.C: Move to... * g++.dg/torture/accessor-fixits-2.C: ...here. * g++.dg/other/accessor-fixits-3.C: Move to... * g++.dg/torture/accessor-fixits-3.C: ...here. * g++.dg/other/accessor-fixits-4.C: Move to... * g++.dg/torture/accessor-fixits-4.C: ...here. * g++.dg/other/accessor-fixits-5.C: Move to... * g++.dg/torture/accessor-fixits-5.C: ...here. * g++.dg/torture/accessor-fixits-6.C: New testcase. * g++.dg/torture/accessor-fixits-7.C: New testcase. * g++.dg/torture/accessor-fixits-8.C: New testcase. From-SVN: r258731
David Malcolm committed -
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg01083.html * doc/extend.texi (Deprecated Features): Remove mention of long-deleted deprecations. From-SVN: r258730
Nathan Sidwell committed -
* gcc.dg/tree-ssa/pr84512.c: xfail on 64-bit SPARC. From-SVN: r258729
Rainer Orth committed -
gcc/jit: PR jit/84288 * Make-lang.in ($(LIBGCCJIT_FILENAME)): Add $(EXTRA_GCC_LIBS). gcc: PR jit/84288 * configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set. * configure: Regenerate. From-SVN: r258727
Rainer Orth committed -
The test pr82989.c which was added in one of previous commits is failing for mthumb and big-endian configurations. The aim of this test was to check that NEON instructions are not being used for simple shift operations. The scanning of lsl and lsr instructions and checking its counts were just too restrictive for different configurations. So I have now simplified the test to only check for the absence of NEON instructions. *** gcc/testsuite/ChangeLog *** 2018-03-21 Sudakshina Das <sudi.das@arm.com> PR target/82989 * gcc.target/arm/pr82989.c: Change dg scan-assembly directives. From-SVN: r258723
Sudakshina Das committed -
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg01108.html PR c++/84804 * name-lookup.c (do_pushtag): Permit lambdas to be pushed into complete classes. PR c++/84804 * g++.dg/lookup/pr84804.C: New. From-SVN: r258722
Nathan Sidwell committed -
* Makefile.am (check-runtime): Pass -test.timeout with GOTOOLS_TEST_TIMEOUT. * Makefile.in: Rebuild. From-SVN: r258721
Uros Bizjak committed -
PR c++/84850 - -Wclass-memaccess on a memcpy in a copy assignment operator with no nontrivial bases or members gcc/cp/ChangeLog: PR c++/84850 * call.c (first_non_public_field): New template and function. (first_non_trivial_field): New function. (maybe_warn_class_memaccess): Call them. gcc/testsuite/ChangeLog: PR c++/84850 * g++.dg/Wclass-memaccess-3.C: New test. * g++.dg/Wclass-memaccess-4.C: New test. From-SVN: r258719
Martin Sebor committed -
gcc/cp/ChangeLog: PR c++/84892 * search.c (field_accessor_p): Use class_of_this_parm rather than type_of_this_parm, to check that "this" is a "const T *", rather than a "T *const". gcc/testsuite/ChangeLog: PR c++/84892 * g++.dg/other/accessor-fixits-1.C (test_access_const_t1_color): New. (test_deref_const_t1_color): New. * g++.dg/other/accessor-fixits-5.C: New testcase. From-SVN: r258716
David Malcolm committed -
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg01093.html * MAINTAINERS: Move maintainers of now-removed picochip and score ports to write after approval. From-SVN: r258715
Nathan Sidwell committed -
* testsuite/20_util/function_objects/comparisons_pointer.cc: Use VERIFY instead of assert. * testsuite/20_util/hash/84998.cc: New test. * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New copy of test adjusted for Debug Mode. * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run test in Debug Mode. From-SVN: r258714
Jonathan Wakely committed -
2018-03-21 Tom de Vries <tom@codesourcery.com> PR tree-optimization/83126 * tree-parloops.c (num_phis): New function. (gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure. * gcc.dg/graphite/pr83126.c: New test. From-SVN: r258713
Tom de Vries committed -
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00995.html * doc/extend.texi (Deprecated Features): Update deprecared flags, mention anon-struct/union members and trailing attributes. cp/ * class.c (finish_struct_anon_r): Refactor, deprecate anything other than public non-static data members. * parser.c (cp_parser_init_declarator): Deprecate attributes after parenthesized initializer. testsuite/ * g++.dg/ext/anon-struct6.C: Adjust. * g++.dg/ext/deprecate-1.C: New. * g++.dg/ext/deprecate-2.C: New. * g++.dg/lookup/pr84602.C: Adjust. * g++.dg/lookup/pr84962.C: Adjust. * g++.old-deja/g++.other/anon4.C From-SVN: r258712
Nathan Sidwell committed -
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg01082.html PR c++/84836 * name-lookup.c (update_binding): Correct logic for local binding update. PR c++/84836 * g++.dg/lookup/pr84836.C: New. From-SVN: r258711
Nathan Sidwell committed -
PR tree-optimization/84969 * tree-loop-distribution.c (fuse_memset_builtins): Don't reorder builtin memset partitions if they set different rhs values. gcc/testsuite * gcc.dg/tree-ssa/pr84969.c: New test. From-SVN: r258710
Bin Cheng committed
-