aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2019-11-06PR92090: Fix part of testcase failures by r276469Xiong Hu Luo4-3/+11
-finline-functions is enabled by default for O2 since r276469, update the test cases with -fno-inline-functions. c11-atomic-exec-5.c stills hit ICE of LRA on BE systems in PR92090. This commit is NOT a fix for the bug and so it must NOT be closed. gcc/testsuite/ChangeLog: 2019-11-06 Xiong Hu Luo <luoxhu@linux.ibm.com> PR92090 * gcc.target/powerpc/pr72804.c: Add -fno-inline-functions --param max-inline-insns-single-O2=200. * gcc.target/powerpc/pr79439-1.c: Add -fno-inline-functions. * gcc.target/powerpc/vsx-builtin-7.c: Likewise. From-SVN: r277872
2019-11-05PR tree-optimization/92373 - ICE in -Warray-bounds on access to member array ↵Martin Sebor5-22/+193
in an initialized char buffer gcc/testsuite/ChangeLog: PR tree-optimization/92373 * gcc.dg/Warray-bounds-55.c: New test. * gcc.dg/Wzero-length-array-bounds-2.c: New test. gcc/ChangeLog: PR tree-optimization/92373 * tree.c (component_ref_size): Only consider initializers of objects of matching struct types. Return null for instances of interior zero-length arrays. From-SVN: r277871
2019-11-06Daily bump.GCC Administrator1-1/+1
From-SVN: r277870
2019-11-06doc: Insn splitting by combineSegher Boessenkool2-2/+6
The combine pass is perfectly happy if a splitter splits to just one instruction (instead of two). * doc/md.texi (Insn Splitting): Fix combiner documentation. From-SVN: r277866
2019-11-05Implement C++20 operator<=>.Jason Merrill46-122/+1981
There are three major pieces to this support: scalar operator<=>, synthesis of comparison operators, and rewritten/reversed overload resolution (e.g. a < b becomes 0 > b <=> a). Unlike other defaulted functions, where we use synthesized_method_walk to semi-simulate what the definition of the function will be like, this patch determines the characteristics of a comparison operator by trying to define it. My handling of non-dependent rewritten operators in templates can still use some work: build_min_non_dep_op_overload can't understand the rewrites and crashes, so I'm avoiding it for now by clearing *overload. This means we'll do name lookup again at instantiation time, which can incorrectly mean a different result. I'll poke at this more in stage 3. I'm leaving out a fourth section ("strong structural equality") even though I've implemented it, because it seems likely to change radically tomorrow. Thanks to Tim van Deurzen and Jakub for implementing lexing of the <=> operator, and Jonathan for the initial <compare> header. gcc/cp/ * cp-tree.h (struct lang_decl_fn): Add maybe_deleted bitfield. (DECL_MAYBE_DELETED): New. (enum special_function_kind): Add sfk_comparison. (LOOKUP_REWRITTEN, LOOKUP_REVERSED): New. * call.c (struct z_candidate): Add rewritten and reversed methods. (add_builtin_candidate): Handle SPACESHIP_EXPR. (add_builtin_candidates): Likewise. (add_candidates): Don't add a reversed candidate if the parms are the same. (add_operator_candidates): Split out from build_new_op_1. Handle rewritten and reversed candidates. (add_candidate): Swap conversions of reversed candidate. (build_new_op_1): Swap them back. Build a second operation for rewritten candidates. (extract_call_expr): Handle rewritten calls. (same_fn_or_template): New. (joust): Handle rewritten and reversed candidates. * class.c (add_implicitly_declared_members): Add implicit op==. (classtype_has_op, classtype_has_defaulted_op): New. * constexpr.c (cxx_eval_binary_expression): Handle SPACESHIP_EXPR. (cxx_eval_constant_expression, potential_constant_expression_1): Likewise. * cp-gimplify.c (genericize_spaceship): New. (cp_genericize_r): Use it. * cp-objcp-common.c (cp_common_init_ts): Handle SPACESHIP_EXPR. * decl.c (finish_function): Handle deleted function. * decl2.c (grokfield): SET_DECL_FRIEND_CONTEXT on defaulted friend. (mark_used): Check DECL_MAYBE_DELETED. Remove assumption that defaulted functions are non-static members. * error.c (dump_expr): Handle SPACESHIP_EXPR. * method.c (type_has_trivial_fn): False for sfk_comparison. (enum comp_cat_tag, struct comp_cat_info_t): New types. (comp_cat_cache): New array variable. (lookup_comparison_result, lookup_comparison_category) (is_cat, cat_tag_for, spaceship_comp_cat) (spaceship_type, genericize_spaceship) (common_comparison_type, early_check_defaulted_comparison) (comp_info, build_comparison_op): New. (synthesize_method): Handle sfk_comparison. Handle deleted. (get_defaulted_eh_spec, maybe_explain_implicit_delete) (explain_implicit_non_constexpr, implicitly_declare_fn) (defaulted_late_check, defaultable_fn_check): Handle sfk_comparison. * name-lookup.c (get_std_name_hint): Add comparison categories. * tree.c (special_function_p): Add sfk_comparison. * typeck.c (cp_build_binary_op): Handle SPACESHIP_EXPR. 2019-11-05 Tim van Deurzen <tim@kompiler.org> Add new tree code for the spaceship operator. gcc/cp/ * cp-tree.def: Add new tree code. * operators.def: New binary operator. * parser.c: Add new token and tree code. libcpp/ * cpplib.h: Add spaceship operator for C++. * lex.c: Implement conditional lexing of spaceship operator for C++20. 2019-11-05 Jonathan Wakely <jwakely@redhat.com> libstdc++-v3/ * libsupc++/compare: New header. * libsupc++/Makefile.am (std_HEADERS): Add compare. * include/std/version: Define __cpp_lib_three_way_comparison. * include/std/functional: #include <compare>. From-SVN: r277865
2019-11-05Fix conversions for built-in operator overloading candidates.Jason Merrill5-28/+41
While working on C++20 operator<=>, I noticed that build_new_op_1 was doing too much conversion when a built-in candidate was selected; the standard says it should only perform user-defined conversions, and then leave the normal operator semantics to handle any standard conversions. This is important for operator<=> because a comparison of two different unscoped enums is ill-formed; if we promote the enums to int here, cp_build_binary_op never gets to see the original operand types, so we can't give the error. I'm also disabling -Wmaybe-uninitialized for expmed.c to avoid the bootstrap failure from the last time I applied this patch. * call.c (build_new_op_1): Don't apply any standard conversions to the operands of a built-in operator. Don't suppress conversions in cp_build_unary_op. * typeck.c (cp_build_unary_op): Do integral promotions for enums. PR tree-optimization/91825 * expmed.c: Reduce -Wmaybe-uninitialized to warning. From-SVN: r277864
2019-11-05Use vec instead of raw array for built-in candidates.Jason Merrill2-40/+33
My operator<=> patch wants to split up build_new_op_1, which makes using a tree array as well as the vec inconvenient. build_new_op_1 already has a vec, and build_conditional_expr_1 can release its vec right away, so this doesn't increase garbage at all. * call.c (build_builtin_candidate): Take args in a vec. (add_builtin_candidate, add_builtin_candidates): Likewise. (build_conditional_expr_1, build_new_op_1): Adjust. From-SVN: r277863
2019-11-05Various small C++ changes.Jason Merrill10-22/+66
Wrappers for lookup_qualified_name and build_x_binary_op to make calling them more convenient in places, and a function named contextual_conv_bool for places that want contextual conversion to bool. I noticed that we weren't showing the declaration location when we complain about a call to a non-constexpr function where a constant expression is required. If maybe_instantiate_noexcept doesn't actually instantiate, there's no reason for it to mess with clones. * constexpr.c (explain_invalid_constexpr_fn): Show location of fn. * pt.c (maybe_instantiate_noexcept): Only update clones if we instantiated. * typeck.c (contextual_conv_bool): New. * name-lookup.c (lookup_qualified_name): Add wrapper overload taking C string rather than identifier. * parser.c (cp_parser_userdef_numeric_literal): Use it. * rtti.c (emit_support_tinfos): Use it. * cp-tree.h (ovl_op_identifier): Change to inline functions. (build_x_binary_op): Add wrapper with fewer parms. From-SVN: r277862
2019-11-05Allow libcalls for complex memcpy when optimizing for size.Jim Wilson4-2/+43
The RISC-V backend wants to use a libcall when optimizing for size if more than 6 instructions are needed. Emit_move_complex asks for no libcalls. This case requires 8 insns for rv64 and 16 insns for rv32, so we get fallback code that emits a loop. Commit_one_edge_insertion doesn't allow code inserted for a phi node on an edge to end with a branch, and so this triggers an assertion. This problem goes away if we allow libcalls when optimizing for size, which gives the code the RISC-V backend wants, and avoids triggering the assert. gcc/ PR middle-end/92263 * expr.c (emit_move_complex): Only use BLOCK_OP_NO_LIBCALL when optimize_insn_for_speed_p is true. gcc/testsuite/ PR middle-end/92263 * gcc.dg/pr92263.c: New. From-SVN: r277861
2019-11-05Catch missed uses of function with unsatisfied constraints.Jason Merrill39-119/+131
While looking at CA378 I noticed that we weren't properly diagnosing two of the three erroneous lines in the example. * decl2.c (mark_used): Diagnose use of a function with unsatisfied constraints here. * typeck.c (cp_build_function_call_vec): Not here. From-SVN: r277860
2019-11-05Make -fconcepts-ts imply -fconcepts.Jason Merrill3-2/+7
* c-opts.c (c_common_post_options): -fconcepts-ts implies -fconcepts. From-SVN: r277859
2019-11-05PR middle-end/92333 - missing variable name referencing VLA in warningsMartin Sebor5-9/+122
PR middle-end/92333 - missing variable name referencing VLA in warnings PR middle-end/82608 - missing -Warray-bounds on an out-of-bounds VLA index gcc/testsuite/ChangeLog: PR middle-end/92333 PR middle-end/82608 * gcc.dg/Warray-bounds-51.c: New test. gcc/ChangeLog: PR middle-end/92333 PR middle-end/82608 * tree-vrp.c (vrp_prop::check_array_ref): Handle VLAs with constant size. * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use a meaninful name and location for a temporary variable. From-SVN: r277854
2019-11-05[PR c++/92370] ICE with VC markerNathan Sidwell4-2/+20
https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00323.html cp/ PR c++/92370 * parser.c (cp_parser_error_1): Check EOF and UNKNOWN_LOCATION when skipping over version control marker. testsuite/ PR c++/92370 * g++.dg/pr92370.C: New. From-SVN: r277853
2019-11-05Fix indentation inconsistencies introduced by previous patch.Aldy Hernandez3-16/+17
From-SVN: r277852
2019-11-05PR middle-end/92341 - missing -Warray-bounds indexing past the end of a ↵Martin Sebor7-10/+159
compound literal PR middle-end/92341 - missing -Warray-bounds indexing past the end of a compound literal PR middle-end/82612 - missing -Warray-bounds on a non-zero offset from the address of a non-array object gcc/testsuite/ChangeLog: PR middle-end/92341 PR middle-end/82612 * g++.dg/warn/Warray-bounds-4.C: Adjust text of expected warning. * gcc.dg/Warray-bounds-53.c: New test. * gcc.dg/Warray-bounds-54.c: New test. gcc/ChangeLog: PR middle-end/92341 PR middle-end/82612 * tree-sra.c (get_access_for_expr): Fail for out-of-bounds offsets. * tree-vrp.c (vrp_prop::check_array_ref): Correct index and text of message printed in a warning for empty arrays. (vrp_prop::check_mem_ref): Also handle function parameters and empty arrays. From-SVN: r277851
2019-11-05re PR tree-optimization/92371 (ICE in info_for_reduction, at ↵Richard Biener4-7/+33
tree-vect-loop.c:4106) 2019-11-05 Richard Biener <rguenther@suse.de> PR tree-optimization/92371 * tree-vect-loop.c (vectorizable_reduction): Set STMT_VINFO_REDUC_DEF on the original stmt of live stmts in the chain. (vectorizable_live_operation): Look at the original stmt when checking STMT_VINFO_REDUC_DEF. * gcc.dg/torture/pr92371.c: New testcase. From-SVN: r277850
2019-11-05The base class for ranges is currently value_range_base, which is rather ↵Aldy Hernandez24-1152/+1140
long and cumbersome. The base class for ranges is currently value_range_base, which is rather long and cumbersome. It also occurs more often than the derived class of value_range. To avoid confusion, and save typing, this patch does a global rename from value_range to value_range_equiv, and from value_range_base to value_range. This way, the base class is simply value_range, and the derived class is value_range_equiv which explicitly states what it does. From-SVN: r277847
2019-11-05[mid-end] Fix declared type of personality functionsMatthew Malcomson2-1/+7
`build_personality_function` generates a declaration for a personality function. The type it declares for these functions doesn't match the type of the actual personality functions that are defined by the C++ unwinding ABI. This doesn't cause any crashes since the compiler never generates a call to these decl's, and hence the type of the function is never used. Nonetheless, for the sake of consistency and readability we update the type of this declaration. gcc/ChangeLog: 2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com> * expr.c (build_personality_function): Fix generated type to match actual personality functions. From-SVN: r277846
2019-11-05[aarch64] Allocate space for err_str in aarch64_handle_attr_branch_protectionMatthew Malcomson2-1/+6
-fsanitize=hwaddress found a one-byte overwrite when running the testsuite here. aarch64_handle_attr_branch_protection allocates `strlen(str)` bytes for an error string, which is populated by `strcpy(..., str)` in the case where the branch protection string is completely invalid. Not tested -- I don't want to re-build and it seems obvious. gcc/ChangeLog: 2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com> * config/aarch64/aarch64.c (aarch64_handle_attr_cpu): Allocate enough bytes for the NULL character. From-SVN: r277845
2019-11-05Update scanned patterns in a test-case.Martin Liska2-5/+10
2019-11-05 Martin Liska <mliska@suse.cz> * c-c++-common/ubsan/ptr-overflow-2.c: Update based on changed run-time reporting format. From-SVN: r277838
2019-11-05IBM Z: gen-vect-26/28: Vectorizing without peeling is ok for ZAndreas Krebbel3-4/+12
These tests check if loop peeling has been applied to avoid having to vectorize unaligned loops. On Z we do not have any alignment requirements for vectorization so we also don't need want the loop peeling here. 2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com> * gcc.dg/tree-ssa/gen-vect-26.c: Disable loop peeling check for IBM Z. * gcc.dg/tree-ssa/gen-vect-28.c: Likewise. From-SVN: r277833
2019-11-05re PR target/92280 (gcc.target/i386/pr83008.c FAILs)Richard Biener3-23/+22
2019-11-05 Richard Biener <rguenther@suse.de> PR tree-optimization/92280 * match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR had a single use do not create a new CTOR. * tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold BIT_FIELD_REF of a CTOR via GENERIC. From-SVN: r277832
2019-11-05IBM Z: gen-vect-11/32: Set min-vect-loop-bound param back to defaultAndreas Krebbel3-1/+15
In the Z backend we still set min-vect-loop-bound to 2 to work around corner cases where awkward epilogue code gets generated in the vectorizer. This has a particular bad impact when vectorizing loops with a low iteration count. Due to this we do not vectorize the loop in gen-vect-11/32 - what actually is a pity. The patch sets min-vect-loop-bound back to the default value of 0 in order to enable vectorization. 2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com> * gcc.dg/tree-ssa/gen-vect-11.c: Add --param min-vect-loop-bound=0 for IBM Z. * gcc.dg/tree-ssa/gen-vect-23.c: Likewise. From-SVN: r277831
2019-11-05IBM Z: Fix testsuite useable_hw checkAndreas Krebbel2-9/+20
This fixes various issues with the useable_hw check in s390.exp. The check is supposed to verify whether a testcase can be run on the current hardware. - the test never returned true for -m31 because vzero is not available in ESA mode and -m31 defaults to -mesa - the missing v0 clobber on the vzero instruction made the check fail if the stack pointer got saved in f0 - the lcbb instruction used for checking whether we are on a z13 also requires vx. Replace it with an instruction from the generic instruction set extensions. - no support for z14 and z15 so far gcc/testsuite/ChangeLog: 2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com> * gcc.target/s390/s390.exp (check_effective_target_s390_useable_hw): Add inline asm for z14 and z15. Replace instruction for z13 with lochiz. Add register clobbers. Check also for __zarch__ when doing the __VX__ test. From-SVN: r277830
2019-11-05IBM Z: Use tree_fits_uhwi_p in vector_alignment hookAndreas Krebbel2-1/+12
This fixes an ICE in gcc.dg/attr-vector_size.c testcase. gcc/ChangeLog: 2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com> * config/s390/s390.c (s390_vector_alignment): Check if the value fits into uhwi before using it. From-SVN: r277829
2019-11-05[ARM,testsuite] Skip tests incompatible with -mpure-code.Christophe Lyon48-8/+105
All these tests fail when using -mpure-code: * some force A or R profile * some use Neon * some use -fpic/-fPIC all of which are not supported by this option. 2019-11-05 Christophe Lyon <christophe.lyon@linaro.org> * gcc.target/arm/attr-crypto.c: Skip if -mpure-code is used. * gcc.target/arm/attr-neon-fp16.c: Likewise. * gcc.target/arm/combine-cmp-shift.c: Likewise. * gcc.target/arm/data-rel-1.c: Likewise. * gcc.target/arm/data-rel-2.c: Likewise. * gcc.target/arm/data-rel-3.c: Likewise. * gcc.target/arm/ftest-armv7a-arm.c: Likewise. * gcc.target/arm/ftest-armv7a-thumb.c: Likewise. * gcc.target/arm/ftest-armv7r-arm.c: Likewise. * gcc.target/arm/ftest-armv7r-thumb.c: Likewise. * gcc.target/arm/ftest-armv7ve-arm.c: Likewise. * gcc.target/arm/ftest-armv7ve-thumb.c: Likewise. * gcc.target/arm/ftest-armv8a-arm.c: Likewise. * gcc.target/arm/ftest-armv8a-thumb.c: Likewise. * gcc.target/arm/lceil-vcvt_1.c: Likewise. * gcc.target/arm/lfloor-vcvt_1.c: Likewise. * gcc.target/arm/lround-vcvt_1.c: Likewise. * gcc.target/arm/memset-inline-10.c: Likewise. * gcc.target/arm/mod_2.c: Likewise. * gcc.target/arm/mod_256.c: Likewise. * gcc.target/arm/pr40657-1.c: Likewise. * gcc.target/arm/pr44788.c: Likewise. * gcc.target/arm/pr50305.c: Likewise. * gcc.target/arm/pr51835.c: Likewise. * gcc.target/arm/pr51915.c: Likewise. * gcc.target/arm/pr52006.c: Likewise. * gcc.target/arm/pr53187.c: Likewise. * gcc.target/arm/pr58784.c: Likewise. * gcc.target/arm/pr59575.c: Likewise. * gcc.target/arm/pr59923.c: Likewise. * gcc.target/arm/pr60650-2.c: Likewise. * gcc.target/arm/pr60657.c: Likewise. * gcc.target/arm/pr60663.c: Likewise. * gcc.target/arm/pr67439_1.c: Likewise. * gcc.target/arm/pr68620.c: Likewise. * gcc.target/arm/pr7676.c: Likewise. * gcc.target/arm/pr79239.c: Likewise. * gcc.target/arm/pr81863.c: Likewise. * gcc.target/arm/pragma_attribute.c: Likewise. * gcc.target/arm/pragma_cpp_fma.c: Likewise. * gcc.target/arm/require-pic-register-loc.c: Likewise. * gcc.target/arm/thumb-ltu.c: Likewise. * gcc.target/arm/thumb1-pic-high-reg.c: Likewise. * gcc.target/arm/thumb1-pic-single-base.c: Likewise. * gcc.target/arm/tlscall.c: Likewise. * gcc.target/arm/unsigned-float.c: Likewise. * gcc.target/arm/vrinta-ce.c: Likewise. From-SVN: r277828
2019-11-05Use more ggc_delete.Martin Liska2-8/+6
2019-11-05 Martin Liska <mliska@suse.cz> * symbol-summary.h: Use ggc_delete. From-SVN: r277827
2019-11-05[Aarch64] Fix vec_perm cost for thunderx2t99Anton Youdkevitch2-1/+6
Here is the one-liner that fixes the incorrect vec_perm cost for thunderx2t99 chip. With the patch applied 526.blender of CPU2017 gets ~5% improvement with no measurable changes for other benchmarks. 2019-11-05 Anton Youdkevitch <anton.youdkevitch@bell-sw.com> * config/aarch64/aarch64.c (thunderx2t99_vector_cost): Change vec_perm field to 10. From-SVN: r277826
2019-11-05* doc/install.texi: Further fix syntax for html generationArnaud Charlet2-1/+5
From-SVN: r277824
2019-11-05Update coding style in symbol-summary.h.Martin Liska2-8/+17
2019-11-05 Martin Liska <mliska@suse.cz> * symbol-summary.h: Rename allocator to m_allocator and add comment. From-SVN: r277823
2019-11-05re PR tree-optimization/92324 (ICE in expand_direct_optab_fn, at ↵Richard Biener4-1/+50
internal-fn.c:2890) 2019-11-05 Richard Biener <rguenther@suse.de> PR tree-optimization/92324 * tree-vect-loop.c (check_reduction_path): For MIN/MAX require all signed or unsigned operations. * gcc.dg/vect/pr92324-3.c: New testcase. From-SVN: r277822
2019-11-05hsa-brig.c: Include alloc-pool.hJan Hubicka13-17/+53
* hsa-brig.c: Include alloc-pool.h * hsa-dump.c: Likewise. * hsa-gen.c: Likewise. * hse-regalloc.c: Likewise. * ipa-hsa.c: Likewise. * ipa-predicate.c: Likewise. * ipa-reference.c: Likewise. * ipa-sra.c: Likewise. * omp-expand.c: Likewise. * omp-general.c: Likewise. * omp-low.c: Likewise. * sumbol-summary.h (function_summary_base): Add allocator. (function_summary<T *>::function_summary): Update construction. (fast_function_summary<T *, V>::fast_function_summary): Likewise. (call_summary_base): Add allcator. (call_summary<T *>::call_summary): Update construction. (fast_call_summary<T *, V>::fast_call_summary): Likewise. From-SVN: r277821
2019-11-05re PR tree-optimization/91945 (ICE: tree check: expected integer_cst, have ↵Jakub Jelinek4-2/+18
var_decl in get_len, at tree.h:5837 since r274997) PR tree-optimization/91945 * builtins.c (compute_objsize): For ARRAY_REF, only multiply off by tpsize if it is both non-NULL and INTEGER_CST, otherwise punt. Formatting fix. * gfortran.dg/pr91945.f90: New test. From-SVN: r277820
2019-11-05re PR c++/92343 ([[likely]]/[[unlikely]] prevent method from being a ↵Jakub Jelinek4-1/+24
constant expression) PR c++/92343 * constexpr.c (potential_constant_expression_1): Return true rather than false for PREDICT_EXPR. * g++.dg/cpp2a/attr-likely6.C: New test. From-SVN: r277819
2019-11-05Move vrp_set_zero_nonzero_bits from tree-vrp.c into vr-values.c, and make it ↵Aldy Hernandez6-71/+44
use wi_set_zero_nonzero_bits. Move vrp_set_zero_nonzero_bits from tree-vrp.c into vr-values.c, and make it use wi_set_zero_nonzero_bits. Remove the now redundant wide_int_range_set_zero_nonzero_bits. From-SVN: r277818
2019-11-05Really add gcc/config/gcn/t-omp-deviceTobias Burnus1-0/+4
gcc/ * config/gcn/t-omp-device: New. Should have been part of Rev. 277797. From-SVN: r277817
2019-11-05Remove FIELD_DECL leftover.Martin Liska4-4/+21
2019-11-05 Martin Liska <mliska@suse.cz> PR c++/92339 * fold-const.c (operand_compare::hash_operand): Remove FIELD_DECL handling. 2019-11-05 Martin Liska <mliska@suse.cz> PR c++/92339 * g++.dg/pr92339.C: New test. From-SVN: r277816
2019-11-05decl.c (omp_declare_variant_finalize_one): Call declare_simd_adjust_this not ↵Jakub Jelinek6-5/+204
just on the context... * decl.c (omp_declare_variant_finalize_one): Call declare_simd_adjust_this not just on the context, but also on the variant-id expression for methods. Don't call cp_get_callee_fndecl_nofold, call cp_get_callee and only if it is safe cp_get_fndecl_from_callee. Don't try to print as %qD NULL in diagnostics. * pt.c (tsubst_attribute): Handle "omp declare variant base" attribute. (tsubst_function_decl): Call omp_declare_variant_finalize if there are any "omp declare variant base" attributes left. * g++.dg/gomp/declare-variant-7.C: New test. * g++.dg/gomp/declare-variant-8.C: New test. From-SVN: r277814
2019-11-05Move vrp_bitmap_equal_p above its only use and make it static.Aldy Hernandez3-14/+18
From-SVN: r277813
2019-11-05Use value_range_base::equal_p in value_range_base::operator== so we can handleAldy Hernandez2-24/+7
symbolics without dying. From-SVN: r277812
2019-11-05Daily bump.GCC Administrator1-1/+1
From-SVN: r277810
2019-11-04PR c++/91979 - mangling nullptr expressionKamlesh Kumar11-4/+51
2019-11-04 Kamlesh Kumar <kamleshbhalui@gmail.com> gcc/cp * cp/mangle.c (write_template_arg_literal): Handle nullptr mangling. gcc * common.opt (-fabi-version): Document =14. * doc/invoke.texi (C++ Dialect Options): Likewise. gcc/c-family * c-opts.c (c_common_post_options): Update latest_abi_version. libiberty * cp-demangle.c (d_expr_primary): Handle nullptr demangling. * testsuite/demangle-expected: Added test. From-SVN: r277801
2019-11-04Do not special case pointers in value_range_base::set.Aldy Hernandez2-8/+7
From-SVN: r277799
2019-11-04* typeck.c (check_return_expr): Avoid redundant error.Jason Merrill3-1/+12
From-SVN: r277798
2019-11-04Add gcc/config/gcn/t-omp-device for OpenMP declare variant kind/arch/isaTobias Burnus4-2/+51
gcc/ * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): New function. (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to gcn_omp_device_kind_arch_isa. * config/gcn/t-omp-device: New file. * configure.ac: Support gcn for omp_device_property. * configure: Regenerate. From-SVN: r277797
2019-11-04Remove handle_pointers argument from all the vrp_val*{min,max} functions.Aldy Hernandez3-41/+62
Remove handle_pointers argument from all the vrp_val*{min,max} functions. Always assume pointers should be handled. From-SVN: r277796
2019-11-04ipa-reference.c (init_function_info): Initialize info->global.statics_read.Jan Hubicka2-0/+6
* ipa-reference.c (init_function_info): Initialize info->global.statics_read. From-SVN: r277795
2019-11-04Use the value_range_base constructors in value_range_base::invert toAldy Hernandez2-2/+9
make sure we build canonically correct ranges. From-SVN: r277794
2019-11-04[D] Remove unchecked to_constant in VECTOR_TYPE handlingRichard Sandiford2-11/+19
The SVE port now tries to register variable-length VECTOR_TYPEs at start-up, so it's no longer possible to use the asserting to_constant on the number of vector elements. This patch punts on variable element counts instead, just like we do for other things that the frontend doesn't recognise. The brace indentation matches the surrounding style. 2019-11-04 Richard Sandiford <richard.sandiford@arm.com> gcc/d/ * d-builtins.cc (build_frontend_type): Cope with variable TYPE_VECTOR_SUBPARTS. From-SVN: r277793
2019-11-04Remove unused range_int_cst_singleton_p.Aldy Hernandez3-10/+5
From-SVN: r277792