- 11 Jan, 2017 12 commits
-
-
PR libstdc++/78273 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume the heterogeneous comparison can only find one match. * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise. * testsuite/23_containers/map/operations/2.cc: Test count works with comparison function that just partitions rather than sorting. * testsuite/23_containers/set/operations/2.cc: Likewise. From-SVN: r244317
Jonathan Wakely committed -
The files arm-cores.def, arm-fpus.def and arm-arches.def are parsed and used in several places and the format is slightly awkward to maintain as they must be parsable in C and by certain scripts. Furthermore, changes to the content that affects every entry is particularly awkward for dealing with merges. This patch replaces all three files with a single file that specifies all the command-line related definitions in a new format that allows for better checking for consistency as well as (hopefully) easier to merge changes. The awk script used to parse it is relatively complicated, but should be pretty portable. It works by parsing in all the data and then operating one of a number of possible sub-commands to generate the desired output. The new method picked up one error. The CPU descriptions referred to an architecture ARMv5tej which was not supported by -march. This has been fixed by adding the relevant entry to the architecture list. gcc: * config.gcc: Use new awk script to check CPU, FPU and architecture parameters for --with-... options. * config/arm/parsecpu.awk: New file * config/arm/arm-cpus.in: New file. * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def files. * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def files. * config/arm/t-arm: Update dependency rules. * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead of processing .def files. * config/arm/genopt.sh: Deleted. * config/arm/gentune.sh: Deleted. * config/arm/arm-cores.def: Deleted. * config/arm/arm-arches.def: Deleted. * config/arm/arm-fpus.def: Deleted. * config/arm/arm-tune.md: Regenerated. * config/arm/arm-tables.opt: Regenerated. * config/arm/arm-cpu.h: New generated file. * config/arm/arm-cpu-data.h: New generated file. * config/arm/arm-cpu-cdata.h: New generated file. Contrib: * gcc_update: Adjust touch list. From-SVN: r244316
Richard Earnshaw committed -
PR lto/79042 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized bit. (input_varpool_node): Unpack dynamically_initialized bit. From-SVN: r244314
Maxim Ostapenko committed -
2017-01-11 Martin Liska <mliska@suse.cz> * gcc.dg/tree-ssa/flatten-3.c: Add -fno-ipa-icf to dg-options. From-SVN: r244313
Martin Liska committed -
* g++.dg/cpp1z/decomp4.C (test): Use 2 identifier decomposition instead of just 1 for the decomposition from struct C. From-SVN: r244312
Jakub Jelinek committed -
PR rtl-optimization/79032 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test the alignment of the adjusted memory reference against that of MODE, instead of the alignment of the original memory reference. From-SVN: r244311
Eric Botcazou committed -
2017-01-11 Richard Biener <rguenther@suse.de> PR bootstrap/79052 * gimple-parser.c (c_parser_gimple_switch_stmt): Add missing returns on parse errors. From-SVN: r244310
Richard Biener committed -
Reduce the size of variant, it doesn't need an index of type size_t internally. * include/std/variant (parse_numbers.h): New include. (__select_index): New. (_Variant_storage<false, _Types...>::_M_reset_impl): Use _index_type for comparison with variant_npos. (_Variant_storage<false, _Types...>::__index_type): New. (_Variant_storage<false, _Types...>::_M_index): Change the type from size_t to __index_type. (_Variant_storage<true, _Types...>::__index_type): New. (_Variant_storage<true, _Types...>::_M_index): Change the type from size_t to __index_type. (_Variant_base::_M_valid): Use _Storage::__index_type for comparison with variant_npos. (variant::index): Use _Base::_Storage::__index_type for comparison with variant_npos. * testsuite/20_util/variant/index_type.cc: New. From-SVN: r244309
Ville Voutilainen committed -
2017-01-11 Martin Jambor <mjambor@suse.cz> * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL test. * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial decorated functions. From-SVN: r244308
Martin Jambor committed -
2017-01-11 Richard Biener <rguenther@suse.de> * tree-vrp.c (evrp_dom_walker::before_dom_children): Also set range/nonnull info for PHI results. Do not set it on stmts marked for removal. * gcc.dg/tree-ssa/pr61743-1.c: Adjust. From-SVN: r244305
Richard Biener committed -
PR middle-end/50199 * lto-lang.c (lto_post_options): Force flag_merge_constants = 1 if it was 0. * gcc.dg/lto/pr50199_0.c: New test. From-SVN: r244304
Jakub Jelinek committed -
From-SVN: r244302
GCC Administrator committed
-
- 10 Jan, 2017 28 commits
-
-
* expr.c (store_field): In the bitfield case, fetch the return value from the registers before applying a single big-endian adjustment. Always do a final load for a BLKmode value not larger than a word. From-SVN: r244299
Eric Botcazou committed -
PR testsuite/78960 - FAIL: gcc.dg/tree-ssa/builtin-sprintf.c execution test PR testsuite/78959 - FAIL: gcc.c-torture/execute/pr78622.c PR testsuite/78133 - Commit r241489 adds printf specifiers not supported by newlib gcc/testsuite/ChangeLog: PR testsuite/78960 PR testsuite/78959 PR testsuite/78133 * gcc.dg/tree-ssa/builtin-sprintf.c: Require C99 runtime. * gcc.dg/tree-ssa/pr78622.c: Ditto. From-SVN: r244298
Martin Sebor committed -
gcc/testsuite/ChangeLog: PR middle-end/78138 * gcc.dg/pr78138.c: New test. From-SVN: r244297
Martin Sebor committed -
PR c++/77598 * g++.dg/cpp0x/constexpr-ref11.C: New. From-SVN: r244296
Jason Merrill committed -
gcc/testsuite/ChangeLog: PR middle-end/78245 * gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Add tests. gcc/ChangeLog: PR middle-end/78245 * gimple-ssa-sprintf.c (get_destination_size): Call {init,fini}object_sizes. * tree-object-size.c (addr_object_size): Adjust. (pass_through_call): Adjust. (pass_object_sizes::execute): Adjust. * tree-object-size.h (fini_object_sizes): Declare. From-SVN: r244294
Martin Sebor committed -
gcc/testsuite/ChangeLog: PR middle-end/78245 * gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Add tests. gcc/ChangeLog: PR middle-end/78245 * gimple-ssa-sprintf.c (get_destination_size): Call {init,fini}object_sizes. * tree-object-size.c (addr_object_size): Adjust. (pass_through_call): Adjust. (pass_object_sizes::execute): Adjust. * tree-object-size.h (fini_object_sizes): Declare. From-SVN: r244293
Martin Sebor committed -
PR c++/77949 identifies an ICE when the C++ frontend attempts to emit a fix-it hint inserting a missing semicolon at column 4097 of a source file. This column value exceeds LINE_MAP_MAX_COLUMN_NUMBER and hence isn't representable using a location_t. Attempting to do so leads to these problems, which this patch fixes: (a) when encountering a column number > LINE_MAP_MAX_COLUMN_NUMBER we create a new linemap with m_column_and_range_bits == 0, but linemap_position_for_column doesn't check for this, and hence can emit a bogus location_t value that's calculated relative to the previous linemap start, but which will be decoded relative to the new linemap, leading to very large incorrect line values. (b) when encountering a column number that can't be represented, and for which the linemap was pre-existing, the code would hit this assertion: if (linemap_assert_fails (column < (1u << map->m_column_and_range_bits))) around a bail-out condition. The patch replaces this assertion with a simple conditional, to stop the ICE when this occurs, and fixes the bit count (effective column bits, vs column+range bits) (c) the C++ frontend wasn't checking for failure of linemap_position_for_loc_and_offset when considering emitting the fix-it hint. The patch adds a conditional, so that no fix-it hint is emitted if the location is bogus. gcc/cp/ChangeLog: PR c++/77949 * parser.c (cp_parser_class_specifier_1): Only suggest inserting a missing semicolon if we have a valid insertion location for the fix-it hint. gcc/ChangeLog: PR c++/77949 * input.c (selftest::test_accessing_ordinary_linemaps): Verify that we correctly handle column numbers greater than LINE_MAP_MAX_COLUMN_NUMBER. gcc/testsuite/ChangeLog: PR c++/77949 * g++.dg/diagnostic/pr77949.C: New test case. libcpp/ChangeLog: PR c++/77949 * line-map.c (linemap_position_for_column): When calling linemap_start_line, detect if a new linemap was created with 0 column bits, and bail out early if this is the case. (linemap_position_for_loc_and_offset): Replace overzealous linemap_assert_fails with a simple conditional; use correct bit count. From-SVN: r244292
David Malcolm committed -
I looked at a diff of proc.go between Go 1.7 and gccgo, and copied over all the easy stuff. Reviewed-on: https://go-review.googlesource.com/35090 From-SVN: r244291
Ian Lance Taylor committed -
gcc/ChangeLog: PR tree-optimization/78775 * builtins.c (get_size_range): Move... * calls.c: ...to here. (alloc_max_size): Accept zero argument. (operand_signed_p): Remove. (maybe_warn_alloc_args_overflow): Call get_size_range. * calls.h (get_size_range): Declare. gcc/testsuite/ChangeLog: PR tree-optimization/78775 * gcc.dg/attr-alloc_size-4.c: Add test cases. * gcc.dg/attr-alloc_size-10.c: New test. * gcc.dg/attr-alloc_size-11.c: New test. * gcc.dg/builtin-stringop-chk-7.c: New test. * gcc.dg/pr78775.c: New test. * gcc.dg/pr78973-2.c: New test. * gcc.dg/pr78973.c: New test. From-SVN: r244290
Martin Sebor committed -
2017-01-10 Joe Seymour <joe.s@somniumtech.com> * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data from TI's devices.csv file as of September 2016. * config/msp430/msp430.c (msp430_mcu_data): Likewise. From-SVN: r244289
Joe Seymour committed -
From-SVN: r244288
Joseph Myers committed -
re PR middle-end/77766 (wrong code at -O2 and -O3 in 64-bit mode on x86_64-linux-gnu (executable hangs)) PR tree-optimization/77766 PR tree-optimization/78856 * gcc.c-torture/execute/pr77766.c: New test. From-SVN: r244287
Jeff Law committed -
2017-01-10 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/extend.texi: Tweak formatting to fix overfull hbox warnings. * doc/invoke.texi: Likewise. * doc/md.texi: Likewise. * doc/objc.texi: Likewise. From-SVN: r244286
Sandra Loosemore committed -
From-SVN: r244283
Jason Merrill committed -
* parser.c (cp_parser_decomposition_declaration): Use cp_parser_initializer. From-SVN: r244282
Jason Merrill committed -
2017-01-10 Joshua Conner <joshconner@google.com> * config/arm/fuchsia-elf.h: New file. * config/fuchsia.h: New file. * config.gcc (*-*-fuchsia*): Set native_system_header_dir. (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to targets. * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts. From-SVN: r244281
Joshua Conner committed -
* testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust effective target selector to prevent running in C++17 mode. From-SVN: r244280
Jonathan Wakely committed -
PR libstdc++/77528 * include/bits/stl_queue.h (queue::c): Add default member initializer. (queue::queue()): Add constructor and define as defaulted. (queue::queue(_Sequence&&)): Remove default argument. (priority_queue::c, priority_queue::comp): Add default member initializers. (priority_queue::priority_queue()): Add constructor and define as defaulted. (priority_queue::priority_queue(const _Compare&, _Sequence&&)): Remove default argument for first parameter. * include/bits/stl_stack.h (stack::c): Add default member initializer. (stack::stack()): Add constructor and define as defaulted. (stack::stack(const _Sequence&)): Remove default argument. * testsuite/23_containers/priority_queue/requirements/ explicit_instantiation/1.cc: Test explicit instantiation with non-DefaultConstructible sequence. * testsuite/23_containers/priority_queue/77528.cc: New test. * testsuite/23_containers/priority_queue/requirements/ explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc. * testsuite/23_containers/queue/77528.cc: New test. * testsuite/23_containers/queue/requirements/explicit_instantiation/ 1.cc: Test explicit instantiation with non-DefaultConstructible sequence. * testsuite/23_containers/queue/requirements/explicit_instantiation/ 1_c++0x.cc: Replace with 1_c++98.cc. * testsuite/23_containers/stack/77528.cc: New test. * testsuite/23_containers/stack/requirements/explicit_instantiation/ 1.cc: Test explicit instantiation with non-DefaultConstructible sequence. * testsuite/23_containers/stack/requirements/explicit_instantiation/ 1_c++0x.cc: Replace with 1_c++98.cc. From-SVN: r244278
Jonathan Wakely committed -
From-SVN: r244276
Uros Bizjak committed -
PR sanitizer/78992 * sanitizer_common/sanitizer_platform_limits_posix.h (struct __sanitizer_sigaction): Cherry-pick upstream r291561. From-SVN: r244275
James Clarke committed -
2016-01-10 Richard Biener <rguenther@suse.de> PR tree-optimization/79034 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Propagate out degenerate PHIs in the joiner. * g++.dg/torture/pr79034.C: New testcase. From-SVN: r244274
Richard Biener committed -
2017-01-10 Martin Liska <mliska@suse.cz> * gcc.dg/ipa/ipa-icf-1.c: Change scanned pattern. * gcc.dg/ipa/ipa-icf-10.c: Likewise. * gcc.dg/ipa/ipa-icf-11.c: Likewise. * gcc.dg/ipa/ipa-icf-12.c: Likewise. * gcc.dg/ipa/ipa-icf-13.c: Likewise. * gcc.dg/ipa/ipa-icf-16.c: Likewise. * gcc.dg/ipa/ipa-icf-18.c: Likewise. * gcc.dg/ipa/ipa-icf-2.c: Likewise. * gcc.dg/ipa/ipa-icf-20.c: Likewise. * gcc.dg/ipa/ipa-icf-21.c: Likewise. * gcc.dg/ipa/ipa-icf-23.c: Likewise. * gcc.dg/ipa/ipa-icf-25.c: Likewise. * gcc.dg/ipa/ipa-icf-26.c: Likewise. * gcc.dg/ipa/ipa-icf-27.c: Likewise. * gcc.dg/ipa/ipa-icf-3.c: Likewise. * gcc.dg/ipa/ipa-icf-35.c: Likewise. * gcc.dg/ipa/ipa-icf-36.c: Likewise. * gcc.dg/ipa/ipa-icf-37.c: Likewise. * gcc.dg/ipa/ipa-icf-5.c: Likewise. * gcc.dg/ipa/ipa-icf-7.c: Likewise. * gcc.dg/ipa/ipa-icf-8.c: Likewise. * gcc.dg/ipa/pr64307.c: Likewise. * gcc.dg/ipa/pr77653.c: Likewise. 2017-01-10 Martin Liska <mliska@suse.cz> * ipa-icf.c (sort_sem_items_by_decl_uid): New function. (sort_congruence_classes_by_decl_uid): Likewise. (sort_congruence_class_groups_by_decl_uid): Likewise. (sem_item_optimizer::merge_classes): Sort class, groups in these classes and members in the groups by DECL_UID of declarations. This would make merge operations stable. From-SVN: r244273
Martin Liska committed -
2017-01-10 Martin Liska <mliska@suse.cz> * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove usage of m_classes_vec. (sem_item_optimizer::~sem_item_optimizer): Likewise. (sem_item_optimizer::get_group_by_hash): Likewise. (sem_item_optimizer::subdivide_classes_by_equality): Likewise. (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise. (sem_item_optimizer::verify_classes): Likewise. (sem_item_optimizer::process_cong_reduction): Likewise. (sem_item_optimizer::dump_cong_classes): Likewise. (sem_item_optimizer::merge_classes): Likewise. * ipa-icf.h (congruence_class_hash): Rename from congruence_class_group_hash. Remove declaration of m_classes_vec. From-SVN: r244272
Martin Liska committed -
Call _M_extract_* functions family through temporary int objects, so it doesn't convert from lvalue to rvalue through a temporary in AVR because of the incompatible types used in AVR-Libc. This fixes compilation errors with AVR-Libc while compiling libstdc++ for AVR target. 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br> * include/bits/locale_facets_nonio.tcc (time_get::_M_extract_via_format): Avoid compilation errors with non-standard struct tm. From-SVN: r244271
Felipe Magno de Almeida committed -
gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET, OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New. * config.gcc: Add avx512vpopcntdqintrin.h. * config/i386/avx512vpopcntdqintrin.h: New. * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New. * config/i386/i386-builtin-types.def: Add new types. * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si, __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di, __builtin_ia32_vpopcountq_v8di_mask): New. * config/i386/i386-c.c (ix86_target_macros_internal): Define __AVX512VPOPCNTDQ__. * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq. (PTA_AVX512VPOPCNTDQ): Define. * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ, TARGET_AVX512VPOPCNTDQ_P): Define. * config/i386/i386.opt: Add mavx512vpopcntdq. * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h. * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New. libgcc/ * config/i386/cpuinfo.h (processor_features): Add FEATURE_AVX512VPOPCNTDQ. * config/i386/cpuinfo.c (get_available_features): Habdle new feature. gcc/testsuite/ * g++.dg/other/i386-2.C: Add -mavx512vpopcntdq. * g++.dg/other/i386-3.C: Ditto. * gcc.target/i386/sse-12.c: Ditto. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-22.c: Ditto. * gcc.target/i386/sse-23.c: Ditto. * gcc.target/i386/builtin_target.c: Handle new option. * gcc.target/i386/funcspec-56.inc: Test new attributes. * gcc.target/i386/avx512vpopcntdq-vpopcntd.c: New test. * gcc.target/i386/avx512vpopcntdq-vpopcntq.c: Ditto. From-SVN: r244263
Andrew Senkevich committed -
2017-01-10 François Dumont <fdumont@gcc.gnu.org> Jonathan Wakely <jwakely@redhat.com> * python/libstdcxx/v6/printers.py (_versioned_namespace): Define. (is_specialization, strip_versioned_namespace): New helpers functions to work with symbols in the versioned namespace. (Printer.add_version): Add second name using versioned namespace. (add_one_template_type_printer, add_one_type_printer): Add second type printers using versioned namespace. (register_type_printers): Add template type printer for basic_string. (build_libstdcxx_dictionary): Remove dead code. * python/libstdcxx/v6/xmethods.py: Make all matchers look for versioned namespace. * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected results. * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r244262
François Dumont committed -
PR middle-end/77484 * predict.def (PRED_CALL): Set to 67. From-SVN: r244260
Jan Hubicka committed -
Drop the size arguments for the hash/equal functions stored in type descriptors. Types know what size they are. To make this work, generate hash/equal functions for types that can use an identity comparison but are not a standard size and alignment. Drop the multiplications by 33 in the generated hash code and the reflect package hash code. They are not necessary since we started passing a seed value around, as the seed includes the hash of the earlier values. Copy the algorithms for standard types from the Go 1.7 runtime, replacing the C functions. Reviewed-on: https://go-review.googlesource.com/34983 From-SVN: r244256
Ian Lance Taylor committed
-