platform/upstream/gcc.git
7 years agoPR middle-end/78245 - missing -Wformat-length on an overflow of a dynamically allocat...
Martin Sebor [Tue, 10 Jan 2017 21:56:44 +0000 (14:56 -0700)]
PR middle-end/78245 - missing -Wformat-length on an overflow of a dynamically allocated buffer

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

7 years agoPR middle-end/78245 - missing -Wformat-length on an overflow of a dynamically allocat...
Martin Sebor [Tue, 10 Jan 2017 21:54:15 +0000 (14:54 -0700)]
PR middle-end/78245 - missing -Wformat-length on an overflow of a dynamically allocated buffer

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

7 years agoFix issues with unrepresentable column numbers (PR c++/77949)
David Malcolm [Tue, 10 Jan 2017 21:54:09 +0000 (21:54 +0000)]
Fix issues with unrepresentable column numbers (PR c++/77949)

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

7 years agoruntime: copy more scheduler code from Go 1.7 runtime
Ian Lance Taylor [Tue, 10 Jan 2017 21:09:00 +0000 (21:09 +0000)]
runtime: copy more scheduler code from Go 1.7 runtime

    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

7 years agoPR tree-optimization/78775 - [7 Regression] ICE in maybe_warn_alloc_args_overflow
Martin Sebor [Tue, 10 Jan 2017 21:02:07 +0000 (21:02 +0000)]
PR tree-optimization/78775 - [7 Regression] ICE in maybe_warn_alloc_args_overflow

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

7 years agodriver-msp430.c (msp430_mcu_data): Sync with data from TI's devices.csv file as of...
Joe Seymour [Tue, 10 Jan 2017 20:59:20 +0000 (20:59 +0000)]
driver-msp430.c (msp430_mcu_data): Sync with data from TI's devices.csv file as of September 2016.

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

7 years ago* da.po: Update.
Joseph Myers [Tue, 10 Jan 2017 20:59:06 +0000 (20:59 +0000)]
* da.po: Update.

From-SVN: r244288

7 years agore PR middle-end/77766 (wrong code at -O2 and -O3 in 64-bit mode on x86_64-linux...
Jeff Law [Tue, 10 Jan 2017 20:55:59 +0000 (13:55 -0700)]
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

7 years agoextend.texi: Tweak formatting to fix overfull hbox warnings.
Sandra Loosemore [Tue, 10 Jan 2017 20:37:00 +0000 (15:37 -0500)]
extend.texi: Tweak formatting to fix overfull hbox warnings.

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

7 years ago* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using.
Jason Merrill [Tue, 10 Jan 2017 19:04:28 +0000 (14:04 -0500)]
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using.

From-SVN: r244283

7 years agoFI 20, decomposition declaration with parenthesized initializer.
Jason Merrill [Tue, 10 Jan 2017 19:04:22 +0000 (14:04 -0500)]
FI 20, decomposition declaration with parenthesized initializer.

* parser.c (cp_parser_decomposition_declaration): Use
cp_parser_initializer.

From-SVN: r244282

7 years agofuchsia-elf.h: New file.
Joshua Conner [Tue, 10 Jan 2017 18:00:43 +0000 (18:00 +0000)]
fuchsia-elf.h: New file.

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

7 years agoAdjust effective target selector to fix C++17 FAIL
Jonathan Wakely [Tue, 10 Jan 2017 17:44:42 +0000 (17:44 +0000)]
Adjust effective target selector to fix C++17 FAIL

* testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
effective target selector to prevent running in C++17 mode.

From-SVN: r244280

7 years agoPR77528 add default constructors for container adaptors
Jonathan Wakely [Tue, 10 Jan 2017 17:30:20 +0000 (17:30 +0000)]
PR77528 add default constructors for container adaptors

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

7 years ago* ChangeLog: Fix whitespace.
Uros Bizjak [Tue, 10 Jan 2017 16:23:52 +0000 (17:23 +0100)]
* ChangeLog: Fix whitespace.

From-SVN: r244276

7 years agore PR sanitizer/78992 (Incorrect sigaction definition on 32-bit sparc)
James Clarke [Tue, 10 Jan 2017 15:22:56 +0000 (15:22 +0000)]
re PR sanitizer/78992 (Incorrect sigaction definition on 32-bit sparc)

PR sanitizer/78992
* sanitizer_common/sanitizer_platform_limits_posix.h
(struct __sanitizer_sigaction): Cherry-pick upstream r291561.

From-SVN: r244275

7 years agore PR tree-optimization/79034 (error: missing PHI def in verify_gimple_in_cfg)
Richard Biener [Tue, 10 Jan 2017 14:50:32 +0000 (14:50 +0000)]
re PR tree-optimization/79034 (error: missing PHI def in verify_gimple_in_cfg)

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

7 years agoIPA ICF: make algorithm stable to survive -fcompare-debug
Martin Liska [Tue, 10 Jan 2017 14:39:33 +0000 (15:39 +0100)]
IPA ICF: make algorithm stable to survive -fcompare-debug

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

7 years agoRevert m_classes_vec introduction.
Martin Liska [Tue, 10 Jan 2017 14:37:55 +0000 (15:37 +0100)]
Revert m_classes_vec introduction.

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

7 years agoUse temporary int objects to access struct tm members
Felipe Magno de Almeida [Tue, 10 Jan 2017 14:15:59 +0000 (14:15 +0000)]
Use temporary int objects to access struct tm members

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

7 years agoEnable AVX-512 VPOPCNTD/VPOPCNTQ instructions.
Andrew Senkevich [Tue, 10 Jan 2017 12:55:41 +0000 (12:55 +0000)]
Enable AVX-512 VPOPCNTD/VPOPCNTQ instructions.

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

7 years agoMake Python printers and xmethods work with versioned namespace
François Dumont [Tue, 10 Jan 2017 12:38:42 +0000 (12:38 +0000)]
Make Python printers and xmethods work with versioned namespace

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

7 years agore PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000...
Jan Hubicka [Tue, 10 Jan 2017 09:14:54 +0000 (10:14 +0100)]
re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP)

PR middle-end/77484
* predict.def (PRED_CALL): Set to 67.

From-SVN: r244260

7 years agocompiler, runtime: drop size arguments to hash/equal functions
Ian Lance Taylor [Tue, 10 Jan 2017 03:59:20 +0000 (03:59 +0000)]
compiler, runtime: drop size arguments to hash/equal functions

    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

7 years agoDaily bump.
GCC Administrator [Tue, 10 Jan 2017 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244255

7 years agoPR testsuite/79036 - gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244037
Martin Sebor [Mon, 9 Jan 2017 23:31:38 +0000 (23:31 +0000)]
PR testsuite/79036 - gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244037

PR testsuite/79036 - gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244037
gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/builtin-sprintf.c: Handle extended formats
with different precisions.

From-SVN: r244250

7 years agoexpr.c (store_field): In the bitfield case...
Eric Botcazou [Mon, 9 Jan 2017 22:17:17 +0000 (22:17 +0000)]
expr.c (store_field): In the bitfield case...

* expr.c (store_field): In the bitfield case, if the value comes from
a function call and is of an aggregate type returned in registers, do
not modify the field mode; extract the value in all cases if the mode
is BLKmode and the size is not larger than a word.

From-SVN: r244249

7 years agore PR target/71017 (libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift...
Dominique d'Humieres [Mon, 9 Jan 2017 22:00:32 +0000 (23:00 +0100)]
re PR target/71017 (libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift of 1 by 31 places cannot be represented in type 'int')

PR target/71017
* config/i386/cpuid.h: Fix undefined behavior.

From-SVN: r244248

7 years agore PR tree-optimization/79007 (gcc.dg/tree-ssa/dse-points-to.c fails starting with...
Jeff Law [Mon, 9 Jan 2017 21:53:02 +0000 (14:53 -0700)]
re PR tree-optimization/79007 (gcc.dg/tree-ssa/dse-points-to.c fails starting with r244067)

PR tree-optimization/79007
PR tree-optimization/67955
* tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
conservative for pt.null when flag_non_call_exceptions is on.

From-SVN: r244247

7 years agoImplement P0195R2, C++17 variadic using.
Jason Merrill [Mon, 9 Jan 2017 21:51:08 +0000 (16:51 -0500)]
Implement P0195R2, C++17 variadic using.

* parser.c (cp_parser_using_declaration): Handle ellipsis and comma.
* pt.c (tsubst_decl): Handle pack expansion in USING_DECL_SCOPE.
* error.c (dump_decl): Likewise.

From-SVN: r244246

7 years agore PR translation/79019 (translatable string typo in cif-code.def:141)
Jakub Jelinek [Mon, 9 Jan 2017 21:48:33 +0000 (22:48 +0100)]
re PR translation/79019 (translatable string typo in cif-code.def:141)

PR translation/79019
PR translation/79020
* params.def (PARAM_INLINE_MIN_SPEEDUP,
PARAM_IPA_CP_SINGLE_CALL_PENALTY,
PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
in descriptions.
* config/avr/avr.opt (maccumulate-args): Likewise.
* config/msp430/msp430.opt (mwarn-mcu): Likewise.
* common.opt (freport-bug): Likewise.
* cif-code.def (CIF_FINAL_ERROR): Likewise.
* doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
* config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
translatable string.
* config/i386/i386.c (function_value_32): Likewise.
* config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
* config/msp430/msp430.c (msp430_option_override, msp430_attr):
Likewise.
* config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
* common/config/msp430/msp430-common.c (msp430_handle_option):
Likewise.
* symtab.c (symtab_node::verify_base): Likewise.
* opts.c (set_debug_level): Likewise.
* tree.c (verify_type_variant): Likewise.  Fix typo in comment.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
missing whitespace to translatable strings.
* config/avr/avr.md (bswapsi2): Fix typo in comment.
* config/sh/superh.h: Likewise.
* config/i386/xopintrin.h: Likewise.
* config/i386/znver1.md: Likewise.
* config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
* ipa-inline-analysis.c (compute_inline_parameters): Likewise.
* double-int.h (struct double_int): Likewise.
* double-int.c (div_and_round_double): Likewise.
* wide-int.cc: Likewise.
* tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
* tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
* cfgcleanup.c (crossjumps_occured): Renamed to ...
(crossjumps_occurred): ... this.
(try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
Adjust all uses.
cp/
* semantics.c (finish_omp_clauses): Add missing whitespace to
translatable strings.
* cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Fix comment typo.
lto/
* lto-symtab.c (lto_symtab_merge_symbols): Fix comment typo.
fortran/
* decl.c (attr_decl1): Fix spelling in translatable string.
* intrinsic.texi: Fix spelling - invokation -> invocation.
* lang.opt (faggressive-function-elimination, gfc_convert): Fix
typos in descriptions.
* openmp.c (resolve_omp_clauses): Add missing whitespace to
translatable strings.
c-family/
* c.opt (Wnormalized=): Fix typo in description.
testsuite/
* c-c++-common/goacc/host_data-2.c (f): Adjust expected spelling of
diagnostics.
* gfortran.dg/initialization_17.f90: Likewise.

From-SVN: r244245

7 years agore PR testsuite/79026 (The tests changed by revision r244006 now fail on darwin)
Dominique d'Humieres [Mon, 9 Jan 2017 21:41:02 +0000 (22:41 +0100)]
re PR testsuite/79026 (The tests changed by revision r244006 now fail on darwin)

testsuite/ChangeLog:

PR testsuite/79026
* gcc.target/i386/pr78904-2.c: Require nonpic targets.
* gcc.target/i386/pr78904-4.c: Likewise.
* gcc.target/i386/pr78904-6.c: Likewise.
* gcc.target/i386/pr78967-2.c: Likewise.

From-SVN: r244244

7 years agore PR libgomp/60670 (omp.h may differ between multilibs)
Francois-Xavier Coudert [Mon, 9 Jan 2017 20:29:06 +0000 (20:29 +0000)]
re PR libgomp/60670 (omp.h may differ between multilibs)

PR libgomp/60670
* Makefile.am: Make fincludedir multilib-aware.
* Makefile.in: Regenerate.

From-SVN: r244239

7 years agore PR tree-optimization/78899 (Vestorized loop with optmized mask stores motion is...
Jakub Jelinek [Mon, 9 Jan 2017 20:10:23 +0000 (21:10 +0100)]
re PR tree-optimization/78899 (Vestorized loop with optmized mask stores motion is completely deleted after r242520.)

PR tree-optimization/78899
* tree-if-conv.c (version_loop_for_if_conversion): Instead of
returning bool return struct loop *, NULL for failure and the new
loop on success.
(versionable_outer_loop_p): Don't version outer loop if it has
dont_vectorized bit set.
(tree_if_conversion): When versioning outer loop, ensure
tree_if_conversion is performed also on the inner loop of the
non-vectorizable outer loop copy.
* tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
LOOP_VECTORIZED in inner loop of the scalar outer loop and
prevent vectorization of it.
(vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
the outer loop vectorization of the non-scalar version is attempted
before vectorization of the inner loop in scalar version.  If
outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
vectorization of its inner loop.
* tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
has 2 inner loops, rename also on edges from bb whose single pred
is outer_loop->header.  Fix typo in function comment.

* gcc.target/i386/pr78899.c: New test.
* gcc.dg/pr71077.c: New test.

From-SVN: r244238

7 years agoPR bootstrap/79033 - asan.c not compiling with make BOOT_CFLAGS=-O0
Martin Sebor [Mon, 9 Jan 2017 20:08:49 +0000 (20:08 +0000)]
PR bootstrap/79033 - asan.c not compiling with make BOOT_CFLAGS=-O0

gcc/ChangeLog:
* asan.c (asan_emit_stack_protection): Increase local buffer size
to avoid snprintf truncation warning.

From-SVN: r244237

7 years agoruntime: copy more of scheduler from Go 1.7 runtime
Ian Lance Taylor [Mon, 9 Jan 2017 19:37:19 +0000 (19:37 +0000)]
runtime: copy more of scheduler from Go 1.7 runtime

    This started by moving procresize from C to Go so that we can pass the
    right type to the memory allocator when allocating a p, which forced
    the gomaxprocs variable to move from C to Go, and everything else
    followed from that.

    Reviewed-on: https://go-review.googlesource.com/34916

From-SVN: r244236

7 years agoaarch64-cores.def: Add thunderx2t99.
Andrew Pinski [Mon, 9 Jan 2017 18:52:42 +0000 (18:52 +0000)]
aarch64-cores.def: Add thunderx2t99.

2017-01-09  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
        to reference thunderx2t99 for the tuning structure
        * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs): Rename to ...
        (thunderx2t99_extra_costs): This.
        * config/aarch64/aarch64-tune.md: Regenerate.
        * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
        (vulcan_addrcost_table): This.
        (vulcan_regmove_cost): Rename to ...
        (thunderx2t99_regmove_cost): This.
        (vulcan_vector_cost): Rename to ...
        (thunderx2t99_vector_cost): this.
        (vulcan_branch_cost): Rename to ...
        (thunderx2t99_branch_cost): This.
        (vulcan_tunings): Rename to ...
        (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
        * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.

From-SVN: r244235

7 years agoFix formating.
Andrew Pinski [Mon, 9 Jan 2017 18:51:40 +0000 (10:51 -0800)]
Fix formating.

From-SVN: r244234

7 years ago[PR 78365] Prudent type handling in IPA VR-prop
Martin Jambor [Mon, 9 Jan 2017 18:26:37 +0000 (19:26 +0100)]
[PR 78365] Prudent type handling in IPA VR-prop

2017-01-09  Martin Jambor  <mjambor@suse.cz>

PR ipa/78365
PR ipa/78599
* ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
* ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
(propagate_vr_accross_jump_function): Use the above function for all
value range computations for pass-through jump functions and type
converasion from explicit value range values.
        (ipcp_propagate_stage): Do not attempt to deduce types of formal
        parameters from TYPE_ARG_TYPES.
* ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
(ipa_write_node_info): Stream type of the actual argument.
(ipa_read_node_info): Likewise. Also remove trailing whitespace.

testsuite/
* gcc.dg/torture/pr78365.c: New test.

From-SVN: r244232

7 years agoPR79017 workaround incomplete C99 math on darwin
Jonathan Wakely [Mon, 9 Jan 2017 17:15:58 +0000 (17:15 +0000)]
PR79017 workaround incomplete C99 math on darwin

PR libstdc++/79017
* acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
functions separately on darwin and if they're missing define
_GLIBCXX_NO_C99_ROUNDING_FUNCS.
* config.h.in: Regenerate.
* configure: Regenerate.
* include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
(llrintf, llrintl, llround, llroundf, llroundl): Do not define.

From-SVN: r244231

7 years ago* vi.po: Update.
Joseph Myers [Mon, 9 Jan 2017 16:55:06 +0000 (16:55 +0000)]
* vi.po: Update.

From-SVN: r244230

7 years ago* da.po, es.po, sv.po, vi.po: Update.
Joseph Myers [Mon, 9 Jan 2017 16:54:40 +0000 (16:54 +0000)]
* da.po, es.po, sv.po, vi.po: Update.

From-SVN: r244229

7 years agore PR c++/78948 ([C++17] constexpr if instantiating too eagerly)
Jakub Jelinek [Mon, 9 Jan 2017 16:24:19 +0000 (17:24 +0100)]
re PR c++/78948 ([C++17] constexpr if instantiating too eagerly)

PR c++/78948
* g++.dg/cpp1z/constexpr-if10.C: Fix PR number in comment.
(main): Use int* instead of long long.

From-SVN: r244228

7 years agoDo not error when -E provided (PR pch/78970).
Martin Liska [Mon, 9 Jan 2017 15:24:35 +0000 (16:24 +0100)]
Do not error when -E provided (PR pch/78970).

2017-01-09  Martin Liska  <mliska@suse.cz>

PR pch/78970
* gcc.c (driver_handle_option): Handle OPT_E and set
have_E.
(lookup_compiler): Do not show error message with have_E.

From-SVN: r244227

7 years agoDefine testsuite macro for correct thread_local destructors
Jonathan Wakely [Mon, 9 Jan 2017 13:06:03 +0000 (13:06 +0000)]
Define testsuite macro for correct thread_local destructors

* testsuite/30_threads/condition_variable/members/3.cc: Use new macro
to detect correct thread_local destructors.
* testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
Define.

From-SVN: r244226

7 years agoPR66414 optimize std::string::find
Jonathan Wakely [Mon, 9 Jan 2017 13:05:58 +0000 (13:05 +0000)]
PR66414 optimize std::string::find

2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
    Aditya Kumar  <hiraditya@msn.com>

PR libstdc++/66414
* include/bits/basic_string.tcc
(basic_string::find(const CharT*, size_type, size_type)): Optimize.

Co-Authored-By: Aditya Kumar <hiraditya@msn.com>
From-SVN: r244225

7 years agoeinfo.ads, einfo.adb: Remove uses of flags Has_Default_Init_Cond...
Hristian Kirtchev [Mon, 9 Jan 2017 12:03:27 +0000 (12:03 +0000)]
einfo.ads, einfo.adb: Remove uses of flags Has_Default_Init_Cond...

2017-01-09  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.ads, einfo.adb: Remove uses of flags Has_Default_Init_Cond,
Is_Default_Init_Cond_Procedure, and
Has_Inherited_Default_Init_Cond.  Add uses of flags
Has_Own_DIC, Is_DIC_Procedure, and Has_Inherited_DIC.
(Default_Init_Cond_Procedure): Removed.
(DIC_Procedure): New routine.
(Has_Default_Init_Cond): Removed.
(Has_DIC): New routine.
(Has_Inheritable_Invariants): The attribute applies to the base type.
(Has_Inherited_Default_Init_Cond): Removed.
(Has_Inherited_DIC): New routine.
(Has_Inherited_Invariants): The attribute applies to the base type.
(Has_Own_DIC): New routine.
(Has_Own_Invariants): The attribute applies to the base type.
(Is_Default_Init_Cond_Procedure): Removed.
(Is_DIC_Procedure): New routine.
(Set_Default_Init_Cond_Procedure): Removed.
(Set_DIC_Procedure): New routine.
(Set_Has_Default_Init_Cond): Removed.
(Set_Has_Inheritable_Invariants): The attribute applies
to the base type.
(Set_Has_Inherited_Default_Init_Cond): Removed.
(Set_Has_Inherited_DIC): New routine.
(Set_Has_Inherited_Invariants): The attribute applies to the base type.
(Set_Has_Own_DIC): New routine.
(Set_Has_Own_Invariants): The attribute applies to the base type.
(Set_Is_Default_Init_Cond_Procedure): Removed.
(Set_Is_DIC_Procedure): New routine.
(Write_Entity_Flags): Update the output of all flags related to
default initial condition.
* exp_ch3.adb (Expand_N_Object_Declaration): Update the generation
of the call to the DIC procedure.
(Freeze_Type): Generate the body of the DIC procedure.
* exp_ch7.adb (Build_Invariant_Procedure_Body): Replace
all occurrences of Create_Append with Append_New_To. Do
not generate an invariant procedure for a class-wide type.
The generated body acts as a freeze action of the working type.
(Build_Invariant_Procedure_Declaration): Do not generate an
invariant procedure for a class-wide type.
(Create_Append): Removed.
* exp_util.adb: Add with and use clauses for Sem_Ch3, sem_ch6,
sem_Ch12, Sem_Disp, and GNAT.HTable. Move the handling of
class-wide pre/postcondition description and data structures from
Sem_Prag.
(Build_Class_Wide_Expression): Moved from Sem_Prag.
(Build_DIC_Call): New routine.
(Build_DIC_Procedure_Body): New routine.
(Build_DIC_Procedure_Declaration): New routine.
(Entity_Hash): Moved from Sem_Prag.
(Find_DIC_Type): New routine.
(Update_Primitives_Mapping): Reimplemented.
(Update_Primitives_Mapping_Of_Types): New routine.
* exp_util.ads (Build_Class_Wide_Expression): Moved from Sem_Prag.
(Build_DIC_Call): New routine.
(Build_DIC_Procedure_Body): New routine.
(Build_DIC_Procedure_Declaration): New routine.
(Update_Primitives_Mapping): Moved from Sem_Prag.
(Update_Primitives_Mapping_Of_Types): New routine.
* nlists.adb (Append_New): New routine.
(Append_New_To): New routine.
* nlists.ads (Append_New): New routine.
(Append_New_To): New routine.
* sem_ch3.adb (Analyze_Declarations): Do not generate the bodies
of DIC procedures here. This is now done at the end of the
visible declarations, private declarations, and at the freeze
point of a type.
(Analyze_Private_Extension_Declaration):
A private extension inherits the DIC pragma of a parent type.
(Analyze_Subtype_Declaration): No need to propagate invariant
attributes to a subtype as those apply to the base type.
(Build_Derived_Record_Type): No need to inherit invariants here
as this is now done in Build_Derived_Type.
(Build_Derived_Type): Inherit both the DIC pragma and invariants from
a parent type.
(Process_Full_View): Update the propagation of DIC attributes.
(Propagate_Default_Init_Cond_Attributes): Removed.
* sem_ch7.adb Add with and use clauses for Exp_Util.
(Analyze_Package_Specification): Create the body of the DIC
procedure at the end of the visible and private declarations.
(Preserve_Full_Attributes): Propagate DIC attributes.
* sem_ch9.adb (Analyze_Protected_Type_Declaration): Propagate
DIC attributes.
(Analyze_Task_Type_Declaration): Propagate DIC attributes.
* sem_elab.adb (Check_A_Call): Update the call to
Is_Nontrivial_Default_Init_Cond_Procedure.
* sem_prag.adb Remove the with and use clauses for
GNAT.HTable. Move the handling of class- wide pre/postcondition
description and data structures to Exp_Util.
(Analyze_Pragma): Create the declaration of the DIC procedure. There
is no need to propagate invariant-related attributes at this point
as this is done in Build_Invariant_Procedure_Declaration.
(Build_Class_Wide_Expression): Moved to Exp_Util.
(Entity_Hash): Moved to Exp_Util.
(Update_Primitives_Mapping): Moved to Exp_Util.
* sem_prag.ads (Build_Class_Wide_Expression): Moved to Exp_Util.
(Update_Primitives_Mapping): Moved to Exp_Util.
* sem_util.adb: Remove with and use clauses for Ghost
and Sem_Ch13.
(Build_Default_Init_Cond_Call): Removed.
(Build_Default_Init_Cond_Procedure_Bodies): Removed.
(Build_Default_Init_Cond_Procedure_Declaration): Removed.
(Get_Views): Reimplemented.
(Has_Full_Default_Initialization): Reimplement the section on DIC.
(Inherit_Default_Init_Cond_Procedure): Removed.
(Is_Nontrivial_Default_Init_Cond_Procedure): Removed.
(Is_Nontrivial_DIC_Procedure): New routine.
(Is_Verifiable_DIC_Pragma): New routine.
(Propagate_DIC_Attributes): New routine.
* sem_util.ads (Build_Default_Init_Cond_Call): Removed.
(Build_Default_Init_Cond_Procedure_Bodies): Removed.
(Build_Default_Init_Cond_Procedure_Declaration): Removed.
(Inherit_Default_Init_Cond_Procedure): Removed.
(Is_Nontrivial_Default_Init_Cond_Procedure): Removed.
(Is_Nontrivial_DIC_Procedure): New routine.
(Is_Verifiable_DIC_Pragma): New routine.
(Propagate_DIC_Attributes): New routine.
* sem_warn.adb (Is_OK_Fully_Initialized): Reimplement the section
on DIC.
* sinfo.ads, sinfo.adb: Add new attribute Expression_Copy along with
usage in nodes.
(Expression_Copy): New routine along with pragma Inline.
(Set_Expression_Copy): New routine along with pragma Inline.

From-SVN: r244224

7 years agore PR tree-optimization/78938 (ICE in expand_vec_cond_expr, at optabs.c:5636 w/ ...
Jakub Jelinek [Mon, 9 Jan 2017 11:44:52 +0000 (12:44 +0100)]
re PR tree-optimization/78938 (ICE in expand_vec_cond_expr, at optabs.c:5636 w/ -mavx512bw -ftree-loop-vectorize -O1)

PR tree-optimization/78938
* tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
{EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
fixes.

* gcc.dg/vect/pr78938.c: New test.

From-SVN: r244223

7 years ago[tree-ssa-address] Avoid creating non-canonical RTL in gen_addr_rtx
Kyrylo Tkachov [Mon, 9 Jan 2017 09:42:10 +0000 (09:42 +0000)]
[tree-ssa-address] Avoid creating non-canonical RTL in gen_addr_rtx

* tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
is const0_rtx.

* gcc.dg/20161219.c: New test.

From-SVN: r244219

7 years agore PR tree-optimization/78997 (ICE on valid code at -O3 on x86_64-linux-gnu: verify_g...
Richard Biener [Mon, 9 Jan 2017 08:25:13 +0000 (08:25 +0000)]
re PR tree-optimization/78997 (ICE on valid code at -O3 on x86_64-linux-gnu: verify_gimple failed)

2017-01-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/78997
* tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
name condition properly.

* gcc.dg/torture/pr78997.c: New testcase.

From-SVN: r244218

7 years agore PR debug/79000 (ICE: in gen_member_die, at dwarf2out.c:23995)
Richard Biener [Mon, 9 Jan 2017 08:22:58 +0000 (08:22 +0000)]
re PR debug/79000 (ICE: in gen_member_die, at dwarf2out.c:23995)

2017-01-09  Richard Biener  <rguenther@suse.de>

PR debug/79000
* dwarf2out.c (is_cxx): New overload with context.
(is_naming_typedef_decl): Use it.

* g++.dg/lto/pr79000_0.C: New testcase.
* g++.dg/lto/pr79000_1.c: Likewise.

From-SVN: r244217

7 years agoinvoke.texi (Option Summary): Correct spacing in option lists and add line breaks...
Sandra Loosemore [Mon, 9 Jan 2017 06:43:18 +0000 (01:43 -0500)]
invoke.texi (Option Summary): Correct spacing in option lists and add line breaks to fix over-long lines.

2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* invoke.texi (Option Summary): Correct spacing in option lists
and add line breaks to fix over-long lines.

From-SVN: r244216

7 years agore PR middle-end/17660 (manual's description of __attribute__((mode)) is poor, arrang...
Sandra Loosemore [Mon, 9 Jan 2017 03:06:23 +0000 (22:06 -0500)]
re PR middle-end/17660 (manual's description of __attribute__((mode)) is poor, arrangement is confusing)

2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>

PR middle-end/17660

gcc/
* extend.texi (Common Variable Attributes): Add xref to GCC
Internals manual to explain mode attribute keywords.

From-SVN: r244215

7 years agore PR other/16519 (-pthread undocumented)
Sandra Loosemore [Mon, 9 Jan 2017 02:39:24 +0000 (21:39 -0500)]
re PR other/16519 (-pthread undocumented)

2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>

PR other/16519

gcc/
* doc/invoke.texi (Option Summary): Move -pthread to Linker Options
and Preprocessor Options.
(Options for Linking): Document -pthread here....
(RS/6000 and PowerPC Options): ...not here.
(Solaris 2 Options): ...or here.
* doc/cppopts.texi: Document -pthread.

From-SVN: r244214

7 years agoDaily bump.
GCC Administrator [Mon, 9 Jan 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244213

7 years agoPR tree-optimization/78913 - Probably misleading error reported by -Wformat-length
Martin Sebor [Sun, 8 Jan 2017 23:42:09 +0000 (23:42 +0000)]
PR tree-optimization/78913 - Probably misleading error reported by -Wformat-length

PR tree-optimization/78913 - Probably misleading error reported by -Wformat-length
PR middle-end/77708 - -Wformat-length %s warns for snprintf

gcc/ChangeLog:

PR middle-end/77708
* doc/invoke.texi (Warning Options): Document -Wformat-truncation.
* gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
New member functions.
(format_directive): Used them.
(add_bytes): Same.
(pass_sprintf_length::handle_gimple_call): Same.
* graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
to avoid truncation for any argument.
(extract_affine_mul): Same.
* tree.c (get_file_function_name): Same.

gcc/c-family/ChangeLog:

PR middle-end/77708
* c.opt (-Wformat-truncation): New option.

gcc/fortran/ChangeLog:

PR tree-optimization/78913
PR middle-end/77708
* trans-common.c (build_equiv_decl): Increase buffer size to avoid
truncation for any argument.
* trans-types.c (gfc_build_logical_type): Same.

gcc/testsuite/ChangeLog:

PR middle-end/77708
* gcc.dg/tree-ssa/builtin-snprintf-warn-1.c: New test.
* gcc.dg/tree-ssa/builtin-snprintf-warn-2.c: New test.
* gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: XFAIL test cases failing
due to bug 78969.
* gcc.dg/format/pr78569.c: Adjust.

From-SVN: r244210

7 years ago* download_ecj: Remove.
Gerald Pfeifer [Sun, 8 Jan 2017 17:50:21 +0000 (17:50 +0000)]
* download_ecj: Remove.

From-SVN: r244209

7 years agore PR rtl-optimization/79003 (r238991 breaks ODR)
Jakub Jelinek [Sun, 8 Jan 2017 16:43:30 +0000 (17:43 +0100)]
re PR rtl-optimization/79003 (r238991 breaks ODR)

PR bootstrap/79003
* Makefile.in (CFLAGS, CPPFLAGS, LDFLAGS): Remove -fno-lto.
(NOLTO_FLAGS): New variable.
(ALL_CFLAGS): Use it.
* configure.ac (nolto_flags): New ACX_PROG_CC_WARNING_OPTS,
check for whether -fno-lto works.
* configure: Regenerated.

From-SVN: r244208

7 years agore PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000...
Jan Hubicka [Sun, 8 Jan 2017 09:53:06 +0000 (10:53 +0100)]
re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP)

PR middle-end/77484
* predict.def (PRED_INDIR_CALL): Set to 86.

From-SVN: r244207

7 years agoPR c++/78948 - instantiation from discarded statement
Jason Merrill [Sun, 8 Jan 2017 06:36:10 +0000 (01:36 -0500)]
PR c++/78948 - instantiation from discarded statement

PR c++/78948 - instantiation from discarded statement
* parser.h (struct cp_parser): Remove in_discarded_stmt field.
* cp-tree.h (in_discarded_stmt): Declare it.
(struct saved_scope): Add discarded_stmt bitfield.
(in_discarded_stmt): New macro.
* decl2.c (mark_used): Check it.
* parser.c (cp_parser_selection_statement): Adjust.
(cp_parser_jump_statement): Adjust.

From-SVN: r244206

7 years agore PR preprocessor/54124 (GCC 4.7.1 manual: -dM and similar options hard to find)
Sandra Loosemore [Sun, 8 Jan 2017 01:42:26 +0000 (20:42 -0500)]
re PR preprocessor/54124 (GCC 4.7.1 manual:  -dM and similar options hard to find)

2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>

PR preprocessor/54124

gcc/
* doc/cppopts.texi: Reformat -d subtable to list the full name
of the options.  Add cross-reference to the docs for the general
compiler -d options.
* doc/invoke.texi (Developer Options): Add cross-reference to the
preprocessor-specific -d option documentation.

From-SVN: r244205

7 years agoDaily bump.
GCC Administrator [Sun, 8 Jan 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244204

7 years agore PR preprocessor/13498 (CPP include search path documentation is incorrect)
Sandra Loosemore [Sat, 7 Jan 2017 22:46:13 +0000 (17:46 -0500)]
re PR preprocessor/13498 (CPP include search path documentation is incorrect)

2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>

PR preprocessor/13498

gcc/
* doc/cpp.texi (Search Path): Rewrite to remove obsolete and
redudant material, and reflect new command-line options.
(System Headers): Likewise.

From-SVN: r244201

7 years agocppdiropts.texi: Merge documentation of -I, -iquote, -isystem, and -idirafter.
Sandra Loosemore [Sat, 7 Jan 2017 22:37:55 +0000 (17:37 -0500)]
cppdiropts.texi: Merge documentation of -I, -iquote, -isystem, and -idirafter.

2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/cppdiropts.texi: Merge documentation of -I, -iquote,
-isystem, and -idirafter.  Copy-edit.
* doc/cppopts.texi: Copy-edit.  Remove contradiction about
default for -ftrack-macro-expansion.  Delete obsolete and
badly-formatted implementation details about -fdebug-cpp output.
* doc/cppwarnopts.texi: Copy-edit.

From-SVN: r244200

7 years agoFix linemap corruption after very wide source lines (PR c++/72803)
David Malcolm [Sat, 7 Jan 2017 21:33:59 +0000 (21:33 +0000)]
Fix linemap corruption after very wide source lines (PR c++/72803)

PR c++/72803 describes an issue where a fix-it hint is to be emitted at
column 512 of a 511-column source line, leading to an ICE.

The root cause is a bug in linemap_line_start, when transitioning from
lines >= 512 in width to narrow lines.

The wide line in the reproducer has a line map with:
  m_column_and_range_bits = 15, m_range_bits = 5
giving 10 effective bits for representing columns, so that columns <= 1023
can be represented.

When parsing the following line,
  linemap_line_start (..., ..., max_column_hint=0);
is called.  This leads to the "add_map" logic, due to this condition:
      || (max_column_hint <= 80 && effective_column_bits >= 10)
i.e. the new line is sufficiently narrower than the old one to
potentially use a new linemap (so as to conserve values within the
location_t space).

It then attempts to avoid allocating a new line map.  Part of the logic
to determine if we really need a new line map is this condition:
   SOURCE_COLUMN (map, highest) >= (1U << column_bits)
The above condition is incorrect: we need to determine if the highest
column we've handed out will fit within the proposed *effective* column
bits, but "column_bits" here is the column plus the range bits, rather
than just the column bits.

Hence in this case linemap_line_start erroneously decides that we don't
need a new line map, and updates the column bits within the existing
line map, so any location_t values we've already handed out within it
that are offset from the start by
  >= (1<<new_column_and_range_bits)
effectively change meaning, leading to incorrect line&column information
when decoding them, and various "interesting" ways for the linemap
code to fail.

The fix is to use the effective column bits in the above conditional.

gcc/ChangeLog:
PR c++/72803
* input.c (selftest::test_accessing_ordinary_linemaps): Verify
that the transition from a max line width >= 1<<10 to narrower
lines works correctly.

gcc/testsuite/ChangeLog:
PR c++/72803
* g++.dg/diagnostic/pr72803.C: New test case.

libcpp/ChangeLog:
PR c++/72803
* line-map.c (linemap_line_start): When determining if the highest
column given out so far will fit into a proposed change to the
current map, use the effective number of column bits, rather than
the total number of column + range bits.

From-SVN: r244199

7 years ago[-fcompare-debug] var tracking options are not optimization options
Alexandre Oliva [Sat, 7 Jan 2017 19:53:13 +0000 (19:53 +0000)]
[-fcompare-debug] var tracking options are not optimization options

If we include them in the ICF hash, they may cause congruence_groups to
be processed in a different order due to different hashes, which in turn
causes different funcdef_nos to be assigned to functions.  Since these
numbers are included in -fcompare-debug dumps, they cause failures.

Since these options are not optimization options, in that they do not
(or should not, save for bugs like this) affect the executable code
output by the compiler, they should not be marked as such.

This patch replaces the Optimization flag in the var-tracking options
with the newly-introduced PerFunction flag, so that it can still be
controlled on a per-function basis, but that disregards it in the hash
computation used by ICF.

This fixes -fcompare-debug failures in numerous LTO testcases.

for  gcc/ChangeLog

* doc/options.texi (PerFunction): New.
* opt-functions.awk (switch_flags): Map both Optimization and
PerFunction to CL_OPTIMIZATION.
* opth-gen.awk: Test for PerFunction flag along with
Optimization.
* optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
it only when the latter is present.  Skip those that don't in
the hash function generator.
* common.opt (fvar-tracking): Mark as PerFunction instead of
Optimization.
(fvar-tracking-assignments): Likewise.
(fvar-tracking-assignments-toggle): Likewise.
(fvar-tracking-uninit): Likewise.

From-SVN: r244198

7 years agoattr-alloc_size-3.c: Remove regex made redundant by r243461.
Martin Sebor [Sat, 7 Jan 2017 19:45:33 +0000 (19:45 +0000)]
attr-alloc_size-3.c: Remove regex made redundant by r243461.

gcc/testsuite/ChangeLog:

* gcc.dg/attr-alloc_size-3.c: Remove regex made redundant by r243461.
* gcc.dg/attr-alloc_size-4.c: Same.

From-SVN: r244197

7 years agore PR fortran/78781 ([Coarray] ICE in gfc_deallocate_scalar_with_status, at fortran...
Andre Vehreschild [Sat, 7 Jan 2017 17:26:58 +0000 (18:26 +0100)]
re PR fortran/78781 ([Coarray] ICE in gfc_deallocate_scalar_with_status, at fortran/trans.c:1588)

gcc/fortran/ChangeLog:

2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/78781
PR fortran/78935
* expr.c (gfc_check_pointer_assign): Return the same error message for
rewritten coarray pointer assignments like for plain ones.
* gfortran.h: Change prototype.
* primary.c (caf_variable_attr): Set attributes used ones only only
ones.  Add setting of pointer_comp attribute.
(gfc_caf_attr): Add setting of pointer_comp attribute.
* trans-array.c (gfc_array_allocate): Add flag that the component to
allocate is not an ultimate coarray component.  Add allocation of
pointer arrays.
(structure_alloc_comps): Extend nullify to treat pointer components in
coarrays correctly.  Restructure nullify to remove redundant code.
(gfc_nullify_alloc_comp): Allow setting caf_mode flags.
* trans-array.h: Change prototype of gfc_nullify_alloc_comp ().
* trans-decl.c (generate_coarray_sym_init): Call nullify_alloc_comp for
derived type coarrays with pointer components.
* trans-expr.c (gfc_trans_structure_assign): Also treat pointer
components.
(trans_caf_token_assign): Handle assignment of token of scalar pointer
components.
(gfc_trans_pointer_assignment): Call above routine.
* trans-intrinsic.c (conv_expr_ref_to_caf_ref): Add treating pointer
components.
(gfc_conv_intrinsic_caf_get): Likewise.
(conv_caf_send): Likewise.
* trans-stmt.c (gfc_trans_allocate): After allocating a derived type in
a coarray pre-register the tokens.
(gfc_trans_deallocate): Simply determining the coarray type (scalar or
array) and deregistering it correctly.
* trans-types.c (gfc_typenode_for_spec): Replace in_coarray flag by the
actual codim to allow lookup of array types in the cache.
(gfc_build_array_type): Likewise.
(gfc_get_array_descriptor_base): Likewise.
(gfc_get_array_type_bounds): Likewise.
(gfc_get_derived_type): Likewise.
* trans-types.h: Likewise.
* trans.c (gfc_deallocate_with_status): Enable deregistering of all kind
of coarray components.
(gfc_deallocate_scalar_with_status): Use free() in fcoarray_single mode
instead of caf_deregister.

libgfortran/ChangeLog:

2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/78781
PR fortran/78935
* caf/single.c (send_by_ref): Fix addressing of non-allocatable scalar
destination components.

gcc/testsuite/ChangeLog:

2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

* gfortran.dg/coarray/ptr_comp_1.f08: New test.
* gfortran.dg/coarray/ptr_comp_2.f08: New test.
* gfortran.dg/coarray/ptr_comp_3.f08: New test.
* gfortran.dg/coarray/ptr_comp_4.f08: New test.
* gfortran.dg/coarray_ptr_comp_1.f08: New test.
* gfortran.dg/coarray_ptr_comp_2.f08: New test.
* gfortran.dg/coarray_ptr_comp_3.f08: New test.

From-SVN: r244196

7 years agore PR translation/79018 (translatable string typo in params.def:1105)
Jakub Jelinek [Sat, 7 Jan 2017 08:37:06 +0000 (09:37 +0100)]
re PR translation/79018 (translatable string typo in params.def:1105)

PR translation/79018
* params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
the and store.

From-SVN: r244195

7 years agoDaily bump.
GCC Administrator [Sat, 7 Jan 2017 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244191

7 years ago* fr.po: Update.
Joseph Myers [Fri, 6 Jan 2017 22:20:46 +0000 (22:20 +0000)]
* fr.po: Update.

From-SVN: r244187

7 years agoAdd more tests for std::basic_string::find
Jonathan Wakely [Fri, 6 Jan 2017 21:22:40 +0000 (21:22 +0000)]
Add more tests for std::basic_string::find

* testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
* testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.

From-SVN: r244185

7 years agore PR target/57583 (large switches with jump tables are horribly broken on m68k)
Mikael Pettersson [Fri, 6 Jan 2017 21:21:02 +0000 (21:21 +0000)]
re PR target/57583 (large switches with jump tables are horribly broken on m68k)

2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>

PR target/57583
* config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
* config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
TARGET_LONG_JUMP_TABLE_OFFSETS.
* config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
(ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
* config/m68k/m68k.md (tablejump expander): Likewise.
(*tablejump_pcrel_hi): Renamed from unnamed insn, reject
TARGET_LONG_JUMP_TABLE_OFFSETS.
(*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
* doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.

From-SVN: r244184

7 years agoMake MicroBlaze support DWARF EH (old Xilinx patch, needed for glibc build).
Edgar E. Iglesias [Fri, 6 Jan 2017 20:54:34 +0000 (20:54 +0000)]
Make MicroBlaze support DWARF EH (old Xilinx patch, needed for glibc build).

This patch, taken from
<https://git.busybox.net/buildroot/tree/package/gcc/5.4.0/840-microblaze-enable-dwarf-eh-support.patch>
and with a few formatting cleanups and an update for the removal of
gen_rtx_raw_REG, enables DWARF EH support for MicroBlaze.

This is needed for building glibc with a compiler that includes shared
libgcc; right now all glibc builds for MicroBlaze are failing with my
bot for lack of this support.  (It's dubious if we should have glibc
ports at all where required support is missing in FSF GCC.)

Tested building glibc with build-many-glibcs.py.  I have *not* done
any other testing or any execution testing for MicroBlaze.

2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
    David Holsgrove <david.holsgrove@xilinx.com>

* common/config/microblaze/microblaze-common.c
(TARGET_EXCEPT_UNWIND_INFO): Remove.
* config/microblaze/microblaze-protos.h (microblaze_eh_return):
New prototype.
* config/microblaze/microblaze.c (microblaze_must_save_register)
(microblaze_expand_epilogue, microblaze_return_addr): Handle
calls_eh_return.
(microblaze_eh_return): New function.
* config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
(EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
(EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
* config/microblaze/microblaze.md (eh_return): New pattern.

Co-Authored-By: David Holsgrove <david.holsgrove@xilinx.com>
From-SVN: r244183

7 years agosystem.h (GCC_DIAGNOSTIC_PUSH_IGNORED, [...]): Define.
Jakub Jelinek [Fri, 6 Jan 2017 18:41:23 +0000 (19:41 +0100)]
system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, [...]): Define.

* system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
GCC_DIAGNOSTIC_STRINGIFY): Define.

* simplify.c (simplify_transformation_to_array): Use
GCC_DIAGNOSTIC_PUSH_IGNORED and GCC_DIAGNOSTIC_POP instead of
#pragma GCC diagnostic {push,ignored,pop}.

From-SVN: r244179

7 years agoread-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
Jakub Jelinek [Fri, 6 Jan 2017 18:40:31 +0000 (19:40 +0100)]
read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.

* read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare
warning.

From-SVN: r244178

7 years agomemcmp-1.c: New.
Aaron Sawdey [Fri, 6 Jan 2017 18:06:35 +0000 (18:06 +0000)]
memcmp-1.c: New.

2017-01-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
* gcc.dg/memcmp-1.c: New.
* gcc.dg/strncmp-1.c: New.
New testcases to check that builtin expansion of memcmp and strncmp works properly.

From-SVN: r244177

7 years agoAdd missing <cassert> include to testcase
Jonathan Wakely [Fri, 6 Jan 2017 17:51:24 +0000 (17:51 +0000)]
Add missing <cassert> include to testcase

* testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
Include <cassert> header.

From-SVN: r244176

7 years ago[ARM] Implement support for ACLE Coprocessor MCRR and MRRC intrinsics
Andre Vieira [Fri, 6 Jan 2017 17:49:12 +0000 (17:49 +0000)]
[ARM] Implement support for ACLE Coprocessor MCRR and MRRC intrinsics

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm.md (<mcrr>): New.
(<mrrc>): New.
* config/arm/arm.c (arm_arch5te): New.
(arm_option_override): Set arm_arch5te.
(arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
and mrrc2.
* config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
(arm_mcrr_qualifiers): ... this. New.
(MRRC_QUALIFIERS): Define to...
(arm_mrrc_qualifiers): ... this. New.
* config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
__arm_mrrc2): New.
* config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
* config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
(MRRCI, mrrc, MRRC): New.
* config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
VUNSPEC_MRRC2): New.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/acle/mcrr: New.
* gcc.target/arm/acle/mcrr2: New.
* gcc.target/arm/acle/mrrc: New.
* gcc.target/arm/acle/mrrc2: New.

From-SVN: r244175

7 years ago[ARM] Implement support for ACLE Coprocessor MCR and MRC intrinsics
Andre Vieira [Fri, 6 Jan 2017 17:40:50 +0000 (17:40 +0000)]
[ARM] Implement support for ACLE Coprocessor MCR and MRC intrinsics

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm.md (<mcr>): New.
(<mrc>): New.
* config/arm/arm.c (arm_coproc_builtin_available): Add
support for mcr, mrc, mcr2 and mrc2.
* config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
(arm_mcr_qualifiers): ... this. New.
(MRC_QUALIFIERS): Define to ...
(arm_mrc_qualifiers): ... this. New.
(MCR_QUALIFIERS): Define to ...
(arm_mcr_qualifiers): ... this. New.
* config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
__arm_mrc2): New.
* config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
* config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
* config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
VUNSPEC_MRC2): New.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/acle/mcr.c: New.
* gcc.target/arm/acle/mrc.c: New.
* gcc.target/arm/acle/mcr2.c: New.
* gcc.target/arm/acle/mrc2.c: New.

From-SVN: r244174

7 years ago[ARM] Implement support for ACLE Coprocessor LDC and STC intrinsics
Andre Vieira [Fri, 6 Jan 2017 17:37:39 +0000 (17:37 +0000)]
[ARM] Implement support for ACLE Coprocessor LDC and STC intrinsics

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm.md (*ldc): New.
(*stc): New.
(<ldc>): New.
(<stc>): New.
* config/arm/arm.c (arm_coproc_builtin_available): Add
support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
(arm_coproc_ldc_stc_legitimate_address): New.
* config/arm/arm-builtins.c (arm_type_qualifiers): Add
'qualifier_const_pointer'.
(LDC_QUALIFIERS): Define to...
(arm_ldc_qualifiers): ... this. New.
(STC_QUALIFIERS): Define to...
(arm_stc_qualifiers): ... this. New.
* config/arm/arm-protos.h
(arm_coproc_ldc_stc_legitimate_address): New.
* config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
__arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
* config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
stc2, stcl, stc2l): New.
* config/arm/constraints.md (Uz): New.
* config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
* config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
VUNSPEC_STC2L): New.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/acle/ldc: New.
* gcc.target/arm/acle/ldc2: New.
* gcc.target/arm/acle/ldcl: New.
* gcc.target/arm/acle/ldc2l: New.
* gcc.target/arm/acle/stc: New.
* gcc.target/arm/acle/stc2: New.
* gcc.target/arm/acle/stcl: New.
* gcc.target/arm/acle/stc2l: New.

From-SVN: r244173

7 years ago[ARM] Implement support for ACLE Coprocessor CDP intrinsics
Andre Vieira [Fri, 6 Jan 2017 17:35:23 +0000 (17:35 +0000)]
[ARM] Implement support for ACLE Coprocessor CDP intrinsics

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm.md (<cdp>): New.
* config/arm/arm.c (neon_const_bounds): Rename this ...
(arm_const_bounds): ... this.
(arm_coproc_builtin_available): New.
* config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
(arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
(CDP_QUALIFIERS): Define to...
(arm_cdp_qualifiers): ... this. New.
(void_UP): Define.
(arm_expand_builtin_args): Add case for 6 arguments.
* config/arm/arm-protos.h (neon_const_bounds): Rename this ...
(arm_const_bounds): ... this.
(arm_coproc_builtin_available): New.
* config/arm/arm_acle.h (__arm_cdp): New.
(__arm_cdp2): New.
* config/arm/arm_acle_builtins.def (cdp): New.
(cdp2): New.
* config/arm/iterators.md (CDPI,CDP,cdp): New.
* config/arm/neon.md: Rename all 'neon_const_bounds' to
'arm_const_bounds'.
* config/arm/types.md (coproc): New.
* config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
* gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
* gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/acle/acle.exp: Run tests for different options
and make sure fat-lto-objects is used such that we can still do
assemble scans.
* gcc.target/arm/acle/cdp.c: New.
* gcc.target/arm/acle/cdp2.c: New.
* lib/target-supports.exp (check_effective_target_arm_coproc1_ok): New.
(check_effective_target_arm_coproc1_ok_nocache): New.
(check_effective_target_arm_coproc2_ok): New.
(check_effective_target_arm_coproc2_ok_nocache): New.
(check_effective_target_arm_coproc3_ok): New.
(check_effective_target_arm_coproc3_ok_nocache): New.
(check_effective_target_arm_coproc4_ok): New.
(check_effective_target_arm_coproc4_ok_nocache): New.

From-SVN: r244172

7 years ago[ARM] Move CRC builtins to refactored framework
Andre Vieira [Fri, 6 Jan 2017 17:28:47 +0000 (17:28 +0000)]
[ARM] Move CRC builtins to refactored framework

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
(UBINOP_QUALIFIERS): New.
(si_UP): Define.
(acle_builtin_data): New. Change comment.
(arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
arm_acle_builtins.def.
(ARM_BUILTIN_ACLE_PATTERN_START): Define.
(arm_init_acle_builtins): New.
(CRC32_BUILTIN): Remove.
(bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
crc32cb, crc32ch and crc32cw.
(arm_init_crc32_builtins): Remove.
(arm_init_builtins): Use arm_init_acle_builtins rather
than arm_init_crc32_builtins.
(arm_expand_acle_builtin): New.
(arm_expand_builtin): Use 'arm_expand_acle_builtin'.
* config/arm/arm_acle_builtins.def: New.

From-SVN: r244171

7 years ago[ARM] Refactor NEON builtin framework to work for other builtins
Andre Vieira [Fri, 6 Jan 2017 17:26:11 +0000 (17:26 +0000)]
[ARM] Refactor NEON builtin framework to work for other builtins

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
(arm_builtin_datum): ... this.
(arm_init_neon_builtin): Rename to ...
(arm_init_builtin): ... this. Add a new parameters PREFIX
and USE_SIG_IN_NAME.
(arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
'arm_init_builtin'. Replace type 'neon_builtin_datum' with
'arm_builtin_datum'.
(arm_init_vfp_builtins): Likewise.
(builtin_arg): Rename enum's replacing 'NEON_ARG' with
'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
(arm_expand_neon_args): Rename to ...
(arm_expand_builtin_args): ... this. Rename builtin_arg
enum values and differentiate between ARG_BUILTIN_MEMORY
and ARG_BUILTIN_NEON_MEMORY.
(arm_expand_neon_builtin_1): Rename to ...
(arm_expand_builtin_1): ... this. Rename builtin_arg enum
values, arm_expand_builtin_args and add bool parameter NEON.
(arm_expand_neon_builtin): Use arm_expand_builtin_1.
(arm_expand_vfp_builtin): Likewise.
(NEON_MAX_BUILTIN_ARGS): Remove, it was unused.

From-SVN: r244170

7 years agoCheck for __cxa_thread_atexit for freebsd crosses
Jonathan Wakely [Fri, 6 Jan 2017 17:06:24 +0000 (17:06 +0000)]
Check for __cxa_thread_atexit for freebsd crosses

PR libstdc++/78968
* crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
* configure: Regenerate.

From-SVN: r244169

7 years agoFix changelog entry.
Jan Hubicka [Fri, 6 Jan 2017 16:16:49 +0000 (16:16 +0000)]
Fix changelog entry.

From-SVN: r244168

7 years agore PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000...
Jan Hubicka [Fri, 6 Jan 2017 16:10:09 +0000 (17:10 +0100)]
re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP)

PR middle-end/77484
* predict.def (PRED_POLYMORPHIC_CALL): Set to 58
* predict.c (tree_estimate_probability_bb): Reverse direction of
polymorphic call predictor.

From-SVN: r244167

7 years agoruntime: actually remove go-alloc.h
Ian Lance Taylor [Fri, 6 Jan 2017 16:06:42 +0000 (16:06 +0000)]
runtime: actually remove go-alloc.h

Accidentally omitted from the commit of CL 34797 (SVN revision 244036).

From-SVN: r244166

7 years agore PR go/78978 (runtime/pprof FAILs on Solaris 2/x86)
Ian Lance Taylor [Fri, 6 Jan 2017 16:04:01 +0000 (16:04 +0000)]
re PR go/78978 (runtime/pprof FAILs on Solaris 2/x86)

PR go/78978
    libgo: build with -Wa,-nH if possible on Solaris

    By default the Solaris assembler records the required hardware
    capability in the object file.  This means that the AES hashing code
    breaks on systems that do not support AES, even though the code uses a
    runtime check to only actually invoke the AES instructions on systems
    that support it.  An earlier fix for the problem only fixed the shared
    library, not the static libgo.a.  Fix the problem for real by using an
    assembler option to not record the hardware capability.

    For GCC PR 78978.

    Patch by Rainer Orth.

    Reviewed-on: https://go-review.googlesource.com/34910

From-SVN: r244165

7 years agoPR middle-end/78605 - bogus -Wformat-length=1 with %f
Martin Sebor [Fri, 6 Jan 2017 15:45:42 +0000 (15:45 +0000)]
PR middle-end/78605 - bogus -Wformat-length=1 with %f

gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/pr78605.c: New test.

From-SVN: r244164

7 years agoUse fold expressions to reduce std::variant instantiation depth
Barrett Adair [Fri, 6 Jan 2017 15:27:01 +0000 (15:27 +0000)]
Use fold expressions to reduce std::variant instantiation depth

2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
    Jonathan Wakely  <jwakely@redhat.com>

* include/std/variant (variant, swap): Replace __and_ usage with fold
expressions.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r244163

7 years agoBuild libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts]
Rainer Orth [Fri, 6 Jan 2017 14:33:47 +0000 (14:33 +0000)]
Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts]

libstdc++-v3:
PR go/78978
* acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
* configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
GLIBCXX_CHECK_ASSEMBLER_HWCAP.
* fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
HWCAP_FLAGS.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in, doc/Makefile.in, include/Makefile.in,
libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.

config:
PR go/78978
* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro.

From-SVN: r244162

7 years agopasses.c: split out pass-skipping logic into subroutines
David Malcolm [Fri, 6 Jan 2017 14:15:20 +0000 (14:15 +0000)]
passes.c: split out pass-skipping logic into subroutines

gcc/ChangeLog:
* passes.c (execute_one_pass): Split out pass-skipping logic
into...
(determine_pass_name_match): ...this new function and...
(should_skip_pass_p): ...this new function.

From-SVN: r244160

7 years agolto-partition.c (promote_symbol): Write to dump file sooner, include alias promoting...
Nathan Sidwell [Fri, 6 Jan 2017 14:08:02 +0000 (14:08 +0000)]
lto-partition.c (promote_symbol): Write to dump file sooner, include alias promoting too.

* lto-partition.c (promote_symbol): Write to dump file sooner,
include alias promoting too.

From-SVN: r244159

7 years agoipa-visibility.c (function_and_variable_visibility): Reformat comments and long lines.
Nathan Sidwell [Fri, 6 Jan 2017 14:04:05 +0000 (14:04 +0000)]
ipa-visibility.c (function_and_variable_visibility): Reformat comments and long lines.

gcc/
* ipa-visibility.c (function_and_variable_visibility): Reformat
comments and long lines.  Remove extrneous if.
* symtab.c (symtab_node::make_decl_local): Fix code format.
(symtab_node::set_section_for_node): Fix comment typo.

gcc/lto/
* lto-partition.c (lto_balanced_map): Reformat/respell comment.
(may_need_named_section_p): Likewise.
(rename_statics): Likewise.
(lto_promote_cross_file_statics): Likewise.

From-SVN: r244156

7 years agoFix lto-bootstrap (PR bootstrap/79003).
Martin Liska [Fri, 6 Jan 2017 13:56:48 +0000 (14:56 +0100)]
Fix lto-bootstrap (PR bootstrap/79003).

2017-01-06  Martin Liska  <mliska@suse.cz>

PR bootstrap/79003
* lra-constraints.c: Rename invariant to lra_invariant.
* predict.c (set_even_probabilities): Initialize e to NULL.
2017-01-06  Martin Liska  <mliska@suse.cz>

PR bootstrap/79003
* Makefile.in: Add -fno-lto to {C,CPP,LD}FLAGS.

From-SVN: r244155

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 13:28:43 +0000 (14:28 +0100)]
[multiple changes]

2017-01-06  Bob Duff  <duff@adacore.com>

* bindgen.adb (Gen_Adainit, Gen_Adafinal): Change
"Bind_Main_Program" to "not Bind_For_Library", because otherwise
we won't generate the call to s_stalib_adafinal when the main
is not written in Ada.

2017-01-06  Bob Duff  <duff@adacore.com>

* sem_prag.adb: Minor: remove pragma Warnings.

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* Makefile.rtl: Do not compile s-stchop by default.

From-SVN: r244154

7 years agoDon't redefine _GLIBCXX_ASSERTIONS if already defined
Jonathan Wakely [Fri, 6 Jan 2017 12:34:11 +0000 (12:34 +0000)]
Don't redefine _GLIBCXX_ASSERTIONS if already defined

* include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.

From-SVN: r244151

7 years agoPR78991 make __gnu_cxx::__ops constructors explicit
Jonathan Wakely [Fri, 6 Jan 2017 12:33:58 +0000 (12:33 +0000)]
PR78991 make __gnu_cxx::__ops constructors explicit

PR libstdc++/78991
* include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
(_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
(_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
move function objects.
(__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
(__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
* testsuite/25_algorithms/sort/78991.cc: New test.

From-SVN: r244150

7 years agoMinor reformatting.
Arnaud Charlet [Fri, 6 Jan 2017 12:06:54 +0000 (13:06 +0100)]
Minor reformatting.

From-SVN: r244149