- 23 May, 2019 18 commits
-
-
This corresponds to the fixes done for std::any_cast, but has to be done without if-constexpr. The dummy specialization of _Manager_internal<_Op> is used to avoid instantiating the real _Manager_internal<T>::_S_manage function just to compare its address. PR libstdc++/90220 * include/experimental/any (__any_caster): Constrain to only be callable for object types. Use remove_cv_t instead of decay_t. If the type decays or isn't copy constructible, compare the manager function to a dummy specialization. (__any_caster): Add overload constrained for non-object types. (any::_Manager_internal<_Op>): Add dummy specialization. * testsuite/experimental/any/misc/any_cast.cc: Test function types and array types. From-SVN: r271556
Jonathan Wakely committed -
2019-05-23 Martin Liska <mliska@suse.cz> PR c++/90587 * tree-ssa-uninit.c (value_sat_pred_p): The result of & operation points to a temporary (pointed via tree_to_wide_ref) that is out of scope after the &. From-SVN: r271555
Martin Liska committed -
PR c++/90592 * doc/extend.texi (Function Names): Add missing word. From-SVN: r271554
Jonathan Wakely committed -
2019-05-23 Richard Biener <rguenther@suse.de> PR tree-optimization/88440 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns at -O[2s]+. * tree-loop-distribution.c (generate_memset_builtin): Fold the generated call. (generate_memcpy_builtin): Likewise. (distribute_loop): Pass in whether to only distribute patterns. (prepare_perfect_loop_nest): Also allow size optimization. (pass_loop_distribution::execute): When optimizing a loop nest for size allow pattern replacement. * gcc.dg/tree-ssa/ldist-37.c: New testcase. * gcc.dg/tree-ssa/ldist-38.c: Likewise. * gcc.dg/vect/vect.exp: Add -fno-tree-loop-distribute-patterns. * gcc.dg/tree-ssa/ldist-37.c: Adjust. * gcc.dg/tree-ssa/ldist-38.c: Likewise. * g++.dg/tree-ssa/pr78847.C: Likewise. * gcc.dg/autopar/pr39500-1.c: Likewise. * gcc.dg/autopar/reduc-1char.c: Likewise. * gcc.dg/autopar/reduc-7.c: Likewise. * gcc.dg/tree-ssa/ivopts-lt-2.c: Likewise. * gcc.dg/tree-ssa/ivopts-lt.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-1.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-2.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-3.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-4.c: Likewise. * gcc.dg/tree-ssa/prefetch-7.c: Likewise. * gcc.dg/tree-ssa/prefetch-8.c: Likewise. * gcc.dg/tree-ssa/prefetch-9.c: Likewise. * gcc.dg/tree-ssa/scev-11.c: Likewise. * gcc.dg/vect/costmodel/i386/costmodel-vect-31.c: Likewise. * gcc.dg/vect/costmodel/i386/costmodel-vect-33.c: Likewise. * gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c: Likewise. * gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c: Likewise. * gcc.target/i386/pr30970.c: Likewise. * gcc.target/i386/vect-double-1.c: Likewise. * gcc.target/i386/vect-double-2.c: Likewise. * gcc.dg/tree-ssa/gen-vect-2.c: Likewise. * gcc.dg/tree-ssa/gen-vect-26.c: Likewise. * gcc.dg/tree-ssa/gen-vect-28.c: Likewise. * gcc.dg/tree-ssa/gen-vect-32.c: Likewise. * gfortran.dg/vect/vect-5.f90: Likewise. * gfortran.dg/vect/vect-8.f90: Likewise. From-SVN: r271553
Richard Biener committed -
PR target/90568 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead of xor. From-SVN: r271552
Jakub Jelinek committed -
From-SVN: r271549
Eric Botcazou committed -
2019-05-23 Martin Liska <mliska@suse.cz> PR sanitizer/90570 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target expression similarly to gimplify_decl_expr. 2019-05-23 Martin Liska <mliska@suse.cz> PR sanitizer/90570 * g++.dg/asan/pr90570.C: New test. From-SVN: r271548
Martin Liska committed -
From-SVN: r271545
Eric Botcazou committed -
These tests had started to XPASS on pic targets where the codegen is now as expected. gcc/testsuite/ 2019-05-23 Iain Sandoe <iain@sandoe.co.uk> PR rtl-optimisation/64895 * gcc.target/i386/fuse-caller-save-rec.c: Remove XFAILs. * gcc.target/i386/fuse-caller-save.c: Likewise. * gcc.target/i386/fuse-caller-save-xmm.c: Adjust tests for PIC cases, remove XFAILs. From-SVN: r271544
Iain Sandoe committed -
* cp-tree.h (CP_AGGREGATE_TYPE_P): Fix whitespace. From-SVN: r271543
Jonathan Wakely committed -
From-SVN: r271542
Jonathan Wakely committed -
* init.c (std_placement_new_fn_p): Remove outdated TODO comment that was resolved by r254694. From-SVN: r271541
Jonathan Wakely committed -
... for r271463 "Fix PR90510, VEC_PERM -> BIT_INSERT folding". gcc/testsuite/ PR middle-end/90510 * brig.dg/test/gimple/packed.hsail: Adjust. From-SVN: r271540
Thomas Schwinge committed -
2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * cse.c (cse_dump_path): s/dump_file/f. From-SVN: r271539
Prathamesh Kulkarni committed -
From-SVN: r271538
Jakub Jelinek committed -
There was a regression for gfortran.dg/fmt_en.f90 for cris-elf that on inspection was due to it having acquired a truncation call through the runtime. I updated that and the new tests that had "Fortran runtime error: required ftruncate or chsize support not present" messages in gfortran.log, ran past cris-elf and committed as obvious. See also <https://gcc.gnu.org/ml/gcc-patches/2008-05/msg00975.html> from which I copy-pasted most of this message. (Yep, 11 years ago.) gcc/testsuite: * gfortran.dg/dec_io_1.f90, gfortran.dg/dtio_1.f90, gfortran.dg/dtio_12.f90, gfortran.dg/fmt_en.f90, gfortran.dg/namelist_89.f90: Gate test on effective_target fd_truncate. From-SVN: r271536
Hans-Peter Nilsson committed -
PR c++/90462 reports an ICE with -fdiagnostics-format=json when attempting to serialize a malformed location to JSON. The compound location_t in question has meaningful "caret" and "start" locations, but has UNKNOWN_LOCATION for its "finish" location, leading to a NULL pointer dereference when attempting to build a JSON string for the filename. This patch bulletproofs the JSON output so that attempts to write a JSON object for a location with a NULL file will lead to an object with no "file" key, and attempts to write a compound location with UNKNOWN_LOCATION for its start or finish will lead to the corresponding JSON child object being omitted. This patch also adds a json::object::get member function, for self-testing the above. gcc/ChangeLog: PR c++/90462 * diagnostic-format-json.cc: Include "selftest.h". (json_from_expanded_location): Only add "file" key for non-NULL file strings. (json_from_location_range): Don't add "start" and "finish" children if they are UNKNOWN_LOCATION. (selftest::test_unknown_location): New selftest. (selftest::test_bad_endpoints): New selftest. (selftest::diagnostic_format_json_cc_tests): New function. * json.cc (json::object::get): New function. (selftest::test_object_get): New selftest. (selftest::json_cc_tests): Call it. * json.h (json::object::get): New decl. * selftest-run-tests.c (selftest::run_tests): Call selftest::diagnostic_format_json_cc_tests. * selftest.h (selftest::diagnostic_format_json_cc_tests): New decl. gcc/testsuite/ChangeLog: PR c++/90462 * g++.dg/pr90462.C: New test. From-SVN: r271535
David Malcolm committed -
From-SVN: r271534
GCC Administrator committed
-
- 22 May, 2019 22 commits
-
-
* g++.dg/cpp1y/udlit-char-template-neg.C: Expect the error on a different line. Check the column number too. From-SVN: r271530
Marek Polacek committed -
PR libstdc++/90557 * src/c++17/fs_path.cc (path::_List::operator=(const _List&)): Fix reversed arguments to uninitialized_copy_n. * testsuite/27_io/filesystem/path/assign/copy.cc: Check that source is unchanged by copy assignment. * testsuite/util/testsuite_fs.h (compare_paths): Use std::equal to compare path components. From-SVN: r271527
Jonathan Wakely committed -
2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com> Andrew Stubbs <amd@codesourcery.com> gcc/ * config.gcc (gcc_cv_initfini_array): Set for AMD GCN. * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New. (kernel): Rename to... (main_kernel): ... this. (load_image): Load _init_array and _fini_array kernels. (run): Add argument for kernel to run. (main): Run init_array_kernel before main_kernel, and fini_array_kernel after. * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow amdgpu_hsa_kernel attribute on functions. (gcn_disable_constructors): Delete. (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete. * config/gcn/crt0.c (size_t): Define. (_init_array, _fini_array): New. (__preinit_array_start, __preinit_array_end, __init_array_start, __init_array_end, __fini_array_start, __fini_array_end): Declare weak references. Co-Authored-By: Andrew Stubbs <ams@codesourcery.com> From-SVN: r271526
Kwok Cheung Yeung committed -
2019-05-22 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5. From-SVN: r271525
Andrew Stubbs committed -
* gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE. The front end shouldn't produce a GENERIC COND_EXPR of TREE_ADDRESSABLE type. From-SVN: r271524
Jason Merrill committed -
Here initializing the argument from a TARGET_EXPR isn't an empty class copy even though the type is !TREE_ADDRESSABLE, so we should check simple_empty_class_p. * call.c (build_call_a): Use simple_empty_class_p. From-SVN: r271523
Jason Merrill committed -
Remove the hardcoded whitelist of allocators expected to return memory aligned to alignof(max_align_t), because that doesn't work when the platform's malloc() and GCC's max_align_t do not agree what the largest fundamental alignment is. It's also sub-optimal for user-defined allocators that return memory suitable for any fundamental alignment. Instead use a hardcoded list of alignments that are definitely supported by the platform malloc, and use a copy of the allocator rebound to a POD type with the requested alignment. Only allocate an oversized buffer to use with std::align for alignments larger than any of the hardcoded values. For 32-bit Solaris x86 do not include alignof(max_align_t) in the hardcoded values. PR libstdc++/77691 * include/experimental/memory_resource: Add system header pragma. (__resource_adaptor_common::__guaranteed_alignment): Remove. (__resource_adaptor_common::_Types) (__resource_adaptor_common::__new_list) (__resource_adaptor_common::_New_list) (__resource_adaptor_common::_Alignments) (__resource_adaptor_common::_Fund_align_types): New utilities for creating a list of types with fundamental alignments. (__resource_adaptor_imp::do_allocate): Call new _M_allocate function. (__resource_adaptor_imp::do_deallocate): Call new _M_deallocate function. (__resource_adaptor_imp::_M_allocate): New function that first tries to use an allocator rebound to a type with a fundamental alignment. (__resource_adaptor_imp::_M_deallocate): Likewise for deallocation. * testsuite/experimental/memory_resource/new_delete_resource.cc: Adjust expected allocation sizes. * testsuite/experimental/memory_resource/resource_adaptor.cc: Remove xfail. From-SVN: r271522
Jonathan Wakely committed -
Yet another tweak that would have fixed this bug: we should treat INIT_EXPR and MODIFY_EXPR differently for determining whether this is a simple empty class copy, since a TARGET_EXPR on the RHS is direct initialization if INIT_EXPR but copy if MODIFY_EXPR. * cp-gimplify.c (simple_empty_class_p): Also true for MODIFY_EXPR. From-SVN: r271521
Jason Merrill committed -
vect-signbitf.c (dg-final): Improve scan-assembler-not string to avoid false matching on 32bit targets. * gcc.target/i386/vect-signbitf.c (dg-final): Improve scan-assembler-not string to avoid false matching on 32bit targets. From-SVN: r271520
Uros Bizjak committed -
get_frame_size () returns used stack slots during compilation, which may be optimized out later. This patch does the followings: 1. Add stack_frame_required to machine_function to indicate that the function needs a stack frame. 2. Change ix86_find_max_used_stack_alignment to set stack_frame_required. 3. Always call ix86_find_max_used_stack_alignment to check if stack frame is needed. Tested on i686 and x86-64 with --with-arch=native --with-cpu=native Tested on AVX512 machine configured with --with-arch=native --with-cpu=native gcc/ PR target/88483 * config/i386/i386-options.c (ix86_init_machine_status): Set stack_frame_required to true. * config/i386/i386.c (ix86_get_frame_size): New function. (ix86_frame_pointer_required): Replace get_frame_size with ix86_get_frame_size. (ix86_compute_frame_layout): Likewise. (ix86_find_max_used_stack_alignment): Changed to void. Set stack_frame_required. (ix86_finalize_stack_frame_flags): Always call ix86_find_max_used_stack_alignment. Replace get_frame_size with ix86_get_frame_size. * config/i386/i386.h (machine_function): Add stack_frame_required. gcc/testsuite/ PR target/88483 * gcc.target/i386/stackalign/pr88483-1.c: New test. * gcc.target/i386/stackalign/pr88483-2.c: Likewise. From-SVN: r271517
H.J. Lu committed -
* config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition. From-SVN: r271515
Uros Bizjak committed -
This patch adds support in the compiler for the architecture feature flags that binutils will use to enable/disable the new "Future Architecture Technologies" feature Scalable Vector Extension V2 (SVE2) announced at Linaro Connect this week. The "sve2" extension that enables the core sve2 instructions. This also enables the sve extension, since sve is a requirement of sve2. Extra optional sve2 features are the bitperm, sm4, aes, and sha3 extensions. These are all given extra feature flags, "bitperm", "sve2-sm4", "sve2-aes", and "sve2-sha3" respectively. The sm4, aes, and sha3 extensions are explicitly marked as sve2 extensions to distinguish them from the corresponding NEON extensions. When introducing macros to denote these new features we have gone past what a 32 bit value can represent which means we need to change the type of those variables working with these feature flags to ensure they use 64 bit quantities. Tested with bootstrap on aarch64-none-linux-gnu and manually seeing that -march=armv8-a+typo prints out the expected flags while using the new feature flags does not complain about a missing flag (until reaching the assembler). gcc/ChangeLog: 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com> * common/config/aarch64/aarch64-common.c (struct aarch64_option_extension, struct processor_name_to_arch, struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp, aarch64_contains_opt, aarch64_get_extension_string_for_isa_flags): Change type of variables storing flags to uint64_t. * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4, sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags. * config/aarch64/aarch64.c (struct processor, aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu, aarch64_validate_march, aarch64_override_options, aarch64_option_print, aarch64_handle_attr_isa_flags, aarch64_declare_function_name, aarch64_start_file): Make flag variables uint64_t. * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES, AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3, AARCH64_FL_SVE2_BITPERM): New macro feature flags. * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t. * config/aarch64/driver-aarch64.c (struct aarch64_arch_extension, struct aarch64_core_data, struct aarch64_arch_driver_info, host_detect_local_cpu): Make flag variables uint64_t. * doc/invoke.texi: Add documentation for new arguments. From-SVN: r271514
Matthew Malcomson committed -
2019-05-22 Andrew Stubbs <ams@codesourcery.com> gcc/testsuite/ * gfortran.dg/coarray_lock_7.f90: Fix output patterns. From-SVN: r271513
Andrew Stubbs committed -
2019-05-22 Andrew Stubbs <ams@codesourcery.com> gcc/fortran/ * trans-stmt.c (gfc_trans_critical): Use size_type_node for gfor_fndecl_caf_lock and gfor_fndecl_caf_unlock calls. (gfc_trans_allocate): Use size_type_node for gfor_fndecl_caf_sync_all call. From-SVN: r271512
Andrew Stubbs committed -
gcc/fortran ChangeLog: 2019-05-22 Jeff Law <law@redhat.com> Mark Eggleston <mark.eggleston@codethink.com> PR fortran/89100 * gfortran.texi: Add Default widths for F, G and I format descriptors to Extensions section. * invoke.texi: Add -fdec-format-defaults * io.c (check_format): Use default widths for i, f and g when flag_dec_format_defaults is enabled. * lang.opt: Add new option. * options.c (set_dec_flags): Add SET_BITFLAG for flag_dec_format_defaults. gcc/testsuite ChangeLog: 2019-05-22 Mark Eggleston <mark.eggleston@codethink.com> PR fortran/89100 * gfortran.dg/fmt_f_default_field_width_1.f90: New test. * gfortran.dg/fmt_f_default_field_width_2.f90: New test. * gfortran.dg/fmt_f_default_field_width_3.f90: New test. * gfortran.dg/fmt_g_default_field_width_1.f90: New test. * gfortran.dg/fmt_g_default_field_width_2.f90: New test. * gfortran.dg/fmt_g_default_field_width_3.f90: New test. * gfortran.dg/fmt_i_default_field_width_1.f90: New test. * gfortran.dg/fmt_i_default_field_width_2.f90: New test. * gfortran.dg/fmt_i_default_field_width_3.f90: New test. libgfortran ChangeLog: 2019-05-22 Jeff Law <law@redhat.com> PR fortran/89100 * io/format.c (parse_format_list): set default width when the IOPARM_DT_DEC_EXT flag is set for i, f and g. * io/io.h: add default_width_for_integer, default_width_for_float and default_precision_for_float. * io/write.c (write_boz): extra parameter giving length of data corresponding to the type's kind. (write_b): pass data length as extra parameter in calls to write_boz. (write_o): pass data length as extra parameter in calls to write_boz. (write_z): pass data length as extra parameter in calls to write_boz. (size_from_kind): also set size is default width is set. * io/write_float.def (build_float_string): new paramter inserted before result parameter. If default width use values passed instead of the values in fnode. (FORMAT_FLOAT): macro modified to check for default width and calls to build_float_string to pass in default width. (get_float_string): set width and precision to defaults when needed. From-SVN: r271511
Janne Blomqvist committed -
2019-05-22 Richard Biener <rguenther@suse.de> * alias.c (ao_ref_from_mem): Move stack-slot sharing rewrite ... * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here. From-SVN: r271510
Richard Biener committed -
2019-05-22 Martin Liska <mliska@suse.cz> PR testsuite/90564 * gcc.target/powerpc/pr80315-1.c: Remove usage of quotes. * gcc.target/powerpc/pr80315-2.c: Likewise. * gcc.target/powerpc/pr80315-3.c: Likewise. * gcc.target/powerpc/pr80315-4.c: Likewise. From-SVN: r271509
Martin Liska committed -
2019-05-22 Martin Liska <mliska@suse.cz> PR testsuite/90564 * gcc.target/powerpc/pr80315-1.c: Add one extra \ to escape brackets. * gcc.target/powerpc/pr80315-2.c: Likewise. * gcc.target/powerpc/pr80315-3.c: Likewise. * gcc.target/powerpc/pr80315-4.c: Likewise. From-SVN: r271508
Martin Liska committed -
2019-05-22 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/decltype-pr66548.C: Reinstate correct version. From-SVN: r271507
Paolo Carlini committed -
2019-05-22 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/decltype-pr66548.C: Remove, mistakenly added. From-SVN: r271506
Paolo Carlini committed -
The test can't succeed on 32b powerpc Darwin since the ABI demands a different result to the tested one. 2019-05-22 Iain Sandoe <iain@sandoe.co.uk> PR testsuite/27221 * g++.dg/ext/alignof2.C: XFAIL for 32bit Darwin. From-SVN: r271505
Iain Sandoe committed -
2019-05-22 Martin Liska <mliska@suse.cz> PR lto/90500 * c-attribs.c (handle_copy_attribute): Do not copy target_clones attribute. 2019-05-22 Martin Liska <mliska@suse.cz> PR lto/90500 * gcc.target/i386/pr90500-1.c: Make the test-case valid now. 2019-05-22 Martin Liska <mliska@suse.cz> PR lto/90500 * doc/extend.texi: Document the change. From-SVN: r271504
Martin Liska committed
-