gcc.git
8 years agoc-lex.c (c_lex_with_flags): For CPP_COMMENT token with PREV_FALLTHROUGH...
Jakub Jelinek [Sat, 8 Oct 2016 10:48:54 +0000 (12:48 +0200)]
c-lex.c (c_lex_with_flags): For CPP_COMMENT token with PREV_FALLTHROUGH...

* c-lex.c (c_lex_with_flags) <case CPP_COMMENT>: For CPP_COMMENT
token with PREV_FALLTHROUGH, skip all following CPP_PADDING and
CPP_COMMENT tokens and set add_flags to PREV_FALLTHROUGH afterwards.

* doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
FALLTHRU comment styles.

* lex.c (fallthrough_comment_p): Fix off-by-one size comparison
errors, cleanup.
(_cpp_lex_direct): Allow arbitrary comments in between
fallthrough_comment_p comment and following token.

* c-c++-common/Wimplicit-fallthrough-23.c: New test.
* c-c++-common/Wimplicit-fallthrough-24.c: New test.

From-SVN: r240884

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

From-SVN: r240882

8 years agoaarch64-arches.def (AARCH64_ARCH): #undef at the end.
Andrew Pinski [Fri, 7 Oct 2016 21:36:41 +0000 (21:36 +0000)]
aarch64-arches.def (AARCH64_ARCH): #undef at the end.

2016-10-07  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
        * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
        * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR): Likewise.
        * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION): Likewise.
        * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION): Likewise.
        * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
        (AARCH64_ARCH): Likewise.
        * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION): Likewise.
        (AARCH64_CORE): Likewise.
        (AARCH64_ARCH): Likewise.
        * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
        (AARCH64_EXTRA_TUNING_OPTION): Likewise.
        * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
        (AARCH64_EXTRA_TUNING_OPTION): Likewise.
        (AARCH64_ARCH): Likewise.
        (AARCH64_CORE): Likewise.
        * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
        * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
        (AARCH64_CORE): Likewise.
        (AARCH64_ARCH): Likewise.

From-SVN: r240876

8 years agoFix ICE due to map typespecs with different sized charlens being copied.
Fritz Reese [Fri, 7 Oct 2016 21:25:16 +0000 (21:25 +0000)]
Fix ICE due to map typespecs with different sized charlens being copied.

2016-10-07  Fritz Reese  <fritzoreese@gmail.com>

Fix ICE due to map typespecs with different sized charlens being copied.

gcc/fortran/
* interface.c (compare_components): Check charlen for BT_CHAR.

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

From-SVN: r240875

8 years agore PR c++/64433 (Segmentation fault while compiling)
Nathan Sidwell [Fri, 7 Oct 2016 20:01:17 +0000 (20:01 +0000)]
re PR c++/64433 (Segmentation fault while compiling)

cp/
PR c++/64433
DR1658, DR1611
* init.c (emit_mem_initializers): Don't construct vbases of
abstract classes.
(push_base_cleanups): Don't push vbase cleanups for abstract class
when in C++14 mode.
* method.c (synthethesized_method_walk): Don't walk vbases of
abstract classes when in C++14 mode.

testsuite/
PR c++/66443
* g++.dg/cpp0x/pr66443-cxx11.C: New.
* g++.dg/cpp0x/pr66443-cxx11-2.C: New.
* g++.dg/cpp1y/pr66443-cxx14.C: New
* g++.dg/cpp1y/pr66443-cxx14-2.C: New.
* g++.dg/cpp1y/pr66443-cxx14-3.C: New.

From-SVN: r240874

8 years agoImplement LWG2296 helper intrinsic c-family/
Jakub Jelinek [Fri, 7 Oct 2016 19:37:46 +0000 (21:37 +0200)]
Implement LWG2296 helper intrinsic c-family/

Implement LWG2296 helper intrinsic
c-family/
* c-common.h (enum rid): Add RID_ADDRESSOF.
* c-common.c (c_common_reswords): Add __builtin_addressof.
cp/
* parser.c (cp_parser_postfix_expression): Handle RID_ADDRESSOF.
* cp-objcp-common.c (cp_common_init_ts): Handle ADDRESSOF_EXPR.
* constexpr.c (potential_constant_expression_1): Likewise.
* error.c (dump_expr): Likewise.
* typeck.c (cp_build_addressof): New function.
* cp-tree.h (cp_build_addressof): Declare.
* cxx-pretty-print.h (pp_cxx_addressof_expression): Declare.
* cp-tree.def (ADDRESSOF_EXPR): New tree code.
* cxx-pretty-print.c (cxx_pretty_printer::primary_expression): Handle
ADDRESSOF_EXPR.  Add __builtin_addressof and
__has_unique_object_representations into syntax in function comment.
(pp_cxx_addressof_expression): New function.
* pt.c (tsubst_copy_and_build): Handle ADDRESSOF_EXPR.
testsuite/
* g++.dg/cpp0x/addressof1.C: New test.
* g++.dg/cpp0x/addressof2.C: New test.

From-SVN: r240873

8 years agors6000-c.c (rs6000_cpu_cpp_builtins): Split -mfloat128 into -mfloat128-type that...
Michael Meissner [Fri, 7 Oct 2016 18:58:10 +0000 (18:58 +0000)]
rs6000-c.c (rs6000_cpu_cpp_builtins): Split -mfloat128 into -mfloat128-type that enables the IEEE 128-bit floating...

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

* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
-mfloat128 into -mfloat128-type that enables the IEEE 128-bit
floating point type infrastructre, and -mfloat128 that enables the
keyword.  Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
if -mfloat128-type.  Define __ibm128 to be long double by default.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
the IEEE 128-bit floating point type infrastructure should
automatically be enabled.
(rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
instead of -mfloat128 to enable KFmode.
(rs6000_option_override_internal): Split the option -mfloat128
into -mfloat128-type and -mfloat128.  On Linux PowerPC 64-bit
systems, automatically set -mfloat128-type, but don't enable it on
other operating systems.  Move setting the long double size and
IEEE quad support before the IEEE 128-bit floating point changes.
(rs6000_init_builtins): Do not create a unique type for __ibm128
if long double is IBM extended double, instead rely on __ibm128
being defined as 'long double'.  If -mfloat128-type and not
-mfloat128, create the KFmode type with an undocumented __ieee128
keyword.
(rs6000_init_libfuncs): Use -mfloat128-type instead of
-mfloat128 for tests about the types, but keep tests for
-mfloat128 to enable the keyword support.
(rs6000_complex_function_value): Likewise.
(rs6000_scalar_mode_supported_p): Likewise.
(rs6000_floatn_mode): Likewise.
(rs6000_c_mode_for_suffix): Likewise.
(rs6000_opt_masks): Add -mfloat128-type.
* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
-mfloat128-type being split from -mfloat128.  Add
-mfloat128-hardware, which was missing.
* config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
-mfloat128 and -mfloat128-type:
(-mfloat128-type): Likewise.
* config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
that 64-bit Linux systems with enable -mfloat128-type by default
on VSX systems.
* config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
(FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
-mfloat128-type instead of -mfloat128.
(FLOAT128_2REG_P): Likewise.
(MASK_FLOAT128_TYPE): Likewise.
(ALTIVEC_ARG_MAX_RETURN): Likewise.
(RS6000_BTM_FLOAT128): Likewise.
(TARGET_FLOAT128): Poison old identifiers.
(OPTION_MASK_FLOAT128): Likewise.
(MASK_FLOAT128): Likewise.
* config/rs6000/rs6000.md (FP): Likewise.
(FLOAT128): Likewise.
(fix_trunc<mode>di2): Likewise.
(fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
(floatdi<mode>2): Likewise.
(floatuns<SDI:mode><IEEE128:mode>2): Likewise.
(neg<mode>2, FLOAT128 iterator): Likewise.
(abs<mode>2, FLOAT128 iterator): Likewise.
(ieee_128bit_negative_zero): Likewise.
(ieee_128bit_vsx_neg<mode>2): Likewise.
(ieee_128bit_vsx_neg<mode>2_internal): Likewise.
(ieee_128bit_vsx_abs<mode>2): Likewise.
(ieee_128bit_vsx_abs<mode>2_internal): Likewise.
(ieee_128bit_vsx_nabs<mode>2): Likewise.
(ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
(extendiftf2): Likewise.
(extendifkf2): Likewise.
(extendtfkf2): Likewise.
(trunciftf2): Likewise.
(truncifkf2): Likewise.
(trunckftf2): Likewise.
(trunctfif2): Likewise.
(extendkftf2): Likewise.
(trunctfkf2): Likewise.

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

* gcc.target/powerpc/float128-type-1.c: New test to check that
PowerPC 64-bit Linux enables -mfloat128-type by default.
* gcc.target/powerpc/float128-type-2.c: Likewise.
* gcc.target/powerpc/float128-mix.c: Change error message to
reflect that __ibm128 is now #define'ed to be long double.

From-SVN: r240872

8 years agore PR fortran/77406 (ICE in generic_correspondence, at fortran/interface.c:1123)
Steven G. Kargl [Fri, 7 Oct 2016 18:18:03 +0000 (18:18 +0000)]
re PR fortran/77406 (ICE in generic_correspondence, at fortran/interface.c:1123)

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

PR fortran/77406
* interface.c (gfc_compare_interfaces): Fix detection of ambiguous
interface involving alternate return.
(check_interface1): Improve error message and loci.

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

PR fortran/77406
* gfortran.dg/pr77406.f90: New test.
* gfortran.dg/assumed_type_3.f90: Update error messages.
* gfortran.dg/defined_operators_1.f90: Ditto.
* gfortran.dg/generic_26.f90: Ditto.
* gfortran.dg/generic_7.f90: Ditto.
* gfortran.dg/gomp/udr5.f90: Ditto.
* gfortran.dg/gomp/udr7.f90: Ditto.
* gfortran.dg/interface_1.f90: Ditto.
* gfortran.dg/interface_37.f90: Ditto.
* gfortran.dg/interface_5.f90: Ditto.
* gfortran.dg/interface_6.f90: Ditto.
* gfortran.dg/interface_7.f90
* gfortran.dg/no_arg_check_3.f90
* gfortran.dg/operator_5.f90
* gfortran.dg/proc_ptr_comp_20.f90: Ditto.

From-SVN: r240870

8 years agoImprove implementation-defined docs for libstdc++
Jonathan Wakely [Fri, 7 Oct 2016 18:02:53 +0000 (19:02 +0100)]
Improve implementation-defined docs for libstdc++

* doc/xml/manual/status_cxx1998.xml: Improve documentation of
implementation-defined properties.
* doc/xml/manual/status_cxx2011.xml: Likewise.
* doc/xml/manual/status_cxx2017.xml: Likewise.

From-SVN: r240869

8 years agoImplement std::has_unique_object_representations
Jonathan Wakely [Fri, 7 Oct 2016 18:02:43 +0000 (19:02 +0100)]
Implement std::has_unique_object_representations

* doc/xml/manual/status_cxx2017.xml: Update status.
* include/std/type_traits (has_unique_object_representations): Define.
* testsuite/20_util/has_unique_object_representations/value.cc: New.
* testsuite/20_util/has_unique_object_representations/requirements/
explicit_instantiation.cc: New.
* testsuite/20_util/has_unique_object_representations/requirements/
typedefs.cc: New.

From-SVN: r240868

8 years agore PR c++/77700 (suspicios code in cp/parser.c)
Bernd Edlinger [Fri, 7 Oct 2016 17:10:38 +0000 (17:10 +0000)]
re PR c++/77700 (suspicios code in cp/parser.c)

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

        PR c++/77700
        * c-common.c (c_common_truthvalue_conversion): Warn also for
        suspicious enum values in boolean context.

cp:
2016-10-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/77700
        * parser.c (cp_parser_base_specifier): Fix a warning.

testsuite:
2016-10-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/77700
        * c-c++-common/Wint-in-bool-context.c: Update test.

From-SVN: r240867

8 years ago[simplify-rtx] Zero-initialise local array in simplify_immed_subreg
Kyrylo Tkachov [Fri, 7 Oct 2016 14:47:55 +0000 (14:47 +0000)]
[simplify-rtx] Zero-initialise local array in simplify_immed_subreg

* simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
before merging in bytes to pass down to real_from_target.

From-SVN: r240866

8 years agotree-ssa-propagate.c (replace_phi_args_in): Remove no longer required hack.
Richard Biener [Fri, 7 Oct 2016 13:47:40 +0000 (13:47 +0000)]
tree-ssa-propagate.c (replace_phi_args_in): Remove no longer required hack.

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

* tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
required hack.
(substitute_and_fold_dom_walker::before_dom_children):
Substitute and fold before pass specific folding to avoid
feeding that with SSA names that will be later released.
* tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
introduced by folding and visited by evaluate_stmt called during
ccp_fold_stmt.
(likely_value): Likewise.
(evaluate_stmt): Likewise.
* tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
(simplify_div_or_mod_using_ranges): Likewise.
(simplify_min_or_max_using_ranges): Likewise.
(simplify_abs_using_ranges): Likewise.
(simplify_conversion_using_ranges): Likewise.
(simplify_float_conversion_using_ranges): Likewise.
(simplify_stmt_using_ranges): Likewise.

* gcc.dg/tree-ssa/vrp01.c: Adjust.
* gcc.dg/tree-ssa/vrp34.c: Likewise.

From-SVN: r240865

8 years agogimplify.c (should_warn_for_implicit_fallthrough): Check for FALLTHROUGH_LABEL_P...
Marek Polacek [Fri, 7 Oct 2016 12:44:54 +0000 (12:44 +0000)]
gimplify.c (should_warn_for_implicit_fallthrough): Check for FALLTHROUGH_LABEL_P here...

* gimplify.c (should_warn_for_implicit_fallthrough): Check for
FALLTHROUGH_LABEL_P here...
(warn_implicit_fallthrough_r): ...not here.

* c-c++-common/Wimplicit-fallthrough-22.c: New test.

From-SVN: r240864

8 years agore PR c++/69733 (-Wignored-qualifiers points to wrong const)
Bernd Schmidt [Fri, 7 Oct 2016 12:21:55 +0000 (12:21 +0000)]
re PR c++/69733 (-Wignored-qualifiers points to wrong const)

c/
PR c++/69733
* c-decl.c (smallest_type_quals_location): New static function.
(grokdeclarator): Try to find the correct location for an ignored
qualifier.
cp/
PR c++/69733
* decl.c (grokdeclarator): Try to find the correct location for an
ignored qualifier.
testsuite/
PR c++/69733
* c-c++-common/pr69733.c: New test.
* gcc.dg/pr69733.c: New test.
* gcc.target/i386/pr69733.c: New test.

From-SVN: r240863

8 years agore PR tree-optimization/77880 (out of memory building recent LLVM on ppc64le with...
Bernd Schmidt [Fri, 7 Oct 2016 12:16:55 +0000 (12:16 +0000)]
re PR tree-optimization/77880 (out of memory building recent LLVM on ppc64le with -O3)

PR tree-optimization/77880
* expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
necessary.

From-SVN: r240862

8 years agore PR c++/77803 (Bogus implicit-fallthrough warning)
Marek Polacek [Fri, 7 Oct 2016 11:45:50 +0000 (11:45 +0000)]
re PR c++/77803 (Bogus implicit-fallthrough warning)

PR c++/77803
* gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().

* g++.dg/warn/Wimplicit-fallthrough-1.C: New test.

From-SVN: r240861

8 years agobitmap.h: Document constraints on bitmap modification while iterating over it.
Richard Biener [Fri, 7 Oct 2016 11:26:15 +0000 (11:26 +0000)]
bitmap.h: Document constraints on bitmap modification while iterating over it.

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

* bitmap.h: Document constraints on bitmap modification while
iterating over it.

From-SVN: r240860

8 years agobitmap.c (bitmap_elem_to_freelist): Set indx to -1.
Richard Biener [Fri, 7 Oct 2016 10:06:24 +0000 (10:06 +0000)]
bitmap.c (bitmap_elem_to_freelist): Set indx to -1.

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

* bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
* bitmap.h (bmp_iter_set): When advancing to the next element
check that we didn't remove the current one.
(bmp_iter_and): Likewise.
(bmp_iter_and_compl): Likewise.
* tree-ssa.c (release_defs_bitset): Do not remove worklist bit
we currently iterate on but keep a one-level queue.
* sched-deps.c (remove_from_deps): Do not clear current bit
but keep a one-level queue.

From-SVN: r240859

8 years agore PR tree-optimization/77664 (Missed optimization: signed int >= 0 && < unsigned...
Jakub Jelinek [Fri, 7 Oct 2016 09:33:47 +0000 (11:33 +0200)]
re PR tree-optimization/77664 (Missed optimization: signed int >= 0 && < unsigned short)

PR tree-optimization/77664
* tree-ssa-reassoc.c (update_range_test): Also clear low and high
for the other ranges.
(optimize_range_tests_diff): Fix up formatting.
(optimize_range_tests_var_bound): New function.
(optimize_range_tests): Use it.

* gcc.dg/tree-ssa/pr77664.c: New test.
* gcc.dg/pr77664.c: New test.

From-SVN: r240858

8 years agoReally set priority to 99 for __gcov_exit
Martin Liska [Fri, 7 Oct 2016 09:24:20 +0000 (11:24 +0200)]
Really set priority to 99 for __gcov_exit

* coverage.c (build_gcov_exit_decl): Fix priority what
should be really 99.

From-SVN: r240857

8 years agoFix profiled bootstrap (part 2)
Martin Liska [Fri, 7 Oct 2016 08:34:49 +0000 (10:34 +0200)]
Fix profiled bootstrap (part 2)

* lambda.c (maybe_add_lambda_conv_op): Set default value.

From-SVN: r240856

8 years agogimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of vars in gimple_bind_vars but...
Richard Biener [Fri, 7 Oct 2016 07:47:38 +0000 (07:47 +0000)]
gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of vars in gimple_bind_vars but not in BLOCK_VARS.

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

* gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
vars in gimple_bind_vars but not in BLOCK_VARS.

From-SVN: r240855

8 years agore PR tree-optimization/77879 (mpd gets miscompiled since r235622)
Richard Biener [Fri, 7 Oct 2016 07:44:47 +0000 (07:44 +0000)]
re PR tree-optimization/77879 (mpd gets miscompiled since r235622)

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

PR tree-optimization/77879
* tree-ssa-structalias.c (handle_const_call): Properly handle
NRV return slots.
(handle_pure_call): Likewise.

From-SVN: r240854

8 years agocompiler: stack allocate storage for temp slices.
Ian Lance Taylor [Fri, 7 Oct 2016 04:14:35 +0000 (04:14 +0000)]
compiler: stack allocate storage for temp slices.

    During the lowering phase, the variable arguments to a varargs call are
    packaged up into a temporary slice object; the storage for this slice
    was being unconditionally allocated on the heap.  Heap allocation is not
    necessary, however, if the varargs call correspond to an "append", since
    the append runtime routine only reads the slice storage (as opposed to
    stashing away the storage pointer). Enhance the lowering code to keep
    the slice storage on the stack for append() calls, to improve
    performance.

    Addresses issue golang/go#17304.

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

From-SVN: r240853

8 years ago2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
Aaron Sawdey [Fri, 7 Oct 2016 04:12:00 +0000 (04:12 +0000)]
2016-10-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
(rs6000_elf_asm_out_destructor): increase size of buf to avoid
possible overflow.

From-SVN: r240852

8 years ago[multiple changes]
Louis Krupp [Fri, 7 Oct 2016 02:24:40 +0000 (02:24 +0000)]
[multiple changes]

2016-10-06  Louis Krupp <louis.krupp@zoho.com>

* gfortran.dg/pr69955.f90: New test.

2016-10-06  Louis Krupp  <louis.krupp@zoho.com>

PR fortran/69955
* trans-array.c (gfc_conv_expr_descriptor): Don't allocate
components if it's not necessary.

From-SVN: r240851

8 years ago2016_10-06 Louis Krupp <louis.krupp@zoho.com>
Louis Krupp [Fri, 7 Oct 2016 02:02:13 +0000 (02:02 +0000)]
2016_10-06  Louis Krupp  <louis.krupp@zoho.com>

PR fortran/57910
* gfortran.dg/pr57910.f90: New test.

2016-10-05  Louis Krupp  <louis.krupp@zoho.com>

PR fortran/57910
* trans-expr.c (gfc_add_interface_mapping): Don't try to
dereference call-by-value scalar argument

From-SVN: r240850

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

From-SVN: r240849

8 years agoaarch64-cores.def: Add a comment before each set of cores.
Andrew Pinski [Thu, 6 Oct 2016 22:49:58 +0000 (22:49 +0000)]
aarch64-cores.def: Add a comment before each set of cores.

2016-10-06  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-cores.def: Add a comment before each
        set of cores.

From-SVN: r240846

8 years agoC++17 copy elision improvements.
Jason Merrill [Thu, 6 Oct 2016 21:24:40 +0000 (17:24 -0400)]
C++17 copy elision improvements.

* call.c (build_temp, convert_like_real): Don't re-copy
TARGET_EXPR.  Handle packed fields.
(build_x_va_arg): Wrap it in a TARGET_EXPR.
(build_over_call): Add sanity check.
* cvt.c (early_elide_copy): New.
(ocp_convert): Use it.
* except.c (build_throw): Use it.
* init.c (get_nsdmi): Put back the TARGET_EXPR.
(expand_default_init): Call early_elide_copy.
* typeck.c (cp_build_modify_expr): Call early_elide_copy.

From-SVN: r240845

8 years agoMake std::scoped_allocator_adaptor's OUTERMOST recursive
Jonathan Wakely [Thu, 6 Oct 2016 21:22:35 +0000 (22:22 +0100)]
Make std::scoped_allocator_adaptor's OUTERMOST recursive

* doc/xml/manual/status_cxx2011.xml: Update status.
* include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
New helpers for recursive OUTERMOST.
(__outermost): Use __outermost_type::_S_outermost.
(__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
(scoped_allocator_adaptor::__outermost_alloc_traits): Use new
__outermost_type helper.
* testsuite/20_util/scoped_allocator/outermost.cc: New test.

From-SVN: r240844

8 years agoImplement P0258R2 - helper for C++17 std::has_unique_object_representations trait...
Jakub Jelinek [Thu, 6 Oct 2016 21:17:44 +0000 (23:17 +0200)]
Implement P0258R2 - helper for C++17 std::has_unique_object_representations trait c-family/

Implement P0258R2 - helper for C++17
std::has_unique_object_representations trait
c-family/
* c-common.h (enum rid): Add RID_HAS_UNIQUE_OBJ_REPRESENTATIONS.
* c-common.c (c_common_reswords): Add
__has_unique_object_representations.
cp/
* cp-tree.h (enum cp_trait_kind): Add
CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS.
(struct lang_type_class): Add unique_obj_representations
and unique_obj_representations_set bitfields.
(CLASSTYPE_UNIQUE_OBJ_REPRESENTATIONS,
CLASSTYPE_UNIQUE_OBJ_REPRESENTATIONS_SET): Define.
(type_has_unique_obj_representations): Declare.
* parser.c (cp_parser_primary_expression): Handle
RID_HAS_UNIQUE_OBJ_REPRESENTATIONS.
(cp_parser_trait_expr): Likewise.  Formatting fix.
* semantics.c (trait_expr_value, finish_trait_expr): Handle
CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS.
* tree.c (type_has_unique_obj_representations): New function.
(record_has_unique_obj_representations): New function.
* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS.
testsuite/
* g++.dg/cpp1z/has-unique-obj-representations1.C: New test.
* g++.dg/cpp1z/has-unique-obj-representations2.C: New test.

From-SVN: r240843

8 years agore PR tree-optimization/77862 (ice in add_equivalence)
Kugan Vivekanandarajah [Thu, 6 Oct 2016 19:58:46 +0000 (19:58 +0000)]
re PR tree-optimization/77862 (ice in add_equivalence)

Fix PR77862
gcc/testsuite/ChangeLog:

2016-10-06  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR tree-optimization/77862
* gcc.dg/pr77862.c: New test.

gcc/ChangeLog:

2016-10-06  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR tree-optimization/77862
* tree-vrp.c (add_equivalence): Use get_value_range so that
num_vr_values is checked before accessing vr_values.

From-SVN: r240842

8 years agoHandle POINTER_TYPE_P in EVRP
Kugan Vivekanandarajah [Thu, 6 Oct 2016 19:55:14 +0000 (19:55 +0000)]
Handle POINTER_TYPE_P in EVRP

Handle POINTER_TYPE_P in EVRP
gcc/ChangeLog:

2016-10-06  Kugan Vivekanandarajah  <kuganv@linaro.org>

* tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
  POINTER_TYPE_P.

gcc/testsuite/ChangeLog:

2016-10-06  Kugan Vivekanandarajah  <kuganv@linaro.org>

* gcc.dg/tree-ssa/evrp4.c: New test.

From-SVN: r240841

8 years agogo-gcc.cc (Gcc_backend::stack_allocation_expression): Clear the returned memory.
Chris Manghane [Thu, 6 Oct 2016 19:24:04 +0000 (19:24 +0000)]
go-gcc.cc (Gcc_backend::stack_allocation_expression): Clear the returned memory.

* go-gcc.cc (Gcc_backend::stack_allocation_expression): Clear the
returned memory.

From-SVN: r240840

8 years agore PR tree-optimization/71661 (wrong code at -O3)
Jeff Law [Thu, 6 Oct 2016 16:23:22 +0000 (10:23 -0600)]
re PR tree-optimization/71661 (wrong code at -O3)

PR tree-optimization/71661
* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
removal of a forwarder exposes a new natural loop.

PR tree-optimization/71661
* gcc.dg/tree-ssa/pr71661.c: New test.

From-SVN: r240836

8 years ago* config/i386/i386.c (ix86_add_stmt_cost): Simplify condition.
Uros Bizjak [Thu, 6 Oct 2016 14:57:41 +0000 (16:57 +0200)]
* config/i386/i386.c (ix86_add_stmt_cost): Simplify condition.

From-SVN: r240835

8 years agosse.md (andnot<mode>3): Add FALLTHRU comments.
Uros Bizjak [Thu, 6 Oct 2016 14:56:34 +0000 (16:56 +0200)]
sse.md (andnot<mode>3): Add FALLTHRU comments.

* config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
Introduce ssesuffix variable.
(<mask_codefor><code><mode>3<mask_name>): Ditto.
(*<code><mode>3): Ditto.

From-SVN: r240834

8 years agopostreload.c (reload_cse_simplify): Skip also USE when detecting noop move.
Jan Hubicka [Thu, 6 Oct 2016 13:45:45 +0000 (15:45 +0200)]
postreload.c (reload_cse_simplify): Skip also USE when detecting noop move.

* postreload.c (reload_cse_simplify): Skip also USE when detecting
noop move.

From-SVN: r240833

8 years agore PR tree-optimization/77855 (wrong code at -O3 on x86_64-linux-gnu (in both 32...
Richard Biener [Thu, 6 Oct 2016 12:17:53 +0000 (12:17 +0000)]
re PR tree-optimization/77855 (wrong code at -O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes))

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

PR tree-optimization/77855
* tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
instead of removing the current item while iterating over the set
which is not safe.

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

From-SVN: r240832

8 years agore PR target/77759 (ICE in function_arg_record_value on nested empty class)
James Clarke [Thu, 6 Oct 2016 10:28:23 +0000 (10:28 +0000)]
re PR target/77759 (ICE in function_arg_record_value on nested empty class)

PR target/77759
* config/sparc/sparc.c (classify_data_t): Remove int_regs field.
(classify_registers): Don't set it
(function_arg_slotno): Don't initialize and test it.  Tidy up.

Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r240830

8 years agore PR tree-optimization/77839 (Memory- and compile time hog at -O1 and above)
Richard Biener [Thu, 6 Oct 2016 08:54:37 +0000 (08:54 +0000)]
re PR tree-optimization/77839 (Memory- and compile time hog at -O1 and above)

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

PR tree-optimization/77839
* tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
lattice transition.

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

From-SVN: r240829

8 years agoAdd -fprofile-update option juggling
Martin Liska [Thu, 6 Oct 2016 07:34:23 +0000 (09:34 +0200)]
Add -fprofile-update option juggling

* gcc.c: Set -fprofile-update=atomic when profiling is
enabled and -pthread is set.  Warn when one combines
-pthread and -fprofile-update=single for an app using
profiling code.

From-SVN: r240828

8 years agoFix warnings for make profiledbootstrap (PR bootstrap/77788)
Martin Liska [Thu, 6 Oct 2016 07:33:49 +0000 (09:33 +0200)]
Fix warnings for make profiledbootstrap (PR bootstrap/77788)

PR bootstrap/77788
* expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
* gimple-ssa-strength-reduction.c (slsr_process_cast):
Initialize a pointer to NULL.
(slsr_process_copy): Likewise.
* input.c (location_get_source_line): Likewise.
* tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.

From-SVN: r240827

8 years agoescape: Avoid allocation of varargs parameter.
Ian Lance Taylor [Thu, 6 Oct 2016 03:51:03 +0000 (03:51 +0000)]
escape: Avoid allocation of varargs parameter.

    There was a bug in the escape analysis that would cause
    the slice implicitly created to hold varargs parameters to always
    escape, as well as the appended to slice argument.  The intended
    behavior was that the elements of the appendee and appended to
    slice would escape to the heap.  Alongside of these issues,
    the varargs slice would also have a chance to be initialized to an
    invalid memory location if it were stack-allocated.  This has been
    fixed as well.

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

From-SVN: r240826

8 years ago* g++.dg/cpp1z/init-statement9.C: New test.
Marek Polacek [Thu, 6 Oct 2016 00:25:29 +0000 (00:25 +0000)]
* g++.dg/cpp1z/init-statement9.C: New test.

From-SVN: r240824

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

From-SVN: r240823

8 years agoImplement P0135R1, Guaranteed copy elision.
Jason Merrill [Wed, 5 Oct 2016 22:59:02 +0000 (18:59 -0400)]
Implement P0135R1, Guaranteed copy elision.

* cvt.c (ocp_convert): Don't re-copy a TARGET_EXPR in C++17.

From-SVN: r240820

8 years agoPR c++/54293 - binding reference to member of temporary
Jason Merrill [Wed, 5 Oct 2016 22:58:55 +0000 (18:58 -0400)]
PR c++/54293 - binding reference to member of temporary

* call.c (reference_binding): Fix binding to member of temporary.

From-SVN: r240819

8 years ago* call.c (extend_ref_init_temps): Fix TARGET_EXPR handling.
Jason Merrill [Wed, 5 Oct 2016 22:57:58 +0000 (18:57 -0400)]
* call.c (extend_ref_init_temps): Fix TARGET_EXPR handling.

From-SVN: r240818

8 years agoDelete x86 deprecated pcommit instruction support
Andrew Senkevich [Wed, 5 Oct 2016 22:08:48 +0000 (22:08 +0000)]
Delete x86 deprecated pcommit instruction support

Delete x86 pcommit instruction support, which has been deprecated:

https://software.intel.com/en-us/blogs/2016/09/12/deprecate-pcommit-instruction

gcc/

* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
(ix86_handle_option): Deleted handle of OPT_mpcommit.
* config.gcc: Deleted pcommitintrin.h
* config/i386/pcommitintrin.h: Deleted file.
* config/i386/cpuid.h (bit_PCOMMIT): Deleted.
* config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
detection.
* config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
__PCOMMIT__.
* config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
(PTA_PCOMMIT): Deleted define.
(ix86_option_override_internal): Deleted handle of option.
(ix86_valid_target_attribute_inner_p): Deleted pcommit.
* config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
__builtin_ia32_pcommit): Deleted.
* config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
* config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
(pcommit): Deleted instruction.
* config/i386/i386.opt: Mention -mpcommit deprecation.
* config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.

gcc/testsuite/

* gcc.target/i386/pcommit-1.c: Deleted.
* gcc.target/i386/sse-12.c: Deleted -pcommit option.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* g++.dg/other/i386-2.C: Ditto.

From-SVN: r240816

8 years agopr77833.c: Require int128 effective target.
Uros Bizjak [Wed, 5 Oct 2016 22:06:37 +0000 (00:06 +0200)]
pr77833.c: Require int128 effective target.

* gcc.target/i386/pr77833.c: Require int128 effective target.

From-SVN: r240815

8 years agore PR target/77874 (two problems with gcc.target/i386/avx-1.c)
Uros Bizjak [Wed, 5 Oct 2016 22:02:05 +0000 (00:02 +0200)]
re PR target/77874 (two problems with gcc.target/i386/avx-1.c)

PR target/77874
* config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
Remove wrong assert.
(<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
Use <round_constraint> as operand 1 constraint.

From-SVN: r240814

8 years agore PR fortran/58991 (ICE with associate and character string constant)
Steven G. Kargl [Wed, 5 Oct 2016 21:14:14 +0000 (21:14 +0000)]
re PR fortran/58991 (ICE with associate and character string constant)

2016-10-05  Steven G. Kargl  <kargls@gcc.gnu.org>

PR fortran/58991
PR fortran/58992
* resolve.c (resolve_assoc_var):  Fix CHARACTER type-spec for a
selector in ASSOCIATE.
(resolve_fl_variable): Skip checks for an ASSOCIATE variable.

2016-10-05  Steven G. Kargl  <kargls@gcc.gnu.org>

PR fortran/58991
PR fortran/58992
* gfortran.dg/associate_22.f90: New test.

From-SVN: r240812

8 years agoFix ICE due to comparison between UNION components.
Fritz Reese [Wed, 5 Oct 2016 20:24:48 +0000 (20:24 +0000)]
Fix ICE due to comparison between UNION components.

2016-10-05  Fritz Reese  <fritzoreese@gmail.com>

Fix ICE due to comparison between UNION components.

gcc/fortran/
* interface.c (gfc_compare_types): Don't compare BT_UNION components
until we know they're both UNIONs.
* interface.c (gfc_compare_union_types): Guard against empty
components.

gcc/testsuite/gfortran.dg/
* dec_union_9.f90: New testcase.
* dec_union_10.f90: New testcase.

From-SVN: r240810

8 years ago* parser.c (cp_parser_skip_to_end_of_statement): Add missing break.
Jason Merrill [Wed, 5 Oct 2016 19:59:28 +0000 (15:59 -0400)]
* parser.c (cp_parser_skip_to_end_of_statement): Add missing break.

From-SVN: r240809

8 years agoFix last commit.
Marek Polacek [Wed, 5 Oct 2016 19:25:15 +0000 (19:25 +0000)]
Fix last commit.

From-SVN: r240806

8 years agore PR sanitizer/66343 ("Error: .Lubsan_type3 already defined" with UBSan and precompi...
Jakub Jelinek [Wed, 5 Oct 2016 19:04:39 +0000 (21:04 +0200)]
re PR sanitizer/66343 ("Error: .Lubsan_type3 already defined" with UBSan and precompiled headers)

PR sanitizer/66343
* ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
(ubsan_instrument_float_cast): And not here.

* c-ubsan.c (ubsan_instrument_return): Don't call
initialize_sanitizer_builtins here.

* gcc.dg/pch/pr66343-3.c: New test.
* gcc.dg/pch/pr66343-3.hs: New file.

From-SVN: r240804

8 years agore PR sanitizer/66343 ("Error: .Lubsan_type3 already defined" with UBSan and precompi...
Jakub Jelinek [Wed, 5 Oct 2016 19:03:28 +0000 (21:03 +0200)]
re PR sanitizer/66343 ("Error: .Lubsan_type3 already defined" with UBSan and precompiled headers)

PR sanitizer/66343
* ubsan.c (ubsan_ids): New GTY(()) array.
(ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
instead of static local counters.

* gcc.dg/pch/pr66343-1.c: New test.
* gcc.dg/pch/pr66343-1.hs: New file.
* gcc.dg/pch/pr66343-2.c: New test.
* gcc.dg/pch/pr66343-2.hs: New file.

From-SVN: r240803

8 years ago* semantics.c (finish_compound_literal): Handle class placeholder.
Jason Merrill [Wed, 5 Oct 2016 18:57:45 +0000 (14:57 -0400)]
* semantics.c (finish_compound_literal): Handle class placeholder.

From-SVN: r240802

8 years agoMAINTAINERS: Update email address after it got reverted.
Steve Ellcey [Wed, 5 Oct 2016 18:42:10 +0000 (18:42 +0000)]
MAINTAINERS: Update email address after it got reverted.

2016-10-05  Steve Ellcey  <sellcey@caviumnetworks.com>

* MAINTAINERS: Update email address after it got reverted.

From-SVN: r240801

8 years agoc-common.c (c_common_truthvalue_conversion): Warn also for suspicious conditional...
Bernd Edlinger [Wed, 5 Oct 2016 18:34:17 +0000 (18:34 +0000)]
c-common.c (c_common_truthvalue_conversion): Warn also for suspicious conditional expression in boolean context when...

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

        * c-common.c (c_common_truthvalue_conversion): Warn also for suspicious
        conditional expression in boolean context when only one arm is
        non-boolean.

testsuite:
2016-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-c++-common/Wint-in-bool-context.c: Update test.

From-SVN: r240799

8 years agoImplement P0305R1, Selection statements with initializer.
Marek Polacek [Wed, 5 Oct 2016 18:02:06 +0000 (18:02 +0000)]
Implement P0305R1, Selection statements with initializer.

* cp-array-notation.c (create_an_loop): Call finish_init_stmt
instead of finish_for_init_stmt.
* cp-tree.h (finish_for_init_stmt): Rename to finish_init_stmt.
* decl.c (poplevel): Adjust a comment.
* init.c (build_vec_init): Call finish_init_stmt instead of
finish_for_init_stmt.
* name-lookup.c (pushdecl_maybe_friend_1): Adjust a comment.
* name-lookup.h (enum scope_kind): Likewise.
* parser.c (cp_parser_statement): Update commentary.
(cp_parser_init_statement_p): New function.
(cp_parser_selection_statement): Parse the optional init-statement.
(cp_parser_for): Call finish_init_stmt instead of finish_for_init_stmt.
(cp_parser_c_for): Likewise.
(cp_convert_range_for): Call finish_init_stmt instead of finish_for_init_stmt.
(cp_parser_range_for_member_function): Update commentary.
(cp_parser_iteration_statement):
(cp_parser_for_init_statement): Rename to cp_parser_init_statement.
* pt.c (tsubst_omp_for_iterator): Update commentary.
(tsubst_expr): Call finish_init_stmt instead of finish_for_init_stmt.
* semantics.c (finish_for_init_stmt): Rename to finish_init_stmt.
Update commentary.

* g++.dg/cpp1z/init-statement1.C: New test.
* g++.dg/cpp1z/init-statement2.C: New test.
* g++.dg/cpp1z/init-statement3.C: New test.
* g++.dg/cpp1z/init-statement4.C: New test.
* g++.dg/cpp1z/init-statement5.C: New test.
* g++.dg/cpp1z/init-statement6.C: New test.
* g++.dg/cpp1z/init-statement7.C: New test.
* g++.dg/cpp1z/init-statement8.C: New test.

From-SVN: r240798

8 years agore PR fortran/67524 (ICE on using implicit character instead of implicit none etc.)
Louis Krupp [Wed, 5 Oct 2016 18:00:30 +0000 (18:00 +0000)]
re PR fortran/67524 (ICE on using implicit character instead of implicit none etc.)

2016-10-05  Louis Krupp  <louis.krupp@zoho.com>

PR fortran/67524
* gfortran.dg/pr67524.f90: New test.

2016-10-05  Louis Krupp  <louis.krupp@zoho.com>

PR fortran/67524
* resolve.c (resolve_symbol): Don't apply default type rules to
mixed-entry master created for function entry points.

From-SVN: r240797

8 years agore PR sanitizer/77823 (ICE: in ubsan_encode_value, at ubsan.c:137 with -fsanitize...
Jakub Jelinek [Wed, 5 Oct 2016 17:47:34 +0000 (19:47 +0200)]
re PR sanitizer/77823 (ICE: in ubsan_encode_value, at ubsan.c:137 with -fsanitize=undefined and vector types)

PR sanitizer/77823
* c-ubsan.c (ubsan_instrument_shift): Return NULL_TREE if type0
is not integral.

* c-c++-common/ubsan/shift-9.c: New test.

From-SVN: r240796

8 years agoFix pr69941.c test failure for avr
Senthil Kumar Selvaraj [Wed, 5 Oct 2016 17:11:22 +0000 (17:11 +0000)]
Fix pr69941.c test failure for avr

The test assumes ints are atleast 32 bits wide. For the avr
target, ints are 16 bits wide. This leads VRP to conclude
that a right shift by 9 followed by an equality comparison
to 0x74 can never be true. VRP eliminates the conditional, and
the code ends up unconditionally calling __builtin_abort.

Fixed the testcase to use __INT32_TYPE__ for targets with less
than 32 bit wide integers, wherever the size happens to be
significant.

gcc/testsuite/ChangeLog

2016-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

        * gcc.dg/torture/pr69941.c: Use __INT32_TYPE__ instead
        of int if __SIZEOF_INT__ is less than 4 bytes.

From-SVN: r240795

8 years agore PR libfortran/77868 (Fail to NULL guard check for internal unit in inquire_via_unit)
Jerry DeLisle [Wed, 5 Oct 2016 16:32:24 +0000 (16:32 +0000)]
re PR libfortran/77868 (Fail to NULL guard check for internal unit in inquire_via_unit)

2016-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/77868
* io/inquire.c (inquire_via_unit): NULL guard the check for
internal unit passed into child IO procedure.

* gfortran.dg/dtio_15.f90: Fix spaces in dg-do.
* gfortran.dg/class_array_20.f03: Likewise.
* gfortran.dg/class_array_21.f03: Likewise.
* gfortran.dg/finalize_29.f08: Likewise.
* gfortran.dg/unlimited_polymorphic_23.f90: Likewise.

From-SVN: r240794

8 years agoPR bootstrap/77819 - undefined reference to gnu_libc_printf_pointer_format with uClibc
Martin Sebor [Wed, 5 Oct 2016 15:21:40 +0000 (15:21 +0000)]
PR bootstrap/77819 - undefined reference to gnu_libc_printf_pointer_format with uClibc

gcc/ChangeLog:

PR bootstrap/77819
* config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
* config/linux.c (gnu_libc_printf_pointer_format): Remove.
* targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
(default_printf_pointer_format): Define function.
* targhooks.c (linux_printf_pointer_format): Define new function.
* targhooks.h (linux_printf_pointer_format): Declare.
(gnu_libc_printf_pointer_format): Remove declaration.

From-SVN: r240793

8 years ago* c-common.c (c_common_reswords): Update comment for C++11.
Jakub Jelinek [Wed, 5 Oct 2016 15:10:01 +0000 (17:10 +0200)]
* c-common.c (c_common_reswords): Update comment for C++11.

From-SVN: r240792

8 years ago[fold-const] Fix native_encode_real for HFmode constants
Kyrylo Tkachov [Wed, 5 Oct 2016 14:57:14 +0000 (14:57 +0000)]
[fold-const] Fix native_encode_real for HFmode constants

* fold-const.c (native_encode_real): Fix logic for selecting offset
to write to when BYTES_BIG_ENDIAN.

From-SVN: r240791

8 years ago70564 fix newly-added tests for not_fn
Jonathan Wakely [Wed, 5 Oct 2016 12:40:31 +0000 (13:40 +0100)]
70564 fix newly-added tests for not_fn

PR libstdc++/70564
* testsuite/20_util/not_fn/1.cc: Fix test.
* testsuite/experimental/functional/not_fn.cc: Likewise.

From-SVN: r240784

8 years agore PR target/77847 (PowerPC big endian power7/power8 do not bootstrap due to fall...
Kelvin Nilsen [Wed, 5 Oct 2016 12:36:48 +0000 (12:36 +0000)]
re PR target/77847 (PowerPC big endian power7/power8 do not bootstrap due to fall through error)

libcpp/ChangeLog:

2016-10-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/77847
* lex.c (search_line_fast): Add a FALLTHROUGH comment to correct
compiler error in the version of this function that is
conditionally compiled when GCC_VERSION >= 4005 and both
__ALTIVEC__ and __BIG_ENDIAN__ symbols are defined.

From-SVN: r240783

8 years agoMove all existing strchr and strrchr folding from builtins.c to gimple-fold.c.
Wilco Dijkstra [Wed, 5 Oct 2016 12:31:05 +0000 (12:31 +0000)]
Move all existing strchr and strrchr folding from builtins.c to gimple-fold.c.

    gcc/
        * builtins.c (fold_builtin_strchr): Remove function.
        (fold_builtin_strrchr): Likewise.
        (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
        * gimple-fold.c (target_char_cst_p): New function.
        (gimple_fold_builtin_strchr) Add more foldings.
        (gimple_fold_builtin): Add index, strrchr, rindex cases.

From-SVN: r240782

8 years agoPR 70101 fix allocator-extended ctors for std::priority_queue
Jonathan Wakely [Wed, 5 Oct 2016 12:01:57 +0000 (13:01 +0100)]
PR 70101 fix allocator-extended ctors for std::priority_queue

PR libstdc++/70101
* include/bits/stl_queue.h (priority_queue): Fix allocator-extended
constructors.
* testsuite/23_containers/priority_queue/allocator.cc: New test.

From-SVN: r240781

8 years ago77864 Fix noexcept conditions for map/set default constructors
Jonathan Wakely [Wed, 5 Oct 2016 12:01:51 +0000 (13:01 +0100)]
77864 Fix noexcept conditions for map/set default constructors

PR libstdc++/77864
* include/bits/stl_map.h (map::map()): Use nothrow constructibility
of comparison function in conditional noexcept.
* include/bits/stl_multimap.h (multimap::multimap()): Likewise.
* include/bits/stl_multiset.h (multiset::multiset()): Likewise.
* include/bits/stl_set.h (set::set()): Likewise.
* testsuite/23_containers/map/cons/noexcept_default_construct.cc:
New test.
* testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
Likewise.
* testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
Likewise.
* testsuite/23_containers/set/cons/noexcept_default_construct.cc:
Likewise.

From-SVN: r240780

8 years agoRemove invalid alias declaration from _Node_handle
Jonathan Wakely [Wed, 5 Oct 2016 12:01:44 +0000 (13:01 +0100)]
Remove invalid alias declaration from _Node_handle

* include/bits/node_handle.h (_Node_handle): Remove invalid and unused
alias declaration.

From-SVN: r240779

8 years agoPR 70564 disambiguate constructors for not_fn call wrapper
Jonathan Wakely [Wed, 5 Oct 2016 12:01:36 +0000 (13:01 +0100)]
PR 70564 disambiguate constructors for not_fn call wrapper

PR libstdc++/70564
* include/experimental/functional (_Not_fn): Remove.
(not_fn): Use std::_Not_fn.
* include/std/functional (_Not_fn): Add second parameter to
disambiguate copying from initialization by not_fn. Define for C++14.
(not_fn): Add second argument to initialization.
* testsuite/20_util/not_fn/1.cc: Copy call wrapper using
direct-initialization.

From-SVN: r240778

8 years agore PR middle-end/77863 (genmatch segfault on a wrong usage of an for operator)
Richard Biener [Wed, 5 Oct 2016 11:58:25 +0000 (11:58 +0000)]
re PR middle-end/77863 (genmatch segfault on a wrong usage of an for operator)

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

PR middle-end/77863
* genmatch.c (capture_info::walk_c_expr): Diagnose unknown
capture ids in c-exprs.

From-SVN: r240777

8 years agore PR target/77826 (ICE in decompose, at wide-int.h:928 w/ -m64 -O2 and above)
Richard Biener [Wed, 5 Oct 2016 11:38:59 +0000 (11:38 +0000)]
re PR target/77826 (ICE in decompose, at wide-int.h:928 w/ -m64 -O2 and above)

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

PR middle-end/77826
* genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
with types_match for GIMPLE code gen to handle type mismatched
constants properly.
(dt_operand::gen): Adjust.
* match.pd ((X /[ex] A) * A -> X): Properly handle converted
and constant A.

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

From-SVN: r240776

8 years agomatch.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
Richard Biener [Wed, 5 Oct 2016 11:34:58 +0000 (11:34 +0000)]
match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.

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

* match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.

* gcc.dg/fold-copysign-1.c: New testcase.

From-SVN: r240775

8 years agore PR middle-end/77842 (genmatch segfault on a missing brace)
Richard Biener [Wed, 5 Oct 2016 09:36:27 +0000 (09:36 +0000)]
re PR middle-end/77842 (genmatch segfault on a missing brace)

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

PR middle-end/77842
* genmatch.c (parser::parse_c_expr): Handle premature EOF.

From-SVN: r240774

8 years ago* g++.dg/pr49847-2.C: Remove.
Andreas Schwab [Wed, 5 Oct 2016 09:11:27 +0000 (09:11 +0000)]
* g++.dg/pr49847-2.C: Remove.

From-SVN: r240773

8 years agoDWARF: move pessimistic DWARF version checks for imported entities
Pierre-Marie de Rodat [Wed, 5 Oct 2016 07:53:37 +0000 (07:53 +0000)]
DWARF: move pessimistic DWARF version checks for imported entities

A check in dwarf2out_imported_module_or_decl prevents
DW_TAG_imported_module from being emitted as it was introduced in the
DWARFv3 standard. However, this also prevents valid strict DWARFv2
constructs such as DW_TAG_imported_declaration from being emitted in
dwarf2out_imported_module_or_decl_1.

The latter already protects the emission of newer DWARF tags with
appropriate checks, so the one in the former is redundant and
pessimistic.  This function is already called from places like
process_scope_var, which are not protected anyway.

This patch moves the check in dwarf2out_imported_module_or_decl so that
in strict DWARFv2 mode, tags like DW_TAG_imported_declaration are
emitted while DW_TAG_imported_module are not.

gcc/

* dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
version check to protect only DW_TAG_imported_module generation.

gcc/testsuite/

* gnat.dg/debug7.adb, gnat.dg/debug7.ads: New testcase.

From-SVN: r240772

8 years agocrtbegin.S (__do_jv_register_classes): Remove.
Andreas Schwab [Wed, 5 Oct 2016 07:50:34 +0000 (07:50 +0000)]
crtbegin.S (__do_jv_register_classes): Remove.

* config/ia64/crtbegin.S (__do_jv_register_classes): Remove.
(.section .init_array): Don't call __do_jv_register_classes.
(.section .init): Likewise.

From-SVN: r240771

8 years agore PR middle-end/55152 (MAX_EXPR(a,-a) is really ABS_EXPR(a))
Richard Biener [Wed, 5 Oct 2016 07:48:24 +0000 (07:48 +0000)]
re PR middle-end/55152 (MAX_EXPR(a,-a) is really ABS_EXPR(a))

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

PR middle-end/55152
* match.pd (min(a,-a) -> -abs(a)): New pattern.

* gcc.dg/pr55152-2.c: New testcase.

From-SVN: r240770

8 years agodtio_15.f90: New test.
Jerry DeLisle [Wed, 5 Oct 2016 04:45:29 +0000 (04:45 +0000)]
dtio_15.f90: New test.

2016-10-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

* gfortran.dg/dtio_15.f90: New test.

From-SVN: r240769

8 years ago2016-10-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Jerry DeLisle [Wed, 5 Oct 2016 04:39:33 +0000 (04:39 +0000)]
2016-10-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

io/inquire.c (inquire_via_unit): Add check for internal unit
passed into child IO procedure.

From-SVN: r240768

8 years ago* g++.dg/cpp1z/class-deduction16.C: Use tuple.
Jason Merrill [Wed, 5 Oct 2016 02:33:48 +0000 (22:33 -0400)]
* g++.dg/cpp1z/class-deduction16.C: Use tuple.

From-SVN: r240766

8 years agoPR c++/77852 - class deduction from list-init
Jason Merrill [Wed, 5 Oct 2016 01:24:38 +0000 (21:24 -0400)]
PR c++/77852 - class deduction from list-init

* pt.c (do_class_deduction): Handle list-initialization.
(do_auto_deduction): Call it sooner.
(build_deduction_guide): Use tsubst_arg_types.
(rewrite_template_parm): Don't copy_type.

From-SVN: r240765

8 years agoexplow.c (allocate_dynamic_stack_space): Call do_pending_stack_adjust before handling...
Ian Lance Taylor [Wed, 5 Oct 2016 00:21:41 +0000 (00:21 +0000)]
explow.c (allocate_dynamic_stack_space): Call do_pending_stack_adjust before handling flag_split_stack.

gcc/:
* explow.c (allocate_dynamic_stack_space): Call
do_pending_stack_adjust before handling flag_split_stack.
gcc/testsuite/:
* gcc.dg/split-7.c: New test.

From-SVN: r240764

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

From-SVN: r240761

8 years agobuiltin-sprintf-warn-1.c: Cast int argument to %lc directive to wint_t to silence...
Martin Sebor [Tue, 4 Oct 2016 23:00:42 +0000 (23:00 +0000)]
builtin-sprintf-warn-1.c: Cast int argument to %lc directive to wint_t to silence -Wformat warnings on...

gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Cast int argument to
%lc directive to wint_t to silence -Wformat warnings on targets
where the latter is a distinct type such as long.

From-SVN: r240758

8 years agoPR c++/77775 - misoptimization of PMF comparison
Jason Merrill [Tue, 4 Oct 2016 21:14:18 +0000 (17:14 -0400)]
PR c++/77775 - misoptimization of PMF comparison

* constexpr.c (cxx_eval_component_reference): Use name matching
for PMFs.

From-SVN: r240757

8 years agoImplement P0091R2, Template argument deduction for class templates.
Jason Merrill [Tue, 4 Oct 2016 20:42:58 +0000 (16:42 -0400)]
Implement P0091R2, Template argument deduction for class templates.

* parser.c (cp_parser_simple_type_specifier): Parse class placeholder.
Use the location of the beginning of the type-specifier.
(cp_parser_init_declarator): Parse deduction guide.
(cp_parser_diagnose_invalid_type_name): Mention class deduction.
(cp_parser_type_id_1): Don't accept class placeholder as template arg.
* cp-tree.h (CLASS_PLACEHOLDER_TEMPLATE): New.
* decl.c (grokdeclarator): Check for uninitialized auto here.
(start_decl_1): Not here.
(cp_finish_decl): Or here.  Don't collapse a list when doing
class deduction.
(grokfndecl): Check deduction guide scope and body.
* error.c (dump_decl, dump_function_decl, dump_function_name):
Handle deduction guides.
* pt.c (make_template_placeholder, do_class_deduction): New.
(build_deduction_guide, rewrite_template_parm): New.
(dguide_name, dguide_name_p, deduction_guide_p): New.
(do_auto_deduction): Call do_class_deduction.
(splice_late_return_type, is_auto): Handle class placeholders.
(template_parms_level_to_args): Split from template_parms_to_args.
(tsubst_template_parms_level): Split from tsubst_template_parms.
* typeck2.c (build_functional_cast): Handle class placeholder.

From-SVN: r240756

8 years agoPR c++/77804 - Internal compiler error on incorrect initialization of new-d array
Martin Sebor [Tue, 4 Oct 2016 17:34:00 +0000 (17:34 +0000)]
PR c++/77804 - Internal compiler error on incorrect initialization of new-d array

gcc/cp/ChangeLog:

PR c++/77804
* init.c (warn_placement_new_too_small): Avoid assuming an array type
has a constant size.

gcc/testsuite/ChangeLog:

PR c++/77804
* g++.dg/warn/Wplacement-new-size-4.C: New test.

From-SVN: r240754

8 years agoread-md.c: track column numbers
David Malcolm [Tue, 4 Oct 2016 17:10:41 +0000 (17:10 +0000)]
read-md.c: track column numbers

gcc/ChangeLog:
* genattrtab.c (make_internal_attr): Supply dummy column number to
file_location ctor.
(main): Likewise.
* genoutput.c (init_insn_for_nothing): Likewise.
* gensupport.c (add_define_attr): Likewise.
* read-md.c (message_at_1): Print column number.
(fatal_with_file_and_line): Likewise.
(rtx_reader::read_char): Track column numbers.
(rtx_reader::unread_char): Likewise.
(rtx_reader::rtx_reader): Initialize m_read_md_colno.
(rtx_reader::handle_include): Stash and restore m_read_md_colno.
(rtx_reader::handle_file): Initialize m_read_md_colno.
(rtx_reader::get_current_location): Supply column number to
file_location ctor.
* read-md.h (struct file_location): Add field "colno".
(file_location::file_location): Likewise.
(rtx_reader::get_colno): New accessor.
(rtx_reader::m_read_md_colno): New field.
(rtx_reader::m_last_line_colno): New field.

From-SVN: r240752

8 years agore PR c++/77791 (ICE on invalid C++11 code with redefined function parameter: tree...
Jakub Jelinek [Tue, 4 Oct 2016 15:34:16 +0000 (17:34 +0200)]
re PR c++/77791 (ICE on invalid C++11 code with redefined function parameter: tree check: expected tree that contains ‘decl minimal’ structure, have ‘error_mark’ in cp_parser_lambda_declarator_opt, at cp/parser.c:1011)

PR c++/77791
* parser.c (cp_parser_lambda_declarator_opt): Only pedwarn
for C++11 on decls in the param_list.  Test cxx_dialect < cxx14 before
the loop just once.

* g++.dg/cpp0x/lambda/lambda-77791.C: New test.

From-SVN: r240751

8 years agoextend.texi (Java Exceptions): Remove.
Jakub Jelinek [Tue, 4 Oct 2016 15:32:31 +0000 (17:32 +0200)]
extend.texi (Java Exceptions): Remove.

* doc/extend.texi (Java Exceptions): Remove.
(java_interface): Remove.
cp/
* cp-tree.h (enum cp_tree_index): Remove CPTI_JAVA_*,
CPTI_LANG_NAME_JAVA and CPTI_JCLASS.
(java_byte_type_node, java_short_type_node, java_int_type_node,
java_long_type_node, java_float_type_node, java_double_type_node,
java_char_type_node, java_boolean_type_node, lang_name_java,
jclass_node): Remove.
(enum languages): Remove lang_java.
(TYPE_FOR_JAVA): Remove.
(struct lang_type_class): Remove java_interface bit-field.
(TYPE_JAVA_INTERFACE): Remove.
(pragma_java_exceptions): Remove.
(check_java_method, build_java_class_ref): Remove prototypes.
* name-lookup.c (pushtag_1): Don't set TYPE_FOR_JAVA.
* decl2.c (acceptable_java_type, check_java_method): Remove.
(import_export_decl): Remove TYPE_FOR_JAVA handling.
(build_java_method_aliases): Remove.
(c_parse_final_cleanups): Don't call build_java_method_aliases.
(possibly_inlined_p): Don't test pragma_java_exceptions.
* init.c (build_new_1): Remove TYPE_FOR_JAVA handling.
(build_java_class_ref): Remove.
* pt.c (maybe_new_partial_specialization, lookup_template_class_1,
instantiate_class_template_1): Don't copy TYPE_FOR_JAVA.
* except.c (eh_type_info): Remove java type handling.
(decl_is_java_type, choose_personality_routine): Remove.
(initialize_handler_parm): Don't call choose_personality_routine.
(expand_start_catch_block): Don't handle java types.
(build_throw): Likewise.
* cp-lang.c (cp_eh_personality): Don't handle pragma_java_exceptions.
* typeck.c (structural_comptypes): Don't compare TYPE_FOR_JAVA.
* call.c (build_over_call): Don't handle TYPE_JAVA_INTERFACE.
(java_iface_lookup_fn): Remove.
(build_java_interface_fn_ref): Remove.
* tree.c (cxx_attribute_table): Remove java_interface.
(handle_java_interface_attribute): Remove.
* lex.c (pragma_java_exceptions): Remove.
(init_cp_pragma): Don't register GCC java_exceptions pragma.
(handle_pragma_java_exceptions): Remove.
(retrofit_lang_decl): Don't handle lang_name_java.
* method.c (implicitly_declare_fn): Don't handle TYPE_FOR_JAVA.
* error.c (language_to_string): Don't handle lang_java.
* decl.c (record_builtin_java_type): Remove.
(initialize_predefined_identifiers): Remove Java.
(cxx_init_decl_processing): Remove java_*_type_node.
(cp_finish_decl): Don't handle TYPE_FOR_JAVA.
(grokfndecl): Likewise.
(check_special_function_return_type): Likewise.
(grokdeclarator): Don't set TYPE_FOR_JAVA.
(grokparms): Don't handle TYPE_FOR_JAVA.
(xref_basetypes): Likewise.
(check_function_type): Likewise.
(finish_constructor_body): Likewise.
* mangle.c (write_builtin_type): Don't handle TYPE_FOR_JAVA
and java_*_type_node.
(write_bare_function_type): Don't handle TYPE_FOR_JAVA.
(write_java_integer_type_codes): Remove.
* class.c (add_method): Don't handle TYPE_FOR_JAVA.
(add_implicitly_declared_members, determine_key_method,
finish_struct_1): Likewise.
(push_lang_context): Don't handle lang_name_java.
testsuite/
* g++.dg/other/java3.C: Remove.
* g++.dg/other/java1.C: Remove.
* g++.dg/other/error12.C: Remove.
* g++.dg/other/java2.C: Remove.
* g++.dg/warn/Wnvdtor.C: Remove.
* g++.dg/lookup/java1.C: Remove.
* g++.dg/lookup/java2.C: Remove.
* g++.dg/ext/pr34829.C: Remove.
* g++.dg/ext/java-3.C: Remove.
* g++.dg/ext/java-1.C: Remove.
* g++.dg/ext/java-2.C: Remove.
* g++.old-deja/g++.oliva/dwarf2.C: Remove.

From-SVN: r240750

8 years agore PR tree-optimization/77808 (ICE in duplicate_ssa_name_ptr_info, at tree-ssanames...
Doug Gilmore [Tue, 4 Oct 2016 15:28:23 +0000 (15:28 +0000)]
re PR tree-optimization/77808 (ICE in duplicate_ssa_name_ptr_info, at tree-ssanames.c:630 starting with r240439)

Fix PR tree-optimization/77808

gcc/
PR tree-optimization/77808
* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
and addr are different before copying points-to information.

gcc/testsuite/
PR tree-optimization/77808
* gcc.dg/tree-ssa/pr77808.c: New testcase.

From-SVN: r240749