- 12 Feb, 2019 15 commits
-
-
It's not defined on the Hurd. Reviewed-on: https://go-review.googlesource.com/c/161963 From-SVN: r268828
Ian Lance Taylor committed -
In this PR, we were unnecessarily rejecting a constexpr initializer_list with no elements. This seems like a fairly useless degenerate case, but it makes sense to avoid allocating an underlying array at all if there are no elements and instead use a null pointer, like the initializer_list default constructor. If the (automatic storage duration) list does have initializer elements, we continue to reject the declaration, because the initializer_list ends up referring to an automatic storage duration temporary array, which is not a suitable constant initializer. If we make it static, it should be OK because we refer to a static array. The second hunk fixes that case. It also means we won't diagnose some real errors in templates, but those diagnostics aren't required, and we'll get them when the template is instantiated. * call.c (convert_like_real) [ck_list]: Don't allocate a temporary array for an empty list. * typeck2.c (store_init_value): Don't use cxx_constant_init in a template. From-SVN: r268827
Jason Merrill committed -
i386 backend has INT_MODE (OI, 32); INT_MODE (XI, 64); So, XI_MODE represents 64 INTEGER bytes = 64 * 8 = 512 bit operation, in case of const_1, all 512 bits set. We can load zeros with narrower instruction, (e.g. 256 bit by inherent zeroing of highpart in case of 128 bit xor), so TImode in this case. Some targets prefer V4SF mode, so they will emit float xorps for zeroing Then the introduction of AVX512F fubared everything by overloading the meaning of insn mode. How should we use INSN mode, MODE_XI, in standard_sse_constant_opcode and patterns which use standard_sse_constant_opcode? 2 options: 1. MODE_XI should only used to check if EXT_REX_SSE_REG_P is true in any register operand. The operand size must be determined by operand itself , not by MODE_XI. The operand encoding size should be determined by the operand size, EXT_REX_SSE_REG_P and AVX512VL. 2. MODE_XI should be used to determine the operand encoding size. EXT_REX_SSE_REG_P and AVX512VL should be checked for encoding instructions. gcc/ PR target/89229 * config/i386/i386.md (*movoi_internal_avx): Revert revision 268678 and revision 268657. (*movti_internal): Likewise. gcc/testsuite/ PR target/89229 * gcc.target/i386/pr89229-1.c: New test. From-SVN: r268811
H.J. Lu committed -
Adds missing HPPA support in std.experimental.allocator. Reviewed-on: https://github.com/dlang/phobos/pull/6838 From-SVN: r268810
Iain Buclaw committed -
The following insn: (insn (set (reg:DI %r2) (sign_extend:DI (mem:SI (const:DI (plus:DI (symbol_ref:DI ("*.LC0")) (const_int 16))))))) is correctly recognized by LRA as RIL alternative of extendsidi2 define_insn. However, when recognition runs after LRA, it returns RXY alternative, which is incorrect, since the offset 16 points past the end of of *.LC0 literal pool entry. Such addresses are normally rejected by s390_decompose_address (). This inconsistency confuses annotate_constant_pool_refs: the selected alternative makes it proceed with annotation, only to find that the annotated address is invalid, causing ICE. This patch fixes the root cause, namely, that s390_check_qrst_address () behaves differently during and after LRA. gcc/ChangeLog: 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com> PR target/89233 * config/s390/s390.c (s390_decompose_address): Update comment. (s390_check_qrst_address): Reject invalid address forms after LRA. gcc/testsuite/ChangeLog: 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com> PR target/89233 * gcc.target/s390/pr89233.c: New test. From-SVN: r268798
Ilya Leoshkevich committed -
2018-01-12 Bill Schmidt <wschmidt@linux.ibm.com> * gcc.target/powerpc/vec-sld-modulo.c: Require p8vector_hw. * gcc.target/powerpc/vec-srad-modulo.c: Likewise. * gcc.target/powerpc/vec-srd-modulo.c: Likewise. From-SVN: r268797
Bill Schmidt committed -
The call to bsearch in dwarf_lookup_pc can have NULL as base argument when the nmemb argument is 0. The base argument is required to be pointing to the initial member of an array of nmemb objects. It is not specified what constitutes a valid pointer to an array of 0 objects, but glibc declares base with attribute non-null, so the NULL will trigger a sanitizer runtime error. Fix this by only calling bsearch if nmemb != 0. 2019-02-12 Tom de Vries <tdevries@suse.de> PR libbacktrace/81983 * dwarf.c (dwarf_lookup_pc): Don't call bsearch if nmemb == 0. From-SVN: r268796
Tom de Vries committed -
2019-02-12 Martin Liska <mliska@suse.cz> PR lto/88876 * ipa-pure-const.c (propagate_pure_const): Revert hunk as we need default values of funct_state for a function that is not optimized. From-SVN: r268795
Martin Liska committed -
When a node is removed from a splay tree, the splay tree was not using the function splay_tree_delete_key_fn to release the key. This was causing a leak, fixed by Tom Tromey. This patch fixes another key leak, that happens when a key equal to a key already present is inserted. In such a case, we have to release the old KEY. Note that this is based on the assumption that the caller always allocates a new KEY when doing an insert. Also, clarify the documentation about when the release functions are called. 2019-02-11 Philippe Waroquiers <philippe.waroquiers@skynet.be> * splay-tree.h (splay_tree_delete_key_fn): Update comment. (splay_tree_delete_value_fn): Likewise. libiberty/ChangeLog 2019-02-11 Philippe Waroquiers <philippe.waroquiers@skynet.be> * splay-tree.c (splay_tree_insert): Also release old KEY in case of insertion of a key equal to an already present key. (splay_tree_new_typed_alloc): Update comment. From-SVN: r268793
Philippe Waroquiers committed -
asan.c (asan_expand_mark_ifn): Take into account the alignment of the object to pick the size of stores on... * asan.c (asan_expand_mark_ifn): Take into account the alignment of the object to pick the size of stores on strict-alignment platforms. * config/sparc/sparc.md (*movsi_insn): Minor tweak. (*movdi_insn_sp32): Likewise. (*movdi_insn_sp64): Likewise. From-SVN: r268792
Eric Botcazou committed -
PR lto/88777 * cgraphunit.c (analyze_functions): Clear READONLY flag for external types that needs constructiong. * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING. From-SVN: r268791
Jan Hubicka committed -
2019-02-12 Richard Biener <rguenther@suse.de> PR tree-optimization/89253 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can duplicate the loop. * gfortran.dg/pr89253.f: New testcase. From-SVN: r268790
Richard Biener committed -
PR lto/88147 reports an assertion failure due to a bogus location_t value when adding a line to a pre-existing line map, when there's a large difference between the two line numbers. For some "large differences", this leads to a location_t value that exceeds LINE_MAP_MAX_LOCATION, in which case linemap_line_start returns 0. This isn't ideal, but at least should lead to safe degradation of location information. However, if the difference is very large, it's possible for the line number offset (relative to the start of the map) to be sufficiently large that overflow occurs when left-shifted by the column-bits, and hence the check against the LINE_MAP_MAX_LOCATION limit fails, leading to a seemingly-valid location_t value, but encoding the wrong location. This triggers the assertion failure: linemap_assert (SOURCE_LINE (map, r) == to_line); The fix (thanks to Martin) is to check for overflow when determining whether to reuse an existing map, and to not reuse it if it would occur. gcc/ChangeLog: David Malcolm <dmalcolm@redhat.com> PR lto/88147 * input.c (selftest::test_line_offset_overflow): New selftest. (selftest::input_c_tests): Call it. libcpp/ChangeLog: Martin Liska <mliska@suse.cz> PR lto/88147 * line-map.c (linemap_line_start): Don't reuse the existing line map if the line offset is sufficiently large to cause overflow when computing location_t values. From-SVN: r268789
David Malcolm committed -
From-SVN: r268788
GCC Administrator committed -
Also stop converting st_dev on Hurd; it shouldn't appear, but if it somehow does we don't want to convert it. Reviewed-on: https://go-review.googlesource.com/c/161961 From-SVN: r268785
Ian Lance Taylor committed
-
- 11 Feb, 2019 22 commits
-
-
When we're instantiating a generic lambda, its enclosing context will have already been instantiated, so we need to look for that as well. * pt.c (enclosing_instantiation_of): Also check instantiated_lambda_fn_p for the template context. From-SVN: r268784
Jason Merrill committed -
* pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Return early for null member pointer value. * g++.dg/cpp0x/nullptr40.C: New test. * g++.dg/cpp0x/nullptr41.C: New test. From-SVN: r268781
Marek Polacek committed -
re PR c++/88977 (__builtin_is_constant_evaluated() as function template argument causes substitution failure) PR c++/88977 * pt.c (convert_nontype_argument): Pass true as manifestly_const_eval to maybe_constant_value calls. * g++.dg/cpp2a/is-constant-evaluated7.C: New test. From-SVN: r268780
Jakub Jelinek committed -
From-SVN: r268779
Marek Polacek committed -
From-SVN: r268778
Joseph Myers committed -
Fix test errors on targets which do not support pthreads. Committed as obvious. testsuite/ PR tree-optimization/86637 * gcc.c-torture/compile/pr86637-2.c: Test pthread and graphite target. From-SVN: r268777
Wilco Dijkstra committed -
gcc/ChangeLog: PR tree-optimization/88771 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable when -Wstringop-overflow is set. (builtin_memref::builtin_memref): Adjust excessive upper bound only when lower bound is not excessive. (maybe_diag_overlap): Detect and diagnose excessive bounds via -Wstringop-ovefflow. (maybe_diag_offset_bounds): Rename... (maybe_diag_access_bounds): ...to this. (check_bounds_or_overlap): Adjust for name change above. gcc/testsuite/ChangeLog: PR tree-optimization/88771 * gcc.dg/Wstringop-overflow-8.c: New test. * gcc.dg/Wstringop-overflow-9.c: New test. * gcc.dg/Warray-bounds-40.c: New test. * gcc.dg/builtin-stpncpy.c: Adjust. * gcc.dg/builtin-stringop-chk-4.c: Adjust. * g++.dg/opt/memcpy1.C: Adjust. From-SVN: r268775
Martin Sebor committed -
gcc/ChangeLog: PR c++/87996 * builtins.c (max_object_size): Move from here... * builtins.h (max_object_size): ...and here... * tree.c (max_object_size): ...to here... * tree.h (max_object_size): ...and here. gcc/c-family/ChangeLog: PR c++/87996 * c-common.c (invalid_array_size_error): New function. (valid_array_size_p): Call it. Handle size as well as type. * c-common.h (valid_constant_size_p): New function. (enum cst_size_error): New type. gcc/cp/ChangeLog: PR c++/87996 * decl.c (compute_array_index_type_loc): Preserve signed sizes for diagnostics. Call valid_array_size_p instead of error. * init.c (build_new_1): Compute size for diagnostic. Call invalid_array_size_error (build_new): Call valid_array_size_p instead of error. gcc/testsuite/ChangeLog: PR c++/87996 * c-c++-common/array-5.c: New test. * c-c++-common/pr68107.c: Adjust text of diagnostics. * g++.dg/init/new38.C: Same. * g++.dg/init/new43.C: Same. * g++.dg/init/new44.C: Same. * g++.dg/init/new46.C: Same. * g++.dg/other/large-size-array.C: Same. * g++.dg/other/new-size-type.C: Same. * g++.dg/template/array30.C: Same. * g++.dg/template/array32.C: New test. * g++.dg/template/dependent-name3.C: Adjust. * gcc.dg/large-size-array-3.c: Same. * gcc.dg/large-size-array-5.c: Same. * gcc.dg/large-size-array.c: Same. * g++.old-deja/g++.brendan/array1.C: Same. * g++.old-deja/g++.mike/p6149.C: Same. From-SVN: r268774
Martin Sebor committed -
gcc/testsuite/ChangeLog: * gcc.dg/tree-prof/inliner-1.c: Correct comments. From-SVN: r268773
Martin Sebor committed -
After the register allocator changes of r268705 we need to update a few tests with new output. In all cases the compiler is now generating the expected code, since the tests are all float16 testcases using a hard-floar abi, we expect that actual fp16 instructions are used rather than using integer loads and stores. Because of we also save on some mov.f16s that were being emitted before to move between the two. The aapcs cases now match the f32 cases in using floating point operations. gcc/testsuite/Changelog PR middle-end/88560 * gcc.target/arm/armv8_2-fp16-move-1.c: Update assembler scans. * gcc.target/arm/fp16-aapcs-1.c: Likewise. * gcc.target/arm/fp16-aapcs-3.c: Likewise. From-SVN: r268772
Tamar Christina committed -
rs6000.c (rs6000_gimple_fold_builtin): Shift-right and shift-left vector built-ins need to include a TRUNC_MOD_EXPR... [gcc] 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com> * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right and shift-left vector built-ins need to include a TRUNC_MOD_EXPR for correct semantics. [gcc/testsuite] 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com> * gcc.target/powerpc/vec-sld-modulo.c: New. * gcc.target/powerpc/vec-srad-modulo.c: New. * gcc.target/powerpc/vec-srd-modulo.c: New. From-SVN: r268771
Bill Schmidt committed -
Inline PLT calls need PLT to be an array of addresses. PowerPC 32-bit bss-plt works differently, so this patch disables inline PLT calls when -mbss-plt. The patch also adds support for a new -mno-pltseq option, which may be required when linking with -mbss-plt code. * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention -mlongcall and -mpltseq. (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls. (RS/6000 and PowerPC Options <-mpltseq>): Document. * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define. * config/rs6000/sysv4.opt (mpltseq): New option. * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine. (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler support is lacking. Don't allow -mpltseq with -mbss-plt. * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if -mpltseq given for ELFv1. * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ. Only use UNSPEC_PLTSEQ for inline PLT calls. (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only use UNSPEC_PLTSEQ for inline PLT calls. (rs6000_indirect_call_template_1, rs6000_longcall_ref), (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying. * config/rs6000/rs6000.md (pltseq_tocsave_<mode>), (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), (pltseq_mtctr_<mode>): Likewise. From-SVN: r268770
Alan Modra committed -
Instead of a single test that only checks whether <regex> can be included in Parallel Mode, add tests for each of C++11/C++14/C++17 that check whether <bits/extc++.h> is compatible with _GLIBCXX_PARALLEL. This increases the coverage to (almost) all headers. If <omp.h> is not available then the tests will trivially pass, because we don't care about compatibility with _GLIBCXX_PARALLEL in that case. PR libstdc++/89023 * testsuite/17_intro/headers/c++2011/parallel_mode.cc: New test. * testsuite/17_intro/headers/c++2014/parallel_mode.cc: New test. * testsuite/17_intro/headers/c++2017/parallel_mode.cc: New test. * testsuite/28_regex/headers/regex/parallel_mode.cc: Remove. From-SVN: r268769
Jonathan Wakely committed -
* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with Solaris ld. * configure: Regenerate. From-SVN: r268768
Rainer Orth committed -
2019-02-11 Andrew Stubbs <ams@codesourcery.com> * MAINTAINERS (amdgcn port): Add myself and Julian Brown. (Write After Approval): Remove myself and Julian. From-SVN: r268767
Andrew Stubbs committed -
PR bootstrap/88714 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint instead of r. From-SVN: r268766
Jakub Jelinek committed -
* function.c (assign_parm_setup_block): Use the stored size, not the passed size, when allocating stack-space, also for a parameter with alignment larger than MAX_SUPPORTED_STACK_ALIGNMENT. From-SVN: r268763
Hans-Peter Nilsson committed -
2019-02-11 Martin Liska <mliska@suse.cz> PR ipa/89009 * ipa-cp.c (build_toporder_info): Remove usage of a param. * ipa-inline.c (inline_small_functions): Likewise. * ipa-pure-const.c (propagate_pure_const): Likewise. (propagate_nothrow): Likewise. * ipa-reference.c (propagate): Likewise. * ipa-utils.c (struct searchc_env): Remove unused field. (searchc): Always search across AVAIL_INTERPOSABLE. (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as the only called IPA pure const can properly not propagate across interposable boundary. * ipa-utils.h (ipa_reduced_postorder): Remove param. 2019-02-11 Martin Liska <mliska@suse.cz> PR ipa/89009 * g++.dg/ipa/pr89009.C: New test. From-SVN: r268762
Martin Liska committed -
gcc/ * config/nds32/nds32.md (call_internal, call_value_internal, sibcall_internal, sibcall_value_internal): Use SImode for mem rtx. From-SVN: r268761
Chung-Ju Wu committed -
* config/cris/cris.c (cris_preferred_minimum_alignment): Fix name typo. From-SVN: r268760
Hans-Peter Nilsson committed -
config/i386/constraints.md has (define_register_constraint "Yd" "TARGET_AVX512DQ ? ALL_SSE_REGS : TARGET_SSE4_1 ? SSE_REGS : NO_REGS" "@internal Any EVEX encodable SSE register (@code{%xmm0-%xmm31}) for AVX512DQ target or any SSE register for SSE4_1 target.") Comments for "Yd" should mention AVX512DQ, not AVX512BW. * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ in comments From-SVN: r268759
H.J. Lu committed -
From-SVN: r268758
GCC Administrator committed
-
- 10 Feb, 2019 3 commits
-
-
Fixes hashing of complex reals, enabling testing of rt.util.typeinfo and core.internal.hash. Reviewed-on: https://github.com/dlang/druntime/pull/6837 libphobos/ChangeLog: * Makefile.in: Rebuild. * configure: Rebuild. * libdruntime/Makefile.am: Test rt.util.typeinfo and core.internal.convert. * libdruntime/Makefile.in: Rebuild. * src/Makefile.in: Rebuild. * testsuite/Makefile.in: Rebuild. * testsuite/libphobos.hash/test_hash.d: Update test. From-SVN: r268755
Iain Buclaw committed -
Backported from upstream druntime 2.084 Reviewed-on: https://github.com/dlang/druntime/pull/2469 libphobos/ChangeLog: * libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove rt/util/hash.d * libdruntime/Makefile.in: Rebuild. * testsuite/libphobos.aa/aa.exp: New file. * testsuite/libphobos.aa/test_aa.d: New test. * testsuite/libphobos.hash/hash.exp: New file. * testsuite/libphobos.hash/test_hash.d: New test. From-SVN: r268754
Iain Buclaw committed -
2019-02-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/71723 * expr.c (gfc_check_assign): Add argument is_init_expr. If we are looking at an init expression, issue error if the target is not a TARGET and we are not looking at a procedure pointer. * gfortran.h (gfc_check_assign): Add optional argument is_init_expr. 2019-02-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/71723 * gfortran.dg/pointer_init_2.f90: Adjust error messages. * gfortran.dg/pointer_init_6.f90: Likewise. * gfortran.dg/pointer_init_9.f90: New test. From-SVN: r268749
Thomas Koenig committed
-