gcc.git
8 years agoFix dg-require before dg-run directives in testsuite.
Christophe Lyon [Wed, 14 Sep 2016 13:37:23 +0000 (13:37 +0000)]
Fix dg-require before dg-run directives in testsuite.

libstdc++-v3/ChangeLog:

2016-09-14  Christophe Lyon  <christophe.lyon@linaro.org>

* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
Move dg-do directive before dg-skip.
* testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
Move dg-do directive before dg-require.
* testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
Likewise.
* testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
* testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
* testsuite/27_io/objects/char/12048-5.cc: Likewise.
* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.

gcc/testsuite/ChangeLog:

2016-09-14  Christophe Lyon  <christophe.lyon@linaro.org>

* g++.dg/cpp0x/lambda/lambda-mangle.C: Move dg-do directive before
dg-require.
* g++.dg/ext/builtin_alloca.C: Likewise.
* g++.dg/template/spec35.C: Likewise.
* gcc.dg/builtins-68.c: Likewise.
* gcc.misc-tests/gcov-13.c: Likewise.
* gcc.misc-tests/gcov-14.c: Likewise.

From-SVN: r240135

8 years agodec_structure_14.f90: New testcase.
Jim MacArthur [Wed, 14 Sep 2016 12:13:03 +0000 (12:13 +0000)]
dec_structure_14.f90: New testcase.

2016-09-13  Jim MacArthur  <jim.macarthur@codethink.co.uk>

* gcc/testsuite/gfortran.dg/dec_structure_14.f90: New testcase.

From-SVN: r240134

8 years agoFix TARGET_LRA_P description
Segher Boessenkool [Wed, 14 Sep 2016 10:51:43 +0000 (12:51 +0200)]
Fix TARGET_LRA_P description

2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>

* target.def (lra_p): Change commentary (for the manual) for the
new default.
* doc/tm.texi: Regenerate.

From-SVN: r240133

8 years agoDelete TARGET_LRA_P from those targets that set it to "true"
Segher Boessenkool [Wed, 14 Sep 2016 10:49:42 +0000 (12:49 +0200)]
Delete TARGET_LRA_P from those targets that set it to "true"

A few targets already always want LRA; those then do not need to override
the default anymore.

2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>

* config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
* config/arm/arm.c (TARGET_LRA_P): Delete macro.
* config/i386/i386.c (TARGET_LRA_P): Delete macro.
* config/nds32/nds32.c (TARGET_LRA_P): Delete macro.

From-SVN: r240132

8 years agoChange the default of TARGET_LRA_P to true
Segher Boessenkool [Wed, 14 Sep 2016 10:48:00 +0000 (12:48 +0200)]
Change the default of TARGET_LRA_P to true

Since all targets now define TARGET_LRA_P, this does not change behaviour
for any existing target.  Newly added ports will by default use LRA now.

2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>

* targhooks.c (default_lra_p): Return true instead of false.

From-SVN: r240131

8 years agoPut a TARGET_LRA_P into every target
Segher Boessenkool [Wed, 14 Sep 2016 10:46:12 +0000 (12:46 +0200)]
Put a TARGET_LRA_P into every target

This patch adds a TARGET_LRA_P (defined to hook_bool_void_false) to
every target that didn't yet override the hook.  No functional change.

2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>

* config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
hook_bool_void_false.
* config/avr/avr.c: Ditto.
* config/bfin/bfin.c: Ditto.
* config/c6x/c6x.c: Ditto.
* config/cr16/cr16.c: Ditto.
* config/cris/cris.c: Ditto.
* config/epiphany/epiphany.c: Ditto.
* config/fr30/fr30.c: Ditto.
* config/frv/frv.c: Ditto.
* config/h8300/h8300.c: Ditto.
* config/ia64/ia64.c: Ditto.
* config/iq2000/iq2000.c: Ditto.
* config/lm32/lm32.c: Ditto.
* config/m32c/m32c.c: Ditto.
* config/m32r/m32r.c: Ditto.
* config/m68k/m68k.c: Ditto.
* config/mcore/mcore.c: Ditto.
* config/microblaze/microblaze.c: Ditto.
* config/mmix/mmix.c: Ditto.
* config/mn10300/mn10300.c: Ditto.
* config/moxie/moxie.c: Ditto.
* config/msp430/msp430.c: Ditto.
* config/nios2/nios2.c: Ditto.
* config/nvptx/nvptx.c: Ditto.
* config/pa/pa.c: Ditto.
* config/pdp11/pdp11.c: Ditto.
* config/rl78/rl78.c: Ditto.
* config/sparc/sparc.c: Ditto.
* config/spu/spu.c: Ditto.
* config/stormy16/stormy16.c: Ditto.
* config/tilegx/tilegx.c: Ditto.
* config/tilepro/tilepro.c: Ditto.
* config/v850/v850.c: Ditto.
* config/vax/vax.c: Ditto.
* config/visium/visium.c: Ditto.
* config/xtensa/xtensa.c: Ditto.

From-SVN: r240130

8 years agore PR sanitizer/68260 (false positive with tsan)
Jakub Jelinek [Wed, 14 Sep 2016 09:01:49 +0000 (11:01 +0200)]
re PR sanitizer/68260 (false positive with tsan)

PR sanitizer/68260
* tsan.c: Include target.h.
(enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
(BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
(tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
BUILT_IN_ATOMIC_TEST_AND_SET entries.
(instrument_builtin_call): Handle bool_clear and bool_test_and_set.

* c-c++-common/tsan/pr68260.c: New test.

From-SVN: r240129

8 years agoAdd braces to a condition in predict.c (PR middle-end/77574)
Bernd Edlinger [Wed, 14 Sep 2016 07:18:53 +0000 (07:18 +0000)]
Add braces to a condition in predict.c (PR middle-end/77574)

    Martin Liska  <mliska@suse.cz>

PR middle-end/77574
* predict.c (force_edge_cold): Add braces to a condition.

Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r240128

8 years agoDaily bump.
GCC Administrator [Wed, 14 Sep 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240127

8 years agore PR rtl-optimization/77289 (ICE in extract_constrain_insn, at recog.c:2212 on power...
Bernd Edlinger [Tue, 13 Sep 2016 21:25:04 +0000 (21:25 +0000)]
re PR rtl-optimization/77289 (ICE in extract_constrain_insn, at recog.c:2212 on powerpc64)

2016-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/77289
        * lra-constraints.c (get_final_hard_regno): Removed.
        (get_hard_regno): Add new parameter final_p.
        (get_reg_class): Directly call lra_get_elimination_hard_regno.
        (operands_match_p): Adjust call to get_hard_regno.
        (uses_hard_regs_p): Likewise.
        (process_alt_operands): Likewise.

From-SVN: r240124

8 years agore PR target/70713 (msp430 interrupt attribute prevents overriding weak symbols)
Joe Seymour [Tue, 13 Sep 2016 20:06:47 +0000 (20:06 +0000)]
re PR target/70713 (msp430 interrupt attribute prevents overriding weak symbols)

2016-09-13  Joe Seymour  <joe.s@somniumtech.com>

gcc/
PR target/70713
* config/msp430/msp430.c (msp430_start_function): Emit an error
if a function is both weak and specifies an interrupt number.

gcc/testsuite/
PR target/70713
* gcc.target/msp430/function-attributes-1.c: New test.
* gcc.target/msp430/function-attributes-2.c: New test.
* gcc.target/msp430/function-attributes-3.c: New test.

From-SVN: r240123

8 years agoImplement P0040R3, Extending memory management tools.
Ville Voutilainen [Tue, 13 Sep 2016 19:26:02 +0000 (22:26 +0300)]
Implement P0040R3, Extending memory management tools.

* include/bits/stl_uninitialized.h (utility): New include
in C++17 mode.
(uninitialized_default_construct): New.
(uninitialized_default_construct_n): Likewise.
(uninitialized_value_construct): Likewise.
(uninitialized_value_construct_n): Likewise.
(uninitialized_move): Likewise.
(uninitialized_move_n): Likewise.
(destroy_at, destroy, destroy_n): Likewise.
* testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
New.

From-SVN: r240122

8 years agoImplement P0028R4, C++17 using attribute namespaces without repetition
Jakub Jelinek [Tue, 13 Sep 2016 19:20:38 +0000 (21:20 +0200)]
Implement P0028R4, C++17 using attribute namespaces without repetition

Implement P0028R4, C++17 using attribute namespaces without repetition
* parser.c (cp_parser_std_attribute): Add ATTR_NS argument.  Diagnose
non-NULL ATTR_NS with scoped attribute token.  Handle non-NULL
ATTR_NS with non-scoped attribute tokens.  Allow named ops in
identifier after ::.
(cp_parser_std_attribute_list): Add ATTR_NS argument, pass it down
to cp_parser_std_attribute calls.
(cp_parser_std_attribute_spec): Parse optional C++17
attribute-using-prefix, adjust grammar in function comment.

* g++.dg/cpp0x/gen-attrs-61.C: New test.
* g++.dg/cpp1z/gen-attrs1.C: New test.

From-SVN: r240121

8 years agore PR tree-optimization/77454 (IMM ERROR w/ -O2 and above)
Jakub Jelinek [Tue, 13 Sep 2016 19:19:33 +0000 (21:19 +0200)]
re PR tree-optimization/77454 (IMM ERROR w/ -O2 and above)

PR tree-optimization/77454
* tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
changing GIMPLE_COND.  Move update_stmt_if_modified call after this.
Formatting fix.

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

From-SVN: r240120

8 years agore PR c++/77553 (wrong code with post-increment operator in constexpr)
Jakub Jelinek [Tue, 13 Sep 2016 17:10:39 +0000 (19:10 +0200)]
re PR c++/77553 (wrong code with post-increment operator in constexpr)

PR c++/77553
* constexpr.c (cxx_fold_pointer_plus_expression): New function.
(cxx_eval_binary_expression): Use it for POINTER_PLUS_EXPR.
(cxx_eval_pointer_plus_expression): Remove.
(cxx_eval_constant_expression) <case POINTER_PLUS_EXPR>: Don't
call cxx_eval_pointer_plus_expression.

* g++.dg/cpp1y/constexpr-77553.C: New test.

From-SVN: r240119

8 years agore PR fortran/77420 (gfortran and equivalence produces internal compiler error)
Steven G. Kargl [Tue, 13 Sep 2016 17:00:29 +0000 (17:00 +0000)]
re PR fortran/77420 (gfortran and equivalence produces internal compiler error)

2016-09-13  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77420
* module.c (load_equiv):  Revert revision 240063.

2016-09-13  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77420
* gfortran.dg/pr77420.f90: Revert revision 240063 by removing test.

From-SVN: r240118

8 years ago[PATCH 1/2][AArch64] Add missing support for poly64x1_t
Tamar Christina [Tue, 13 Sep 2016 16:32:23 +0000 (16:32 +0000)]
[PATCH 1/2][AArch64]  Add missing support for poly64x1_t

Committed on behalf of:

  Tamar Christina  <tamar.christina@arm.com>

gcc/

* config/aarch64/aarch64-builtins.c
(aarch64_init_simd_builtins): Fix builtin type signature printing.

From-SVN: r240117

8 years agoalpha.c (alpha_pass_by_reference): Pass un-named SFmode and SCmode arguments by refer...
Uros Bizjak [Tue, 13 Sep 2016 16:29:40 +0000 (18:29 +0200)]
alpha.c (alpha_pass_by_reference): Pass un-named SFmode and SCmode arguments by reference.

* config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
SFmode and SCmode arguments by reference.

From-SVN: r240116

8 years agofix-it hints: insert_before vs insert_after
David Malcolm [Tue, 13 Sep 2016 16:08:59 +0000 (16:08 +0000)]
fix-it hints: insert_before vs insert_after

The API for adding "insert text" fix-it hints was unclear
about exactly where the text should be inserted relative
to the given insertion point.

This patch clarifies things by renaming the pertinent methods from
  richloc.add_fixit_insert
to
  richloc.add_fixit_insert_before
and adding:
  richloc.add_fixit_insert_after

The latter allows us to consolidate some failure-handling into
class rich_location, rather than having to have every such diagnostic
check for it.

The patch also adds a description of how fix-it hints work to the
comment for class rich_location within libcpp/include/line-map.h.

gcc/c-family/ChangeLog:
* c-common.c (warn_logical_not_parentheses): Replace
rich_location::add_fixit_insert calls with add_fixit_insert_before
and add_fixit_insert_after, eliminating the "next_loc" calculation.

gcc/c/ChangeLog:
* c-parser.c (c_parser_declaration_or_fndef): Update for renaming
of add_fixit_insert to add_fixit_insert_before.

gcc/cp/ChangeLog:
* parser.c (cp_parser_class_specifier_1): Update for renaming of
add_fixit_insert to add_fixit_insert_before.
(cp_parser_class_head): Likewise.

gcc/ChangeLog:
* diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
Rename to...
(selftest::test_one_liner_fixit_insert_before): ...this, and update
for renaming of add_fixit_insert to add_fixit_insert_before.
(selftest::test_one_liner_fixit_insert_after): New function.
(selftest::test_one_liner_fixit_validation_adhoc_locations):
Update for renaming of add_fixit_insert to
add_fixit_insert_before.
(selftest::test_one_liner_many_fixits): Likewise.
(selftest::test_diagnostic_show_locus_one_liner): Update for
renaming, call new test function.
(selftest::test_diagnostic_show_locus_fixit_lines): Update for
renaming of add_fixit_insert to add_fixit_insert_before.
(selftest::test_fixit_consolidation): Likewise.
* diagnostic.c (selftest::test_print_parseable_fixits_insert):
Likewise.
* edit-context.c (selftest::test_applying_fixits_insert): Rename
to...
(selftest::test_applying_fixits_insert_before): ...this.
(selftest::test_applying_fixits_insert): Update for renaming of
add_fixit_insert to add_fixit_insert_before.
(selftest::test_applying_fixits_insert_after): New function.
(selftest::test_applying_fixits_insert_after_at_line_end): New
function.
(selftest::test_applying_fixits_insert_after_failure): New
function.
(selftest::test_applying_fixits_multiple): Update for renaming of
add_fixit_insert to add_fixit_insert_before.
(selftest::change_line): Likewise.
(selftest::test_applying_fixits_unreadable_file): Likewise.
(selftest::test_applying_fixits_line_out_of_range): Likewise.
(selftest::test_applying_fixits_column_validation): Likewise.
(selftest::test_applying_fixits_column_validation): Likewise.
(selftest::edit_context_c_tests): Update for renamed test
function; call new test functions.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
(test_show_locus): Replace rich_location::add_fixit_insert calls
with add_fixit_insert_before and add_fixit_insert_after.

libcpp/ChangeLog:
* include/line-map.h (class rich_location): Add description of
fix-it hints to leading comment.
(rich_location::add_fixit_insert): Rename both overloaded methods
to..
(rich_location::add_fixit_insert_before): ...this, updating their
comments.
(rich_location::add_fixit_insert_after): Two new overloaded
methods.
(rich_location::stop_supporting_fixits): New method.
* line-map.c (rich_location::add_fixit_insert): Rename both
overloaded methods to..
(rich_location::add_fixit_insert_before): ...this, updating their
comments.
(rich_location::add_fixit_insert_after): Two new methods.
(rich_location::reject_impossible_fixit): Split out
failure-handling into...
(rich_location::stop_supporting_fixits): New method.

From-SVN: r240115

8 years agore PR tree-optimization/77536 (Vectorizer not maintaining relationship of relative...
Pat Haugen [Tue, 13 Sep 2016 15:58:52 +0000 (15:58 +0000)]
re PR tree-optimization/77536 (Vectorizer not maintaining relationship of relative block frequencies in absence of real profile data)

PR tree-optimization/77536
PR rtl-optimization/68212
* config/rs6000/rs6000.md (div->recip splitter): Remove
optimize_insn_for_speed_p condition.

From-SVN: r240113

8 years agoDon't treat array as builtin type in set_underlying_type
Jason Merrill [Tue, 13 Sep 2016 15:56:03 +0000 (11:56 -0400)]
Don't treat array as builtin type in set_underlying_type

2016-09-13  Jason Merrill  <jason@redhat.com>
    Tom de Vries  <tom@codesourcery.com>

PR c++/77427
* c-common.c (set_underlying_type): Don't treat array as builtin type.

* g++.dg/pr77427.C: New test.

Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r240112

8 years agoAdd new effective target: profile_update_atomic
Martin Liska [Tue, 13 Sep 2016 13:30:13 +0000 (15:30 +0200)]
Add new effective target: profile_update_atomic

* g++.dg/gcov/gcov-threads-1.C: Use profile_update_atomic
effective target.
* gcc.dg/tree-prof/val-profiler-threads-1.c: Likewise.
* lib/target-supports.exp: Define the new target.

From-SVN: r240111

8 years agoTrying again to fix aligned-new on m68k.
Jason Merrill [Tue, 13 Sep 2016 13:15:39 +0000 (09:15 -0400)]
Trying again to fix aligned-new on m68k.

* c-common.c (check_cxx_fundamental_alignment_constraints): Don't
limit types at all.

From-SVN: r240110

8 years agoc-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT.
Marek Polacek [Tue, 13 Sep 2016 10:42:39 +0000 (10:42 +0000)]
c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT.

* c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT.  Use
it.

From-SVN: r240109

8 years ago* optabs.c (prepare_cmp_insn): Update documentation comment.
Maciej W. Rozycki [Tue, 13 Sep 2016 09:47:10 +0000 (09:47 +0000)]
* optabs.c (prepare_cmp_insn): Update documentation comment.

From-SVN: r240108

8 years agore PR middle-end/77475 (unnecessary or misleading context in reporting command line...
Jakub Jelinek [Tue, 13 Sep 2016 08:45:36 +0000 (10:45 +0200)]
re PR middle-end/77475 (unnecessary or misleading context in reporting command line problems)

PR middle-end/77475
* opts.h (candidates_list_and_hint): Declare.
* opts-common.c (candidates_list_and_hint): New function.
(cmdline_handle_error): Use it.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
From-SVN: r240107

8 years agoDaily bump.
GCC Administrator [Tue, 13 Sep 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240106

8 years agoSimplify edited_file::print_diff
David Malcolm [Tue, 13 Sep 2016 00:07:52 +0000 (00:07 +0000)]
Simplify edited_file::print_diff

gcc/ChangeLog:
* edit-context.c (edited_line::get_len): New accessor.
(edited_file::print_diff): Split out hunk-printing into...
(edited_file::print_diff_hunk): New method.
(edited_file::print_diff_line): New method.

From-SVN: r240103

8 years agoAdd tunning of ldpw for THunderX.
Andrew Pinski [Mon, 12 Sep 2016 21:30:33 +0000 (21:30 +0000)]
Add tunning of ldpw for THunderX.

2016-09-12  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
        New tuning option.
        * config/aarch64/aarch64.c (thunderx_tunings): Enable
        AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
        (aarch64_operands_ok_for_ldpstp): Return false if
        AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
        was SImode and the alignment is less than 8 byte.
        (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
2016-09-12  Andrew Pinski  <apinski@cavium.com>

        * gcc.target/aarch64/thunderxloadpair.c: New testcase.
        * gcc.target/aarch64/thunderxnoloadpair.c: New testcase.

From-SVN: r240102

8 years agore PR target/77570 ([msp430-elf] Wrong assembly in delay_cycles_32x insn declaration)
Orlando Arias [Mon, 12 Sep 2016 21:27:48 +0000 (21:27 +0000)]
re PR target/77570 ([msp430-elf] Wrong assembly in delay_cycles_32x insn declaration)

2016-09-12  Orlando Arias  <oarias@knights.ucf.edu>
PR target/77570
* config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.

From-SVN: r240101

8 years agoFix aligned-new tests on m68k.
Jason Merrill [Mon, 12 Sep 2016 20:55:55 +0000 (16:55 -0400)]
Fix aligned-new tests on m68k.

* c-common.c (check_cxx_fundamental_alignment_constraints): Fix
bit/byte confusion, allow large alignment for types.

From-SVN: r240100

8 years agoscalar-by-value-4_x.c: Also test passing of variable arguments.
Uros Bizjak [Mon, 12 Sep 2016 20:32:17 +0000 (22:32 +0200)]
scalar-by-value-4_x.c: Also test passing of variable arguments.

* gcc.dg/compat/scalar-by-value-4_x.c: Also test passing of
variable arguments.
* gcc.dg/compat/scalar-by-value-4_y.c (testva##NAME): New.
* gcc.dg/compat/scalar-by-value-4_main.c: Update description comment.
* gcc.dg/compat/scalar-return-4_x.c: Also test returning of
variable argument.
* gcc.dg/compat/scalar-return-4_y.c (testva##NAME): New.
* gcc.dg/compat/scalar-return-4_main.c: Update description comment.

From-SVN: r240099

8 years agore PR c++/77496 (ICE in instantiate_type, at cp/class.c:8270)
Bernd Edlinger [Mon, 12 Sep 2016 20:18:16 +0000 (20:18 +0000)]
re PR c++/77496 (ICE in instantiate_type, at cp/class.c:8270)

gcc/c-family:
2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/77496
        * c-common.c (warn_for_omitted_condop): Also warn for boolean data.

gcc/c:
2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/77496
        * c-parser.c (c_parser_conditional_expression): Pass the rightmost
        COMPOUND_EXPR to warn_for_omitted_condop.

gcc/cp:
2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/77496
        * call.c (build_conditional_expr_1): Call warn_for_omitted_condop.
        * class.c (instantiate_type): Look through the SAVE_EXPR.

gcc/testsuite:
2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/77496
        * c-c++-common/warn-ommitted-condop.c: Add more test cases.
        * g++.dg/ext/pr77496.C: New test.
        * g++.dg/warn/pr77496.C: New test.

From-SVN: r240098

8 years ago* config/abi/pre/gnu.ver: Use [jmy] for size_t.
Jason Merrill [Mon, 12 Sep 2016 18:20:46 +0000 (14:20 -0400)]
* config/abi/pre/gnu.ver: Use [jmy] for size_t.

From-SVN: r240097

8 years agoFix suggestions for non-trivial Wformat type cases (PR c/72858)
David Malcolm [Mon, 12 Sep 2016 16:01:02 +0000 (16:01 +0000)]
Fix suggestions for non-trivial Wformat type cases (PR c/72858)

gcc/c-family/ChangeLog:
PR c/72858
* c-format.c (argument_parser::check_argument_type): Add params
"type_start" and "conversion_char".  Use the former to generate
offset_to_type_start and pass it and conversion_char to
check_format_types.
(check_format_info_main): Capture the start of the type
information as "type_start", and pass it an format_char
to arg_parser.check_argument_type.
(check_format_types): Provide an example in the leading comment.
Add params "offset_to_type_start" and "conversion_char"; pass
them to format_type_warning calls.
(test_get_modifier_for_format_len): Likewise.
(matching_type_p): New function.
(get_format_for_type): Add param "conversion_char" and move
implementation into...
(get_format_for_type_1): ...new function, called twice.
Use new function matching_type_p rather than checking for
TYPE_CANONICAL equality.
(get_corrected_substring): New function.
(format_type_warning): Provide an example in the leading comment.
Add params "offset_to_type_start" and "conversion_char".  Replace
call to get_format_for_type with call to get_corrected_substring
and move rejection of hints for widths/precisions there.
(assert_format_for_type_streq): Add param "conversion_char".
(ASSERT_FORMAT_FOR_TYPE_STREQ): Add param CONVERSION_CHAR.
(test_get_format_for_type_printf): Add conversion chars to the
tests, adding coverage for various combinations of integer
vs double conversions, and for preserving octal and hexadecimal
conversions.
(test_get_format_for_type_scanf): Add conversion chars to the
tests.

gcc/testsuite/ChangeLog:
PR c/72858
* gcc.dg/format/diagnostic-ranges.c: Update expected suggestions
to preserve conversion chars, and to preserve prefix information.
* gcc.dg/format/pr72858.c: New test case.

From-SVN: r240095

8 years agoImplement P0253R1, Fixing a design mistake in the searchers interface in Library...
Ville Voutilainen [Mon, 12 Sep 2016 15:48:32 +0000 (18:48 +0300)]
Implement P0253R1, Fixing a design mistake in the searchers interface in Library Fundamentals.

Implement P0253R1, Fixing a design mistake in the searchers
interface in Library Fundamentals.
* include/std/functional: (utility): New include in C++17 mode.
(default_searcher): Use a pair as return type, adjust the definition.
(boyer_moore_searcher): Likewise.
(boyer_moore_horspool_searcher): Likewise.
* testsuite/20_util/function_objects/searchers.cc: Adjust.

From-SVN: r240094

8 years agoImplement C++17 string searchers.
Ville Voutilainen [Mon, 12 Sep 2016 15:48:07 +0000 (18:48 +0300)]
Implement C++17 string searchers.

* include/std/functional: (unordered_map, vector): New includes
in C++17 mode.
(array, bits/stl_algo.h): Likewise.
(default_searcher, __boyer_moore_map_base): New.
(__boyer_moore_array_base, __is_std_equal_to): Likewise.
(__boyer_moore_base_t, boyer_moore_searcher): Likewise.
(boyer_moore_horspool_searcher, make_default_searcher): Likewise.
(make_boyer_moore_searcher): Likewise.
(make_boyer_moore_horspool_searcher): Likewise.
* testsuite/20_util/function_objects/searchers.cc: New.

From-SVN: r240093

8 years agoconfigure.ac: Check for the minimum in-tree MPFR version handled.
Maciej W. Rozycki [Mon, 12 Sep 2016 14:08:48 +0000 (14:08 +0000)]
configure.ac: Check for the minimum in-tree MPFR version handled.

* configure.ac: Check for the minimum in-tree MPFR version
handled.
* configure: Regenerate.

From-SVN: r240092

8 years agoextend.texi: Use lowercase "boolean".
Marek Polacek [Mon, 12 Sep 2016 11:43:21 +0000 (11:43 +0000)]
extend.texi: Use lowercase "boolean".

* doc/extend.texi: Use lowercase "boolean".
* doc/invoke.texi: Likewise.
* doc/md.texi: Likewise.
* target.def: Likewise.
* doc/tm.texi: Regenerated.

From-SVN: r240091

8 years ago[libstdc++-v3] Fix dg-require before dg-run directives in testsuite.
Matthew Wahab [Mon, 12 Sep 2016 09:03:50 +0000 (09:03 +0000)]
[libstdc++-v3] Fix dg-require before dg-run directives in testsuite.

* testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
Move dg-do directive before dg-require.
* testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
* testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
Likewise.
* testsuite/22_locale/codecvt/utf8.cc: Likewise.
* testsuite/22_locale/locale/cons/unicode.cc: Likewise.
* testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
* testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
* testsuite/23_containers/forward_list/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after3_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after4_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after5_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after6_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after7_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after8_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after9_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/insert_after1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/insert_after2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/insert_after3_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/insert_after4_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/forward_list/debug/splice_after1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after3_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after4_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after5_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after6_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after7_neg.cc: Likewise.
* testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
* testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
* testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
* testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
* testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/map/debug/60499.cc: Likewise.
* testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/60499.cc: Likewise.
* testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/multimap/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/60499.cc: Likewise.
* testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/multiset/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/set/debug/60499.cc: Likewise.
* testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/invalid_local_iterator_compare_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/invalid_local_iterator_range_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/use_erased_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/use_invalid_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/use_invalid_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/cend_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/end1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/end2_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_compare_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_range_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/max_load_factor_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/use_erased_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/use_invalid_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/use_invalid_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/60499.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/end1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/end2_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_compare_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_range_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/max_load_factor_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/use_erased_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/use_invalid_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/use_invalid_local_iterator_neg.cc:
Likewise.
*  testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/invalid_local_iterator_compare_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/invalid_local_iterator_range_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/max_load_factor_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/use_erased_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/use_invalid_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/use_invalid_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/vector/debug/52433.cc: Likewise.
* testsuite/23_containers/vector/debug/60499.cc: Likewise.
* testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
* testsuite/23_containers/vector/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
* testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
* testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
* testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
* testsuite/29_atomics/atomic/60658.cc: Likewise.
* testsuite/29_atomics/atomic/60695.cc: Likewise.
* testsuite/29_atomics/atomic/62259.cc: Likewise.
* testsuite/29_atomics/atomic/64658.cc: Likewise.
* testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
* testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
* testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: Likewise.

From-SVN: r240090

8 years ago[expmed.c] PR middle-end/77426 Delete duplicate condition in synth_mult
Kyrylo Tkachov [Mon, 12 Sep 2016 08:17:27 +0000 (08:17 +0000)]
[expmed.c] PR middle-end/77426 Delete duplicate condition in synth_mult

PR middle-end/77426
* expmed.c (synth_mult): Delete duplicate mode check.

From-SVN: r240089

8 years agoDaily bump.
GCC Administrator [Mon, 12 Sep 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240088

8 years agopr77507.f90: Move to ...
Steven G. Kargl [Sun, 11 Sep 2016 19:04:56 +0000 (19:04 +0000)]
pr77507.f90: Move to ...

2016-09-11  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.dg/pr77507.f90: Move to ...
* gfortran.dg/ieee/pr77507.f90: here.

From-SVN: r240085

8 years ago* all: Remove meaningless trailing whitespace.
Carlos Liam [Sun, 11 Sep 2016 13:44:07 +0000 (15:44 +0200)]
* all: Remove meaningless trailing whitespace.

From-SVN: r240084

8 years agoruntime/internal/sys: new package, API copied from Go 1.7
Ian Lance Taylor [Sun, 11 Sep 2016 13:23:27 +0000 (13:23 +0000)]
runtime/internal/sys: new package, API copied from Go 1.7

    Copy over the Go 1.7 runtime/internal/sys package, but instead of having
    separate files for each GOARCH and GOOS value, set the values in
    configure.ac and write them out in Makefile.am.  Setting the values in
    configure.ac should make it easier to add new processors.

    Remove the automake GOARCH conditionals, which are no longer used.
    Leave the GOOS conditionals for now, as they are used for the C runtime
    package.

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

From-SVN: r240083

8 years agore PR ipa/61159 (__builtin_constant_p gives incorrect results with aliases)
Jan Hubicka [Sun, 11 Sep 2016 12:15:02 +0000 (14:15 +0200)]
re PR ipa/61159 (__builtin_constant_p gives incorrect results with aliases)

PR ipa/61159
* compile/pr61159.c: New testcase

From-SVN: r240082

8 years agore PR ipa/63416 (Three calls to empty functions via pointers get folded, but not...
Jan Hubicka [Sun, 11 Sep 2016 12:08:28 +0000 (14:08 +0200)]
re PR ipa/63416 (Three calls to empty functions via pointers get folded, but not inlined)

PR ipa/64316
* gcc.dg/ipa/pr63416.c: New testcase.

From-SVN: r240081

8 years agoFix bootstrap failure when ATOMIC_INT_LOCK_FREE < 2
Jonathan Wakely [Sun, 11 Sep 2016 10:19:30 +0000 (11:19 +0100)]
Fix bootstrap failure when ATOMIC_INT_LOCK_FREE < 2

* libsupc++/new_opant.cc: Include exception_defines.h.
* libsupc++/new_opvant.cc: Likewise.

From-SVN: r240080

8 years agoDaily bump.
GCC Administrator [Sun, 11 Sep 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240079

8 years agoFix typo in log.
Jerry DeLisle [Sat, 10 Sep 2016 21:20:12 +0000 (21:20 +0000)]
Fix typo in log.

From-SVN: r240076

8 years agoFix typo in log.
Jerry DeLisle [Sat, 10 Sep 2016 21:18:28 +0000 (21:18 +0000)]
Fix typo in log.

From-SVN: r240075

8 years agore PR fortran/77532 ([F03] ICE in check_dtio_interface1, at fortran/interface.c:4622)
Paul Thomas [Sat, 10 Sep 2016 21:16:45 +0000 (21:16 +0000)]
re PR fortran/77532 ([F03] ICE in check_dtio_interface1, at fortran/interface.c:4622)

2016-09-10  Paul Thomas  <pault@gcc.gnu.org>
    Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77532
^ interface.c (check_dtio_arg_TKR_intent): Return after error.
(check_dtio_interface1): Remove asserts, test for NULL and return
if found.

gfortran.dg/dtio_11.f90: new test.

Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org>
From-SVN: r240074

8 years agore PR fortran/77507 (gfortran rejects keyworded calls to procedures from intrinsic...
Steven G. Kargl [Sat, 10 Sep 2016 14:45:46 +0000 (14:45 +0000)]
re PR fortran/77507 (gfortran rejects keyworded calls to procedures from intrinsic modules)

2016-09-10  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77507
* gfortran.dg/c_assoc_2.f03: Update for r240050
* gfortran.dg/c_assoc_4.f90: Ditto.

From-SVN: r240073

8 years agoMake canonical_va_list_type more strict
Tom de Vries [Sat, 10 Sep 2016 14:38:56 +0000 (14:38 +0000)]
Make canonical_va_list_type more strict

2016-09-10  Tom de Vries  <tom@codesourcery.com>

PR C/71602
* builtins.c (std_canonical_va_list_type): Strictly return non-null for
va_list type only.
* config/i386/i386.c (ix86_canonical_va_list_type): Same.
* gimplify.c (gimplify_va_arg_expr): Handle &va_list.

* c-common.c (build_va_arg): Handle more strict
targetm.canonical_va_list_type.  Replace first argument type error with
assert.

* c-c++-common/va-arg-va-list-type.c: New test.

From-SVN: r240072

8 years agolibgo: update to Go 1.7.1 release
Ian Lance Taylor [Sat, 10 Sep 2016 13:14:00 +0000 (13:14 +0000)]
libgo: update to Go 1.7.1 release

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

From-SVN: r240071

8 years agoruntime/internal/atomic: new package, API copied from Go 1.7
Ian Lance Taylor [Sat, 10 Sep 2016 12:21:59 +0000 (12:21 +0000)]
runtime/internal/atomic: new package, API copied from Go 1.7

    Copy over the Go 1.7 runtime/internal/atomic package, but implement the
    functions in C using __atomic functions rather than using the
    processor-specific assembler code.

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

From-SVN: r240070

8 years agogo-backend.c (go_trampoline_info): Remove.
Ian Lance Taylor [Sat, 10 Sep 2016 10:39:22 +0000 (10:39 +0000)]
go-backend.c (go_trampoline_info): Remove.

* go-backend.c (go_trampoline_info): Remove.
* go-c.h (go_trampoline_info): Don't declare.

From-SVN: r240069

8 years agoFix -Wshadow warning in libiberty/cp-demangle.c
Mark Wielaard [Sat, 10 Sep 2016 10:37:35 +0000 (10:37 +0000)]
Fix -Wshadow warning in libiberty/cp-demangle.c

valgrind contains a copy of the libiberty demangler which gets compiled
with -Wshadow. That shows the following warning:

cp-demangle.c: In function ‘d_substitution’:
cp-demangle.c:3772:35: warning: declaration of ‘c’ shadows a previous local
        struct demangle_component *c;
                                   ^
cp-demangle.c:3708:8: note: shadowed declaration is here
   char c;
        ^

Fix that by renaming the struct demangle_component variable to dc.

libiberty/ChangeLog:

* cp-demangle.c (d_substitution): Change struct demangle_component
variable name from c to dc.

From-SVN: r240068

8 years agocompiler: code cleanup (unused header file)
Ian Lance Taylor [Sat, 10 Sep 2016 10:35:19 +0000 (10:35 +0000)]
compiler: code cleanup (unused header file)

    Remove inclusion of simple-ojbject.h (no longer needed);
    adjust comments.

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

From-SVN: r240067

8 years agore PR rtl-optimization/77289 (ICE in extract_constrain_insn, at recog.c:2212 on power...
Peter Bergner [Sat, 10 Sep 2016 01:36:33 +0000 (20:36 -0500)]
re PR rtl-optimization/77289 (ICE in extract_constrain_insn, at recog.c:2212 on powerpc64)

gcc/
PR rtl-optimization/77289
* lra-constraints.c (get_final_hard_regno): Add support for non hard
register numbers.  Remove support for subregs.
(get_hard_regno): Use SUBREG_P.  Don't call get_final_hard_regno().
(get_reg_class): Delete removed get_final_hard_regno() argument.
(uses_hard_regs_p): Call get_final_hard_regno().

gcc/testsuite/
PR rtl-optimization/77289
* gcc.target/powerpc/pr77289.c: New test.

From-SVN: r240065

8 years agoCommit the ChangeLog entry for revision 240063.
Steven G. Kargl [Sat, 10 Sep 2016 00:59:33 +0000 (00:59 +0000)]
Commit the ChangeLog entry for revision 240063.

From-SVN: r240064

8 years agore PR fortran/77420 (gfortran and equivalence produces internal compiler error)
Steven G. Kargl [Sat, 10 Sep 2016 00:52:45 +0000 (00:52 +0000)]
re PR fortran/77420 (gfortran and equivalence produces internal compiler error)

2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77420
* module.c (load_equiv): If the current namespace has a list of
equivalence statements, initialize duplicate to false and then
look for duplicates; otherwise, initialize it to true.

2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77420
* gfortran.dg/pr77420.f90: New test.

From-SVN: r240063

8 years agoDaily bump.
GCC Administrator [Sat, 10 Sep 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240062

8 years agoPR c/77520 - wrong value for extended ASCII characters in -Wformat message
Martin Sebor [Fri, 9 Sep 2016 23:12:10 +0000 (23:12 +0000)]
PR c/77520 - wrong value for extended ASCII characters in -Wformat message

PR c/77520 - wrong value for extended ASCII characters in -Wformat message
PR c/77521 - %qc format directive should quote non-printable characters

gcc/c-family/ChangeLog:

PR c/77520
PR c/77521
* c-format.c (argument_parser::find_format_char_info): Use %qc
format directive unconditionally.

gcc/ChangeLog:

PR c/77520
PR c/77521
* pretty-print.c (pp_quoted_string): New function.
(pp_format): Call it for %c and %s directives.

gcc/testsuite/ChangeLog:

PR c/77520
PR c/77521
* gcc.dg/pr77520.c: New test.
* gcc.dg/pr77521.c: New test.

From-SVN: r240059

8 years agotm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
Bernd Edlinger [Fri, 9 Sep 2016 23:08:54 +0000 (23:08 +0000)]
tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.

2016-09-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
        (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
        INITIAL_ELIMINATION_OFFSET) : Update documentation.
        * target.def (frame_pointer_required, can_eliminate): Likewise.
        * doc/tm.texi: Regenerated.
        * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
        ELIMINABLE_REGS.
        * df-scan.c (df_hard_reg_init): Likewise.
        * ira.c (ira_setup_eliminable_regset): Likewise.
        * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
        init_elim_table): Likewise.
        * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
        set_initial_elim_offsets, update_eliminables,
        init_elim_table): Likewise.
        * rtlanal.c (get_initial_register_offset): Likewise.
        * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
        * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
        * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
        * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
        * config/fr30/fr30.h: Fix comment.
        * config/frv/frv.c: Likewise.
        * config/frv/frv.h: Likewise.
        * config/ft32/ft32.h: Likewise.
        * config/visium/visium.h: Likewise.
        * config/pa/pa64-linux.h: Likewise.
        * config/v850/v850.h: Likewise.
        * config/cris/cris.c: Likewise.
        * config/ia64/ia64.h: Likewise.
        * config/moxie/moxie.h: Likewise.
        * config/m32r/m32r.h: Likewise.

From-SVN: r240058

8 years agore PR target/77267 (MPX does not work in a presence of "-Wl,-as-needed" option (Ubunt...
Alexander Ivchenko [Fri, 9 Sep 2016 21:38:06 +0000 (21:38 +0000)]
re PR target/77267 (MPX does not work in a presence of "-Wl,-as-needed" option (Ubuntu default))

Fix PR target/77267

2016-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>

PR target/77267
* config.in: Regenerate.
* config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
New macro.
(MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
(LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
static-libmpxwrappers case.
(LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
MPX_LD_AS_NEEDED_GUARD_POP.
* configure: Regenerate.
* configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
defined if linker support "--push-state"/"--pop-state".

From-SVN: r240057

8 years agoImplement P0035R4, C++17 new of over-aligned types.
Jason Merrill [Fri, 9 Sep 2016 21:22:15 +0000 (17:22 -0400)]
Implement P0035R4, C++17 new of over-aligned types.

gcc/cp/
* cp-tree.h (enum cp_tree_index): Add CPTI_ALIGN_TYPE.
(align_type_node): New macro.
* call.c (build_operator_new_call): Handle C++17 aligned new.
(second_parm_is_size_t, build_op_delete_call): Likewise.
(non_placement_deallocation_fn_p): Likewise. Rename to
usual_deallocation_fn_p.
(aligned_allocation_fn_p, aligned_deallocation_fn_p): New.
* decl.c (cxx_init_decl_processing): Add aligned new support.
* init.c (type_has_new_extended_alignment): New.
(build_new_1): Handle aligned new.
* tree.c (vec_copy_and_insert): New.
gcc/c-family/
* c.opt: Add -faligned-new and -Waligned-new.
* c-common.c (max_align_t_align): Split out from...
(cxx_fundamental_alignment_p): ...here.
* c-common.h: Declare it.
* c-cppbuiltin.c (c_cpp_builtins): Handle aligned new.
libstdc++-v3/
* libsupc++/new: Declare aligned new/delete operators.
* config/abi/pre/gnu.ver: Export them.
* configure.ac: Check for aligned_alloc, posix_memalign, memalign,
_aligned_malloc.
* libsupc++/new_opa.cc: New.
* libsupc++/new_opant.cc: New.
* libsupc++/new_opva.cc: New.
* libsupc++/new_opva.cc: New.
* libsupc++/del_opa.cc: New.
* libsupc++/del_opant.cc: New.
* libsupc++/del_opsa.cc: New.
* libsupc++/del_opva.cc: New.
* libsupc++/del_opvant.cc: New.
* libsupc++/del_opvsa.cc: New.
* libsupc++/Makefile.am: Build them.

From-SVN: r240056

8 years ago.gitignore: Ignore in-tree prerequisites.
Jason Merrill [Fri, 9 Sep 2016 21:20:55 +0000 (17:20 -0400)]
.gitignore: Ignore in-tree prerequisites.

From-SVN: r240055

8 years agocompiler: increase buffer size to avoid -Wformat-length warning
Ian Lance Taylor [Fri, 9 Sep 2016 19:39:36 +0000 (19:39 +0000)]
compiler: increase buffer size to avoid -Wformat-length warning

    GCC will soon get a new -Wformat-length option as described in
    https://gcc.gnu.org/PR49905.  This change makes a buffer larger to avoid
    a warning.

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

Also revert ChangeLog entry in gcc/go/ChangeLog--changes to
gcc/go/gofrontend do not get ChangeLog entries.

From-SVN: r240054

8 years agocompiler: add abstraction layer for sha1 checksums.
Than McIntosh [Fri, 9 Sep 2016 18:27:42 +0000 (18:27 +0000)]
compiler: add abstraction layer for sha1 checksums.

    Add new interface for the front end code to use when computing SHA1
    checksums; the intent is to allow the different implementation in
    different back ends.

    No change in functionality for gccgo; this is an enabling change to
    permit the front end to be used with other back ends (e.g. LLVM).

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

* go-sha1.cc: New file.
* Make-lang.in (GO_OBJS): Add go/go-sha1.o.
(CFLAGS-go/go-sha1.o): New variable.

From-SVN: r240053

8 years agore PR fortran/77506 (F2008 Standard does not allow CHARACTER(LEN=*) in array constructor)
Steven G. Kargl [Fri, 9 Sep 2016 18:04:23 +0000 (18:04 +0000)]
re PR fortran/77506 (F2008 Standard does not allow CHARACTER(LEN=*) in array constructor)

2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77506
* array.c (gfc_match_array_constructor): CHARACTER(len=*) cannot
appear in an array constructor.

2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77506
* gfortran.dg/pr77506.f90: New test.

From-SVN: r240052

8 years agocpp.texi (__*_WIDTH__): Small wording fixes.
Bernd Edlinger [Fri, 9 Sep 2016 17:59:50 +0000 (17:59 +0000)]
cpp.texi (__*_WIDTH__): Small wording fixes.

2016-09-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/cpp.texi (__*_WIDTH__): Small wording fixes.

From-SVN: r240051

8 years agore PR fortran/77507 (gfortran rejects keyworded calls to procedures from intrinsic...
Steven G. Kargl [Fri, 9 Sep 2016 17:57:11 +0000 (17:57 +0000)]
re PR fortran/77507 (gfortran rejects keyworded calls to procedures from intrinsic modules)

2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77507
* intrinsic.c (add_functions):  Use correct keyword.

2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77507
  * ieee/ieee_arithmetic.F90 (IEEE_VALUE_4,IEEE_VALUE_8,IEEE_VALULE_10,
IEEE_VALUE_16):  Use correct keyword.

2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77507
* gfortran.dg/pr77507.f90: New test.

From-SVN: r240050

8 years agocompiler: break dependence on hex_value
Ian Lance Taylor [Fri, 9 Sep 2016 17:44:12 +0000 (17:44 +0000)]
compiler: break dependence on hex_value

    Rework the lexical analyzer to eliminate the need to call
    hex_value() in libiberty (added equivalent local functionality).
    No change in functionality.

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

From-SVN: r240049

8 years agoDefine TS 18661-1 type width macros in <limits.h> and <stdint.h>.
Joseph Myers [Fri, 9 Sep 2016 16:59:43 +0000 (17:59 +0100)]
Define TS 18661-1 type width macros in <limits.h> and <stdint.h>.

TS 18661-1 defines <limits.h> and <stdint.h> macros for widths of
standard integer types and the typedefs defined in, or whose limits
are defined in, <stdint.h>.  (The connection to the main
floating-point subject matter of TS 18661-1 is that these are intended
to be used with the fromfp functions to convert from floating point to
integer types of any width in any rounding direction, though these
macros may be of more general use.)

This patch implements support for these macros in GCC's <limits.h> and
<stdint.h>.  To avoid needing to implement fixincludes for system
headers where GCC wraps the system libc's <stdint.h> in hosted mode,
the test for the <stdint.h> macros uses -ffreestanding (I'll add the
macros to glibc's headers separately) - but as usual for new features
in these headers, platforms (primarily OpenBSD) that use USER_H to
avoid using GCC's headers at all will have failures until the system
headers have the feature added or appropriate fixincludes are
implemented.

The header macros are implemented using appropriate new predefined
macros, with the code avoiding defining more such macros than
necessary (so one predefined macro suffices for corresponding signed
and unsigned types, while no such predefined macros are needed for the
exact-width types such as int8_t).

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc:
* doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
(__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
(__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
(__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
(__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
(__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
(__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
Document.
* ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
width macros from TS 18661-1.
* glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.

gcc/c-family:
* c-cppbuiltin.c (builtin_define_type_width): New function.
(builtin_define_stdint_macros, c_cpp_builtins): Define type width
macros.

gcc/testsuite:
* gcc.dg/limits-width-1.c, gcc.dg/stdint-width-1.c: New tests.

From-SVN: r240048

8 years agoruntime: use alignof to check alignment of ucontext_t
Ian Lance Taylor [Fri, 9 Sep 2016 16:39:44 +0000 (16:39 +0000)]
runtime: use alignof to check alignment of ucontext_t

    Use alignof rather than assuming a 16 byte alignment.

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

From-SVN: r240047

8 years agoruntime: remove remaining use of MAKECONTEXT_STACK_TOP macro
Ian Lance Taylor [Fri, 9 Sep 2016 14:00:43 +0000 (14:00 +0000)]
runtime: remove remaining use of MAKECONTEXT_STACK_TOP macro

    The definition and most uses of MAKECONTEXT_STACK_TOP were removed in
    https://golang.org/cl/88660043, which removed support for Solaris 8/9.
    One use of MAKECONTEXT_STACK_TOP was accidentally left in the source
    code.  Remove it now.

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

From-SVN: r240045

8 years agoruntime: align ucontext_t argument to 16 byte boundary
Ian Lance Taylor [Fri, 9 Sep 2016 13:31:49 +0000 (13:31 +0000)]
runtime: align ucontext_t argument to 16 byte boundary

    Some systems, such as ia64 and PPC, require that a ucontext_t pointer
    passed to getcontext and friends be aligned to a 16-byte boundary.
    Currently the ucontext_t fields in the g structure are defined in Go,
    and Go has no way to ensure a 16-byte alignment for a struct field.
    The fields are currently represented by an array of unsafe.Pointer.
    Enforce the alignment by making the array larger, and picking an offset
    into the array that is 16-byte aligned.

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

From-SVN: r240044

8 years ago[Patch libgcc] Enable HCmode multiply and divide (mulhc3/divhc3)
James Greenhalgh [Fri, 9 Sep 2016 09:40:22 +0000 (09:40 +0000)]
[Patch libgcc] Enable HCmode multiply and divide (mulhc3/divhc3)

This patch arranges for half-precision complex multiply and divide
routines to be built if __LIBGCC_HAS_HF_MODE__.  This will be true
if the target supports the _Float16 type.

libgcc/

PR target/63250
*  Makefile.in (lib2funcs): Build _mulhc3 and _divhc3.
* libgcc2.h (LIBGCC_HAS_HF_MODE): Conditionally define.
(HFtype): Likewise.
(HCtype): Likewise.
(__divhc3): Likewise.
(__mulhc3): Likewise.
* libgcc2.c: Support _mulhc3 and _divhc3.

From-SVN: r240043

8 years agoDaily bump.
GCC Administrator [Fri, 9 Sep 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240042

8 years agore PR fortran/69514 (ICE with nested array constructor)
Steven G. Kargl [Thu, 8 Sep 2016 22:33:10 +0000 (22:33 +0000)]
re PR fortran/69514 (ICE with nested array constructor)

2016-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/69514
* array.c (gfc_match_array_constructor):  If type-spec is present,
walk the array constructor performing possible conversions for
numeric types.

2016-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
    Louis Krupp      <lkrupp@gcc.gnu.org>

PR fortran/69514
* gfortran.dg/pr69514_1.f90: New test.
* gfortran.dg/pr69514_2.f90: New test.

Co-Authored-By: Louis Krupp <lkrupp@gcc.gnu.org>
From-SVN: r240039

8 years agore PR fortran/77500 (ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:2822)
Jakub Jelinek [Thu, 8 Sep 2016 12:19:21 +0000 (14:19 +0200)]
re PR fortran/77500 (ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:2822)

PR fortran/77500
* trans-openmp.c (gfc_trans_omp_atomic): For atomic write or
swap, don't try to look through GFC_ISYM_CONVERSION.  In other cases,
check that value.function.isym is non-NULL before dereferencing it.

* gfortran.dg/gomp/pr77500.f90: New test.

From-SVN: r240038

8 years agore PR fortran/77516 (ICE in is_gimple_min_invariant, at gimple-expr.c:706)
Jakub Jelinek [Thu, 8 Sep 2016 12:18:16 +0000 (14:18 +0200)]
re PR fortran/77516 (ICE in is_gimple_min_invariant, at gimple-expr.c:706)

PR fortran/77516
* omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
OMP_CLAUSE_SAFELEN_EXPR.

* gfortran.dg/gomp/pr77516.f90: New test.

From-SVN: r240037

8 years agoDaily bump.
GCC Administrator [Thu, 8 Sep 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240036

8 years agoCorrect libgcc complex multiply excess precision handling (PR libgcc/77519).
Joseph Myers [Wed, 7 Sep 2016 23:02:56 +0000 (00:02 +0100)]
Correct libgcc complex multiply excess precision handling (PR libgcc/77519).

libgcc complex multiply is meant to eliminate excess
precision from certain internal values by forcing them to memory in
exactly those cases where the type has excess precision.  But in
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01894.html I
accidentally inverted the logic so that values get forced to memory in
exactly the cases where it's not needed.  (This is a pessimization in
the no-excess-precision case, in principle could lead to bad results
depending on code generation in the excess-precision case.  Note: I do
not have a test demonstrating bad results.)

Bootstrapped with no regressions on x86_64-pc-linux-gnu.  Code size
went down on x86_64 as expected; old sizes:

   text    data     bss     dec     hex filename
    887       0       0     887     377 _muldc3.o
    810       0       0     810     32a _mulsc3.o
   2032       0       0    2032     7f0 _multc3.o
    983       0       0     983     3d7 _mulxc3.o

New sizes:

    847       0       0     847     34f _muldc3.o
    770       0       0     770     302 _mulsc3.o
   2032       0       0    2032     7f0 _multc3.o
    951       0       0     951     3b7 _mulxc3.o

PR libgcc/77519
* libgcc2.c (NOTRUNC): Invert settings.

From-SVN: r240033

8 years agoPR middle-end/77475: Fix AArch64 testcases.
Jakub Jelinek [Wed, 7 Sep 2016 20:18:17 +0000 (22:18 +0200)]
PR middle-end/77475: Fix AArch64 testcases.

2016-09-07  Jakub Jelinek  <jakub@redhat.com>

PR middle-end/77475
* gcc.target/aarch64/arch-diagnostics-1.c: Expect error on line 0.
* gcc.target/aarch64/arch-diagnostics-2.c: Likewise.
* gcc.target/aarch64/cpu-diagnostics-1.c: Likewise.
* gcc.target/aarch64/cpu-diagnostics-2.c: Likewise.
* gcc.target/aarch64/cpu-diagnostics-3.c: Likewise.
* gcc.target/aarch64/cpu-diagnostics-4.c: Likewise.

From-SVN: r240030

8 years agoMove class substring_loc from c-family into gcc
David Malcolm [Wed, 7 Sep 2016 16:56:23 +0000 (16:56 +0000)]
Move class substring_loc from c-family into gcc

gcc/ChangeLog:
* Makefile.in (OBJS): Add substring-locations.o.
* langhooks-def.h (class substring_loc): New forward decl.
(lhd_get_substring_location): New decl.
(LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
* langhooks.c (lhd_get_substring_location): New function.
* langhooks.h (class substring_loc): New forward decl.
(struct lang_hooks): Add field get_substring_location.
* substring-locations.c: New file, taking definition of
format_warning_va and format_warning_at_substring from
c-family/c-format.c, making them non-static.
* substring-locations.h (class substring_loc): Move class here
from c-family/c-common.h.  Add and rewrite comments.
(format_warning_va): New decl.
(format_warning_at_substring): New decl.
(get_source_location_for_substring): Add comment.

gcc/c-family/ChangeLog:
* c-common.c (get_cpp_ttype_from_string_type): Handle being passed
a POINTER_TYPE.
(substring_loc::get_location): Move to substring-locations.c,
keeping implementation as...
(c_get_substring_location): New function, from the above, reworked
to use accessors rather than member lookup.
* c-common.h (class substring_loc): Move to substring-locations.h,
replacing with a forward decl.
(c_get_substring_location): New decl.
* c-format.c: Include "substring-locations.h".
(format_warning_va): Move to substring-locations.c.
(format_warning_at_substring): Likewise.

gcc/c/ChangeLog:
* c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
c_get_substring_location for this new langhook.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic_plugin_test_string_literals.c: Include
"substring-locations.h".

From-SVN: r240028

8 years agoi386.c: Add 'U' suffix to processor feature bits to avoid -Wnarrowing warning.
Eric Gallager [Wed, 7 Sep 2016 15:05:56 +0000 (15:05 +0000)]
i386.c: Add 'U' suffix to processor feature bits to avoid -Wnarrowing warning.

* config/i386/i386.c: Add 'U' suffix to processor feature bits
to avoid -Wnarrowing warning.
* config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
* opts.c: Likewise for SANITIZER_OPT bitmasks.

From-SVN: r240027

8 years agoImprove aarch64_legitimize_address - avoid splitting the offset if it is supported.
Wilco Dijkstra [Wed, 7 Sep 2016 14:56:59 +0000 (14:56 +0000)]
Improve aarch64_legitimize_address - avoid splitting the offset if it is supported.

Improve aarch64_legitimize_address - avoid splitting the offset if it is
supported.  When we do split, take the mode size into account.  BLKmode
falls into the unaligned case but should be treated like LDP/STP.
This improves codesize slightly due to fewer base address calculations:

int f(int *p) { return p[5000] + p[7000]; }

Now generates:

f:
add x0, x0, 16384
ldr w1, [x0, 3616]
ldr w0, [x0, 11616]
add w0, w1, w0
ret

instead of:

f:
add x1, x0, 16384
add x0, x0, 24576
ldr w1, [x1, 3616]
ldr w0, [x0, 3424]
add w0, w1, w0
ret

    gcc/
* config/aarch64/aarch64.c (aarch64_legitimize_address):
Avoid use of base_offset if offset already in range.

From-SVN: r240026

8 years agore PR tree-optimization/77450 (ICE: in verify_ssa, at tree-ssa.c:1016 on very simple...
Richard Biener [Wed, 7 Sep 2016 08:22:01 +0000 (08:22 +0000)]
re PR tree-optimization/77450 (ICE: in verify_ssa, at tree-ssa.c:1016 on very simple code with vectors)

2016-09-07  Richard Biener  <rguenther@suse.de>

PR c/77450
* c-c++-common/vector-subscript-8.c: Move ..
* gcc.dg/pr77450.c: ... here.

From-SVN: r240025

8 years ago[SH] Move definitions for atomic models to sh.h from sh-protos.h.
Kaz Kojima [Wed, 7 Sep 2016 04:44:40 +0000 (04:44 +0000)]
[SH] Move definitions for atomic models to sh.h from sh-protos.h.

From-SVN: r240023

8 years agoDaily bump.
GCC Administrator [Wed, 7 Sep 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240022

8 years agoFix dates on changelog
Jerry DeLisle [Tue, 6 Sep 2016 23:22:36 +0000 (23:22 +0000)]
Fix dates on changelog

From-SVN: r240019

8 years agore PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
Jerry DeLisle [Tue, 6 Sep 2016 23:22:26 +0000 (23:22 +0000)]
re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)

2016-09-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/77393
* io/write_float.def (build_float_string): Recognize when the
result will not fit in the user provided, star fill, and exit
early.

* gfortran.dg/fmt_f0_2.f90: Update test.
* gfortran.dg/fmt_f0_3.f90: New test.

From-SVN: r240018

8 years agore PR debug/77389 (FAIL: g++.dg/debug/dwarf2/template-params-12f.C -std=gnu++11...
Dominique d'Humieres [Tue, 6 Sep 2016 22:18:54 +0000 (00:18 +0200)]
re PR debug/77389 (FAIL: g++.dg/debug/dwarf2/template-params-12f.C  -std=gnu++11  scan-assembler-times DIE \\\\([^\\n]*\\\\) DW_TAG_template_value_param ...)

2016-09-07  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR debug/77389
* g++.dg/debug/dwarf2/template-params-12g.C: Pass -gno-strict-dwarf
in dg-options.

PR debug/57519
* g++.dg/debug/dwarf2/imported-decl-2.C: Likewise.

From-SVN: r240015

8 years agore PR target/69255 (ICE on x86_64-linux-gnu in "emit_move_insn")
Jakub Jelinek [Tue, 6 Sep 2016 20:30:57 +0000 (22:30 +0200)]
re PR target/69255 (ICE on x86_64-linux-gnu in "emit_move_insn")

PR target/69255
* config/i386/i386.c (ix86_expand_builtin): For builtin with
unsupported or unknown ISA, use expand_call.

* gcc.target/i386/pr69255-1.c: New test.
* gcc.target/i386/pr69255-2.c: New test.
* gcc.target/i386/pr69255-3.c: New test.

From-SVN: r240014

8 years agoPR c/77336 - -Wsuggest-attribute=format warning overly simplistic
Martin Sebor [Tue, 6 Sep 2016 19:23:25 +0000 (19:23 +0000)]
PR c/77336 -  -Wsuggest-attribute=format warning overly simplistic

gcc/c-family/ChangeLog:

PR c/77336
* c-format.c (check_function_format): Avoid issuing warnings for
functions unless they call format functions with non-constant
format strings.

gcc/testsuite/ChangeLog:

PR c/77336
* gcc.dg/format/miss-7.c: New test.

From-SVN: r240013

8 years agoc_by_val_1.f: Correct the call to c_to_c and c_to_c8.
Uros Bizjak [Tue, 6 Sep 2016 15:13:06 +0000 (17:13 +0200)]
c_by_val_1.f: Correct the call to c_to_c and c_to_c8.

* gfortran.dg/c_by_val_1.f: Correct the call to c_to_c and c_to_c8.

From-SVN: r240009

8 years agoDetect whether target can use -fprofile-update=atomic
Martin Liska [Tue, 6 Sep 2016 14:13:21 +0000 (16:13 +0200)]
Detect whether target can use -fprofile-update=atomic

PR gcov-profile/77378
PR gcov-profile/77466
* libgcov-profiler.c: Use __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{4,8} to
conditionaly enable/disable *_atomic functions.
PR gcov-profile/77378
PR gcov-profile/77466
* tree-profile.c (tree_profiling): Detect whether target can use
-fprofile-update=atomic.
PR gcov-profile/77378
PR gcov-profile/77466
* gcc.dg/profile-update-warning.c: New test.

From-SVN: r240008

8 years agore PR tree-optimization/77479 (Compile time hog w/ -O2 (-Os))
Richard Biener [Tue, 6 Sep 2016 12:51:01 +0000 (12:51 +0000)]
re PR tree-optimization/77479 (Compile time hog w/ -O2 (-Os))

2016-09-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/77479
* tree-vrp.c (update_value_range): Extend overflow handling to
VARYING.

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

From-SVN: r240007