- 05 Jul, 2018 16 commits
-
-
These tests fail when run with -D_GLIBCXX_USE_CXX11_ABI=0 * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for COW strings. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: Likewise. * testsuite/21_strings/basic_string/requirements/ explicit_instantiation/debug.cc: Likewise. From-SVN: r262448
Jonathan Wakely committed -
PR libstdc++/58265 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] (basic_string::assign(basic_string&&)): Add conditional noexcept depending on the allocator's is_always_equal property (LWG 2063). * testsuite/21_strings/basic_string/modifiers/assign/char/ move_assign.cc: Check for non-throwing exception specification. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/ move_assign.cc: Likewise. From-SVN: r262447
Jonathan Wakely committed -
re PR fortran/86408 (bogus error: ABSTRACT INTERFACE must not have an assumed character length result (F2003: C418)) 2018-07-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/86408 * resolve.c.c (resolve_contained_fntype): Reference to C418 is in F2008 and not F2003. (resolve_function): Ditto in error message. Also, exclude deferred character length results from the error. 2018-07-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/86408 * gfortran.dg/deferred_character_20.f90: New test. From-SVN: r262445
Paul Thomas committed -
For COW strings the default constructor does not allocate when _GLIBCXX_FULLY_DYNAMIC_STRING == 0, so can be noexcept. The move constructor and swap do not allocate when the allocators are equal, so add conditional noexcept using allocator_traits::is_always_equal. PR libstdc++/58265 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()): Add GLIBCXX_NOEXCEPT. (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF to depend on the allocator's is_always_equal property (LWG 2063). (basic_string::swap(basic_string&)): Likewise. * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI] (basic_string::swap(basic_string&)): Likewise. * testsuite/21_strings/basic_string/allocator/char/move_assign.cc: Check is_nothrow_move_assignable. * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc: Check is_nothrow_move_assignable. * testsuite/21_strings/basic_string/cons/char/ noexcept_move_construct.cc: Likewise. * testsuite/21_strings/basic_string/cons/wchar_t/ noexcept_move_construct.cc: Likewise. From-SVN: r262443
Jonathan Wakely committed -
2018-07-05 Fritz Reese <fritzoreese@gmail.com> gcc/fortran/ChangeLog: PR fortran/83183 PR fortran/86325 * expr.c (class_allocatable, class_pointer, comp_allocatable, comp_pointer): New helpers. (component_initializer): Generate EXPR_NULL for allocatable or pointer components. Do not generate initializers for components within BT_CLASS. Do not assign to comp->initializer. (gfc_generate_initializer): Use new helpers; move code to generate EXPR_NULL for class allocatable components into component_initializer(). gcc/testsuite/ChangeLog: PR fortran/83183 PR fortran/86325 * gfortran.dg/init_flag_18.f90: New testcase. * gfortran.dg/init_flag_19.f03: New testcase. From-SVN: r262442
Fritz Reese committed -
gcc/ChangeLog: 2018-07-05 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for float argument to VSX_BUILTIN_DOUBLEH_V4SF. Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to VSX_BUILTIN_DOUBLEL_V4SF. gcc/testsuite/ChangeLog: 2018-07-05 Carl Love <cel@us.ibm.com> * gcc.target/altivec-1-runnable.c: New test file. * gcc.target/altivec-2-runnable.c: New test file. * gcc.target/vsx-7.c (main2): Change expected expected instruction for tests. From-SVN: r262439
Carl Love committed -
PR tree-optimization/86400 - set<string>::set<char (*)[2]) constructor does not work with array argument gcc/ChangeLog: * tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather than its domain to compute its the upper bound of a char array. gcc/testsuite/ChangeLog: * gcc.dg/strlenopt-47.c: New test. * gcc.dg/strlenopt-48.c: New test. From-SVN: r262438
Martin Sebor committed -
gcc/ Replace NO_IMPLICIT_EXTERN_C with SYSTEM_IMPLICIT_EXTERN_C. * doc/cpp.texi: Update comment. * doc/tm.texi: Rebuilt. * doc/tm.texi.in (NO_IMPLICIT_EXTERN_C): Replace with ... (SYSTEM_IMPLICIT_EXTERN_C): ... this, opposite sense. * doc/extend.texi (Backwards Compatibility): Clarify it is system headers affected by extern "C". * system.h: Poison NO_IMPLICIT_EXTERN_C. * config/alpha/alpha.h, config/arm/uclinux-elf.h, config/bfin/elf.h, config/cris/cris.h, config/darwin.h, config/dragonfly.h, config/freebsd.h, config/gnu-user.h, config/i386/cygming.h, config/i386/djgpp.h, config/i386/nto.h, config/ia64/hpux.h, config/lm32/lm32.h, config/lm32/uclinux-elf.h, config/lynx.h, config/mips/elf.h, config/mmix/mmix.h, config/netbsd.h, config/pa/pa-hpux.h, config/powerpcspe/sysv4.h, config/riscv/elf.h, config/rs6000/sysv4.h, config/rtems.h, config/s390/tpf.h, config/sh/newlib.h, config/sol2.h, config/sparc/openbsd64.h, config/sparc/sp-elf.h, config/sparc/sp64-elf.h, config/spu/spu.h, config/stormy16/stormy16.h, config/v850/v850.h, config/visium/visium.h, config/vx-common.h, config/xtensa/elf.h: Don't define NO_IMPLICIT_EXTERN_C. * config/rs6000/aix.h: Set SYSTEM_IMPLICIT_EXTERN_C. gcc/c-family/ * c-lex.c (fe_file_change): Check SYSTEM_IMPLICIT_EXTERN_C not NO_IMPLICIT_EXTERN_C. gcc/cp/ * cp/decl.c (decls_match): Check SYSTEM_IMPLICIT_EXTERN_C not NO_IMPLICIT_EXTERN_C. * cp/parser.c (cp_parser_parameter_declaration_clause): Likewise. From-SVN: r262437
Nathan Sidwell committed -
gcc/ PR target/84711 * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE instead of GET_MODE_SIZE when comparing Units. gcc/testsuite/ PR target/84711 * gcc.target/arm/big-endian-subreg.c: New. From-SVN: r262436
Tamar Christina committed -
gcc/ PR target/84711 * rtlanal.c (set_noop_p): Constrain on mode change, include hard-reg-set.h gcc/testuite/ PR target/84711 * gcc.dg/vect/pr84711.c: New. From-SVN: r262435
Tamar Christina committed -
This changes the movmem code in AArch64 that does copy for data between 4 and 7 bytes to use the smallest possible mode capable of copying the remaining bytes in one go and then overlapping the reads if needed. This means that if we're copying 5 bytes we would issue an SImode and QImode load instead of two SImode loads. This does smaller memory accesses but also gives the mid-end a chance to realise that it can CSE the loads in certain circumstances. e.g. when you have something like return foo; where foo is a struct. This would be transformed by the mid-end into SSA form as D.XXXX = foo; return D.XXXX; This movmem routine will handle the first copy, but it's usually not needed, the mid-end would do SImode and QImode stores into X0 for the 5 bytes example but without the first copies being in the same mode, it doesn't know it doesn't need the stores at all. From-SVN: r262434
Tamar Christina committed -
2018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com> PR sanitizer/84250 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static libasan. * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. * Makefile.am: Reorder libs. * Makefile.in: Regenerate. * asan/Makefile.am: Define DCAN_SANITIZE_UB=1, add dependancy from libsanitizer_ubsan.la. * asan/Makefile.in: Regenerate. * ubsan/Makefile.am: Define new libsanitizer_ubsan.la library. * ubsan/Makefile.in: Regenerate. From-SVN: r262433
Jakub Jelinek committed -
2018-07-05 Christophe Lyon <christophe.lyon@linaro.org> * c-c++-common/unroll-1.c: Remove 'note:' in matching string. * c-c++-common/unroll-2.c: Likewise. * g++.dg/cdce3.C: Likewise. * g++.dg/ext/unroll-1.C: Likewise. * g++.dg/ext/unroll-2.C: Likewise. * g++.dg/ext/unroll-3.C: Likewise. * gcc.dg/cdce1.c: Likewise. * gcc.dg/cdce2.c: Likewise. * gcc.dg/gomp/pr68128-1.c: Likewise. * gcc.dg/vect/pr46032.c: Likewise. * gcc.dg/vect/vect-cond-10.c: Likewise. * gcc.dg/vect/vect-cond-8.c: Likewise. * gcc.dg/vect/vect-cond-9.c: Likewise. * gcc.dg/vect/vect-mask-load-1.c: Likewise. * gcc.dg/vect/vect-mask-loadstore-1.c: Likewise. * gcc.target/i386/avx-cvt-2.c: Likewise. * gcc.target/i386/avx-cvt-3.c: Likewise. * gcc.target/i386/avx2-cvt-2.c: Likewise. * gcc.target/i386/avx2-gather-2.c: Likewise. * gcc.target/i386/avx2-gather-6.c: Likewise. * gcc.target/i386/avx512f-gather-2.c: Likewise. * gcc.target/i386/sse2-cvt-2.c: Likewise. * gfortran.dg/directive_unroll_1.f90: Likewise. * gfortran.dg/directive_unroll_2.f90: Likewise. * gnat.dg/unroll2.adb: Likewise. * gnat.dg/unroll3.adb: Likewise. From-SVN: r262432
Christophe Lyon committed -
2018-07-05 Tom de Vries <tdevries@suse.de> * lib/gcc-dg.exp (dg-final): Simplify tcl code. From-SVN: r262431
Tom de Vries committed -
From-SVN: r262429
François Dumont committed -
From-SVN: r262428
GCC Administrator committed
-
- 04 Jul, 2018 24 commits
-
-
In C++2a the remove, remove_if and unique members of std::list and std::forward_list have been changed to return the number of elements removed. This is an ABI change for the remove members and the non-template unique members, so an abi-tag is used to give those symbols new mangled names in C++2a mode. For the function templates the return type is part of the mangled name so no abi-tag is needed. * include/bits/forward_list.h (__cpp_lib_list_remove_return_type): Define. (forward_list::__remove_return_type): Define typedef as size_type or void, according to __cplusplus value. (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or empty, according to __cplusplus value. (forward_list::remove, forward_list::unique): Use typedef and macro to change return type and add abi-tag for C++2a. (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use typedef to change return type for C++2a. * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro. (forward_list::remove, forward_list::remove_if<Pred>) (forward_list::unique<BinPred>): Return number of removed elements for C++2a. * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro. (list::remove, list::unique, list::remove_if<Predicate>) (list::unique<BinaryPredicate>): Return number of removed elements for C++2a. * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define. (list::__remove_return_type): Define typedef as size_type or void, according to __cplusplus value. (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or empty, according to __cplusplus value. (list::remove, list::unique): Use typedef and macro to change return type and add abi-tag for C++2a. (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use typedef to change return type for C++2a. * include/std/version (__cpp_lib_list_remove_return_type): Define. * testsuite/23_containers/forward_list/operations/ remove_cxx20_return.cc: New. * testsuite/23_containers/forward_list/operations/ unique_cxx20_return.cc: New. From-SVN: r262423
Jonathan Wakely committed -
re PR sanitizer/84250 (Symbol collision when using both Address and Undefined Behavior sanitizers (-fsanitize=address,undefined)) gcc/ 2018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com> PR sanitizer/84250 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static libasan. * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. libsanitizer/ 2018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com> PR sanitizer/84250 * Makefile.am: Reorder libs. * Makefile.in: Regenerate. * asan/Makefile.am: Define DCAN_SANITIZE_UB=1, add dependancy from libsanitizer_ubsan.la. * asan/Makefile.in: Regenerate. * ubsan/Makefile.am: Define new libsanitizer_ubsan.la library. * ubsan/Makefile.in: Regenerate. From-SVN: r262421
Maxim Ostapenko committed -
re PR c++/86398 (is_trivially_constructible always returns true even when is_constructible returns false) PR c++/86398 gcc/cp/ PR c++/86398 * method.c (is_trivially_xible): Return false if is_xible_helper returns a NULL_TREE. testsuite/ PR c++/86398 * g++.dg/ext/is_trivially_constructible1.C: Add new tests. From-SVN: r262420
Ville Voutilainen committed -
gcc/testsuite/ChangeLog: PR tree-optimization/86274 * gcc.dg/tree-ssa/builtin-sprintf-9.c: Fix typo. From-SVN: r262419
Martin Sebor committed -
* include/bits/stl_map.h (map::contains): Add for C++2a. * include/bits/stl_multimap.h (multimap::contains): Likewise. * include/bits/stl_multiset.h (multiset::contains): Likewise. * include/bits/stl_set.h (set::contains): Likewise. * include/bits/stl_tree.h (__has_is_transparent_t): Define alias. (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr) (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr) (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t. * include/bits/unordered_map.h (unordered_map::contains) (unordered_multimap::contains): Add for C++2a. * include/bits/unordered_set.h (unordered_set::contains) (unordered_multiset::contains): Likewise. * testsuite/23_containers/map/operations/contains.cc: New. * testsuite/23_containers/multimap/operations/contains.cc: New. * testsuite/23_containers/multiset/operations/contains.cc: New. * testsuite/23_containers/set/operations/contains.cc: New. * testsuite/23_containers/unordered_map/operations/contains.cc: New. * testsuite/23_containers/unordered_multimap/operations/contains.cc: New. * testsuite/23_containers/unordered_multiset/operations/contains.cc: New. * testsuite/23_containers/unordered_set/operations/contains.cc: New. From-SVN: r262418
Jonathan Wakely committed -
2018-07-04 François Dumont <fdumont@gcc.gnu.org> PR libstdc++/86272 * include/debug/string (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)): Use __glibcxx_check_insert_range. * 21_strings/basic_string/cons/char/1.cc: Adapt test to use __gnu_debug::string when _GLIBCXX_DEBUG. * 21_strings/basic_string/init-list.cc: Likewise. * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise. * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise. * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise. * 21_strings/basic_string/types/1.cc: Likewise. From-SVN: r262417
François Dumont committed -
2018-07-04 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/82009 * trans-decl.c (gfc_process_block_locals): Delete assert and set saved_local_decls = NULL_TREE. * gfortran.dg/block_16.f08. New test. From-SVN: r262416
Jerry DeLisle committed -
Currently only matches targets where _GLIBCXX_USE_RANDOM_TR1 is defined, which means /dev/random and /dev/urandom are usable. * testsuite/25_algorithms/make_heap/complexity.cc: Require effective target for std::random_device. * testsuite/26_numerics/random/random_device/cons/default.cc: Likewise. * testsuite/experimental/algorithm/sample-2.cc: Likewise. * testsuite/experimental/algorithm/shuffle.cc: Likewise. * testsuite/experimental/random/randint.cc: Likewise. * testsuite/lib/libstdc++.exp (check_effective_target_random_device): New proc. From-SVN: r262415
Jonathan Wakely committed -
2018-07-04 Jonathan Wakely <jwakely@redhat.com> Jakub Jelinek <jakub@redhat.com> * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r262414
Jonathan Wakely committed -
PR middle-end/86380 * expmed.c (choose_multiplier): Fix incorrect comparison with mask. From-SVN: r262401
Eric Botcazou committed -
2018-07-04 Martin Jambor <mjambor@suse.cz> PR hsa/86371 * Make-lang.in (BRIGINCLUDES): Remove erroneous include path in $HOME. From-SVN: r262398
Martin Jambor committed -
* tree-vrp.c (extract_range_from_binary_expr_1): Initialze neg_*_op* variables. From-SVN: r262380
Aldy Hernandez committed -
The intrinsic doesn't check for allowed conversions between scalar types, so restore the std::is_constructible check. Also make some trivial whitespace changes. PR libstdc++/86398 * include/std/type_traits (is_trivially_constructible): Check is_constructible before __is_trivially_constructible. * testsuite/20_util/is_trivially_constructible/value.cc: Add more tests, including negative cases. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use zero for dg-error lineno. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. From-SVN: r262379
Jonathan Wakely committed -
* include/std/bit (__rotl, __rotr): Avoid branch. (_If_is_unsigned_integer): Use remove_cv_t. * testsuite/26_numerics/bit/bitops.count/popcount.cc: New. From-SVN: r262378
Jonathan Wakely committed -
* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust test because aarch64 has a slightly different IL that provides more threading opportunities. From-SVN: r262377
Aldy Hernandez committed -
2018-07-04 Martin Liska <mliska@suse.cz> * tree-switch-conversion.c: Define max_ratio_for_speed and max_ratio_for_size constants. From-SVN: r262376
Martin Liska committed -
2018-07-04 Denys Vlasenko <dvlasenk@redhat.com> Martin Liska <mliska@suse.cz> PR middle-end/66240 PR target/45996 PR c/84100 * common.opt: Rename align options with 'str_' prefix. * common/config/i386/i386-common.c (set_malign_value): New function. (ix86_handle_option): Use it to set -falign-* options/ * config/aarch64/aarch64-protos.h (struct tune_params): Change type from int to string. * config/aarch64/aarch64.c: Update default values from int to string. * config/alpha/alpha.c (alpha_override_options_after_change): Likewise. * config/arm/arm.c (arm_override_options_after_change_1): Likewise. * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print max skip conditionally. * config/i386/freebsd.h (SUBALIGN_LOG): New. (ASM_OUTPUT_MAX_SKIP_ALIGN): Print max skip conditionally. * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print max skip conditionally. * config/i386/gnu-user.h (SUBALIGN_LOG): New. (ASM_OUTPUT_MAX_SKIP_ALIGN): Print max skip conditionally. * config/i386/i386.c (struct ptt): Change type from int to string. (ix86_default_align): Set default values. * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Print max skip conditionally. * config/i386/iamcu.h (SUBALIGN_LOG): New. (ASM_OUTPUT_MAX_SKIP_ALIGN): * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print max skip conditionally. * config/i386/openbsdelf.h (SUBALIGN_LOG): New. (ASM_OUTPUT_MAX_SKIP_ALIGN) Print max skip conditionally.: * config/i386/x86-64.h (SUBALIGN_LOG): New. (ASM_OUTPUT_MAX_SKIP_ALIGN): Print max skip conditionally. (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. * config/ia64/ia64.c (ia64_option_override): Set default values for alignment options. * config/m68k/m68k.c: Handle new str_align_* options. * config/mips/mips.c (mips_set_compression_mode): Change type of constants. (mips_option_override): Set default values for options. * config/powerpcspe/powerpcspe.c (rs6000_option_override_internal): Likewise. * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. * config/rx/rx.c (rx_option_override): Likewise. * config/rx/rx.h (JUMP_ALIGN): Use align_jumps_log. (LABEL_ALIGN): Use align_labels_log. (LOOP_ALIGN): Use align_loops_align. * config/s390/s390.c (s390_asm_output_function_label): Use new macros. * config/sh/sh.c (sh_override_options_after_change): Change type of constants. * config/spu/spu.c (spu_sched_init): Likewise. * config/sparc/sparc.c (sparc_option_override): Set default values for options. * config/visium/visium.c (visium_option_override): Likewise. * config/visium/visium.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Do not emit p2align format with last argument if it's not needed. * doc/invoke.texi: Document extended format of -falign-*. * final.c: Use align_labels alignment. * flags.h (struct target_flag_state): Change type to use align_flags. (struct align_flags_tuple): New. (struct align_flags): Likewise. (align_loops_log): Redefine macro to use new types. (align_loops_max_skip): Redefine macro to use new types. (align_jumps_log): Redefine macro to use new types. (align_jumps_max_skip): Redefine macro to use new types. (align_labels_log): Redefine macro to use new types. (align_labels_max_skip): Redefine macro to use new types. (align_functions_log): Redefine macro to use new types. (align_loops): Redefine macro to use new types. (align_jumps): Redefine macro to use new types. (align_labels): Redefine macro to use new types. (align_functions): Redefine macro to use new types. (align_functions_max_skip): Redefine macro to use new types. (align_loops_value): New macro. (align_jumps_value): New macro. (align_labels_value): New macro. (align_functions_value): New macro. * function.c (invoke_set_current_function_hook): Propagate alignment values from flags to global variables default in topleev.h. * ipa-icf.c (sem_function::equals_wpa): Use cl_optimization_option_eq instead of memcmp. * lto-streamer.h (cl_optimization_stream_out): Support streaming of string types. (cl_optimization_stream_in): Likewise. * optc-save-gen.awk: Support strings in cl_optimization. * opth-gen.awk: Likewise. * opts.c (finish_options): Remove error checking of invalid value ranges. (MAX_CODE_ALIGN): Remove. (MAX_CODE_ALIGN_VALUE): Likewise. (parse_and_check_align_values): New function. (check_alignment_argument): Likewise. (common_handle_option): Use check_alignment_argument. * opts.h (parse_and_check_align_values): Declare. * toplev.c (init_alignments): Remove. (read_log_maxskip): New. (parse_N_M): Likewise. (parse_alignment_opts): Likewise. (backend_init_target): Remove usage of init_alignments. * toplev.h (parse_alignment_opts): Declare. * tree-streamer-in.c (streamer_read_tree_bitfields): Add new argument. * tree-streamer-out.c (streamer_write_tree_bitfields): Likewise. * tree.c (cl_option_hasher::equal): New. * varasm.c: Use new global macros. 2018-07-04 Martin Liska <mliska@suse.cz> PR middle-end/66240 PR target/45996 PR c/84100 * lto.c (compare_tree_sccs_1): Use cl_optimization_option_eq instead of memcmp. 2018-07-04 Martin Liska <mliska@suse.cz> PR middle-end/66240 PR target/45996 PR c/84100 * gcc.dg/pr84100.c (foo): * gcc.target/i386/falign-functions-2.c: New test. * gcc.target/i386/falign-functions.c: New test. From-SVN: r262375
Martin Liska committed -
2018-07-04 Denys Vlasenko <dvlasenk@redhat.com> * config/i386/dragonfly.h: (ASM_OUTPUT_MAX_SKIP_ALIGN): Use a simpler align directive also if MAXSKIP = ALIGN-1. * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove "If N is large, do at least 8 byte alignment" code. Add SUBALIGN_LOG define. Use a simpler align directive also if MAXSKIP = ALIGN-1. * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. From-SVN: r262374
Denys Vlasenko committed -
2018-07-04 Martin Liska <mliska@suse.cz> Jonathan Wakely <jwakely@redhat.com> * coverage.c: Use correct type. * doc/invoke.texi: Language correction. Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r262373
Martin Liska committed -
2018-07-04 Martin Liska <mliska@suse.cz> * gcc.dg/pr47793.c: Remove. From-SVN: r262372
Martin Liska committed -
2018-07-04 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ * gcc.dg/vect/bb-slp-over-widen-1.c: Fix name of dump file for final scan test. * gcc.dg/vect/bb-slp-over-widen-2.c: Likewise. From-SVN: r262371
Richard Sandiford committed -
On x86, swapcontext may return via indirect branch when shadow stack is enabled. To support code instrumentation of control-flow transfers with -fcf-protection, add indirect_return function attribute to inform compiler that a function may return via indirect branch. Note: Unlike setjmp, swapcontext only returns once. Mark it return twice will unnecessarily disable compiler optimization as shown in the testcase here. gcc/ PR target/85620 * config/i386/i386.c (rest_of_insert_endbranch): Also generate ENDBRANCH for non-tail call which may return via indirect branch. * doc/extend.texi: Document indirect_return attribute. gcc/testsuite/ PR target/85620 * gcc.target/i386/pr85620-1.c: New test. * gcc.target/i386/pr85620-2.c: Likewise. * gcc.target/i386/pr85620-3.c: Likewise. * gcc.target/i386/pr85620-4.c: Likewise. From-SVN: r262370
H.J. Lu committed -
* config/h8300/h8300.md (logical<mode>3_sn, logical<mode>3): Merge into a single pattern. From-SVN: r262369
Jeff Law committed -
gcc/ChangeLog: PR tree-optimization/86274 * gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify precondition. (format_floating): Correct handling of infinities and NaNs. gcc/testsuite/ChangeLog: PR tree-optimization/86274 * gcc.dg/tree-ssa/builtin-sprintf-9.c: New test. * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust. * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-warn-15.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-warn-7.c: Same. * gcc.dg/tree-ssa/builtin-sprintf.c: Same. * gcc.dg/tree-ssa/pr83198.c: Same. From-SVN: r262368
Martin Sebor committed
-