gcc.git
8 years agoDaily bump.
GCC Administrator [Tue, 9 Aug 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239264

8 years agotext/template: reduce maxExecDepth for gccgo further
Ian Lance Taylor [Mon, 8 Aug 2016 22:55:29 +0000 (22:55 +0000)]
text/template: reduce maxExecDepth for gccgo further

    We already lowered the limit of recursive template invocations from
    100,000 to 10,000, but the tests still fail occasionally on
    x86_64-pc-linux-gnu when using GNU ld (so that split stacks are not
    fully functional).  Reduce the limit further, to 1000, enough so that
    the test passes consistently.

    Permitting 1000 recursive template invocations still seems capacious
    enough for real world use.

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

From-SVN: r239261

8 years agoc-format.c: suggest the correct format string to use (PR c/64955)
David Malcolm [Mon, 8 Aug 2016 22:50:47 +0000 (22:50 +0000)]
c-format.c: suggest the correct format string to use (PR c/64955)

This adds fix-it hints to c-format.c so that it can (sometimes) suggest
the format string the user should have used.

The patch adds selftests for the new code in c-format.c.  These
selftests are thus lang-specific.  This is the first time we've had
lang-specific selftests, and hence the patch also adds a langhook for
running them.  (Note that currently the Makefile only invokes the
selftests for cc1).

gcc/c-family/ChangeLog:
PR c/64955
* c-common.h (selftest::c_format_c_tests): New declaration.
(selftest::run_c_tests): New declaration.
* c-format.c: Include "selftest.h.
(format_warning_va): Add param "corrected_substring" and use
it to add a replacement fix-it hint.
(format_warning_at_substring): Likewise.
(format_warning_at_char): Update for new param of
format_warning_va.
(argument_parser::check_argument_type): Pass "fki" to
check_format_types.
(check_format_types): Add param "fki" and pass it to
format_type_warning.
(deref_n_times): New function.
(get_modifier_for_format_len): New function.
(selftest::test_get_modifier_for_format_len): New function.
(get_format_for_type): New function.
(format_type_warning): Add param "fki" and use it to attempt
to provide hints for argument types when calling
format_warning_at_substring.
(selftest::get_info): New function.
(selftest::assert_format_for_type_streq): New function.
(ASSERT_FORMAT_FOR_TYPE_STREQ): New macro.
(selftest::test_get_format_for_type_printf): New function.
(selftest::test_get_format_for_type_scanf): New function.
(selftest::c_format_c_tests): New function.

gcc/c/ChangeLog:
PR c/64955
* c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
this up to selftest::run_c_tests.
(selftest::run_c_tests): New function.

gcc/ChangeLog:
PR c/64955
* langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
do-nothing langhook.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
* langhooks.h (struct lang_hooks): Add run_lang_selftests.
* selftest-run-tests.c: Include "tree.h" and "langhooks.h".
(selftest::run_tests): Call lang_hooks.run_lang_selftests.

gcc/testsuite/ChangeLog:
PR c/64955
* gcc.dg/format/diagnostic-ranges.c: Add fix-it hints to expected
output.

From-SVN: r239260

8 years agolibgo: don't have .lo depend on .lo.dep
Ian Lance Taylor [Mon, 8 Aug 2016 21:23:57 +0000 (21:23 +0000)]
libgo: don't have .lo depend on .lo.dep

    Having each .lo depend on the corresponding .lo.dep caused too many
    rebuilds, because the .lo.dep files are rebuilt when Makefile changes.
    Instead, if the .lo.dep file changes, remove the .lo file.

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

From-SVN: r239258

8 years agoFix selftest::test_lexer_string_locations_ebcdic for systems without iconv (PR bootst...
David Malcolm [Mon, 8 Aug 2016 20:46:19 +0000 (20:46 +0000)]
Fix selftest::test_lexer_string_locations_ebcdic for systems without iconv (PR bootstrap/72844)

selftest::test_lexer_string_locations_ebcdic has this clause:

  /* EBCDIC support requires iconv.  */
  if (!HAVE_ICONV)
    return;

leading to a build failure on systems without iconv.  This conditional
works in libcpp due to this in libcpp/internal.h:

  #if HAVE_ICONV
  #include <iconv.h>
  #else
  #define HAVE_ICONV 0
  typedef int iconv_t;  /* dummy */
  #endif

Fix the problem by ensuring that HAVE_ICONV is always defined within
gcc/input.c.

gcc/ChangeLog:
PR bootstrap/72844
* input.c: Ensure that HAVE_ICONV is defined.

From-SVN: r239257

8 years agotestsuite: fix gotest for absolute srcdir
Ian Lance Taylor [Mon, 8 Aug 2016 20:34:05 +0000 (20:34 +0000)]
testsuite: fix gotest for absolute srcdir

    The recent changes to Makefile.am mean that if you configure with an
    absolute path as srcdir then gotest will be invoked with absolute paths
    for the files.  That case never worked.  This patch fixes it.

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

From-SVN: r239256

8 years agopr71078-1.c: Add require-effective-target c99_runtime.
Prathamesh Kulkarni [Mon, 8 Aug 2016 20:17:36 +0000 (20:17 +0000)]
pr71078-1.c: Add require-effective-target c99_runtime.

2016-08-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

testsuite/
* gcc.dg/tree-ssa/pr71078-1.c: Add require-effective-target
c99_runtime.
* gcc.dg/tree-ssa/pr71078-1-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-1-long-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2-long-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-3.c: Likewise.

From-SVN: r239255

8 years agoUse class substring_loc in c-format.c (PR c/52952)
David Malcolm [Mon, 8 Aug 2016 20:10:19 +0000 (20:10 +0000)]
Use class substring_loc in c-format.c (PR c/52952)

gcc/c-family/ChangeLog:
PR c/52952
* c-format.c: Include "diagnostic.h".
(location_column_from_byte_offset): Delete.
(location_from_offset): Delete.
(format_warning_va): New function.
(format_warning_at_substring): New function.
(format_warning_at_char): New function.
(check_format_arg): Capture location of format_tree and pass to
check_format_info_main.
(argument_parser): Add fields "start_of_this_format" and
"format_string_cst".
(flag_chars_t::validate): Add param "format_string_cst".  Convert
warning_at call using location_from_offset to call to
format_warning_at_char.
(argument_parser::argument_parser): Add param "format_string_cst_"
and use use it to initialize field "format_string_cst".
Initialize new field "start_of_this_format".
(argument_parser::read_format_flags): Convert warning_at call
using location_from_offset to a call to format_warning_at_char.
(argument_parser::read_any_format_left_precision): Likewise.
(argument_parser::read_any_format_precision): Likewise.
(argument_parser::read_any_other_modifier): Likewise.
(argument_parser::find_format_char_info): Likewise, in three places.
(argument_parser::parse_any_scan_set): Likewise, in one place.
(argument_parser::handle_conversions): Likewise, in two places.
(argument_parser::check_argument_type): Add param "fmt_param_loc"
and use it to make a substring_loc.  Pass the latter to
check_format_types.
(check_format_info_main): Add params "fmt_param_loc" and
"format_string_cst".  Convert warning_at calls using
location_from_offset to calls to format_warning_at_char.  Pass the
new params to the arg_parser ctor.  Pass "format_string_cst" to
flag_chars.validate.  Pass "fmt_param_loc" to
arg_parser.check_argument_type.
(check_format_types): Convert first param from a location_t
to a const substring_loc & and rename to "fmt_loc".  Attempt
to extract the range of the relevant parameter and pass it
to format_type_warning.
(format_type_warning): Convert first param from a location_t
to a const substring_loc & and rename to "fmt_loc".  Add
params "param_range" and "type".  Replace calls to warning_at
with calls to format_warning_at_substring.

gcc/testsuite/ChangeLog:
PR c/52952
* gcc.dg/cpp/pr66415-1.c: Likewise.
* gcc.dg/format/asm_fprintf-1.c: Update column numbers.
* gcc.dg/format/c90-printf-1.c: Likewise.
* gcc.dg/format/diagnostic-ranges.c: New test case.

From-SVN: r239253

8 years agore PR go/72814 (reflect FAILs on 32-bit Solaris/SPARC: SIGILL)
Ian Lance Taylor [Mon, 8 Aug 2016 19:53:44 +0000 (19:53 +0000)]
re PR go/72814 (reflect FAILs on 32-bit Solaris/SPARC: SIGILL)

PR go/72814

    runtime: treat zero-sized result value as void

    Change the FFI interface to treat a call to a function that returns a
    zero-sized result as a call to a function that returns void.

    This is part of the fix for https://gcc.gnu.org/PR72814.  On 32-bit
    SPARC systems, a call to a function that returns a non-zero-sized struct
    is followed by an unimp instruction that describes the size of the
    struct.  The function returns to the address after the unimp
    instruction.  The libffi library can not represent a zero-sized struct,
    so we wind up treating it as a 1-byte struct.  Thus in that case libffi
    calls the function with an unimp instruction, but the function does not
    adjust the return address.  The result is that the program attempts to
    execute the unimp instruction, causing a crash.

    This is part of a change that fixes the crash by treating all functions
    that return zero bytes as functions that return void.

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

* go-gcc.cc (Gcc_backend::function_type): If the return type is
zero bytes, treat the function as returning void.
(return_statement): If the return type is zero bytes, don't
actually return any values.

From-SVN: r239252

8 years agore PR c++/58706 (ICE with lambda in OpenMP for-loop)
Jakub Jelinek [Mon, 8 Aug 2016 19:50:29 +0000 (21:50 +0200)]
re PR c++/58706 (ICE with lambda in OpenMP for-loop)

PR c++/58706
* parser.c: Include tree-iterator.h.
(cp_parser_omp_for_loop_init): Move lambda DECL_EXPRs from init
to FOR_BLOCK.
(cp_parser_omp_for_loop): Handle non-STATEMENT_LIST FOR_BLOCK
entries.

* testsuite/libgomp.c++/pr58706.C: New test.

From-SVN: r239251

8 years agore PR fortran/72716 (ICE in gfc_resolve_omp_declare_simd, at fortran/openmp.c:5156)
Jakub Jelinek [Mon, 8 Aug 2016 19:48:48 +0000 (21:48 +0200)]
re PR fortran/72716 (ICE in gfc_resolve_omp_declare_simd, at fortran/openmp.c:5156)

PR fortran/72716
* openmp.c (gfc_match_omp_declare_simd): Don't stick anything into
BLOCK DATA ns, it will be rejected later.

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

From-SVN: r239250

8 years agore PR middle-end/72781 (-Wuninitialized false positives in OpenMP code)
Jakub Jelinek [Mon, 8 Aug 2016 19:46:36 +0000 (21:46 +0200)]
re PR middle-end/72781 (-Wuninitialized false positives in OpenMP code)

PR middle-end/72781
* omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
private vars for lastprivate and for linear iterator.

* gcc.dg/gomp/pr72781.c: New test.

From-SVN: r239249

8 years agore PR middle-end/68762 (link error for inline function decorated with OpenMP declare...
Jakub Jelinek [Mon, 8 Aug 2016 19:45:53 +0000 (21:45 +0200)]
re PR middle-end/68762 (link error for inline function decorated with OpenMP declare simd)

PR middle-end/68762
* omp-simd-clone.c: Include varasm.h.
(simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
DECL_ONE_ONLY call make_decl_one_only.  Fix up spelling in comment and
update function name.

* g++.dg/vect/pr68762-1.cc: New test.
* g++.dg/vect/pr68762-2.cc: New test.
* g++.dg/vect/pr68762.h: New file.

From-SVN: r239248

8 years agoc-format.c: cleanup of check_format_info_main
David Malcolm [Mon, 8 Aug 2016 18:10:54 +0000 (18:10 +0000)]
c-format.c: cleanup of check_format_info_main

gcc/c-family/ChangeLog:
* c-format.c (class flag_chars_t): New class.
(struct length_modifier): New struct.
(class argument_parser): New class.
(flag_chars_t::flag_chars_t): New ctor.
(flag_chars_t::has_char_p): New method.
(flag_chars_t::add_char): New method.
(flag_chars_t::validate): New method.
(flag_chars_t::get_alloc_flag): New method.
(flag_chars_t::assignment_suppression_p): New method.
(argument_parser::argument_parser): New ctor.
(argument_parser::read_any_dollar): New method.
(argument_parser::read_format_flags): New method.
(argument_parser::read_any_format_width): New method.
(argument_parser::read_any_format_left_precision): New method.
(argument_parser::read_any_format_precision): New method.
(argument_parser::handle_alloc_chars): New method.
(argument_parser::read_any_length_modifier): New method.
(argument_parser::read_any_other_modifier): New method.
(argument_parser::find_format_char_info): New method.
(argument_parser::validate_flag_pairs): New method.
(argument_parser::give_y2k_warnings): New method.
(argument_parser::parse_any_scan_set): New method.
(argument_parser::handle_conversions): New method.
(argument_parser::check_argument_type): New method.
(check_format_info_main): Introduce classes argument_parser
and flag_chars_t, moving the code within the loop into methods
of these classes.  Make various locals "const".

From-SVN: r239247

8 years agodriver-avr.c (specfiles_doc_url): Remove.
Pitchumani Sivanupandi [Mon, 8 Aug 2016 17:37:57 +0000 (17:37 +0000)]
driver-avr.c (specfiles_doc_url): Remove.

* config/avr/driver-avr.c (specfiles_doc_url): Remove.
(avr_diagnose_devicespecs_error): Remove.
(avr_devicespecs_file): Remove composing absolute path for specfile
and its verbose info. Remove conditions to check specs-file,

From-SVN: r239246

8 years agoPR testsuite/72838 - FAIL: g++.dg/cpp0x/constexpr-cast.C
Martin Sebor [Mon, 8 Aug 2016 15:32:16 +0000 (15:32 +0000)]
PR testsuite/72838 - FAIL: g++.dg/cpp0x/constexpr-cast.C

gcc/testsuite/ChangeLog:
* gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C: Correct target selector.
* gcc/testsuite/g++.dg/warn/overflow-warn-3.C: Same.
* gcc/testsuite/g++.dg/warn/overflow-warn-4.C: Same.

From-SVN: r239242

8 years agore PR rtl-optimization/72821 (RTL check: expected elt 2 type 'B', have '0' (rtx barri...
Jakub Jelinek [Mon, 8 Aug 2016 13:58:46 +0000 (15:58 +0200)]
re PR rtl-optimization/72821 (RTL check: expected elt 2 type 'B', have '0' (rtx barrier) in BLOCK_FOR_INSN, at rtl.h:1424)

PR rtl-optimization/72821
* lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
just return false for them.

From-SVN: r239241

8 years ago[RS6000] TOC refs generated during reload
Alan Modra [Mon, 8 Aug 2016 12:05:11 +0000 (21:35 +0930)]
[RS6000] TOC refs generated during reload

The generic reload fix for pr72771 exposed a problem with recognizing
-mcmodel=medium/large TOC references generated during reload.

PR target/72771
* config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
toc refs created during reload.  Update function comment.

From-SVN: r239240

8 years agore PR fortran/71936 (ICE in wide_int_to_tree, at tree.c:1487)
Andre Vehreschild [Mon, 8 Aug 2016 09:58:21 +0000 (11:58 +0200)]
re PR fortran/71936 (ICE in wide_int_to_tree, at tree.c:1487)

gcc/fortran/ChangeLog:

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

PR fortran/71936
* trans-array.c (gfc_array_allocate): When SOURCE= is a function
stick with the ref of the object to allocate.

gcc/testsuite/ChangeLog:

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

PR fortran/71936
* gfortran.dg/allocate_with_source_21.f03: New test.

From-SVN: r239237

8 years agore PR fortran/72698 (ICE in lhd_incomplete_type_error, at langhooks.c:205)
Andre Vehreschild [Mon, 8 Aug 2016 09:49:37 +0000 (11:49 +0200)]
re PR fortran/72698 (ICE in lhd_incomplete_type_error, at langhooks.c:205)

gcc/testsuite/ChangeLog:

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

PR fortran/72698
* gfortran.dg/allocate_with_source_20.f03: New test.

gcc/fortran/ChangeLog:

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

PR fortran/72698
* trans-stmt.c (gfc_trans_allocate): Prevent generating code for
copy of zero sized string and with it an ICE.

From-SVN: r239236

8 years ago[RS6000] PR72802 part 2, reload ICE
Alan Modra [Mon, 8 Aug 2016 09:06:49 +0000 (18:36 +0930)]
[RS6000] PR72802 part 2, reload ICE

After fixing the constraint problem, we hit an "insn does not satisfy
its constraints" with -mno-lra on the following insn, a vector load
from mem which has an invalid offset:
(insn 631 630 1122 12 (set (reg:SF 108 31 [orig:260 pretmp_44 ] [260])
        (mem:SF (plus:DI (reg:DI 30 30 [orig:338 ivtmp.141 ] [338])
                (const_int 2 [0x2])) [5 MEM[base: _1, offset: 2B]+0 S4 A32])) 470 {movsf_hardfloat}
     (nil))

Here are the reload costs for the various alternatives of
movsf_hardfloat:
"=!r, !r,  m,  f, ww, ww, !r,  f, wb,  m, wY, wu,  Z,?wn, ?r,*c*l, !r, *h"
  "r,  m,  r,  f, ww,  j,  j,  m, wY,  f, wb,  Z, wu,  r, wn,   r, *h,  0"
 617 609  17  17   8   8 617   9   8  17  17   8  17  23  23   17 617  17

Notice that the cost for a vector<-vector move (ww,ww) is the same as
the cost for a vector<-mem move (wb,wY or wu,Z).  Since the
vector<-vector move comes first, it is chosen and the mem part of the
insn reloaded.  That just gives another copy of insn 631.

PR target/72802
* config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
alternatives.  Put loads first, then stores, and reg/reg moves
within same class later.  Delete attr length.
testsuite/
* gcc.c-torture/compile/pr72802.c: New.

From-SVN: r239234

8 years ago[RS6000] PR72802 part 1, fix constraints for lxssp/stxssp
Alan Modra [Mon, 8 Aug 2016 09:05:16 +0000 (18:35 +0930)]
[RS6000] PR72802 part 1, fix constraints for lxssp/stxssp

We can't use "o" constraint for lsxxp/stxssp since those insns have a
DS-form offset field, ie. the bottom two bits of the offset must be 0.
So use "wY" instead, but that leads to finding another problem.

mem_operand_gpr is only suitable for gpr loads/stores since it does
not enforce multiple-of-4 offsets when -m32.  So "wY" can't use
mem_operand_gpr, and the vsx tests in mem_operand_gpr are bogus.

I've deleted offsettable_mem_14bit_operand because it wasn't used
anywhere but in the wY constraint.  Note also that the new wY
constraint doesn't use memory_operand because that is redundant in a
constraint, having already been tested in the predicate.

PR target/72802
* config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
(mem_operand_ds_form): New predicate.
* config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
* config/rs6000/constraints.md (wY): Use mem_operand_df_form.
* config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
* config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
(extendsfdf2_fpr): Replace o constraint with wY.

From-SVN: r239233

8 years agore PR fortran/70524 (ICE when using -frepack-arrays -Warray-temporaries)
Andre Vehreschild [Mon, 8 Aug 2016 08:11:29 +0000 (10:11 +0200)]
re PR fortran/70524 (ICE when using  -frepack-arrays -Warray-temporaries)

gcc/testsuite/ChangeLog:

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

PR fortran/70524
* gfortran.dg/dependency_48.f90: New test.

gcc/fortran/ChangeLog:

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

PR fortran/70524
* trans-array.c (gfc_trans_dummy_array_bias): Ensure that the
location information is correctly set.
* trans-decl.c (gfc_trans_deferred_vars): Set the locus of the
current construct early.

From-SVN: r239230

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

From-SVN: r239228

8 years agointernal/syscall/unix: fix syscalls for alpha, ia64, s390
Ian Lance Taylor [Sun, 7 Aug 2016 22:32:46 +0000 (22:32 +0000)]
internal/syscall/unix: fix syscalls for alpha, ia64, s390

    Also change the configure script to set GOARCH correctly for ia64, and
    add ia64 as a processor to match.sh and gotest.

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

From-SVN: r239225

8 years agore PR fortran/70040 (ICE in gimplify.c with deferred-length strings)
Thomas Koenig [Sun, 7 Aug 2016 15:40:34 +0000 (15:40 +0000)]
re PR fortran/70040 (ICE in gimplify.c with deferred-length strings)

2016-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/70040
Corrected last ChangeLog entry.

From-SVN: r239222

8 years agore PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)
Thomas Koenig [Sun, 7 Aug 2016 15:25:56 +0000 (15:25 +0000)]
re PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)

2016-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71961
* gfortran.dg/pr70040.f90:  New testcase.

From-SVN: r239221

8 years agore PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)
Thomas Koenig [Sun, 7 Aug 2016 13:24:32 +0000 (13:24 +0000)]
re PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)

2016-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71961
* gfortran.dg/matmul_10.f90:  New testcase.

From-SVN: r239220

8 years agotree-ssa-threadbackward.c: Include tree-inline.h
Jan Hubicka [Sun, 7 Aug 2016 10:50:16 +0000 (12:50 +0200)]
tree-ssa-threadbackward.c: Include tree-inline.h

* tree-ssa-threadbackward.c: Include tree-inline.h
(profitable_jump_thread_path): Use estimate_num_insns to estimate
size of copied block; for cold paths reduce duplication.
(find_jump_threads_backwards): Remove redundant tests.
(pass_thread_jumps::gate): Enable for -Os.
* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Update testcase.

From-SVN: r239219

8 years agore PR c/72816 (ICE on x86_64-linux-gnu (tree check: expected tree that contains ...
Jakub Jelinek [Sun, 7 Aug 2016 09:49:14 +0000 (11:49 +0200)]
re PR c/72816 (ICE on x86_64-linux-gnu (tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1282))

PR c/72816
* stor-layout.c (layout_decl): Fix up formatting.
(relayout_decl): Allow DECL to be FIELD_DECL.

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

From-SVN: r239218

8 years ago[RS6000] Fix wrong mode reg
Alan Modra [Sun, 7 Aug 2016 03:22:12 +0000 (12:52 +0930)]
[RS6000] Fix wrong mode reg

Fix thinko in rev 239011 (git d1d05ab7).

* config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.

From-SVN: r239217

8 years agoDaily bump.
GCC Administrator [Sun, 7 Aug 2016 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239216

8 years agodata-streamer-in.c (streamer_read_wide_int): New.
Kugan Vivekanandarajah [Sat, 6 Aug 2016 21:11:26 +0000 (21:11 +0000)]
data-streamer-in.c (streamer_read_wide_int): New.

gcc/ChangeLog:

2016-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>

* data-streamer-in.c (streamer_read_wide_int): New.
(streamer_read_widest_int): Renamed function.
* data-streamer-out.c (streamer_write_wide_int): New
(streamer_write_widest_int): Renamed function.
* lto-streamer-in.c (streamer_read_wi): Renamed and moved to
data-stream-in.c.
(input_cfg): Call renamed function.
* lto-streamer-out.c (streamer_write_wi): Renamed and moved to
data-stream-out.c.
(output_cfg): Call renamed function.
* data-streamer.h: Add declarations.

From-SVN: r239213

8 years agotree-ssa-ccp.c (extend_mask): New param sgn.
Prathamesh Kulkarni [Sat, 6 Aug 2016 18:11:24 +0000 (18:11 +0000)]
tree-ssa-ccp.c (extend_mask): New param sgn.

2016-08-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* tree-ssa-ccp.c (extend_mask): New param sgn.
Remove ORing with wi::mask.
(get_default_value): Adjust call to extend_mask to pass sign.
(evaluate_stmt): Likewise.

From-SVN: r239212

8 years agoFix crash in selftest::test_lexer_string_locations_ucn4 (PR bootstrap/72823)
David Malcolm [Sat, 6 Aug 2016 18:06:30 +0000 (18:06 +0000)]
Fix crash in selftest::test_lexer_string_locations_ucn4 (PR bootstrap/72823)

libcpp/ChangeLog:
PR bootstrap/72823
* charset.c (_cpp_valid_ucn): Replace overzealous assert with one
that allows for char_range to be non-NULL when loc_reader is NULL.

From-SVN: r239211

8 years agolibgo: fix getrandom build for 32-bit ppc
Ian Lance Taylor [Sat, 6 Aug 2016 15:58:22 +0000 (15:58 +0000)]
libgo: fix getrandom build for 32-bit ppc

    Add a ppc build constraint for internal/syscall/unix.

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

From-SVN: r239210

8 years agoUpdate C++17 library status table
Jonathan Wakely [Sat, 6 Aug 2016 12:45:58 +0000 (13:45 +0100)]
Update C++17 library status table

* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/manual/status.html: Regenerate.

From-SVN: r239209

8 years ago* testsuite/lib/libstdc++.exp: Fix typo in comment.
Jonathan Wakely [Sat, 6 Aug 2016 10:44:17 +0000 (11:44 +0100)]
* testsuite/lib/libstdc++.exp: Fix typo in comment.

From-SVN: r239193

8 years agogcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of INT64_MAX.
Jakub Jelinek [Sat, 6 Aug 2016 10:30:49 +0000 (12:30 +0200)]
gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of INT64_MAX.

* gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
INT64_MAX.

From-SVN: r239192

8 years agoUse ::new to avoid finding overloaded operator new
Jonathan Wakely [Sat, 6 Aug 2016 10:21:07 +0000 (11:21 +0100)]
Use ::new to avoid finding overloaded operator new

PR libstdc++/72820
* include/std/functional (_Function_base::_Base_manager::_M_clone):
Qualify new operator.
* testsuite/20_util/function/cons/72820.cc: New test.

From-SVN: r239191

8 years agomatch.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable transform if...
Prathamesh Kulkarni [Sat, 6 Aug 2016 05:04:07 +0000 (05:04 +0000)]
match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable transform if operand's type is pointer to function or method.

2016-08-06  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
transform if operand's type is pointer to function or method.

From-SVN: r239190

8 years agolibgo: change build procedure to use build tags
Ian Lance Taylor [Sat, 6 Aug 2016 00:36:33 +0000 (00:36 +0000)]
libgo: change build procedure to use build tags

    Previously the libgo Makefile explicitly listed the set of files to
    compile for each package.  For packages that use build tags, this
    required a lot of awkward automake conditionals in the Makefile.

    This CL changes the build to look at the build tags in the files.
    The new shell script libgo/match.sh does the matching.  This required
    adjusting a lot of build tags, and removing some files that are never
    used.  I verified that the exact same sets of files are compiled on
    amd64 GNU/Linux.  I also tested the build on i386 Solaris.

    Writing match.sh revealed some bugs in the build tag handling that
    already exists, in a slightly different form, in the gotest shell
    script.  This CL fixes those problems as well.

    The old code used automake conditionals to handle systems that were
    missing strerror_r and wait4.  Rather than deal with those in Go, those
    functions are now implemented in runtime/go-nosys.c when necessary, so
    the Go code can simply assume that they exist.

    The os testsuite looked for dir_unix.go, which was never built for gccgo
    and has now been removed.  I changed the testsuite to look for dir.go
    instead.

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

From-SVN: r239189

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

From-SVN: r239188

8 years agoHarmonize diagnostics for invalid reference binding
Jonathan Wakely [Sat, 6 Aug 2016 00:07:05 +0000 (01:07 +0100)]
Harmonize diagnostics for invalid reference binding

gcc/cp:

* call.c (convert_like_real): Harmonize diagnostics for invalid
reference binding.

gcc/testsuite:

* call.c (convert_like_real): Harmonize diagnostics for invalid
reference binding.
* g++.dg/conversion/pr16333.C: Adjust dg-error regexp.
* g++.dg/conversion/pr41426.C: Likewise.
* g++.dg/conversion/pr66211.C: Likewise.
* g++.dg/cpp1y/lambda-init9.C: Likewise.
* g++.dg/init/ref8.C: Likewise.
* g++.old-deja/g++.law/cvt20.C: Likewise.
* g++.old-deja/g++.mike/p9732c.C: Likewise.

From-SVN: r239184

8 years agoAdd std::apply for C++17
Jonathan Wakely [Sat, 6 Aug 2016 00:06:02 +0000 (01:06 +0100)]
Add std::apply for C++17

* doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
* doc/html/manual/status.html: Regenerate.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/bits/invoke.h: New header.
(__invoke): Make constexpr. Add && to types in exception specification.
* include/experimental/tuple (apply, __apply_impl): Fix non-reserved
names. Include <bits/invoke.h> and use std::__invoke.
* include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
new header.
(invoke): Add && to types in exception specification.
* include/std/tuple (apply, __apply_impl): Define for C++17.
* testsuite/20_util/tuple/apply/1.cc: New test.
* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
lineno.

From-SVN: r239183

8 years agoImprove forward jump threading of switch statements (PR18046)
Patrick Palka [Fri, 5 Aug 2016 23:29:53 +0000 (23:29 +0000)]
Improve forward jump threading of switch statements (PR18046)

gcc/ChangeLog:

PR tree-optimization/18046
* tree-ssa-threadedge.c: Include cfganal.h.
(simplify_control_statement_condition): If simplifying a
GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
with the dominating ASSERT_EXPR before handing it off to VRP.
Mention that a CASE_LABEL_EXPR may be returned.
(thread_around_empty_blocks): Adjust to handle
simplify_control_statement_condition() returning a
CASE_LABEL_EXPR.
(thread_through_normal_block): Likewise.
* tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
a switch statement by trying to determine which case label
will be taken.

gcc/testsuite/ChangeLog:

PR tree-optimization/18046
* gcc.dg/tree-ssa/vrp105.c: New test.
* gcc.dg/tree-ssa/vrp106.c: New test.

From-SVN: r239181

8 years agore PR rtl-optimization/69847 (Spec 2006 403.gcc slows down with -mlra vs. reload...
Vladimir Makarov [Fri, 5 Aug 2016 21:31:31 +0000 (21:31 +0000)]
re PR rtl-optimization/69847 (Spec 2006 403.gcc slows down with -mlra vs. reload on PowerPC)

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

PR rtl-optimization/69847
* lra-constraints.c (process_invariant_for_inheritance): Save
pattern instead of src.
(remove_inheritance_pseudos): Use the pattern.  Add assert.

From-SVN: r239180

8 years agore PR go/72812 (reflect FAILs with Solaris as)
Ian Lance Taylor [Fri, 5 Aug 2016 20:11:30 +0000 (20:11 +0000)]
re PR go/72812 (reflect FAILs with Solaris as)

PR go/72812
* go-gcc.cc (char_needs_encoding): New static function.
(needs_encoding, fetch_utf8_char): New static functions.
(encode_id): New static function.
(Gcc_backend::global_variable): Set asm name if the name is not
simple ASCII.
(Gcc_backend::implicit_variable): Likewise.
(Gcc_backend::implicit_variable_reference): Likewise.
(Gcc_backend::immutable_struct): Likewise.
(Gcc_backend::immutable_struct_reference): Likewise.
(Gcc_backend::function): Likewise.

From-SVN: r239179

8 years agoconstexpr.c (cxx_eval_store_expression): Remove hyphen from the spelling of "constant...
Martin Sebor [Fri, 5 Aug 2016 18:27:46 +0000 (18:27 +0000)]
constexpr.c (cxx_eval_store_expression): Remove hyphen from the spelling of "constant-expression" in diagnostic messages...

gcc/cp/ChangeLog:

* constexpr.c (cxx_eval_store_expression): Remove hyphen from
the spelling of "constant-expression" in diagnostic messages
for consistency.
(cxx_eval_constant_expression): Same.
(cxx_eval_outermost_constant_expr): Same.
(potential_constant_expression_1): Same.

gcc/testsuite/ChangeLog:

* g++.dg/cpp0x/constexpr-cast.C: Avoid assuming (void*)1 is spelled
1ul in diagnostics.  Remove hyphen from "constant-expression."
* g++.dg/cpp0x/constexpr-50060.C: Adjust.
* g++.dg/cpp0x/static_assert3.C: Same.
* g++.dg/cpp1y/constexpr-throw.C: Same.
* g++.dg/template/nontype3.C: Same.
* g++.dg/warn/overflow-warn-1.C: Same.
* g++.dg/warn/overflow-warn-3.C: Same.
* g++.dg/warn/overflow-warn-4.C: Same.

From-SVN: r239176

8 years agoOn-demand locations within string-literals
David Malcolm [Fri, 5 Aug 2016 18:08:33 +0000 (18:08 +0000)]
On-demand locations within string-literals

gcc/c-family/ChangeLog:
* c-common.c: Include "substring-locations.h".
(get_cpp_ttype_from_string_type): New function.
(g_string_concat_db): New global.
(substring_loc::get_range): New method.
* c-common.h (g_string_concat_db): New declaration.
(class substring_loc): New class.
* c-lex.c (lex_string): When concatenating strings, capture the
locations of all tokens using a new obstack, and record the
concatenation locations within g_string_concat_db.
* c-opts.c (c_common_init_options): Construct g_string_concat_db
on the ggc-heap.

gcc/ChangeLog:
* input.c (string_concat::string_concat): New constructor.
(string_concat_db::string_concat_db): New constructor.
(string_concat_db::record_string_concatenation): New method.
(string_concat_db::get_string_concatenation): New method.
(string_concat_db::get_key_loc): New method.
(class auto_cpp_string_vec): New class.
(get_substring_ranges_for_loc): New function.
(get_source_range_for_substring): New function.
(get_num_source_ranges_for_substring): New function.
(class selftest::lexer_test_options): New class.
(struct selftest::lexer_test): New struct.
(class selftest::ebcdic_execution_charset): New class.
(selftest::ebcdic_execution_charset::s_singleton): New variable.
(selftest::lexer_test::lexer_test): New constructor.
(selftest::lexer_test::~lexer_test): New destructor.
(selftest::lexer_test::get_token): New method.
(selftest::assert_char_at_range): New function.
(ASSERT_CHAR_AT_RANGE): New macro.
(selftest::assert_num_substring_ranges): New function.
(ASSERT_NUM_SUBSTRING_RANGES): New macro.
(selftest::assert_has_no_substring_ranges): New function.
(ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
(selftest::test_lexer_string_locations_simple): New function.
(selftest::test_lexer_string_locations_ebcdic): New function.
(selftest::test_lexer_string_locations_hex): New function.
(selftest::test_lexer_string_locations_oct): New function.
(selftest::test_lexer_string_locations_letter_escape_1): New function.
(selftest::test_lexer_string_locations_letter_escape_2): New function.
(selftest::test_lexer_string_locations_ucn4): New function.
(selftest::test_lexer_string_locations_ucn8): New function.
(selftest::uint32_from_big_endian): New function.
(selftest::test_lexer_string_locations_wide_string): New function.
(selftest::uint16_from_big_endian): New function.
(selftest::test_lexer_string_locations_string16): New function.
(selftest::test_lexer_string_locations_string32): New function.
(selftest::test_lexer_string_locations_u8): New function.
(selftest::test_lexer_string_locations_utf8_source): New function.
(selftest::test_lexer_string_locations_concatenation_1): New
function.
(selftest::test_lexer_string_locations_concatenation_2): New
function.
(selftest::test_lexer_string_locations_concatenation_3): New
function.
(selftest::test_lexer_string_locations_macro): New function.
(selftest::test_lexer_string_locations_stringified_macro_argument):
New function.
(selftest::test_lexer_string_locations_non_string): New function.
(selftest::test_lexer_string_locations_long_line): New function.
(selftest::test_lexer_char_constants): New function.
(selftest::input_c_tests): Call the new test functions once per
case within the line_table test matrix.
* input.h (struct string_concat): New struct.
(struct location_hash): New struct.
(class string_concat_db): New class.
* substring-locations.h: New header.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-string-literals-1.c: New file.
* gcc.dg/plugin/diagnostic-test-string-literals-2.c: New file.
* gcc.dg/plugin/diagnostic_plugin_test_string_literals.c: New file.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above new files.

libcpp/ChangeLog:
* charset.c (cpp_substring_ranges::cpp_substring_ranges): New
constructor.
(cpp_substring_ranges::~cpp_substring_ranges): New destructor.
(cpp_substring_ranges::add_range): New method.
(cpp_substring_ranges::add_n_ranges): New method.
(_cpp_valid_ucn): Add "char_range" and "loc_reader" params; if
they are non-NULL, read position information from *loc_reader
and update char_range->m_finish accordingly.
(convert_ucn): Add "char_range", "loc_reader", and "ranges"
params.  If loc_reader is non-NULL, read location information from
it, and update *ranges accordingly, using char_range.
Conditionalize the conversion into tbuf on tbuf being non-NULL.
(convert_hex): Likewise, conditionalizing the call to
emit_numeric_escape on tbuf.
(convert_oct): Likewise.
(convert_escape): Add params "loc_reader" and "ranges".  If
loc_reader is non-NULL, read location information from it, and
update *ranges accordingly.  Conditionalize the conversion into
tbuf on tbuf being non-NULL.
(cpp_interpret_string): Rename to...
(cpp_interpret_string_1): ...this, adding params "loc_readers" and
"out".  Use "to" to conditionalize the initialization and usage of
"tbuf", such as running the converter.  If "loc_readers" is
non-NULL, use the instances within it, reading location
information from them, and passing them to convert_escape; likewise
write to "out" if loc_readers is non-NULL.  Check for leading
quote and issue an error if it is not present.  Update boundary
check from "== limit" to ">= limit" to protect against erroneous
location values to calls that are not parsing string literals.
(cpp_interpret_string): Reimplement in terms to
cpp_interpret_string_1.
(noop_error_cb): New function.
(cpp_interpret_string_ranges): New function.
(cpp_string_location_reader::cpp_string_location_reader): New
constructor.
(cpp_string_location_reader::get_next): New method.
* include/cpplib.h (class cpp_string_location_reader): New class.
(class cpp_substring_ranges): New class.
(cpp_interpret_string_ranges): New prototype.
* internal.h (_cpp_valid_ucn): Add params "char_range" and
"loc_reader".
* lex.c (forms_identifier_p): Pass NULL for new params to
_cpp_valid_ucn.

From-SVN: r239175

8 years agore PR tree-optimization/72810 (error: type mismatch for case label in switch statement)
Patrick Palka [Fri, 5 Aug 2016 17:21:00 +0000 (17:21 +0000)]
re PR tree-optimization/72810 (error: type mismatch for case label in switch statement)

Fix PR tree-optimization/72810

gcc/ChangeLog:

PR tree-optimization/72810
* tree-vrp.c (simplify_switch_using_ranges): Avoid changing
the type of the case labels when truncating.

gcc/testsuite/ChangeLog:

PR tree-optimization/72810
* gcc.dg/tree-ssa/vrp110.c: New test.

From-SVN: r239174

8 years ago[AArch64] Handle HFAs of float16 types properly
James Greenhalgh [Fri, 5 Aug 2016 16:08:24 +0000 (16:08 +0000)]
[AArch64] Handle HFAs of float16 types properly

Fix PR Target/72819.

gcc/

PR Target/72819
* config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
(aarch64_fp16_ptr_type_node): Likewise.
* config/aarch64/aarch64-simd-builtins.c
(aarch64_fp16_ptr_type_node): Define.
(aarch64_init_fp16_types): New, refactored out of...
(aarch64_init_builtins): ...here, update to call
aarch64_init_fp16_types.
* config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
HFmode.
(aapcs_vfp_sub_candidate): Likewise.

gcc/testsuite/

PR Target/72819
* gcc.target/aarch64/aapcs64/abitest-common.h: Define half-precision
registers.
* gcc.target/aarch64/aapcs64/abitest.S (dumpregs): Add assembly for
saving the half-precision registers.
* gcc.target/aarch64/aapcs64/func-ret-1.c: Test that an __fp16
value is returned in h0.
* gcc.target/aarch64/aapcs64/test_2.c: Check that __FP16 arguments
are passed in FP/SIMD registers.
* gcc.target/aarch64/aapcs64/test_27.c: New, test that __fp16 HFA
passing works corrcetly.
* gcc.target/aarch64/aapcs64/type-def.h (hfa_f16x1_t): New.
(hfa_f16x2_t): Likewise.
(hfa_f16x3_t): Likewise.
* gcc.target/aarch64/aapcs64/va_arg-1.c: Check that __fp16 values
are promoted to double and passed in a double register.
* gcc.target/aarch64/aapcs64/va_arg-2.c: Check that __fp16 values
are promoted to double and stacked.
* gcc.target/aarch64/aapcs64/va_arg-4.c: Check stacking of HFA of
__fp16 data types.
* gcc.target/aarch64/aapcs64/va_arg-5.c: Likewise.
* gcc.target/aarch64/aapcs64/va_arg-16.c: New, check HFAs of
__fp16 first get passed in FP/SIMD registers, then stacked.

From-SVN: r239173

8 years agoCorrect status of __cpp_lib_enable_shared_from_this
Jonathan Wakely [Fri, 5 Aug 2016 13:57:30 +0000 (14:57 +0100)]
Correct status of __cpp_lib_enable_shared_from_this

* doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
* doc/html/manual/status.html: Regenerate.

From-SVN: r239171

8 years agoImplement C++17 rounding functions for std::chrono (P0092R1)
Jonathan Wakely [Fri, 5 Aug 2016 13:52:59 +0000 (14:52 +0100)]
Implement C++17 rounding functions for std::chrono (P0092R1)

* include/std/chrono (floor, ceil, round, abs): New for C++17.
* testsuite/20_util/duration_cast/rounding.cc: New test.
* testsuite/20_util/time_point_cast/rounding.cc: New test.
* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/manual/status.html: Regenerate.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
dg-error lineno.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
* testsuite/20_util/duration/literals/range.cc: Likewise.

From-SVN: r239170

8 years agogcov tool: Implement Hawick's algorithm for cycle detection,
Martin Liska [Fri, 5 Aug 2016 13:50:49 +0000 (15:50 +0200)]
gcov tool: Implement Hawick's algorithm for cycle detection,

    Joshua Cranmer  <Pidgeot18@gmail.com>

* gcov.c (line_t::has_block): New function.
(enum loop_type): New enum.
(handle_cycle): New function.
(unblock): Likewise.
(circuit): Likewise.
(get_cycles_count): Likewise.
(accumulate_line_counts): Use new loop detection algorithm.

From-SVN: r239169

8 years agogcov: rename line_next to next_file_fn in function_info
Martin Liska [Fri, 5 Aug 2016 13:50:02 +0000 (15:50 +0200)]
gcov: rename line_next to next_file_fn in function_info

* gcov.c (output_intermediate_file): Rename
function_info::line_next to next_file_fn.
(process_file): Likewise.
(read_graph_file): Likewise.
(accumulate_line_counts): Likewise.
(output_lines): Likewise.

From-SVN: r239168

8 years agore PR c++/68724 (ice in unify, at cp/pt.c:19902)
Nathan Sidwell [Fri, 5 Aug 2016 12:21:46 +0000 (12:21 +0000)]
re PR c++/68724 (ice in unify, at cp/pt.c:19902)

PR c++/68724
* pt.c (unify): TRAIT_EXPR is an expr.

PR c++/68724
* g++.dg/cpp0x/pr68724.C: New.

From-SVN: r239167

8 years agoUse __invoke in std::function internals
Jonathan Wakely [Fri, 5 Aug 2016 09:00:34 +0000 (10:00 +0100)]
Use __invoke in std::function internals

* include/std/functional (__callable_functor): Remove.
(_Function_handler::_M_invoke): Use __invoke instead of
__callable_functor or mem_fn.
(function::_Callable): Use lvalue in result_of expression.
(function): Remove TODO comments about allocators.
* testsuite/20_util/function/cons/refqual.cc: New test.

From-SVN: r239166

8 years agoivopt_5.c: Make robust against edge swapping.
Richard Biener [Fri, 5 Aug 2016 08:52:22 +0000 (08:52 +0000)]
ivopt_5.c: Make robust against edge swapping.

2016-08-05  Richard Biener  <rguenther@suse.de>

* gcc.dg/tree-ssa/ivopt_5.c: Make robust against edge swapping.

From-SVN: r239165

8 years agotree-ssa-threadupdate.c (thread_block_1): Remove unnecessary restriction on threading...
Richard Biener [Fri, 5 Aug 2016 08:00:00 +0000 (08:00 +0000)]
tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary restriction on threading to a loop header.

2016-08-05  Richard Biener  <rguenther@suse.de>

* tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
restriction on threading to a loop header.

From-SVN: r239164

8 years agotree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
Richard Biener [Fri, 5 Aug 2016 07:41:45 +0000 (07:41 +0000)]
tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.

2016-08-05  Richard Biener  <rguenther@suse.de>

* tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
* cfghooks.c (force_nonfallthru): If we ended up splitting a latch
adjust loop info accordingly.

From-SVN: r239163

8 years agotree-vrp.c (extract_range_basic): Check cfun->after_inlining before folding call...
Kugan Vivekanandarajah [Fri, 5 Aug 2016 02:47:27 +0000 (02:47 +0000)]
tree-vrp.c (extract_range_basic): Check cfun->after_inlining before folding call to __builtin_constant_p with...

gcc/ChangeLog:

2016-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>

* tree-vrp.c (extract_range_basic): Check cfun->after_inlining
before folding call to __builtin_constant_p with parameters to false.

From-SVN: r239162

8 years ago[RS6000] rs6000_preferred_reload_class
Alan Modra [Fri, 5 Aug 2016 01:29:05 +0000 (10:59 +0930)]
[RS6000] rs6000_preferred_reload_class

* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
code accidentally committed 2016-05-02 providing class when given
NO_REGS.

From-SVN: r239161

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

From-SVN: r239160

8 years agoTeach VRP to truncate the case ranges of a switch
Patrick Palka [Fri, 5 Aug 2016 00:07:16 +0000 (00:07 +0000)]
Teach VRP to truncate the case ranges of a switch

gcc/ChangeLog:

* tree-vrp.c (simplify_switch_using_ranges): Try to truncate
the case label ranges that partially overlap with OP's value
range.

gcc/testsuite/ChangeLog:

* gcc.dg/tree-ssa/vrp107.c: New test.
* gcc.dg/tree-ssa/vrp108.c: New test.
* gcc.dg/tree-ssa/vrp109.c: New test.

From-SVN: r239157

8 years agore PR target/72805 (AVX512: invalid code generation involving masks)
Uros Bizjak [Thu, 4 Aug 2016 21:14:39 +0000 (23:14 +0200)]
re PR target/72805 (AVX512: invalid code generation involving masks)

PR target/72805
* config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
Cast builtin function result to __mmask16 instead of __mmask8.
(_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
(_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
(_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.

From-SVN: r239152

8 years agoselftest.h: Add ASSERT_TRUE_AT and ASSERT_FALSE_AT
David Malcolm [Thu, 4 Aug 2016 21:12:52 +0000 (21:12 +0000)]
selftest.h: Add ASSERT_TRUE_AT and ASSERT_FALSE_AT

gcc/ChangeLog:
* selftest.h (ASSERT_TRUE): Reimplement in terms of...
(ASSERT_TRUE_AT): New macro.
(ASSERT_FALSE): Reimplement in terms of...
(ASSERT_FALSE_AT): New macro.
(ASSERT_STREQ_AT): Fix typo in comment.

From-SVN: r239151

8 years agopr70920-4.c: Move dg-require-effective-target before dg-options.
Prathamesh Kulkarni [Thu, 4 Aug 2016 20:51:32 +0000 (20:51 +0000)]
pr70920-4.c: Move dg-require-effective-target before dg-options.

2016-08-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

testsuite/
* gcc.dg/pr70920-4.c: Move dg-require-effective-target before
dg-options.

From-SVN: r239150

8 years agopr71078-1.c: Remove double and long double test-cases.
Prathamesh Kulkarni [Thu, 4 Aug 2016 20:37:51 +0000 (20:37 +0000)]
pr71078-1.c: Remove double and long double test-cases.

2016-08-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

testsuite/
* gcc.dg/tree-ssa/pr71078-1.c: Remove double and long double
test-cases.
* gcc.dg/tree-ssa/pr71078-1-double.c: New test-case.
* gcc.dg/tree-ssa/pr71078-1-long-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2.c: Remove double and long double
test-cases.
* gcc.dg/tree-ssa/pr71078-2-double.c: New test-case.
* gcc.dg/tree-ssa/pr71078-2-long-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-3.c: Add require-effective-check for
large_double.

From-SVN: r239149

8 years agore PR c++/72800 (ICE on invalid C++14 code with initialized lambda capture: tree...
Paolo Carlini [Thu, 4 Aug 2016 19:22:58 +0000 (19:22 +0000)]
re PR c++/72800 (ICE on invalid C++14 code with initialized lambda capture: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in add_capture, at cp/lambda.c:505)

/cp
2016-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/72800
* lambda.c (add_capture): Check lambda_capture_field_type return
value for error_mark_node.

/testsuite
2016-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/72800
* g++.dg/cpp1y/lambda-ice1.C: New.

From-SVN: r239148

8 years agoFix ICE on invalid variable template instantiation (PR c++/72759)
Patrick Palka [Thu, 4 Aug 2016 19:14:32 +0000 (19:14 +0000)]
Fix ICE on invalid variable template instantiation (PR c++/72759)

gcc/cp/ChangeLog:

PR c++/72759
* pt.c (tsubst_qualified_id): Return error_mark_node if
template_args is error_mark_node.

gcc/testsuite/ChangeLog:

PR c++/72759
* g++.dg/cpp1y/pr72759.C: New test.

From-SVN: r239147

8 years agoDesignate the widest case label to be the default label
Patrick Palka [Thu, 4 Aug 2016 18:11:08 +0000 (18:11 +0000)]
Designate the widest case label to be the default label

gcc/ChangeLog:

* gimple.c (preprocess_case_label_vec_for_gimple): When the case
labels are exhaustive, designate the label with the widest
range to be the default label.

gcc/testsuite/ChangeLog:

* gcc.dg/switch-10.c: New test.

From-SVN: r239146

8 years agoDefine std::is_callable and std::is_nothrow_callable
Jonathan Wakely [Thu, 4 Aug 2016 18:02:56 +0000 (19:02 +0100)]
Define std::is_callable and std::is_nothrow_callable

* doc/xml/manual/status_cxx2017.xml: Update status table.
* include/std/functional (__inv_unwrap): Move to <type_traits>.
(__invoke_impl): Remove exception specifications.
(__invoke, invoke): Add exception specifications using
__is_nothrow_callable.
* include/std/type_traits (__inv_unwrap): Move from <functional>.
(__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
(__is_callable, __is_nothrow_callable): New traits.
(is_callable, is_callable_v): New C++17 traits.
(is_nothrow_callable, is_nothrow_callable_v): Likewise.
* testsuite/20_util/is_callable/requirements/
explicit_instantiation.cc: New test.
* testsuite/20_util/is_callable/requirements/
explicit_instantiation_ext.cc: New test.
* testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
* testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
test.
* testsuite/20_util/is_callable/value.cc: New test.
* testsuite/20_util/is_callable/value_ext.cc: New test.
* testsuite/20_util/is_nothrow_callable/requirements/
explicit_instantiation.cc: New test.
* testsuite/20_util/is_nothrow_callable/requirements/
explicit_instantiation_ext.cc: New test.
* testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
New test.
* testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
New test.
* testsuite/20_util/is_nothrow_callable/value.cc: New test.
* testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.

From-SVN: r239145

8 years agoruntime: fix incorrectly commented out code in heapdump.c
Ian Lance Taylor [Thu, 4 Aug 2016 17:21:23 +0000 (17:21 +0000)]
runtime: fix incorrectly commented out code in heapdump.c

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

From-SVN: r239144

8 years agore PR c++/71696 (Libiberty Demangler segfaults (6))
Marcel Böhme [Thu, 4 Aug 2016 16:53:18 +0000 (16:53 +0000)]
re PR c++/71696 (Libiberty Demangler segfaults (6))

2016-08-04  Marcel Böhme  <boehme.marcel@gmail.com>

PR c++/71696
* cplus-dem.c: Prevent infinite recursion when there is a cycle
in the referencing of remembered mangled types.
(work_stuff): New stack to keep track of the remembered mangled
types that are currently being processed.
(push_processed_type): New method to push currently processed
remembered type onto the stack.
(pop_processed_type): New method to pop currently processed
remembered type from the stack.
(work_stuff_copy_to_from): Copy values of new variables.
(delete_non_B_K_work_stuff): Free stack memory.
(demangle_args): Push/Pop currently processed remembered type.
(do_type): Do not demangle a cyclic reference and push/pop
referenced remembered type.

From-SVN: r239143

8 years ago[Patch obvious testsuite] Remove duplicate body from pr70903.c
James Greenhalgh [Thu, 4 Aug 2016 16:48:34 +0000 (16:48 +0000)]
[Patch obvious testsuite] Remove duplicate body from pr70903.c

* gcc.c-torture/execute/pr70903.c: Remove duplicate body.

From-SVN: r239142

8 years agotext/template: reduce maxExecDepth for gccgo
Ian Lance Taylor [Thu, 4 Aug 2016 16:48:28 +0000 (16:48 +0000)]
text/template: reduce maxExecDepth for gccgo

    When using gccgo on systems without full support for split stacks a
    recursive template can overrun the available stack space.  Reduce the
    limit from 100000 to 10000 to make this less likely.  It's still high
    enough that real uses will work.

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

From-SVN: r239141

8 years agocompiler: include "go-system.h" in escape.cc
Ian Lance Taylor [Thu, 4 Aug 2016 16:23:09 +0000 (16:23 +0000)]
compiler: include "go-system.h" in escape.cc

    Patch from Rainer Orth.

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

From-SVN: r239140

8 years agoPR c++/72415 - member template with fold-expression constraint
Jason Merrill [Thu, 4 Aug 2016 16:06:22 +0000 (12:06 -0400)]
PR c++/72415 - member template with fold-expression constraint

* pt.c (tsubst_pack_expansion): Pull a single pack expansion out
of the TREE_VEC.

From-SVN: r239138

8 years agoRename TYPE_ANONYMOUS_P to TYPE_UNNAMED_P.
Jason Merrill [Thu, 4 Aug 2016 16:06:17 +0000 (12:06 -0400)]
Rename TYPE_ANONYMOUS_P to TYPE_UNNAMED_P.

* cp-tree.h (TYPE_UNNAMED_P): Rename from TYPE_ANONYMOUS_P.
(TYPE_WAS_UNNAMED): Rename from TYPE_WAS_ANONYMOUS.
* class.c, decl.c, decl2.c, error.c, lambda.c, mangle.c,
name-lookup.c, parser.c, pt.c, semantics.c, tree.c: Adjust.

From-SVN: r239137

8 years agoPR c++/72796 - wrong resolution of scoped method call.
Jason Merrill [Thu, 4 Aug 2016 16:06:09 +0000 (12:06 -0400)]
PR c++/72796 - wrong resolution of scoped method call.

* typeck.c (finish_class_member_access_expr): Avoid stripping
SCOPE_REF to dependent base.

From-SVN: r239136

8 years agoaarch64.c (thunderx_vector_cost): New variable.
Andrew Pinski [Thu, 4 Aug 2016 16:00:24 +0000 (16:00 +0000)]
aarch64.c (thunderx_vector_cost): New variable.

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

        * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
        (thunderx_tunings): Use thunderx_vector_cost instead of
        generic_vector_cost.

From-SVN: r239135

8 years agoFix GNU coding style in gcov.c
Martin Liska [Thu, 4 Aug 2016 15:05:35 +0000 (17:05 +0200)]
Fix GNU coding style in gcov.c

* gcov.c (main): Fix GNU coding style.
(output_intermediate_file): Likewise.
(process_file): Likewise.
(generate_results): Likewise.
(release_structures): Likewise.
(create_file_names): Likewise.
(find_source): Likewise.
(read_graph_file): Likewise.
(find_exception_blocks): Likewise.
(canonicalize_name): Likewise.
(make_gcov_file_name): Likewise.
(mangle_name): Likewise.
(accumulate_line_counts): Likewise.
(output_branch_count): Likewise.
(read_line): Likewise.

From-SVN: r239134

8 years agoRework C/C++ OpenACC routine parsing
Thomas Schwinge [Thu, 4 Aug 2016 13:35:30 +0000 (15:35 +0200)]
Rework C/C++ OpenACC routine parsing

gcc/c/
* c-parser.c (struct oacc_routine_data): Add error_seen and
fndecl_seen members.
(c_finish_oacc_routine): Use these.
(c_parser_declaration_or_fndef): Adjust.
(c_parser_oacc_routine): Likewise.  Support more C language
constructs, and improve diagnostics.  Move pragma context
checking...
(c_parser_pragma): ... here.
gcc/cp/
* parser.c (cp_ensure_no_oacc_routine): Improve diagnostics.
(cp_parser_late_parsing_cilk_simd_fn_info): Fix diagnostics.
(cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
Simplify code, and improve diagnostics.
(cp_parser_oacc_routine): Likewise.  Move pragma context
checking...
(cp_parser_pragma): ... here.
gcc/testsuite/
* c-c++-common/goacc/routine-5.c: Update.

From-SVN: r239128

8 years agoC/C++: Simplify handling of location information for OpenACC routine directives
Thomas Schwinge [Thu, 4 Aug 2016 13:35:19 +0000 (15:35 +0200)]
C/C++: Simplify handling of location information for OpenACC routine directives

gcc/c/
* c-parser.c (struct oacc_routine_data): New.
(c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
Simplify code.
(c_finish_oacc_routine): Likewise.  Don't attach clauses to "omp
declare target" attribute.
gcc/cp/
* parser.h (struct cp_omp_declare_simd_data): New.
(struct cp_parser): Use it for oacc_routine member.
* parser.c (cp_ensure_no_oacc_routine, cp_parser_oacc_routine)
(cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
Use it.  Simplify code.
(cp_parser_new): Initialize all members pointing to special
parsing data structures.
(cp_parser_cilk_simd_fn_vector_attrs): Initialize
parser->cilk_simd_fn_info->clauses.
(cp_parser_omp_declare_simd): Initialize
parser->omp_declare_simd->clauses.
(cp_parser_late_parsing_omp_declare_simd): Simplify code.

From-SVN: r239127

8 years agoC++ OpenACC routine directive testing: templated, and "auto", trailing return type...
Thomas Schwinge [Thu, 4 Aug 2016 13:35:10 +0000 (15:35 +0200)]
C++ OpenACC routine directive testing: templated, and "auto", trailing return type syntax

libgomp/
* testsuite/libgomp.oacc-c++/routine-1-auto.C: New file.
* testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise.
* testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
Likewise.
* testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise.
* testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust.

From-SVN: r239126

8 years agoMake libgomp.oacc-c-c++-common/crash-1.c a "link" test, and don't hardcode -O0
Thomas Schwinge [Thu, 4 Aug 2016 13:34:57 +0000 (15:34 +0200)]
Make libgomp.oacc-c-c++-common/crash-1.c a "link" test, and don't hardcode -O0

libgomp/
* testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
test, and don't hardcode -O0.

From-SVN: r239125

8 years agoUpdate C++17 library implementation status table
Jonathan Wakely [Thu, 4 Aug 2016 13:33:02 +0000 (14:33 +0100)]
Update C++17 library implementation status table

* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
* doc/html/manual/status.html: Regenerate.

From-SVN: r239124

8 years ago016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
Bernd Edlinger [Thu, 4 Aug 2016 13:23:36 +0000 (13:23 +0000)]
016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/71779
        * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
        if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
        or if it was truncated.

From-SVN: r239123

8 years agore PR target/70903 (wrong code with bfi @ aarch64 with -Os)
Bernd Edlinger [Thu, 4 Aug 2016 13:20:57 +0000 (13:20 +0000)]
re PR target/70903 (wrong code with bfi @ aarch64 with -Os)

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

        PR rtl-optimization/70903
        * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.

testsuite:
2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/70903
        * gcc.c-torture/execute/pr70903.c: New test.

From-SVN: r239122

8 years agoDefine std::enable_shared_from_this::weak_from_this
Jonathan Wakely [Thu, 4 Aug 2016 12:33:10 +0000 (13:33 +0100)]
Define std::enable_shared_from_this::weak_from_this

* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
effective target not dg-options. Move check for feature-test macro to:
* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
New test.

From-SVN: r239121

8 years agoSimplify std::__invoke_impl definitions
Jonathan Wakely [Thu, 4 Aug 2016 11:09:29 +0000 (12:09 +0100)]
Simplify std::__invoke_impl definitions

* include/std/functional (_Unwrap): Rename to __inv_unwrap.
(__invfwd): Adjust.
(__invoke_impl): Remove unused template parameters.
* testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
parameter.
* testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
and test __invoke extension for C++11.

From-SVN: r239120

8 years agoUse TESTING_IN_BUILD_TREE in params.exp
Martin Liska [Thu, 4 Aug 2016 11:06:37 +0000 (13:06 +0200)]
Use TESTING_IN_BUILD_TREE in params.exp

* gcc.dg/params/params.exp: Replace file exists with
TESTING_IN_BUILD_TREE.

From-SVN: r239119

8 years agotree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before accessing SSA_NAME_PT...
Kugan Vivekanandarajah [Thu, 4 Aug 2016 09:15:03 +0000 (09:15 +0000)]
tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before accessing SSA_NAME_PTR_INFO.

gcc/ChangeLog:

2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>

* tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
accessing SSA_NAME_PTR_INFO.

From-SVN: r239118

8 years agore PR target/70677 (Suboptimal cond on AVR: unneeded stack frame)
Georg-Johann Lay [Thu, 4 Aug 2016 07:52:38 +0000 (07:52 +0000)]
re PR target/70677 (Suboptimal cond on AVR: unneeded stack frame)

PR 70677
* common/config/avr/avr-common.c (avr_option_optimization_table)
[OPT_LEVELS_ALL]: Turn off -fcaller-saves.

From-SVN: r239117

8 years agore PR target/55181 (Expensive shift loop where a bit-testing instruction could be...
Georg-Johann Lay [Thu, 4 Aug 2016 07:50:53 +0000 (07:50 +0000)]
re PR target/55181 (Expensive shift loop where a bit-testing instruction could be used)

PR 55181
* config/avr/avr.md: New pattern to work around do_store_flag
generating shift instructions for bit extractions.

From-SVN: r239116

8 years agore PR c++/70229 (error: constexpr constructor does not have empty body)
Marek Polacek [Thu, 4 Aug 2016 07:47:50 +0000 (07:47 +0000)]
re PR c++/70229 (error: constexpr constructor does not have empty body)

PR c++/70229
* constexpr.c (check_constexpr_ctor_body_1): Allow typedef
declarations.

* g++.dg/cpp0x/constexpr-ctor19.C: New test.

From-SVN: r239115

8 years agore PR rtl-optimization/71984 (wrong code with -O -mavx512cd)
Richard Biener [Thu, 4 Aug 2016 07:02:47 +0000 (07:02 +0000)]
re PR rtl-optimization/71984 (wrong code with -O -mavx512cd)

2016-08-04  Richard Biener  <rguenther@suse.de>

PR middle-end/71984
* gcc.dg/torture/pr71984.c: Guard correctness check for
little-endian.

From-SVN: r239114

8 years agotree-vrp.c (set_value_range): Use vrp_equiv_obstack with BITMAP_ALLOC.
Kugan Vivekanandarajah [Thu, 4 Aug 2016 04:20:01 +0000 (04:20 +0000)]
tree-vrp.c (set_value_range): Use vrp_equiv_obstack with BITMAP_ALLOC.

gcc/ChangeLog:

2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>

* tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
BITMAP_ALLOC.
(add_equivalence): Likewise.
(get_value_range): Allocate value range with vrp_value_range_pool.
(vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
(vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.

From-SVN: r239113

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

From-SVN: r239112