platform/upstream/gcc.git
7 years agoPR middle-end/78622 - -Wformat-length/-fprintf-return-value incorrect with overflow...
Martin Sebor [Mon, 12 Dec 2016 21:56:22 +0000 (21:56 +0000)]
PR middle-end/78622 - -Wformat-length/-fprintf-return-value incorrect with overflow/wrapping

gcc/ChangeLog:

PR middle-end/78622
PR middle-end78606
* gimple-ssa-sprintf.c (min_bytes_remaining): Use res.knownrange
rather than res.bounded.
(get_width_and_precision): Set precision to -1 when negative.
(adjust_range_for_overflow): New function.
(format_integer): Correct the handling of the space, plus, and pound
flags, and the special case of zero precision.
Always set res.bounded to true unless either precision or width
is specified and unknown.
Call adjust_range_for_overflow.
Avoid use zero as the shortest value when precision is specified
but unknown.
(format_directive): Remove vestigial quoting.  Always inform of
argument value or range when it's available.
(add_bytes): Correct the computation of boundrange used to
decide whether a warning is of a "maybe" or "defnitely" kind.

gcc/testsuite/ChangeLog:

PR middle-end/78622
PR middle-end78606
* gcc.c-torture/execute/pr78622.c: New test.
* gcc.dg/tree-ssa/builtin-sprintf-2.c: Remove "benign" undefined
behavior inadvertently introduced in a previous commit.  Tighten
up final checking.
* gcc.dg/tree-ssa/builtin-sprintf-5.c: Rename macros for clarity.
Add test cases.
* gcc.dg/tree-ssa/builtin-sprintf-6.c: Add test cases.
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-5.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: Remove xfails and
add a final optimization check.
* gcc.dg/tree-ssa/builtin-sprintf.c: Add test cases.
* gcc.dg/tree-ssa/pr78622.c: New test.

From-SVN: r243582

7 years agore PR fortran/78392 (ICE in gfc_trans_auto_array_allocation, at fortran/trans-array...
Janus Weil [Mon, 12 Dec 2016 18:54:54 +0000 (19:54 +0100)]
re PR fortran/78392 (ICE in gfc_trans_auto_array_allocation, at fortran/trans-array.c:5979)

2016-12-12  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78392
* expr.c (gfc_is_constant_expr): Specification functions are not
compile-time constants. Update documentation (add reference to F08
standard), add a FIXME.
(external_spec_function): Add reference to F08 standard.
* resolve.c (resolve_fl_variable): Ditto.

2016-12-12  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78392
* gfortran.dg/constant_shape.f90: New test case.

From-SVN: r243580

7 years agocombine: Handle mode expanding zero_extracts in change_zero_ext.
Dominik Vogt [Mon, 12 Dec 2016 18:23:48 +0000 (18:23 +0000)]
combine: Handle mode expanding zero_extracts in change_zero_ext.

Example:

  (zero_extract:DI (reg:SI)
                   (const_int 24)
                   (const_int 0))

-->

  (and:DI (subreg:DI (lshiftrt:SI (reg:SI) (const_int 8))
                     0)
          (const_int 16777215))

2016-12-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* combine.c (change_zero_ext): Handle mode expanding zero_extracts.

From-SVN: r243578

7 years agore PR c++/78647 (ICE on invalid C++ code on x86_64-linux-gnu (internal compiler error...
Marek Polacek [Mon, 12 Dec 2016 17:58:00 +0000 (17:58 +0000)]
re PR c++/78647 (ICE on invalid C++ code on x86_64-linux-gnu (internal compiler error: tree check: expected tree_list, have error_mark in get_attribute_name, at attribs.c:664))

PR c++/78647
* c-common.c (attribute_fallthrough_p): Return false for
error_mark_node.

* g++.dg/parse/error58.C: New.

From-SVN: r243575

7 years agore PR preprocessor/78680 (ICE in get_substring_ranges_for_loc, at input.c:1398)
David Malcolm [Mon, 12 Dec 2016 17:37:48 +0000 (17:37 +0000)]
re PR preprocessor/78680 (ICE in get_substring_ranges_for_loc, at input.c:1398)

Fix for PR preprocessor/78680

PR preprocessor/78680 identifies a crash when attempting to issue
a -Wformat warning, where the format string includes a string token
split across multiple physical source lines via backslash-continued
lines.

The issue is that libcpp is generating bogus range information for
such tokens.

For example, in:

void fn1() {
  __builtin_printf("\
     %ld.\n\
        2\n"); };

the range of the string token is printed as:

   __builtin_printf("\
                    ^~

whereas the range ought to be:

  __builtin_printf("\
                   ^~
     %ld.\n\
     ~~~~~~~
        2\n"); };
        ~~~~

The root cause is that the line notes expressing the update
of the buffer in lex.c aren't yet updated when the end-point of
the token is computed

3095     tok_range.m_finish
3096       = linemap_position_for_column (pfile->line_table,
3097      CPP_BUF_COLUMN (buffer, buffer->cur));

so that the physical line is still regarded as that of the start
of the token, and, where CPP_BUF_COLUMN uses (BUF)->line_base,
line_base is still the location of the first physical line in the
and hence the column information is too large (as if it were the
offset in the *logical* line).

(the printed range is somewhat misleading; the actual buggy range
extends beyond the "\ in the line, but within diagnostic-show-locus.c
layout::print_annotation_line only prints up to the xbound set by
layout::print_source_line and so truncates most of the buggy range).

The fix is to ensure that line notes are handled before calculating
the end-point of the token range.

This leads to the range for the string token being correctly
computed, as:

  __builtin_printf("\
                   ^~
     %ld.\n\
     ~~~~~~~
        2\n"); };
        ~~~~

and this leads to get_substring_ranges_for_loc failing gracefully,
rather than crashing.

gcc/testsuite/ChangeLog:
PR preprocessor/78680
* gcc.dg/format/pr78680.c: New test case.
* gcc.dg/plugin/diagnostic-test-expressions-1.c
(test_multiline_token): New function.
* gcc.dg/plugin/diagnostic-test-string-literals-1.c
(test_backslash_continued_logical_lines): New function.

libcpp/ChangeLog:
PR preprocessor/78680
* lex.c (_cpp_lex_direct): Ensure line notes are processed before
computing the end-point of the token.

From-SVN: r243567

7 years agore PR other/78252 (C++ demangler crashes with infinite recursion with lambda (auto))
Nathan Sidwell [Mon, 12 Dec 2016 17:00:37 +0000 (17:00 +0000)]
re PR other/78252 (C++ demangler crashes with infinite recursion with lambda (auto))

libiberty/
PR c++/78252
* cp-demangle.c (struct d_print_info): Add is_lambda_arg field.
(d_print_init): Initialize it.
(d_print_comp_inner) <DEMANGLE_COMPONENT_TEMPLATE_PARAM>: Check
is_lambda_arg for auto.
<DEMANGLE_COMPONENT_REFERENCE,
DEMANGLE_COMPONENT_RVALUE_REFERENCE>: Skip smashing check when
is_lambda_arg.
<DEMANGLE_COMPONENT_LAMBDA>: Increment is_lambda_arg around arg
printing.
* testsuite/demangle-expected: Add lambda auto mangling cases.

gcc/testsuite/
PR c++/78252
* g++.dg/cpp1y/lambda-mangle-1.C: New.

From-SVN: r243566

7 years agore PR target/78738 (ICE in extract_insn, at recog.c:2311)
Uros Bizjak [Mon, 12 Dec 2016 16:02:28 +0000 (17:02 +0100)]
re PR target/78738 (ICE in extract_insn, at recog.c:2311)

PR target/78738
* config/i386/i386.h (X87_ENABLE_ARITH): Also enable for
flag_unsafe_math_optimizations.
(X87_ENABLE_FLOAT): Ditto.

testsuite/ChangeLog:

PR target/78738
* gcc.target/i386/pr78738.c: New test.

From-SVN: r243559

7 years ago[libstdc++][testsuite] XFAIL tests relying on long double-to-string conversions on...
Kyrylo Tkachov [Mon, 12 Dec 2016 15:47:47 +0000 (15:47 +0000)]
[libstdc++][testsuite] XFAIL tests relying on long double-to-string conversions on broken newlib

    * lib/target-supports.exp
    (check_effective_target_newlib_broken_long_double_io): New check.
    (check_effective_target_frexpl): Likewise.

    * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
    XFAIL run if newlib_broken_long_double_io.
    * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc:
    Likewise.
    * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc:
    Likewise.
    * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
    Likewise.

From-SVN: r243558

7 years agoRemove stray character at end of dg-do directive
Jonathan Wakely [Mon, 12 Dec 2016 14:32:23 +0000 (14:32 +0000)]
Remove stray character at end of dg-do directive

* testsuite/experimental/filesystem/operations/is_empty.cc:
Remove stray character at end of dg-do directive.

From-SVN: r243555

7 years agore PR middle-end/78716 (ICE in gimplify_va_arg_expr, at gimplify.c:12650 (i686-linux...
Marek Polacek [Mon, 12 Dec 2016 13:57:32 +0000 (13:57 +0000)]
re PR middle-end/78716 (ICE in gimplify_va_arg_expr, at gimplify.c:12650 (i686-linux-gnu))

PR middle-end/78716
* gimplify.c (gimplify_va_arg_expr): Don't require ADDR_EXPR for
Case 1; check POINTER_TYPE_P instead.

* g++.dg/other/vararg-5.C: New.

From-SVN: r243553

7 years agoDisable hwcaps on libgfortran
Rainer Orth [Mon, 12 Dec 2016 13:40:21 +0000 (13:40 +0000)]
Disable hwcaps on libgfortran

libgfortran:
* configure.ac: Call GCC_CHECK_LINKER_HWCAP.
* Makefile.am (libgfortran_la_LDFLAGS): Add HWCAP_LDFLAGS.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.

config:
* hwcaps.m4: New file.

libitm:
* acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Remove.
* aclocal.m4: Regenerate.
* configure.ac: Call GCC_CHECK_LINKER_HWCAP instead of
LIBITM_CHECK_LINKER_HWCAP.

From-SVN: r243552

7 years agore PR rtl-optimization/78669 (ICE: in combine_and_move_insns, at ira.c:3665 with...
Bernd Schmidt [Mon, 12 Dec 2016 13:29:48 +0000 (13:29 +0000)]
re PR rtl-optimization/78669 (ICE: in combine_and_move_insns, at ira.c:3665 with -Os -fno-tree-ter -mavx512bw)

PR rtl-optimization/78669
* ira.c (combine_and_move_insns): When deleting an insn, clear the
replace flag for all used regs in that insn.

PR rtl-optimization/78669
* gcc.target/i386/pr78669.c: New test.

From-SVN: r243551

7 years agoRemove stray character at end of dg-do directive
Jonathan Wakely [Mon, 12 Dec 2016 12:44:46 +0000 (12:44 +0000)]
Remove stray character at end of dg-do directive

* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
Remove stray character at end of dg-do directive.

From-SVN: r243548

7 years agolib1funcs.S (__ashrdi3): Fix typo from r243545.
George Spelvin [Mon, 12 Dec 2016 11:57:33 +0000 (11:57 +0000)]
lib1funcs.S (__ashrdi3): Fix typo from r243545.

libgcc/
* config/avr/lib1funcs.S (__ashrdi3): Fix typo from r243545.

From-SVN: r243546

7 years agolib1funcs.S (__ashldi3): Use __tmp_reg__ to restore R16 instead of push + pop.
George Spelvin [Mon, 12 Dec 2016 11:25:51 +0000 (11:25 +0000)]
lib1funcs.S (__ashldi3): Use __tmp_reg__ to restore R16 instead of push + pop.

libgcc/
2016-12-12  George Spelvin  <linux@sciencehorizons.net>
* config/avr/lib1funcs.S (__ashldi3): Use __tmp_reg__ to restore
R16 instead of push + pop.
(__ashrdi3, __lshrdi3): Same. And use __zero_reg__ for signs.

From-SVN: r243545

7 years agoFix g++.dg/debug/dwarf2/typedef1.C
Rainer Orth [Mon, 12 Dec 2016 11:12:17 +0000 (11:12 +0000)]
Fix g++.dg/debug/dwarf2/typedef1.C

* g++.dg/debug/dwarf2/typedef1.C: Adjust pattern for last change.

From-SVN: r243544

7 years agoMIPS: Upgrade to R2 for -mnan=2008 and -mabs=2008.
Toma Tabacu [Mon, 12 Dec 2016 10:12:26 +0000 (10:12 +0000)]
MIPS: Upgrade to R2 for -mnan=2008 and -mabs=2008.

gcc/testsuite/

* gcc.target/mips/mips.exp (mips-dg-options): Upgrade to R2 for
-mnan=2008 and -mabs=2008.

From-SVN: r243542

7 years agoDefine arm_arch_core_flags in a single file
Thomas Preud'homme [Mon, 12 Dec 2016 09:39:51 +0000 (09:39 +0000)]
Define arm_arch_core_flags in a single file

2016-12-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm-opts.h: Move struct arm_arch_core_flag and
    arm_arch_core_flags to ...
    * common/config/arm/arm-common.c: There.

From-SVN: r243541

7 years agoconstraints.md (T): Use special memory constraint.
Eric Botcazou [Mon, 12 Dec 2016 07:56:39 +0000 (07:56 +0000)]
constraints.md (T): Use special memory constraint.

* config/sparc/constraints.md (T): Use special memory constraint.
(U): Minor tweak.
(W): Add TARGET_ARCH64 test.
* config/sparc/sparc.md (*movdi_insn_sp32): Replace 'W' with 'T'.
(*movdf_insn_sp32): Likewise.
(*mov<VM64:mode>_insn_sp32): Likewise.  Replace 'e' with 'f' in
conjunction with offsettable memory references.

From-SVN: r243540

7 years agoinvoke.texi: Correct capitalization of OpenMP.
John David Anglin [Mon, 12 Dec 2016 02:54:28 +0000 (02:54 +0000)]
invoke.texi: Correct capitalization of OpenMP.

* doc/invoke.texi: Correct capitalization of OpenMP.

From-SVN: r243539

7 years agonios2.c (nios2_emit_move_sequence): Call copy_rtx to avoid shared structure error.
Sandra Loosemore [Mon, 12 Dec 2016 01:06:30 +0000 (20:06 -0500)]
nios2.c (nios2_emit_move_sequence): Call copy_rtx to avoid shared structure error.

2016-12-11  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/nios2.c (nios2_emit_move_sequence): Call copy_rtx
to avoid shared structure error.

From-SVN: r243538

7 years agoDaily bump.
GCC Administrator [Mon, 12 Dec 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r243537

7 years agore PR target/78695 (ICE (segfault) on powerpc64le-linux-gnu)
Bill Schmidt [Sun, 11 Dec 2016 23:37:17 +0000 (23:37 +0000)]
re PR target/78695 (ICE (segfault) on powerpc64le-linux-gnu)

[gcc]

2016-12-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/78695
* config/rs6000/rs6000.c (find_alignment_op): Discard from
consideration any artificial definition.

[gcc/testsuite]

2016-12-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/78695
* gcc.target/powerpc/swaps-stack-protector.c: New test.

From-SVN: r243534

7 years ago[Darwin, configury] No longer expect to find cross-target headers on the host.
Iain Sandoe [Sun, 11 Dec 2016 19:37:05 +0000 (19:37 +0000)]
[Darwin, configury] No longer expect to find cross-target headers on the host.

Earlier Darwin (esp. Darwin8 and Darwin9) had FAT libraries and suitable header
installations in /usr/include such that one could build a cross-toolchain
(including cross-arch) using a common sysroot (including / for “current” version).

However this is no longer true on a number of levels.  A vanilla Darwin system has
no headers installed in /usr and it's certainly not appropriate to try and find
headers/libs for (say) x86-64-darwinNN X powerpc-darwin in /usr on any Darwin NN > 10
(even Darwin10 is incomplete in that it omits the ppc64 multilib).  In the latter
example, the catch-all in the current configury to mean that
"foo-darwin" == “foo-version-on-this-system” breaks the cross case
—target=powerpc-apple-darwin —host=some-system-later-than-darwin10.

gcc/

2016-12-11  Iain Sandoe  <iain@codesourcery.com>

* configure.ac (CROSS directory tests): Remove the assumption that
Darwin hosts contain suitable target sysroots in "/".
* configure: Regenerate.

From-SVN: r243533

7 years ago[Darwin, PPC] Fix PR71496 by marking pic base loads as non-copyable.
Iain Sandoe [Sun, 11 Dec 2016 19:24:46 +0000 (19:24 +0000)]
[Darwin, PPC] Fix PR71496 by marking pic base loads as non-copyable.

The Darwin pic base loads (and reloads for non-local-gotos) are not
validly copied (since the pic base label would be duplicated).  Thus,
mark the pic base {re-}loads as non-copyable.

gcc/

2016-12-11  Iain Sandoe  <iain@codesourcery.com>

PR rtl-optimization/71496
* config/rs6000/darwin.md (load_macho_picbase_si): Mark as non-
copyable.  (load_macho_picbase_di, reload_macho_picbase_si,
reload_macho_picbase_di): Likewise.

From-SVN: r243532

7 years agopa.c (pa_callee_copies): New function.
John David Anglin [Sun, 11 Dec 2016 19:08:47 +0000 (19:08 +0000)]
pa.c (pa_callee_copies): New function.

* config/pa/pa.c (pa_callee_copies): New function.
* config/pa/pa.opt (mcaller-copies): New option.
* doc/invoke.texi (mcaller-copies): Document option.

From-SVN: r243531

7 years agore PR target/70799 (STV pass does not convert DImode shifts)
Uros Bizjak [Sun, 11 Dec 2016 18:59:07 +0000 (19:59 +0100)]
re PR target/70799 (STV pass does not convert DImode shifts)

PR target/70799
* config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
<case ASHIFT, case LSHIFTRT>: Consider all constant shifts.
Add FIXME comment.
(dimode_scalar_chain::compute_convert_gain): Reduce gain for
constant shifts larger or equal than 32.

testsuite/ChangeLog:

PR target/70799
* gcc.target/i386/pr70799-3.c: New test.

From-SVN: r243530

7 years agore PR c++/78637 (ICE on invalid C++ code on x86_64-linux-gnu (internal compiler error...
Paolo Carlini [Sun, 11 Dec 2016 18:15:31 +0000 (18:15 +0000)]
re PR c++/78637 (ICE on invalid C++ code on x86_64-linux-gnu (internal compiler error: in pop_namespace, at cp/name-lookup.c:3826))

/cp
2016-12-11  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/78637
* parser.c (cp_parser_namespace_definition): Increment
nested_definition_count only if push_namespace succeeds.

/testsuite
2016-12-11  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/78637
* g++.dg/parse/namespace14.C: New.

From-SVN: r243529

7 years agox86-64.h: Append --32 to the assembler options when -m16 is used on non-glibc systems...
Roger Pau Monné [Sun, 11 Dec 2016 17:28:53 +0000 (17:28 +0000)]
x86-64.h: Append --32 to the assembler options when -m16 is used on non-glibc systems as well.

* config/i386/x86-64.h: Append --32 to the assembler options when
-m16 is used on non-glibc systems as well.

From-SVN: r243528

7 years agore PR target/70118 (UBSan claims misaligned access in SSE instrinsics)
Allan Sandfeld Jensen [Sun, 11 Dec 2016 16:27:08 +0000 (22:27 +0600)]
re PR target/70118 (UBSan claims misaligned access in SSE instrinsics)

PR target/70118
* config/i386/mmintrin.h (__m64_u): New type
* config/i386/emmintrin.h (_mm_loadl_epi64, _mm_storel_epi64):
Make the allowed unaligned memory access explicit.

From-SVN: r243527

7 years agoDaily bump.
GCC Administrator [Sun, 11 Dec 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r243523

7 years agore PR fortran/78226 (Fill out location information everywhere)
Thomas Koenig [Sat, 10 Dec 2016 22:28:32 +0000 (22:28 +0000)]
re PR fortran/78226 (Fill out location information everywhere)

2016-12-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/78226
* error.c (gfc_warning_internal):  New function.
* frontend-passes.c (gfc_run_passes):  Call check_locus if
CHECKING_P is defined.
(check_locus_code):  New function.
(check_locus_expr):  New function.
(check_locus):  New function.
* gfortran.h:  Add prototype for gfc_warning_internal.

From-SVN: r243520

7 years agoconfig.gcc (i386-*-netbsd*): Make i486 the default arch on NetBSD.
Krister Walfridsson [Sat, 10 Dec 2016 21:07:10 +0000 (21:07 +0000)]
config.gcc (i386-*-netbsd*): Make i486 the default arch on NetBSD.

2016-12-10  Krister Walfridsson  <krister.walfridsson@gmail.com>

* config.gcc (i386-*-netbsd*): Make i486 the default arch on NetBSD.
Generally use cpu generic.

From-SVN: r243519

7 years agoconfig.host (i[34567]86-*-netbsdelf*): Add i386/t-crtstuff to tmake_file.
Krister Walfridsson [Sat, 10 Dec 2016 20:59:52 +0000 (20:59 +0000)]
config.host (i[34567]86-*-netbsdelf*): Add i386/t-crtstuff to tmake_file.

2016-12-10  Krister Walfridsson  <krister.walfridsson@gmail.com>

* config.host (i[34567]86-*-netbsdelf*): Add i386/t-crtstuff to
tmake_file.

From-SVN: r243518

7 years agore PR fortran/78350 (ICE in gfc_code2string(): Bad code, at fortran/misc.c:193)
Paul Thomas [Sat, 10 Dec 2016 18:35:47 +0000 (18:35 +0000)]
re PR fortran/78350 (ICE in gfc_code2string(): Bad code, at fortran/misc.c:193)

2016-12-10 Paul Thomas  <pault@gcc.gnu.org>

PR fortran/78350
* resolve.c (resolve_structure_cons): Remove the block that
tried to remove a charlen and rely on namespace cleanup.

From-SVN: r243517

7 years agore PR tree-optimization/78720 (Illegal instruction in generated code)
Jakub Jelinek [Sat, 10 Dec 2016 12:06:12 +0000 (13:06 +0100)]
re PR tree-optimization/78720 (Illegal instruction in generated code)

PR tree-optimization/78720
* match.pd (A < 0 ? C : 0): Only optimize for signed A.  If shift
is negative, sign extend to @1's type and than AND with C.

* gcc.c-torture/execute/pr78720.c: New test.

Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r243516

7 years agore PR fortran/78758 (Warning: '__builtin_memcpy' ... overflows the destination for...
Jakub Jelinek [Sat, 10 Dec 2016 08:02:21 +0000 (09:02 +0100)]
re PR fortran/78758 (Warning: '__builtin_memcpy' ... overflows the destination for string assignment)

PR fortran/78758
* tree-object-size.c (compute_object_offset) <case ARRAY_REF>: Handle
non-zero low bound or non-standard element sizes.

* gfortran.dg/pr78758.f90: New test.
* gfortran.dg/pr38868.f: Remove again bogus warning.

From-SVN: r243515

7 years agore PR sanitizer/78708 ([ASAN][LTO] ICE in expand_ASAN_MARK, at internal-fn.c:380...
Jakub Jelinek [Sat, 10 Dec 2016 08:01:17 +0000 (09:01 +0100)]
re PR sanitizer/78708 ([ASAN][LTO] ICE in expand_ASAN_MARK, at internal-fn.c:380 - when compiling but not linking with ASAN)

PR sanitizer/78708
* lto-streamer-in.c (input_function): In addition to debug stmts
without -g, remove IFN_*SAN_* calls if corresponding flag_sanitize
bit is not enabled.

From-SVN: r243514

7 years agoDaily bump.
GCC Administrator [Sat, 10 Dec 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r243513

7 years agore PR fortran/77903 ([F08] gfortran 6.1.0/7.0.0 accept invalid code with conflicting...
Paul Thomas [Fri, 9 Dec 2016 22:25:26 +0000 (22:25 +0000)]
re PR fortran/77903 ([F08] gfortran 6.1.0/7.0.0 accept invalid code with conflicting module/submodule interfaces)

2016-12-09  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/77903
* decl.c (get_proc_name): Use the symbol tlink field instead of
the typespec interface field.
(gfc_match_function_decl, gfc_match_submod_proc): Ditto.
* gfortran.h : Since the symbol tlink field is no longer used
by the frontend for change management, change the comment to
reflect its current uses.
* parse.c (get_modproc_result): Same as decl.c changes.
* resolve.c (resolve_fl_procedure): Ditto.

2016-12-09  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/77903
* gfortran.dg/submodule_20.f08: New test.

From-SVN: r243507

7 years agore PR testsuite/78740 (test case powerpc/pr78691-ppc.c fails starting with its introd...
Bill Schmidt [Fri, 9 Dec 2016 22:02:04 +0000 (22:02 +0000)]
re PR testsuite/78740 (test case powerpc/pr78691-ppc.c fails starting with its introduction in r243335)

2016-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR testsuite/78740
* gcc.target/powerpc/pr78691-ppc.c: Remove -m32.

From-SVN: r243506

7 years agors6000-passes.def: New file.
Bill Schmidt [Fri, 9 Dec 2016 19:56:02 +0000 (19:56 +0000)]
rs6000-passes.def: New file.

2016-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000-passes.def: New file.
* config/rs6000/rs6000-protos.h: Declare make_pass_analyze_swaps.
* config/rs6000/rs6000.c (rs6000_option_override): Remove
registration of machine-specific passes.
(pass_analyze_swaps::clone): New function.
* config/rs6000/t-rs6000: Define PASSES_EXTRA.

From-SVN: r243504

7 years agofold-vec-add-7.c: Require effective target to support __int128.
Bill Schmidt [Fri, 9 Dec 2016 19:54:11 +0000 (19:54 +0000)]
fold-vec-add-7.c: Require effective target to support __int128.

2016-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/fold-vec-add-7.c: Require effective target to
support __int128.

From-SVN: r243503

7 years agoAdd missing part of entry.
Martin Sebor [Fri, 9 Dec 2016 19:51:43 +0000 (12:51 -0700)]
Add missing part of entry.

From-SVN: r243502

7 years agore PR tree-optimization/78721 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu...
Kugan Vivekanandarajah [Fri, 9 Dec 2016 19:47:10 +0000 (19:47 +0000)]
re PR tree-optimization/78721 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in set_value_range, at tree-vrp.c:371)

gcc/testsuite/ChangeLog:

2016-12-09  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR ipa/78721
* gcc.dg/pr78721.c: New test.

gcc/ChangeLog:

2016-12-09  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR ipa/78721
* ipa-cp.c (propagate_vr_accross_jump_function): drop_tree_overflow
after fold_convert.

From-SVN: r243501

7 years agore PR target/72742 (ICE in extract_insn, at recog.c:2309 (error: unrecognizable insn...
Jakub Jelinek [Fri, 9 Dec 2016 19:35:18 +0000 (20:35 +0100)]
re PR target/72742 (ICE in extract_insn, at recog.c:2309 (error: unrecognizable insn) w/ -Os -mlra)

PR target/72742
* config/rs6000/rs6000.md (*and<mode>3_imm_mask_dot,
*and<mode>3_imm_mask_dot2): Add rs6000_is_valid_and_mask to insn
condition.

* gcc.c-torture/compile/pr72742.c: New test.

From-SVN: r243500

7 years agors6000: clz/ctz/ffs improvement (PR78683)
Segher Boessenkool [Fri, 9 Dec 2016 19:31:06 +0000 (20:31 +0100)]
rs6000: clz/ctz/ffs improvement (PR78683)

On CPUs that implement popcnt[wd] but not cnttz[wd] we can do better for
the ctz sequences than we do today.

CL[TZ]_DEFINED_VALUE_AT_ZERO can return 2, since we always return the
same fixed value (only dependent on TARGET_* options).

PR target/78683
* config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Use
GET_MODE_BITSIZE.  Return 2.
(CTZ_DEFINED_VALUE_AT_ZERO): Use GET_MODE_BITSIZE.  Return 2.  Handle
TARGET_POPCNTD the same as TARGET_CTZ.
* config/rs6000/rs6000.md (ctz<mode>2): Reimplement.
(ffs<mode>2): Reimplement.

From-SVN: r243499

7 years agore PR middle-end/78750 (ICE in get_range_info, at tree-ssanames.c:375)
Marek Polacek [Fri, 9 Dec 2016 19:05:28 +0000 (19:05 +0000)]
re PR middle-end/78750 (ICE in get_range_info, at tree-ssanames.c:375)

PR middle-end/78750
* builtins.c (check_sizes): Use POINTER_TYPE_P.

* g++.dg/torture/pr78750.C: New.

From-SVN: r243498

7 years agogcc/testsuite/ChangeLog:
Martin Sebor [Fri, 9 Dec 2016 17:38:17 +0000 (17:38 +0000)]
gcc/testsuite/ChangeLog:

on arm-unknown-linux-gnueabi (and likely other ILP32) targets.

From-SVN: r243497

7 years agoPR78255: Make postreload aware of NO_FUNCTION_CSE
Andre Vieira [Fri, 9 Dec 2016 16:46:42 +0000 (16:46 +0000)]
PR78255: Make postreload aware of NO_FUNCTION_CSE

gcc/ChangeLog:
2016-12-09  Andre Vieira <andre.simoesdiasvieira@arm.com>

PR rtl-optimization/78255
* gcc/postreload.c (reload_cse_simplify): Do not CSE a function if
NO_FUNCTION_CSE is true.

gcc/testsuite/ChangeLog:
2016-12-09  Andre Vieira <andre.simoesdiasvieira@arm.com>

PR rtl-optimization/78255
* gcc.target/aarch64/pr78255.c: New.
* gcc.target/arm/pr78255-1.c: New.
* gcc.target/arm/pr78255-2.c: New.

From-SVN: r243494

7 years agodimode-1.c: Update syntax on scan-assembler strings
Will Schmidt [Fri, 9 Dec 2016 16:19:03 +0000 (16:19 +0000)]
dimode-1.c: Update syntax on scan-assembler strings

* gcc.target/powerpc/dimode-1.c: Update syntax on scan-assembler
strings
* gcc.target/powerpc/dimode-2.c: Likewise.

From-SVN: r243493

7 years agoFix std::variant for gnu-versioned--namespace build
Jonathan Wakely [Fri, 9 Dec 2016 15:22:01 +0000 (15:22 +0000)]
Fix std::variant for gnu-versioned--namespace build

* include/std/variant: Remove misplaced
_GLIBCXX_BEGIN_NAMESPACE_VERSION macro.

From-SVN: r243489

7 years agore PR ipa/78027 (ICE in new_oacc_loop_routine, at omp-low.c:19000)
Cesar Philippidis [Fri, 9 Dec 2016 14:45:54 +0000 (06:45 -0800)]
re PR ipa/78027 (ICE in new_oacc_loop_routine, at omp-low.c:19000)

PR ipa/78027

gcc/
* ipa-icf.c (sem_function::parse): Don't process functions with
oacc decl attributes, as they may be OpenACC routines.

gcc/testsuite/
* c-c++-common/goacc/acc-icf.c: New test.
* gfortran.dg/goacc/pr78027.f90: New test.

From-SVN: r243488

7 years agoPrevent use of MEM_* attr accessor macros as lvalues
David Malcolm [Fri, 9 Dec 2016 14:34:48 +0000 (14:34 +0000)]
Prevent use of MEM_* attr accessor macros as lvalues

gcc/ChangeLog:
* rtl.h (get_mem_attrs): Add "const" qualifier to returned
pointer.

From-SVN: r243487

7 years agoAdd the test this time...
Wilco Dijkstra [Fri, 9 Dec 2016 14:26:07 +0000 (14:26 +0000)]
Add the test this time...

        PR target/78733
        * gcc.target/aarch64/pr78733.c: New test.

From-SVN: r243486

7 years agore PR fortran/61767 ([OOP] ICE in generate_finalization_wrapper at fortran/class...
Janus Weil [Fri, 9 Dec 2016 13:21:44 +0000 (14:21 +0100)]
re PR fortran/61767 ([OOP] ICE in generate_finalization_wrapper at fortran/class.c:1491)

2016-12-09  Janus Weil  <janus@gcc.gnu.org>

PR fortran/61767
* class.c (has_finalizer_component): Fix this function to detect only
non-pointer non-allocatable components which have a finalizer.

2016-12-09  Janus Weil  <janus@gcc.gnu.org>

PR fortran/61767
* gfortran.dg/finalize_31.f90: New test.

From-SVN: r243483

7 years agore PR fortran/78505 ([F08] Coarray source allocation not synchronizing on oversubscri...
Andre Vehreschild [Fri, 9 Dec 2016 12:46:57 +0000 (13:46 +0100)]
re PR fortran/78505 ([F08] Coarray source allocation not synchronizing on oversubscribed cores)

gcc/fortran/ChangeLog:

2016-12-09  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/78505
* trans-stmt.c (gfc_trans_allocate): Add sync all after the execution
of the whole allocate-statement to adhere to the standard.

gcc/testsuite/ChangeLog:

2016-12-09  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/78505
* gfortran.dg/coarray_alloc_with_implicit_sync_1.f90: New test.

From-SVN: r243482

7 years agotrans-array.c (gfc_array_deallocate): Remove wrapper.
Andre Vehreschild [Fri, 9 Dec 2016 12:32:50 +0000 (13:32 +0100)]
trans-array.c (gfc_array_deallocate): Remove wrapper.

gcc/fortran/ChangeLog:

2016-12-09  Andre Vehreschild  <vehre@gcc.gnu.org>

* trans-array.c (gfc_array_deallocate): Remove wrapper.
(gfc_trans_dealloc_allocated): Same.
(structure_alloc_comps): Restructure deallocation of (nested)
allocatable components.  Insert dealloc of sub-component into the block
guarded by the if != NULL for the component.
(gfc_trans_deferred_array): Use the almightly deallocate_with_status.
* trans-array.h: Remove prototypes.
* trans-expr.c (gfc_conv_procedure_call): Use the almighty deallocate_
with_status.
* trans-openmp.c (gfc_walk_alloc_comps): Likewise.
(gfc_omp_clause_assign_op): Likewise.
(gfc_omp_clause_dtor): Likewise.
* trans-stmt.c (gfc_trans_deallocate): Likewise.
* trans.c (gfc_deallocate_with_status): Allow deallocation of scalar
and arrays as well as coarrays.
(gfc_deallocate_scalar_with_status): Get the data member for coarrays
only when freeing an array with descriptor.  And set correct caf_mode
when freeing components of coarrays.
* trans.h: Change prototype of gfc_deallocate_with_status to allow
adding statements into the block guarded by the if (pointer != 0) and
supply a coarray handle.

gcc/testsuite/ChangeLog:

2016-12-09  Andre Vehreschild  <vehre@gcc.gnu.org>

* gfortran.dg/coarray_alloc_comp_3.f08: New test.
* gfortran.dg/coarray_alloc_comp_4.f08: New test.
* gfortran.dg/finalize_18.f90: Add count for additional guard against
accessing null-pointer.
* gfortran.dg/proc_ptr_comp_47.f90: New test.

From-SVN: r243480

7 years agore PR c++/78550 (bit field and std::initializer_list)
Nathan Sidwell [Fri, 9 Dec 2016 12:18:36 +0000 (12:18 +0000)]
re PR c++/78550 (bit field and std::initializer_list)

PR c++/78550
* convert.c (convert_to_integer_1): Maybe fold conversions to
integral types with fewer bits than its mode.

testsuite/
PR c++/78550
* g++.dg/cpp1y/pr78550.C: New.

From-SVN: r243479

7 years agore PR fortran/44265 (Link error with reference to parameter array in specification...
Paul Thomas [Fri, 9 Dec 2016 11:55:27 +0000 (11:55 +0000)]
re PR fortran/44265 (Link error with reference to parameter array in specification expression)

2016-12-09  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/44265
* gfortran.h : Add fn_result_spec bitfield to gfc_symbol.
* resolve.c (flag_fn_result_spec): New function.
(resolve_fntype): Call it for character result lengths.
* symbol.c (gfc_new_symbol): Set fn_result_spec to zero.
* trans-decl.c (gfc_sym_mangled_identifier): Include the
procedure name in the mangled name for symbols with the
fn_result_spec bit set.
(gfc_finish_var_decl): Mark the decls of these symbols
appropriately for the case where the function is external.
(gfc_get_symbol_decl): Mangle the name of these symbols.
(gfc_create_module_variable): Allow them through the assert.
(gfc_generate_function_code): Remove the assert before the
initialization of sym->tlink because the frontend no longer
uses this field.
* trans-expr.c (gfc_map_intrinsic_function): Add a case to
treat the LEN_TRIM intrinsic.
(gfc_trans_string_copy): Deal with Wstringop-overflow warning
that can occur with constant source lengths at -O3.

2016-12-09  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/44265
* gfortran.dg/char_result_14.f90: New test.
* gfortran.dg/char_result_15.f90: New test.

From-SVN: r243478

7 years agoEscape non-printable chars in strings.
Martin Liska [Fri, 9 Dec 2016 10:15:33 +0000 (11:15 +0100)]
Escape non-printable chars in strings.

* tree-pretty-print.c (pretty_print_string): Escape non-printable
chars in strings.
* gcc.dg/tree-ssa/dump-3.c: New test.

From-SVN: r243477

7 years agore PR middle-end/78726 (Incorrect unsigned arithmetic optimization)
Jakub Jelinek [Fri, 9 Dec 2016 09:21:36 +0000 (10:21 +0100)]
re PR middle-end/78726 (Incorrect unsigned arithmetic optimization)

PR tree-optimization/78726
* tree-ssa-reassoc.c (make_new_ssa_for_def): Add OPCODE and OP
argument.  For lhs uses in debug stmts, don't replace lhs with
new_lhs, but with a debug temp set to new_lhs opcode op.
(make_new_ssa_for_all_defs): Add OPCODE argument, pass OPCODE and
OP down to make_new_ssa_for_def.
(zero_one_operation): Call make_new_ssa_for_all_defs even when
stmts_to_fix is empty, if *def has not changed yet.  Pass
OPCODE to make_new_ssa_for_all_defs.

* gcc.c-torture/execute/pr78726.c: New test.
* gcc.dg/guality/pr78726.c: New test.

From-SVN: r243476

7 years ago* ChangeLog: Fix a couple of entries.
Uros Bizjak [Fri, 9 Dec 2016 07:55:14 +0000 (08:55 +0100)]
* ChangeLog: Fix a couple of entries.

From-SVN: r243474

7 years agoDaily bump.
GCC Administrator [Fri, 9 Dec 2016 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r243473

7 years agoPR c/77531 - __attribute__((alloc_size(1,2))) could also warn on multiplication overflow
Martin Sebor [Thu, 8 Dec 2016 23:50:40 +0000 (23:50 +0000)]
PR c/77531 - __attribute__((alloc_size(1,2))) could also warn on multiplication overflow

PR c/77531 - __attribute__((alloc_size(1,2))) could also warn on multiplication overflow
PR c/78284 - warn on malloc with very large arguments

gcc/c-family/ChangeLog:

PR c/78284
* c.opt (-Walloc-zero, -Walloc-size-larger-than): New options.

gcc/ChangeLog:

PR c/78284
* builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New
identifier tree nodes.
(ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list.
(ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same.
(ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same.
(ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same.
(ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same.
* builtins.c (expand_builtin_alloca): Call
maybe_warn_alloc_args_overflow.
* builtins.def (aligned_alloc, calloc, malloc, realloc):
Add attribute alloc_size.
(alloca): Add attribute alloc_size and returns_nonnull.
* calls.h (maybe_warn_alloc_args_overflow): Declare.
* calls.c (alloc_max_size, operand_signed_p): New functions.
(maybe_warn_alloc_args_overflow): Define.
(initialize_argument_information): Diagnose overflow in functions
declared with attaribute alloc_size.
* doc/invoke.texi (Warning Options): Document -Walloc-zero and
-Walloc-size-larger-than.

gcc/testsuite/ChangeLog:

PR c/78284
* gcc.dg/attr-alloc_size-3.c: New test.
* gcc.dg/attr-alloc_size-4.c: New test.
* gcc.dg/attr-alloc_size-5.c: New test.
* gcc.dg/attr-alloc_size-6.c: New test.
* gcc.dg/attr-alloc_size-7.c: New test.
* gcc.dg/attr-alloc_size-8.c: New test.
* gcc.dg/attr-alloc_size-9.c: New test.
* gcc/testsuite/gcc.dg/errno-1.c: Adjust.

From-SVN: r243470

7 years agoparallel_algorithm_assert2.cc: Move dg-do run first.
David Edelsohn [Thu, 8 Dec 2016 22:35:24 +0000 (22:35 +0000)]
parallel_algorithm_assert2.cc: Move dg-do run first.

        * testsuite/25_algorithms/headers/algorithm/
        parallel_algorithm_assert2.cc: Move dg-do run first.

From-SVN: r243468

7 years ago* gcc.target/i386/pr78671.c: Require int128 effective target.
Uros Bizjak [Thu, 8 Dec 2016 21:51:20 +0000 (22:51 +0100)]
* gcc.target/i386/pr78671.c: Require int128 effective target.

From-SVN: r243465

7 years agore PR fortran/65173 (ICE while compiling wrong code)
Steven G. Kargl [Thu, 8 Dec 2016 21:26:11 +0000 (21:26 +0000)]
re PR fortran/65173 (ICE while compiling wrong code)

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

PR fortran/65173
PR fortran/69064
PR fortran/69859
PR fortran/78350
* gfortran.h (gfc_namespace): Remove old_cl_list member.
* parse.c (use_modules, next_statement): old_cl_list is gone.
(clear_default_charlen): Remove no longer used function.
(reject_statement): Do not try ot clean up gfc_charlen structure(s)
that may have been added to a cl_list list.
* symbol.c (gfc_new_charlen): old_cl_list structure is gone.

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

PR fortran/65173
PR fortran/69064
PR fortran/69859
PR fortran/78350
* gfortran.dg/misplaced_implicit_character.f90: Adjust errors.
* gfortran.dg/charlen_01.f90: New test.
* gfortran.dg/charlen_02.f90: Ditto.
* gfortran.dg/charlen_03.f90: Ditto.
* gfortran.dg/charlen_04.f90: Ditto.
* gfortran.dg/charlen_05.f90: Ditto.
* gfortran.dg/charlen_06.f90: Ditto.
* gfortran.dg/charlen_07.f90: Ditto.
* gfortran.dg/charlen_08.f90: Ditto.
* gfortran.dg/charlen_09.f90: Ditto.
* gfortran.dg/charlen_10.f90: Ditto.
* gfortran.dg/charlen_11.f90: Ditto.
* gfortran.dg/charlen_12.f90: Ditto.
* gfortran.dg/charlen_13.f90: Ditto.
* gfortran.dg/charlen_14.f90: Ditto.
* gfortran.dg/charlen_15.f90: Ditto.
* gfortran.dg/charlen_16.f90: Ditto.

From-SVN: r243463

7 years agore PR rtl-optimization/78671 (ICE: in extract_constrain_insn, at recog.c:2213 with...
Vladimir Makarov [Thu, 8 Dec 2016 21:14:42 +0000 (21:14 +0000)]
re PR rtl-optimization/78671 (ICE: in extract_constrain_insn, at recog.c:2213 with -Og -march=skylake-avx512)

2016-12-08  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/78671
* lra-assign.c (lra-assigns.c): Check prohibited regs for an
allocno class.

2016-12-08  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/78671
* gcc.target/i386/pr78671.c: New.

From-SVN: r243462

7 years agoPR c/78165 - avoid printing type suffix for constants in %E output
Martin Sebor [Thu, 8 Dec 2016 21:08:06 +0000 (21:08 +0000)]
PR c/78165 - avoid printing type suffix for constants in %E output

gcc/c-family/ChangeLog:

PR c/78165
           * c-pretty-print (pp_c_integer_constant): Avoid formatting type
             suffix.
gcc/testsuite/ChangeLog:

From-SVN: r243461

7 years agoruntime: mark non-x86 aeshashbody parameters as unused
Ian Lance Taylor [Thu, 8 Dec 2016 20:43:19 +0000 (20:43 +0000)]
runtime: mark non-x86 aeshashbody parameters as unused

    Avoids warnings during the build.

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

From-SVN: r243459

7 years agoThis patch fixes an issue in aarch64_classify_address.
Wilco Dijkstra [Thu, 8 Dec 2016 19:18:33 +0000 (19:18 +0000)]
This patch fixes an issue in aarch64_classify_address.

This patch fixes an issue in aarch64_classify_address.  TImode and TFmode
can either use a 64-bit LDP/STP or 128-bit LDR/STR.  The addressing mode
must be carefully modelled as the intersection of both.  This is done for
the immediate offsets, however load_store_pair_p must be set as well to
avoid LDP with a PC-relative address if aarch64_pcrelative_literal_loads
is true.

    gcc/
PR target/78733
* config/aarch64/aarch64.c (aarch64_classify_address):
Set load_store_pair_p for TImode and TFmode.

    testsuite/
* gcc.target/aarch64/pr78733.c: New test.

From-SVN: r243456

7 years agoi386.h (HARD_REGNO_NREGS): Use GENERAL_REGNO_P.
Uros Bizjak [Thu, 8 Dec 2016 19:15:45 +0000 (20:15 +0100)]
i386.h (HARD_REGNO_NREGS): Use GENERAL_REGNO_P.

* gcc.target/i386/i386.h (HARD_REGNO_NREGS): Use GENERAL_REGNO_P.
(HARD_REGNO_NREGS_HAS_PADDING): Ditto.  Simplify macro.

From-SVN: r243455

7 years ago* es.po: Update.
Joseph Myers [Thu, 8 Dec 2016 19:03:54 +0000 (19:03 +0000)]
* es.po: Update.

From-SVN: r243453

7 years agore PR c++/78551 (Internal compiler error with constexpr initialization of union)
Nathan Sidwell [Thu, 8 Dec 2016 18:34:04 +0000 (18:34 +0000)]
re PR c++/78551 (Internal compiler error with constexpr initialization of union)

PR c++/78551
* constexpr.c (extract_string_elt): New.  Broken out of ...
(cxx_eval_array_reference): ... here.  Call it.
(cxx_eval_store_expression): Convert init by STRING_CST into
CONSTRUCTOR, if needed.

PR c++/78551
* g++.dg/cpp1y/pr78551.C: New.

From-SVN: r243448

7 years agoIntroduce emit_status::ensure_regno_capacity
David Malcolm [Thu, 8 Dec 2016 17:29:41 +0000 (17:29 +0000)]
Introduce emit_status::ensure_regno_capacity

gcc/ChangeLog:
* emit-rtl.c (gen_reg_rtx): Move regno_pointer_align and
regno_reg_rtx resizing logic to...
(emit_status::ensure_regno_capacity): ...this new method,
and ensure that the buffers are large enough.
(init_emit): Allocate regno_reg_rtx using ggc_cleared_vec_alloc
rather than ggc_vec_alloc.
* function.h (emit_status::ensure_regno_capacity): New method.

From-SVN: r243447

7 years agoruntime: copy memory hash code from Go 1.7
Ian Lance Taylor [Thu, 8 Dec 2016 16:37:54 +0000 (16:37 +0000)]
runtime: copy memory hash code from Go 1.7

    Rewrite the AES hashing code from gc assembler to C code using
    intrinsics.  The resulting code generates the same hash code for the
    same input as the gc code--that doesn't matter as such, but testing it
    ensures that the C code does something useful.

    Also change mips64pe32le to mips64p32le in configure script--noticed
    during CL review.

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

From-SVN: r243445

7 years agoruntime: allocate _panic struct on heap
Ian Lance Taylor [Thu, 8 Dec 2016 15:54:30 +0000 (15:54 +0000)]
runtime: allocate _panic struct on heap

    The gc library allocates a _panic struct on the stack. This does not
    work for gccgo, because when a deferred function recovers the panic we
    unwind the stack up to that point so that returning from the function
    will work correctly.

    Allocating on the stack fine if the panic is not recovered, and it
    works fine if the panic is recovered by a function that
    returns. However, it fails if the panic is recovered by a function
    that itself panics, and if that second panic is then recovered by a
    function higher up on the stack. When we unwind the stack to that
    second panic, the g will wind up pointing at a panic farther down on
    the stack. Even then everything will often work fine, except when the
    deferred function catching the second panic makes a bunch of calls
    that use stack space before returning. In that case the code can
    overwrite the panic struct, which will then cause disaster when we
    remove the struct from the linked list, as the link field will be
    garbage. This case is rare enough that all the x86 tests were passing,
    but there was a failure on ppc64le.

    Before https://golang.org/cl/33414 we allocated the panic struct on
    the heap, so go back to doing that again.

    Fixes golang/go#18228.

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

From-SVN: r243444

7 years agore PR libstdc++/78264 (ICE in build_noexcept_spec, at cp/except.c:1196)
Eric Botcazou [Thu, 8 Dec 2016 15:52:11 +0000 (15:52 +0000)]
re PR libstdc++/78264 (ICE in build_noexcept_spec, at cp/except.c:1196)

PR libstdc++/78264
* include/bits/c++config (_GLIBCXX_NOEXCEPT_PARM): Turn _N into _NE.
(_GLIBCXX_NOEXCEPT_QUAL): Likewise.

From-SVN: r243443

7 years agocompiler: make Slice_construction_expression::do_flatten idempotent
Ian Lance Taylor [Thu, 8 Dec 2016 15:51:25 +0000 (15:51 +0000)]
compiler: make Slice_construction_expression::do_flatten idempotent

    Because of the way we handle call expressions with multiple results,
    it's possible for expressions to be flattened more than once.  In the
    case of Slice_construction_expression, allocating the slice storage
    multiple times caused a compiler crash as one of the
    Temporary_statement's wound up not getting a backend expression.

    Test case is https://golang.org/cl/34020.

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

From-SVN: r243442

7 years agoEnable -fsanitize-address-use-after-scope only if -fsanitize=address is enabled
Dmitry Vyukov [Thu, 8 Dec 2016 14:32:24 +0000 (06:32 -0800)]
Enable -fsanitize-address-use-after-scope only if -fsanitize=address is enabled

2016-12-08  Dmitry Vyukov  <dvyukov@google.com>

* opts.c (finish_options): Enable
-fsanitize-address-use-after-scope only if -fsanitize=address is enabled
(not -fsanitize=kernel-address).
* doc/invoke.texi (-fsanitize=kernel-address):
Don't say that it enables -fsanitize-address-use-after-scope.

From-SVN: r243441

7 years ago* es.po: Update.
Joseph Myers [Thu, 8 Dec 2016 14:12:46 +0000 (14:12 +0000)]
* es.po: Update.

From-SVN: r243439

7 years agoFix filesystem test that fails in debug mode
Jonathan Wakely [Thu, 8 Dec 2016 13:25:09 +0000 (13:25 +0000)]
Fix filesystem test that fails in debug mode

* testsuite/experimental/filesystem/path/construct/range.cc: Don't
use basic_string::front() when string might be empty.

From-SVN: r243438

7 years agoDelete std::swap for debug mode array
Jonathan Wakely [Thu, 8 Dec 2016 13:25:03 +0000 (13:25 +0000)]
Delete std::swap for debug mode array

* include/debug/array (swap): Add deleted overload.
* include/bits/stl_pair.h (swap): Remove redundant inline keyword
from deleted overload.
* include/bits/unique_ptr.h (swap): Likewise.
* include/std/array (swap): Likewise.
* include/std/optional (swap): Likewise.
* include/std/tuple (swap): Likewise.
* include/std/variant (swap): Likewise.
* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/
tuple_element_debug_neg.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r243437

7 years agoPR71856 try to fix Parallel Mode assertions again
Jonathan Wakely [Thu, 8 Dec 2016 12:08:14 +0000 (12:08 +0000)]
PR71856 try to fix Parallel Mode assertions again

PR libstdc++/71856
* doc/xml/manual/using.xml: Document macro.
* include/bits/c++config [_GLIBCXX_DEBUG || _GLIBCXX_PARALLEL]
(__glibcxx_assert): Rename to __glibcxx_assert_impl.
[_GLIBCXX_DEBUG] (__glibcxx_assert): Expand to __glibcxx_assert_impl.
* include/parallel/base.h [_GLIBCXX_PARALLEL_ASSERTIONS]
(_GLIBCXX_PARALLEL_ASSERT): Expand to __glibcxx_assert_impl.
[!_GLIBCXX_PARALLEL_ASSERTIONS] (_GLIBCXX_PARALLEL_ASSERT): Define as
empty.
* testsuite/25_algorithms/headers/algorithm/
parallel_algorithm_assert2.cc: New test.

From-SVN: r243434

7 years agoAdd the missing ChangeLog entry for r243432
Pierre-Marie de Rodat [Thu, 8 Dec 2016 11:04:11 +0000 (11:04 +0000)]
Add the missing ChangeLog entry for r243432

2016-12-08  Pierre-Marie de Rodat  <derodat@adacore.com>

PR debug/78112
* g++.dg/pr78112.C: Remove platform-dependent checks.
* g++.dg/pr78112-2.C: New testcase.

From-SVN: r243433

7 years ago[PR78112] Remove platform-dependent checks in g++.dg/pr78112.C
Pierre-Marie de Rodat [Thu, 8 Dec 2016 11:01:03 +0000 (11:01 +0000)]
[PR78112] Remove platform-dependent checks in g++.dg/pr78112.C

... as there checks failed on many platforms. As a replacement, this
commit also adds a new testcase from source reduction. The hope is that
this new testcase will get a consistent output across all platforms.

gcc/testsuite/
PR debug/78112
* g++.dg/pr78112.C: Remove platform-dependent checks.
* g++.dg/pr78112-2.C: New testcase.

From-SVN: r243432

7 years agore PR middle-end/78684 (ICE in create_intersect_range_checks_index, at tree-vect...
Bin Cheng [Thu, 8 Dec 2016 10:56:41 +0000 (10:56 +0000)]
re PR middle-end/78684 (ICE in create_intersect_range_checks_index, at tree-vect-loop-manip.c:2074)

PR middle-end/78684
* tree-vect-loop-manip.c (create_intersect_range_checks_index): Check
sign bit for index step of data reference.
gcc/testsuite
PR middle-end/78684
* g++.dg/torture/pr78684.C: New test.

From-SVN: r243431

7 years agoFix failing poly64 tests on ARM
Christophe Lyon [Thu, 8 Dec 2016 09:23:29 +0000 (09:23 +0000)]
Fix failing poly64 tests on ARM
2016-12-08  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
(CHECK_CRYPTO): Remove.
(expected_poly64x1_t, expected_poly64x2_t): Remove

From-SVN: r243430

7 years agoP0003R5 - removal of dynamic exception specification from C++17
Jakub Jelinek [Thu, 8 Dec 2016 08:26:06 +0000 (09:26 +0100)]
P0003R5 - removal of dynamic exception specification from C++17

P0003R5 - removal of dynamic exception specification from C++17
* parser.c (cp_parser_exception_specification_opt): For C++17
error out on throw ( type-id-list ), for C++11 and C++14 issue
-Wdeprecated warning on it.  Formatting fix.  Treat throw()
in C++17 as noexcept(true).

* g++.dg/compat/eh/ctor1.h: Adjust for deprecation of
throw (type-id-list) in C++11 and C++14 and removal in C++17.
* g++.dg/compat/eh/ctor1_y.C: Likewise.
* g++.dg/compat/eh/new1_x.C: Likewise.
* g++.dg/compat/eh/new1_y.C: Likewise.
* g++.dg/compat/eh/spec3_x.C: Likewise.
* g++.dg/compat/eh/spec3_y.C: Likewise.
* g++.dg/compat/eh/template1.h: Likewise.
* g++.dg/compat/eh/template1_y.C: Likewise.
* g++.dg/compat/eh/unexpected1_x.C: Likewise.
* g++.dg/compat/eh/unexpected1_y.C: Likewise.
* g++.dg/cpp0x/auto9.C: Likewise.
* g++.dg/cpp0x/defaulted23.C: Likewise.
* g++.dg/cpp0x/error5.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-eh2.C: Likewise.
* g++.dg/cpp0x/noexcept02.C: Likewise.
* g++.dg/cpp0x/noexcept07.C: Likewise.
* g++.dg/cpp0x/noexcept08.C: Likewise.
* g++.dg/cpp0x/noexcept19.C: Likewise.
* g++.dg/cpp0x/variadic73.C: Likewise.
* g++.dg/cpp0x/variadic-throw.C: Likewise.
* g++.dg/cpp1z/noexcept-type1.C: Likewise.
* g++.dg/eh/async-unwind2.C: Likewise.
* g++.dg/eh/cond4.C: Likewise.
* g++.dg/eh/delete1.C: Likewise.
* g++.dg/eh/ehopt1.C: Likewise.
* g++.dg/eh/forced3.C: Likewise.
* g++.dg/eh/forced4.C: Likewise.
* g++.dg/eh/init-temp2.C: Likewise.
* g++.dg/eh/pr38662.C: Likewise.
* g++.dg/eh/pr41819.C: Likewise.
* g++.dg/eh/shadow1.C: Likewise.
* g++.dg/eh/spec2.C: Likewise.
* g++.dg/eh/spec3.C: Likewise.
* g++.dg/eh/spec5.C: Likewise.
* g++.dg/eh/spec6.C: Likewise.
* g++.dg/eh/spec7.C: Likewise.
* g++.dg/eh/spec8.C: Likewise.
* g++.dg/eh/spec9.C: Likewise.
* g++.dg/eh/template1.C: Likewise.
* g++.dg/eh/unexpected1.C: Likewise.
* g++.dg/ext/has_nothrow_assign.C: Likewise.
* g++.dg/ext/has_nothrow_constructor.C: Likewise.
* g++.dg/ext/has_nothrow_copy-1.C: Likewise.
* g++.dg/ext/has_nothrow_copy-2.C: Likewise.
* g++.dg/ext/has_nothrow_copy-4.C: Likewise.
* g++.dg/ext/has_nothrow_copy-5.C: Likewise.
* g++.dg/ext/has_nothrow_copy-6.C: Likewise.
* g++.dg/ext/has_nothrow_copy-7.C: Likewise.
* g++.dg/gcov/gcov-7.C: Likewise.
* g++.dg/init/new13.C: Likewise.
* g++.dg/init/new25.C: Likewise.
* g++.dg/lookup/exception1.C: Likewise.
* g++.dg/opt/noreturn-1.C: Likewise.
* g++.dg/other/error3.C: Likewise.
* g++.dg/rtti/crash3.C: Likewise.
* g++.dg/template/eh2.C: Likewise.
* g++.dg/template/error36.C: Likewise.
* g++.dg/tm/pr46567.C: Likewise.
* g++.dg/tm/pr47340.C: Likewise.
* g++.dg/torture/pr46364.C: Likewise.
* g++.dg/torture/pr49394.C: Likewise.
* g++.dg/torture/pr52918-1.C: Likewise.
* g++.dg/torture/pr57190.C: Likewise.
* g++.dg/torture/stackalign/eh-alloca-1.C: Likewise.
* g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise.
* g++.dg/torture/stackalign/eh-global-1.C: Likewise.
* g++.dg/torture/stackalign/eh-inline-1.C: Likewise.
* g++.dg/torture/stackalign/eh-inline-2.C: Likewise.
* g++.dg/torture/stackalign/eh-thiscall-1.C: Likewise.
* g++.dg/torture/stackalign/eh-vararg-1.C: Likewise.
* g++.dg/torture/stackalign/eh-vararg-2.C: Likewise.
* g++.dg/tree-ssa/pr45605.C: Likewise.
* g++.dg/warn/Wreturn-type-3.C: Likewise.
* g++.old-deja/g++.eh/badalloc1.C: Likewise.
* g++.old-deja/g++.eh/cleanup2.C: Likewise.
* g++.old-deja/g++.eh/spec1.C: Likewise.
* g++.old-deja/g++.eh/spec2.C: Likewise.
* g++.old-deja/g++.eh/spec3.C: Likewise.
* g++.old-deja/g++.eh/spec4.C: Likewise.
* g++.old-deja/g++.eh/spec6.C: Likewise.
* g++.old-deja/g++.eh/throw1.C: Likewise.
* g++.old-deja/g++.eh/throw2.C: Likewise.
* g++.old-deja/g++.eh/tmpl1.C: Likewise.
* g++.old-deja/g++.eh/tmpl3.C: Likewise.
* g++.old-deja/g++.mike/eh15.C: Likewise.
* g++.old-deja/g++.mike/eh25.C: Likewise.
* g++.old-deja/g++.mike/eh33.C: Likewise.
* g++.old-deja/g++.mike/eh34.C: Likewise.
* g++.old-deja/g++.mike/eh50.C: Likewise.
* g++.old-deja/g++.mike/eh51.C: Likewise.
* g++.old-deja/g++.mike/eh55.C: Likewise.
* g++.old-deja/g++.mike/p10416.C: Likewise.
* g++.old-deja/g++.other/crash28.C: Likewise.
* g++.old-deja/g++.other/crash30.C: Likewise.
* g++.old-deja/g++.other/new7.C: Likewise.
* g++.old-deja/g++.pt/ehspec1.C: Likewise.
* g++.old-deja/g++.robertl/eb123.C: Likewise.

* testsuite/util/testsuite_new_operators.h: Include testsuite_hooks.h.
(operator new): Use THROW macro.

From-SVN: r243429

7 years agoaarch64.c (aarch64_load_symref_appropriately): Handle SYMBOL_SMALL_TLSGD for ILP32.
Naveen H.S [Thu, 8 Dec 2016 05:09:37 +0000 (05:09 +0000)]
aarch64.c (aarch64_load_symref_appropriately): Handle SYMBOL_SMALL_TLSGD for ILP32.

2016-12-08  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>

gcc
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
Handle SYMBOL_SMALL_TLSGD for ILP32.
* config/aarch64/aarch64.md : tlsgd_small modified into
tlsgd_small_<mode> to support SImode and DImode.
*tlsgd_small modified into *tlsgd_small_<mode> to support SImode and
DImode.

gcc/testsuite
* gcc.target/aarch64/pr78382.c : New Testcase.

From-SVN: r243428

7 years agoaarch64.c (aarch64_load_symref_appropriately): Access the lower part of RTX appropria...
Andrew Pinski [Thu, 8 Dec 2016 04:59:00 +0000 (04:59 +0000)]
aarch64.c (aarch64_load_symref_appropriately): Access the lower part of RTX appropriately.

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

gcc
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
Access the lower part of RTX appropriately.

gcc/testsuite
* gcc.target/aarch64/pr71112.c : New Testcase.

From-SVN: r243427

7 years agoSplit class rtx_reader into md_reader vs rtx_reader
David Malcolm [Thu, 8 Dec 2016 01:51:04 +0000 (01:51 +0000)]
Split class rtx_reader into md_reader vs rtx_reader

This moves read_rtx and friends into rtx_reader, and splits
rtx_reader into two classes:

class md_reader: has responsibility for reading chars, managing
include files, top-level directives etc.  It is the read-md.o part.

class rtx_reader, a subclass, has the code for reading hierarchical
rtx expressions using the format codes.   It is the read-rtl.o part.

This split is needed by a followup patch, which converts
read_rtx_operand to a virtual function of rtx_reader.  To do this,
instances of rtx_reader (or its subclasses) need a vtable, which
needs to include a ptr to the code in read-rtl.o.  Splitting it up
allows the gen* tools that currently purely use read-md.o to continue
to do so.

gcc/ChangeLog:
* genpreds.c (write_tm_constrs_h): Update for renaming of
rtx_reader_ptr to md_reader_ptr.
(write_tm_preds_h): Likewise.
(write_insn_preds_c): Likewise.
* read-md.c (rtx_reader_ptr): Rename to...
(md_reader_ptr): ...this, and convert from an
rtx_reader * to a md_reader *.
(rtx_reader::set_md_ptr_loc): Rename to...
(md_reader::set_md_ptr_loc): ...this.
(rtx_reader::get_md_ptr_loc): Rename to...
(md_reader::get_md_ptr_loc): ...this.
(rtx_reader::copy_md_ptr_loc): Rename to...
(md_reader::copy_md_ptr_loc): ...this.
(rtx_reader::fprint_md_ptr_loc): Rename to...
(md_reader::fprint_md_ptr_loc): ...this.
(rtx_reader::print_md_ptr_loc): Rename to...
(md_reader::print_md_ptr_loc): ...this.
(rtx_reader::join_c_conditions): Rename to...
(md_reader::join_c_conditions): ...this.
(rtx_reader::fprint_c_condition): ...this.
(rtx_reader::print_c_condition): Rename to...
(md_reader::print_c_condition): ...this.
(fatal_with_file_and_line):  Update for renaming of
rtx_reader_ptr to md_reader_ptr.
(rtx_reader::require_char): Rename to...
(md_reader::require_char): ...this.
(rtx_reader::require_char_ws): Rename to...
(md_reader::require_char_ws): ...this.
(rtx_reader::require_word_ws): Rename to...
(md_reader::require_word_ws): ...this.
(rtx_reader::read_char): Rename to...
(md_reader::read_char): ...this.
(rtx_reader::unread_char): Rename to...
(md_reader::unread_char): ...this.
(rtx_reader::peek_char): Rename to...
(md_reader::peek_char): ...this.
(rtx_reader::read_name): Rename to...
(md_reader::read_name): ...this.
(rtx_reader::read_escape): Rename to...
(md_reader::read_escape): ...this.
(rtx_reader::read_quoted_string): Rename to...
(md_reader::read_quoted_string): ...this.
(rtx_reader::read_braced_string): Rename to...
(md_reader::read_braced_string): ...this.
(rtx_reader::read_string): Rename to...
(md_reader::read_string): ...this.
(rtx_reader::read_skip_construct): Rename to...
(md_reader::read_skip_construct): ...this.
(rtx_reader::handle_constants): Rename to...
(md_reader::handle_constants): ...this.
(rtx_reader::traverse_md_constants): Rename to...
(md_reader::traverse_md_constants): ...this.
(rtx_reader::handle_enum): Rename to...
(md_reader::handle_enum): ...this.
(rtx_reader::lookup_enum_type): Rename to...
(md_reader::lookup_enum_type): ...this.
(rtx_reader::traverse_enum_types): Rename to...
(md_reader::traverse_enum_types): ...this.
(rtx_reader::rtx_reader): Rename to...
(md_reader::md_reader): ...this, and update for renaming of
rtx_reader_ptr to md_reader_ptr.
(rtx_reader::~rtx_reader): Rename to...
(md_reader::~md_reader): ...this, and update for renaming of
rtx_reader_ptr to md_reader_ptr.
(rtx_reader::handle_include): Rename to...
(md_reader::handle_include): ...this.
(rtx_reader::handle_file): Rename to...
(md_reader::handle_file): ...this.
(rtx_reader::handle_toplevel_file): Rename to...
(md_reader::handle_toplevel_file): ...this.
(rtx_reader::get_current_location): Rename to...
(md_reader::get_current_location): ...this.
(rtx_reader::add_include_path): Rename to...
(md_reader::add_include_path): ...this.
(rtx_reader::read_md_files): Rename to...
(md_reader::read_md_files): ...this.
* read-md.h (class rtx_reader): Split into...
(class md_reader): ...new class.
(rtx_reader_ptr): Rename to...
(md_reader_ptr): ...this, and convert to a md_reader *.
(class noop_reader): Update base class to be md_reader.
(class rtx_reader): Reintroduce as a subclass of md_reader.
(rtx_reader_ptr): Reintroduce as a rtx_reader *.
(read_char): Update for renaming of rtx_reader_ptr to
md_reader_ptr.
(unread_char): Likewise.
* read-rtl.c (rtx_reader_ptr): New global.
(rtx_reader::apply_iterator_to_string): Rename to...
(md_reader::apply_iterator_to_string): ...this.
(rtx_reader::copy_rtx_for_iterators): Rename to...
(md_reader::copy_rtx_for_iterators): ...this.
(rtx_reader::read_conditions): Rename to...
(md_reader::read_conditions): ...this.
(rtx_reader::record_potential_iterator_use): Rename to...
(md_reader::record_potential_iterator_use): ...this.
(rtx_reader::read_mapping): Rename to...
(md_reader::read_mapping): ...this.
(rtx_reader::read_rtx): Use rtx_reader_ptr when calling
read_rtx_code.
(rtx_reader::read_rtx_operand): Use get_string_obstack rather
than directly accessing m_string_obstack.
(rtx_reader::rtx_reader): New ctor.
(rtx_reader::~rtx_reader): New dtor.

From-SVN: r243426

7 years agoruntime: remove some unused variables/declarations from runtime.h
Ian Lance Taylor [Thu, 8 Dec 2016 00:38:03 +0000 (00:38 +0000)]
runtime: remove some unused variables/declarations from runtime.h

    Small patch from Eric Botcazou.

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

From-SVN: r243424

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

From-SVN: r243423

7 years agosimplify-rtx: Fix the last fix (PR78638)
Segher Boessenkool [Thu, 8 Dec 2016 00:09:01 +0000 (01:09 +0100)]
simplify-rtx: Fix the last fix (PR78638)

I managed to get the last obvious fix wrong: mode is M1, GET_MODE (op)
is M2.

[ adding missing PR marker ]

PR rtl-optimization/78638
* simplify-rtx.c (simplify_truncation): M2 is not mode, it is
GET_MODE (op).  Fix this.

From-SVN: r243420

7 years agoPR c/53562 - Add -Werror= support for -D_FORTIFY_SOURCE / __builtin___memcpy_chk
Martin Sebor [Thu, 8 Dec 2016 00:01:33 +0000 (00:01 +0000)]
PR c/53562 - Add -Werror= support for -D_FORTIFY_SOURCE / __builtin___memcpy_chk

PR c/53562 - Add -Werror= support for -D_FORTIFY_SOURCE / __builtin___memcpy_chk
PR middle-end/77784 - duplicate warning for snprintf when n > object size
PR middle-end/78149 - missing warning on strncpy buffer overflow due to an excessive bound
PR middle-end/78138 - missing warnings on buffer overflow with non-constant source length

gcc/c-family/ChangeLog:

PR c/53562
PR middle-end/77784
PR middle-end/78149
PR middle-end/78138
* c.opt (-Wstringop-overflow): New option.

gcc/ChangeLog:

PR middle-end/77784
PR middle-end/78149
PR middle-end/78138

* builtins.c (expand_builtin_strcat, expand_builtin_strncat): New
functions.
(compute_dest_size, get_size_range, check_sizes, check_strncat_sizes)
(check_memop_sizes): Same.
(expand_builtin_memcpy): Call check memop_sizes.
(expand_builtin_mempcpy): Same.
(expand_builtin_memset): Same,
(expand_builtin_bzero): Same.
(expand_builtin_memory_chk): Call check_sizes.
(expand_builtin_strcpy): Same.
(expand_builtin_strncpy): Same.
(maybe_emit_sprintf_chk_warning): Same.
(expand_builtin): Handle strcat and strncat.
(fini_object_sizes): Reset pointers.
(compute_object_size): New function.
* gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
Avoid issuing warnings also issued during built-in expansion.
* doc/invoke.texi (Warning Options): Document -Wstringop-overflow.

gcc/testsuite/ChangeLog:

PR middle-end/77784
PR middle-end/78149
PR middle-end/78138

* c-c++-common/Wsizeof-pointer-memaccess2.c: Adjust expected diagnostic.
* g++.dg/ext/builtin-object-size3.C (bar): Same.
* g++.dg/ext/strncpy-chk1.C: Same.
* g++.dg/opt/memcpy1.C: Same.
* g++.dg/torture/Wsizeof-pointer-memaccess1.C: Same.
* gcc.c-torture/compile/pr55569.c: Disable -Wstringop-overflow.
* gcc.dg/Wobjsize-1.c: Adjust expected diagnostic.
* gcc.dg/attr-alloc_size.c: Same.
* gcc.dg/builtin-stringop-chk-1.c: Adjust expected diagnostic.
* gcc.dg/builtin-stringop-chk-2.c: Same.
* gcc.dg/builtin-stringop-chk-4.c: New test.
* gcc.dg/builtin-strncat-chk-1.c: Adjust expected diagnostic.
* gcc.dg/memcpy-2.c: Same.
* gcc.dg/pr40340-1.c: Same.
* gcc.dg/pr40340-2.c (main): Same.
* gcc.dg/pr40340-5.c (main): Same.
* gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Same.
* gcc.dg/torture/pr71132.c: Disable -Wstringop-overflow.
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust text of expected
warning.
* gfortran.dg/char_length_3.f90: Prune expected warnings.
* gfortran.dg/pr38868.f: Add expected warnings.

From-SVN: r243419

7 years agore PR target/72717 (ICE: in emit_move_insn, at expr.c:3693 with vector shift @ powerp...
Michael Meissner [Wed, 7 Dec 2016 23:52:05 +0000 (23:52 +0000)]
re PR target/72717 (ICE: in emit_move_insn, at expr.c:3693 with vector shift @ powerpc64le)

[gcc]
2016-12-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/72717
* config/rs6000/rs6000.c (rs6000_expand_vector_init): If the
V2DImode elements are SUBREG's convert the result into DImode
rather than failing in emit_move_insn.

[gcc/testsuite]
2016-12-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/72717
* gcc.target/powerpc/pr72717.c: New test.

From-SVN: r243418

7 years agosync config/* from binutils
Alan Modra [Wed, 7 Dec 2016 23:16:03 +0000 (09:46 +1030)]
sync config/* from binutils

* elf.m4: Revert 2016-06-21 change.
* picflag.m4: Likewise.  Revert 2016-04-30 change too.
* override.m4 (AC_PROG_LEX): Import 2016-01-18 binutils fix
for PR binutils/19481.

From-SVN: r243417

7 years ago2016-12-07 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Wed, 7 Dec 2016 21:16:24 +0000 (21:16 +0000)]
2016-12-07  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_tree.h
(_Rb_tree<>::_M_copy(_Const_Link_type, _Base_ptr)): Delete.
(_Rb_tree<>::_M_copy(const _Rb_tree&, _NodeGen&)): New.
(_Rb_tree<>::_M_copy(const _Rb_tree&)): New, use latter.
(_Rb_tree<>(const _Rb_tree&): Use latter.
(_Rb_tree<>(const _Rb_tree&, const allocator_type&)): Likewise.
(_Rb_tree<>::_M_move_data(_Rb_tree&, false_type)): Likewise.
(_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Likewise.
(_Rb_tree<>::operator=(const _Rb_tree&)): Likewise.

From-SVN: r243380