platform/upstream/gcc.git
7 years agoUpdate .po files.
Joseph Myers [Mon, 27 Feb 2017 21:26:34 +0000 (21:26 +0000)]
Update .po files.

* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
zh_TW.po: Update.

From-SVN: r245764

7 years agoPR c++/71568 - SFINAE forming pointer to member function
Jason Merrill [Mon, 27 Feb 2017 20:17:17 +0000 (15:17 -0500)]
PR c++/71568 - SFINAE forming pointer to member function

* init.c (build_offset_ref): Check the return value of
perform_or_defer_access_check.

From-SVN: r245763

7 years agore PR target/79544 (vec_sra (unsigned long long,foo) generating vsrd instead of vsrad)
Pat Haugen [Mon, 27 Feb 2017 16:06:13 +0000 (16:06 +0000)]
re PR target/79544 (vec_sra (unsigned long long,foo) generating vsrd instead of vsrad)

PR target/79544
* config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
for arithmetic shift of unsigned V2DI.
* gcc.target/powerpc/pr79544.c: New.

From-SVN: r245762

7 years ago[ARC] Clean up arc header file. (add changelog mods)
Claudiu Zissulescu [Mon, 27 Feb 2017 14:12:27 +0000 (15:12 +0100)]
[ARC] Clean up arc header file. (add changelog mods)

From-SVN: r245760

7 years ago[ARC] Clean up arc header file.
Claudiu Zissulescu [Mon, 27 Feb 2017 13:56:02 +0000 (14:56 +0100)]
[ARC] Clean up arc header file.

gcc/
2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
arc/linux.h headers.
* config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
(LINK_SPEC): Likewise.
(ARC_TLS_EXTRA_START_SPEC): Likewise.
(EXTRA_SPECS): Likewise.
(STARTFILE_SPEC): Likewise.
(ENDFILE_SPEC): Likewise.
(LIB_SPEC): Likewise.
(TARGET_SDATA_DEFAULT): Likewise.
(TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
(MULTILIB_DEFAULTS): Likewise.
(DWARF2_UNWIND_INFO): Likewise.
* config/arc/big.h: New file.
* config/arc/elf.h: Likewise.
* config/arc/linux.h: Likewise.
* config/arc/t-uClibc: Remove.

From-SVN: r245759

7 years ago* decl.c (expand_static_init): Add missing } in a comment.
Marek Polacek [Mon, 27 Feb 2017 13:39:36 +0000 (13:39 +0000)]
* decl.c (expand_static_init): Add missing } in a comment.

From-SVN: r245758

7 years agoinit.c: Include intl.h.
Volker Reichelt [Mon, 27 Feb 2017 13:29:35 +0000 (13:29 +0000)]
init.c: Include intl.h.

2017-02-27  Volker Reichelt  <v.reichelt@netcologne.de>

       * init.c: Include intl.h.
       (build_new_1): Move message strings into pedwarn to make them
       -Wformat-security friendly. Mark string for translation.
       * pt.c (tsubst_copy_and_build): Mark string for translation.
       Make the pointer const.
       * semantics.c (finish_id_expression): Mark strings for
       * translation.

From-SVN: r245757

7 years agore PR c++/79414 (internal compiler error after "error: expected unqualified-id at...
Paolo Carlini [Mon, 27 Feb 2017 11:55:19 +0000 (11:55 +0000)]
re PR c++/79414 (internal compiler error after "error: expected unqualified-id at end of input")

2017-02-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79414
* g++.dg/parse/crash67.C: New.

From-SVN: r245756

7 years agoDon't try to use rand_s on CYGWIN
Janne Blomqvist [Mon, 27 Feb 2017 11:13:49 +0000 (13:13 +0200)]
Don't try to use rand_s on CYGWIN

CYGWIN seems to include _mingw.h and thus __MINGW64_VERSION_MAJOR is
defined even though rand_s is not available. Thus add an extra check
for __CYGWIN__.

2017-02-27  Janne Blomqvist  <jb@gcc.gnu.org>

* intrinsics/random.c (getosrandom): Don't try to use rand_s on
CYGWIN.

From-SVN: r245755

7 years agore PR tree-optimization/77536 (Vectorizer not maintaining relationship of relative...
Bin Cheng [Mon, 27 Feb 2017 10:20:36 +0000 (10:20 +0000)]
re PR tree-optimization/77536 (Vectorizer not maintaining relationship of relative block frequencies in absence of real profile data)

PR tree-optimization/77536
* tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
(tree_transform_and_unroll_loop): Use above function to compute the
estimated niter of unrolled loop and use it when scaling profile.
Also use count info rather than frequency if it's non-zero.
* tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
* tree-vect-loop.c (scale_profile_for_vect_loop): New function.
(vect_transform_loop): Call above function.

gcc/testsuite
* gcc.dg/vect/pr79347.c: Revise testing string.

From-SVN: r245754

7 years agore PR tree-optimization/45397 (Issues with integer narrowing conversions)
Richard Biener [Mon, 27 Feb 2017 08:51:28 +0000 (08:51 +0000)]
re PR tree-optimization/45397 (Issues with integer narrowing conversions)

2017-02-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/45397
* tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
* tree-ssa-sccvn.c (valueized_wider_op): New helper.
(visit_nary_op): Add pattern matching for CSEing sign-changed
or truncated operations with wider ones.

* gcc.dg/tree-ssa/pr45397.c: New testcase.

From-SVN: r245752

7 years agore PR tree-optimization/79690 (IVOPTs drops gs: prefix)
Richard Biener [Mon, 27 Feb 2017 08:50:09 +0000 (08:50 +0000)]
re PR tree-optimization/79690 (IVOPTs drops gs: prefix)

2017-02-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79690
* tree-vect-stmts.c (vectorizable_store): Use vector type
built from the DR with address-space.

* gcc.target/i386/pr79690.c: New testcase.

From-SVN: r245751

7 years agoDaily bump.
GCC Administrator [Mon, 27 Feb 2017 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r245750

7 years agoinvoke.texi (Optimize Options): Refine the description of asan-use-after-return.
Gerald Pfeifer [Sun, 26 Feb 2017 22:10:27 +0000 (22:10 +0000)]
invoke.texi (Optimize Options): Refine the description of asan-use-after-return.

* doc/invoke.texi (Optimize Options): Refine the description
of asan-use-after-return.

From-SVN: r245747

7 years ago* MAINTAINERS: Remove Neil Booth as option handling maintainer.
Gerald Pfeifer [Sun, 26 Feb 2017 22:07:22 +0000 (22:07 +0000)]
* MAINTAINERS: Remove Neil Booth as option handling maintainer.

From-SVN: r245746

7 years agore PR libfortran/51119 (MATMUL slow for large matrices)
Thomas Koenig [Sun, 26 Feb 2017 13:22:43 +0000 (13:22 +0000)]
re PR libfortran/51119 (MATMUL slow for large matrices)

2017-02-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/51119
* options.c (gfc_post_options): Set default limit for matmul
inlining to 30.
* invoke.texi: Document change.

2017-02-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/51119
* gfortran.dg/inline_matmul_1.f90: Scan optimized dump instead
of original.
* gfortran.dg/inline_matmul_11.f90: Likewise.
* gfortran.dg/inline_matmul_9.f90: Likewise.
* gfortran.dg/matmul_13.f90: New test.
* gfortran.dg/matmul_14.f90: New test.

From-SVN: r245745

7 years agoDaily bump.
GCC Administrator [Sun, 26 Feb 2017 00:16:29 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r245744

7 years agoPR79584, ICE in base_to_reg
Alan Modra [Sat, 25 Feb 2017 22:44:41 +0000 (09:14 +1030)]
PR79584, ICE in base_to_reg

PR rtl-optimization/79584
* lra-constraints.c (base_to_reg): Reload ad->base, the entire
base, not ad->base_term, the reg within base.  Remove assertion
that ad->base == ad->base_term.  Replace gen_int_mode using
bogus mode with const0_rtx.

From-SVN: r245741

7 years agore PR target/68739 (FAIL: 30_threads/call_once/constexpr.cc (test for excess errors))
John David Anglin [Sat, 25 Feb 2017 20:29:39 +0000 (20:29 +0000)]
re PR target/68739 (FAIL: 30_threads/call_once/constexpr.cc (test for excess errors))

PR target/68739
* inclhack.def (hpux11_pthread_pointer): New fix.
(hpux11_pthread_const): Adjust to remove void * cast from define.
* fixincl.x: Regenerate.

From-SVN: r245740

7 years ago* gcc.pot: Regenerate.
Joseph Myers [Sat, 25 Feb 2017 19:17:41 +0000 (19:17 +0000)]
* gcc.pot: Regenerate.

From-SVN: r245739

7 years ago* fr.po: Update.
Joseph Myers [Sat, 25 Feb 2017 19:13:02 +0000 (19:13 +0000)]
* fr.po: Update.

From-SVN: r245738

7 years agore PR middle-end/79396 (ICE (verify_flow_info failed) with -fnon-call-exceptions...
Jakub Jelinek [Sat, 25 Feb 2017 10:17:31 +0000 (11:17 +0100)]
re PR middle-end/79396 (ICE (verify_flow_info failed) with -fnon-call-exceptions -O2 -march=haswell)

PR middle-end/79396
* tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
FMA_EXPR like tcc_binary or tcc_unary.

* g++.dg/opt/pr79396.C: New test.

From-SVN: r245735

7 years agotree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
Jakub Jelinek [Sat, 25 Feb 2017 08:33:17 +0000 (09:33 +0100)]
tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.

* tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
cp/
* call.c (build_op_delete_call): Make msg1 and msg2 const.

From-SVN: r245734

7 years agore PR debug/77589 (fortran: Missing DW_AT_byte_stride for an array record field selec...
Jakub Jelinek [Sat, 25 Feb 2017 08:18:24 +0000 (09:18 +0100)]
re PR debug/77589 (fortran: Missing DW_AT_byte_stride for an array record field selection)

PR debug/77589
include/
* dwarf2.def (DW_OP_GNU_variable_value): New opcode.
gcc/
* dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
bitfield.
(size_of_loc_descr): Handle DW_OP_GNU_variable_value.
(output_loc_operands): Handle DW_OP_call_ref and
DW_OP_GNU_variable_value.
(struct variable_value_struct): New type.
(struct variable_value_hasher): Likewise.
(variable_value_hash): New variable.
(string_types): Remove.
(copy_loc_descr): New function.
(add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
(prepend_loc_descr_to_each): New function.
(add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
instead of add_loc_descr_to_each if the first argument is single
location list and the second has multiple.
(resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
(loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
when looking for variable value which doesn't have other location info.
(loc_list_from_tree): Formatting fix.
(gen_array_type_die): Simplify DW_AT_string_length handling.
(adjust_string_types): Remove.
(gen_subprogram_die): Don't call adjust_string_types nor test/set
string_types.  Call resolve_variable_values.
(prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
(resolve_addr_in_expr): Likewise.  Add A argument.
(copy_deref_exprloc): Remove deref argument.  Adjust for the
original expression being DW_OP_GNU_variable_value with optionally
DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
optionally after it.
(optimize_string_length): Rework for DW_OP_GNU_variable_value.
(resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
(variable_value_hasher::hash, variable_value_hasher::equal): New
methods.
(resolve_variable_value_in_expr, resolve_variable_value,
resolve_variable_values, note_variable_value_in_expr,
note_variable_value): New functions.
(dwarf2out_early_finish): Call note_variable_value on all toplevel
DIEs.

From-SVN: r245733

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

From-SVN: r245732

7 years agore PR fortran/79597 (Incomplete error message "Expecting %<END INTERFACE OPERATOR")
Dominique d'Humieres [Fri, 24 Feb 2017 23:40:42 +0000 (00:40 +0100)]
re PR fortran/79597 (Incomplete error message "Expecting %<END INTERFACE OPERATOR")

2017-02-25  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/79597
* interface.c (gfc_match_end_interface): Remove spurious comma
and space, replace 'got %s' with 'got %qs'.

2017-02-25  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/79597
* gfortran.dg/dtio_6.f90: Update test.

2017-02-25  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/79601
* interface.c (check_dtio_arg_TKR_intent): Change 'intent'
to 'INTENT'.

2017-02-25  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/79601
* gfortran.dg/interface_operator_2.f90: New test.

From-SVN: r245729

7 years agore PR c/79677 (Weird handling of -Werror=)
Jakub Jelinek [Fri, 24 Feb 2017 23:15:56 +0000 (00:15 +0100)]
re PR c/79677 (Weird handling of -Werror=)

PR c/79677
* opts.h (handle_generated_option): Add GENERATED_P argument.
* opts-common.c (handle_option): Adjust function comment.
(handle_generated_option): Add GENERATED_P argument, pass it to
handle_option.
(control_warning_option): Pass false to handle_generated_option
GENERATED_P.
* opts.c (maybe_default_option): Pass true to handle_generated_option
GENERATED_P.
* optc-gen.awk: Likewise.
ada/
* gcc-interface/misc.c (gnat_handle_option): Pass true to
handle_generated_option GENERATED_P.
testsuite/
* gcc.dg/pr79677.c: New test.

From-SVN: r245728

7 years agosh: Fixes for RTL checking
Segher Boessenkool [Fri, 24 Feb 2017 22:42:49 +0000 (23:42 +0100)]
sh: Fixes for RTL checking

* config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
a REG, look at the REG it is a SUBREG of.
(splitter for cmpeqsi_t): Ditto.

From-SVN: r245727

7 years agopa: Fixes for RTL checking
Segher Boessenkool [Fri, 24 Feb 2017 22:41:02 +0000 (23:41 +0100)]
pa: Fixes for RTL checking

* config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
the special USEs with the pattern of the insn, not the insn itself.

From-SVN: r245726

7 years agoAdd documentation for -mload-store-pairs
Matthew Fortune [Fri, 24 Feb 2017 22:35:59 +0000 (22:35 +0000)]
Add documentation for -mload-store-pairs

gcc/
PR target/79473
* doc/invoke.texi: Document -mload-store-pairs.

From-SVN: r245725

7 years agonios2.c (nios2_simple_const_p): Returns false if the argument isn't a CONST_INT.
Segher Boessenkool [Fri, 24 Feb 2017 22:35:18 +0000 (23:35 +0100)]
nios2.c (nios2_simple_const_p): Returns false if the argument isn't a CONST_INT.

2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
    Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
argument isn't a CONST_INT.
(nios2_alternate_compare_const): Assert op is a CONST_INT.
(nios2_valid_compare_const_p): Assert op is a CONST_INT.
(nios2_validate_compare): Bypass alternate compare logic if *op2
is not a CONST_INT.
(ldstwm_operation_p): Return false if first_base is not a REG or
if first_offset is not a CONST_INT.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>
From-SVN: r245724

7 years agocris: Fix for RTL checking
Segher Boessenkool [Fri, 24 Feb 2017 22:34:37 +0000 (23:34 +0100)]
cris: Fix for RTL checking

* config/cris/cris.md: Use correct operand in a define_peephole2.

From-SVN: r245723

7 years agoUpdate paired single tests to cope with ABI fixes for o32/o64
Matthew Fortune [Fri, 24 Feb 2017 22:34:25 +0000 (22:34 +0000)]
Update paired single tests to cope with ABI fixes for o32/o64

gcc/testsuite/

* gcc.target/mips/mips-ps-type-2.c (move): Force generation
of mov.ps.
* gcc.target/mips/mips-ps-type.c (move): Likewise.
(cond_move1): Simplify condition to force generation of
mov[nz].ps.
(cond_move2): Likewise.

From-SVN: r245722

7 years agoc6x: Fix for RTL checking
Segher Boessenkool [Fri, 24 Feb 2017 22:32:46 +0000 (23:32 +0100)]
c6x: Fix for RTL checking

* config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.

From-SVN: r245721

7 years agoarc: Fixes for RTL checking
Segher Boessenkool [Fri, 24 Feb 2017 22:20:14 +0000 (23:20 +0100)]
arc: Fixes for RTL checking

* config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
this_insn if it is an INSN or JUMP_INSN.
(force_offsettable): Look at base, not at addr.
* config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
on things that aren' necessarily CONST_INTs.

From-SVN: r245720

7 years agore PR c++/79588 (ICE in warn_for_restrict with -Wrestrict)
Jakub Jelinek [Fri, 24 Feb 2017 20:41:54 +0000 (21:41 +0100)]
re PR c++/79588 (ICE in warn_for_restrict with -Wrestrict)

PR c++/79588
c-family/
* c-common.c (check_function_restrict): New function.
(check_function_arguments): Add FNDECL argument.  Call
check_function_restrict if -Wrestrict.
* c-warn.c (warn_for_restrict): Remove ARGS argument, add ARGARRAY
and NARGS.  Use auto_vec for ARG_POSITIONS, simplify.
* c-common.h (check_function_arguments): Add FNDECL argument.
(warn_for_restrict): Remove ARGS argument, add ARGARRAY and NARGS.
c/
* c-parser.c (c_parser_postfix_expression_after_primary): Don't
handle -Wrestrict here.
* c-typeck.c (build_function_call_vec): Adjust
check_function_arguments caller.
cp/
* call.c (build_over_call): Call check_function_arguments even for
-Wrestrict, adjust check_function_arguments caller.
* parser.c (cp_parser_postfix_expression): Don't handle -Wrestrict
here.
* typeck.c (cp_build_function_call_vec): Adjust
check_function_arguments caller.
testsuite/
* g++.dg/warn/Wrestrict-1.C: New test.
* g++.dg/warn/Wrestrict-2.C: New test.

From-SVN: r245719

7 years agore PR translation/79705 (cp/decl.c message not marked for translation)
Marek Polacek [Fri, 24 Feb 2017 18:54:13 +0000 (18:54 +0000)]
re PR translation/79705 (cp/decl.c message not marked for translation)

PR translation/79705
* decl.c (check_redeclaration_exception_specification): Mark a string
for translation.  Make the pointer const.

From-SVN: r245717

7 years agoRequire LTO.
David Edelsohn [Fri, 24 Feb 2017 18:39:44 +0000 (13:39 -0500)]
Require LTO.

Add initial ChangeLog entry.

From-SVN: r245716

7 years agoinvoke.texi (x86 Options, [...]): Mention that -mfpmath=sse is the default also for...
Uros Bizjak [Fri, 24 Feb 2017 18:18:57 +0000 (19:18 +0100)]
invoke.texi (x86 Options, [...]): Mention that -mfpmath=sse is the default also for x86-32 targets with SSE2...

* doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
-mfpmath=sse is the default also for x86-32 targets with SSE2
instruction set when @option{-ffast-math} is enabled

From-SVN: r245715

7 years agore PR rtl-optimization/79286 (ira and lra wrong code at -O2 and -Os on i686-linux)
Jeff Law [Fri, 24 Feb 2017 15:36:10 +0000 (08:36 -0700)]
re PR rtl-optimization/79286 (ira and lra wrong code at -O2 and -Os on i686-linux)

PR rtl-optimizatoin/79286
* ira.c (update_equiv_regs): Drop may_trap_p exception to
dominance test.

From-SVN: r245714

7 years agore PR tree-optimization/79389 (30% performance regression in SciMark2 MonteCarlo)
Richard Biener [Fri, 24 Feb 2017 11:51:33 +0000 (11:51 +0000)]
re PR tree-optimization/79389 (30% performance regression in SciMark2 MonteCarlo)

2017-02-24  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79389
* gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
debug insns.

From-SVN: r245713

7 years agoUse logical_op_short_circuit to skip targets in ssa-thread-14.c.
Toma Tabacu [Fri, 24 Feb 2017 11:03:12 +0000 (11:03 +0000)]
Use logical_op_short_circuit to skip targets in ssa-thread-14.c.

gcc/testsuite/

* gcc.dg/tree-ssa/ssa-thread-14.c (dg-options): Use
logical_op_short_circuit to skip targets.
(dg-additional-options): Don't pass -mbranch-cost=2 for MIPS, AVR
and s390.

From-SVN: r245711

7 years agodecl.c (gnat_to_gnu_field): Do not remove the wrapper around a justified modular...
Eric Botcazou [Fri, 24 Feb 2017 11:03:08 +0000 (11:03 +0000)]
decl.c (gnat_to_gnu_field): Do not remove the wrapper around a justified modular type if...

* gcc-interface/decl.c (gnat_to_gnu_field): Do not remove the wrapper
around a justified modular type if it doesn't have the same scalar
storage order as the enclosing record type.

From-SVN: r245710

7 years agotree-ssa-loop-niter.c (number_of_iterations_exit): Update function comment to reflect...
Aldy Hernandez [Fri, 24 Feb 2017 11:02:16 +0000 (11:02 +0000)]
tree-ssa-loop-niter.c (number_of_iterations_exit): Update function comment to reflect reality.

* tree-ssa-loop-niter.c (number_of_iterations_exit): Update
function comment to reflect reality.
(loop_exits_before_overflow): Fix typo in function description.

From-SVN: r245709

7 years agotrans.c (gnat_to_gnu): Do not apply special handling of boolean rvalues to function...
Eric Botcazou [Fri, 24 Feb 2017 10:54:00 +0000 (10:54 +0000)]
trans.c (gnat_to_gnu): Do not apply special handling of boolean rvalues to function calls.

* gcc-interface/trans.c (gnat_to_gnu): Do not apply special handling
of boolean rvalues to function calls.

From-SVN: r245706

7 years agoutils.c (fold_bit_position): New function.
Eric Botcazou [Fri, 24 Feb 2017 10:48:38 +0000 (10:48 +0000)]
utils.c (fold_bit_position): New function.

* gcc-interface/utils.c (fold_bit_position): New function.
(rest_of_record_type_compilation): Call it instead of bit_position to
compute the field position and remove the call to remove_conversions.
(compute_related_constant): Factor out the multiplication in both
operands, if any, and streamline the final test.

From-SVN: r245704

7 years ago* gcc-interface/trans.c (return_value_ok_for_nrv_p): Add sanity check.
Eric Botcazou [Fri, 24 Feb 2017 10:35:14 +0000 (10:35 +0000)]
* gcc-interface/trans.c (return_value_ok_for_nrv_p): Add sanity check.

From-SVN: r245701

7 years agoc-ada-spec.c (dump_ada_function_declaration): Add comment about the treatment of...
Eric Botcazou [Fri, 24 Feb 2017 10:21:39 +0000 (10:21 +0000)]
c-ada-spec.c (dump_ada_function_declaration): Add comment about the treatment of parameters with pointer-to-tagged type and...

c-family/
* c-ada-spec.c (dump_ada_function_declaration): Add comment about the
treatment of parameters with pointer-to-tagged type and tidy up.
(print_ada_methods): Remove the special treatment of C++ static member
functions.
ada/
* gcc-interface/decl.c: Include demangle.h.
(is_cplusplus_method): Return again true for a primitive operation
only if it is dispatching.  For a subprogram with an interface name,
call the demangler to get the number of C++ parameters and compare it
with the number of Ada parameters.

From-SVN: r245700

7 years agotrans.c (Handled_Sequence_Of_Statements_to_gnu): If there is no end label...
Eric Botcazou [Fri, 24 Feb 2017 10:07:45 +0000 (10:07 +0000)]
trans.c (Handled_Sequence_Of_Statements_to_gnu): If there is no end label...

* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): If
there is no end label, put the location of the At_End procedure on
the call to the procedure.

From-SVN: r245699

7 years agomisc.c (gnat_type_max_size): Try to return a meaningful value for array types with...
Eric Botcazou [Fri, 24 Feb 2017 10:00:04 +0000 (10:00 +0000)]
misc.c (gnat_type_max_size): Try to return a meaningful value for array types with TYPE_INDEX_TYPE set on...

* gcc-interface/misc.c (gnat_type_max_size): Try to return a meaningful
value for array types with TYPE_INDEX_TYPE set on their domain type.
* gcc-interface/utils.c (max_size): For operations and expressions, do
not build a new node if the operands have not changed or are missing.

From-SVN: r245698

7 years agoutils.c (max_size): Flip the second argument when recursing on TRUTH_NOT_EXPR.
Eric Botcazou [Fri, 24 Feb 2017 09:52:31 +0000 (09:52 +0000)]
utils.c (max_size): Flip the second argument when recursing on TRUTH_NOT_EXPR.

* gcc-interface/utils.c (max_size) <tcc_expression>: Flip the second
argument when recursing on TRUTH_NOT_EXPR.

From-SVN: r245697

7 years agore PR tree-optimization/79389 (30% performance regression in SciMark2 MonteCarlo)
Richard Biener [Fri, 24 Feb 2017 08:04:31 +0000 (08:04 +0000)]
re PR tree-optimization/79389 (30% performance regression in SciMark2 MonteCarlo)

2017-02-24  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79389
* gimple-ssa-split-paths.c (is_feasible_trace): Verify more
properly that a threading opportunity exists.  Detect conditional
copy/constant propagation opportunities.

* gcc.dg/tree-ssa/split-path-10.c: New testcase.

From-SVN: r245696

7 years agoDaily bump.
GCC Administrator [Fri, 24 Feb 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r245695

7 years agore PR c++/79361 (ICE redefining a template function as defaulted or deleted)
Paolo Carlini [Thu, 23 Feb 2017 23:20:58 +0000 (23:20 +0000)]
re PR c++/79361 (ICE redefining a template function as defaulted or deleted)

/cp
2017-02-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79361
* pt.c (register_specialization): Check duplicate_decls return value
for error_mark_node and pass it back.

/testsuite
2017-02-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79361
* g++.dg/cpp0x/pr79361-1.C: New.
* g++.dg/cpp0x/pr79361-2.C: Likewise.

From-SVN: r245692

7 years agovisium.md (type): Add trap.
Eric Botcazou [Thu, 23 Feb 2017 23:04:00 +0000 (23:04 +0000)]
visium.md (type): Add trap.

* config/visium/visium.md (type): Add trap.
(b): New mode attribute.
(*btst): Rename into...
(*btst<mode>): ...this and adjust.
(*cbranchsi4_btst_insn): Rename into...
(*cbranch<mode>4_btst_insn): ...this and adjust.
(trap): New define_insn.

From-SVN: r245691

7 years agore PR tree-optimization/79389 (30% performance regression in SciMark2 MonteCarlo)
Jakub Jelinek [Thu, 23 Feb 2017 22:05:19 +0000 (23:05 +0100)]
re PR tree-optimization/79389 (30% performance regression in SciMark2 MonteCarlo)

PR tree-optimization/79389
* ifcvt.c (struct noce_if_info): Add rev_cond field.
(noce_reversed_cond_code): New function.
(noce_emit_store_flag): Use rev_cond if non-NULL instead of
reversed_comparison_code.  Formatting fix.
(noce_try_store_flag): Test rev_cond != NULL in addition to
reversed_comparison_code.
(noce_try_store_flag_constants): Likewise.
(noce_try_store_flag_mask): Likewise.
(noce_try_addcc): Use rev_cond if non-NULL instead of
reversed_comparison_code.
(noce_try_cmove_arith): Likewise.  Formatting fixes.
(noce_try_minmax, noce_try_abs): Clear rev_cond.
(noce_find_if_block): Initialize rev_cond.
(find_cond_trap): Call noce_get_condition with then_bb == trap_bb
instead of false as last argument never attempt to reverse it
afterwards.

From-SVN: r245690

7 years agore PR tree-optimization/79663 (r244815 causes 10% regression for spec1k/172.mgrid...
Bin Cheng [Thu, 23 Feb 2017 22:02:01 +0000 (22:02 +0000)]
re PR tree-optimization/79663 (r244815 causes 10% regression for spec1k/172.mgrid on AArch64)

2017-01-21  Bin Cheng  <bin.cheng@arm.com>

PR tree-optimization/79663
* tree-predcom.c (combine_chains): Process refs in reverse order
only for ZERO length chains, and add explaining comment.

From-SVN: r245689

7 years agore PR tree-optimization/79578 (Unnecessary instructions in generated code)
Jeff Law [Thu, 23 Feb 2017 21:43:03 +0000 (14:43 -0700)]
re PR tree-optimization/79578 (Unnecessary instructions in generated code)

PR tree-optimization/79578
* tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
in call to operand_equal_p.

From-SVN: r245688

7 years agoEnsure <experimental/iterator> includes <iterator>
Jonathan Wakely [Thu, 23 Feb 2017 18:25:22 +0000 (18:25 +0000)]
Ensure <experimental/iterator> includes <iterator>

* include/experimental/iterator: Include <iterator>.
* testsuite/experimental/iterator/requirements.cc: Check for contents
of <iterator>.

From-SVN: r245686

7 years agoPR 68749: S/390: Disable ifcvt-4.c for -m31.
Dominik Vogt [Thu, 23 Feb 2017 15:18:16 +0000 (15:18 +0000)]
PR 68749: S/390: Disable ifcvt-4.c for -m31.

gcc/testsuite/ChangeLog:

2017-02-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

PR 68749
* gcc.dg/ifcvt-4.c: Disable for -m31, use -march=z196.

From-SVN: r245684

7 years agore PR c/79684 (Conditional jump or move depends on uninitialised value in GIMPLE FE)
Richard Biener [Thu, 23 Feb 2017 12:38:39 +0000 (12:38 +0000)]
re PR c/79684 (Conditional jump or move depends on uninitialised value in GIMPLE FE)

2017-02-23  Richard Biener  <rguenther@suse.de>

PR c/79684
* gimple-parser.c (c_parser_gimple_statement): Use set_error
to initialize c_exprs to return.
(c_parser_gimple_binary_expression): Likewise.
(c_parser_gimple_unary_expression): Likewise.
(c_parser_gimple_postfix_expression): Likewise.

From-SVN: r245681

7 years agore PR target/71017 (libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift...
Dominique d'Humieres [Thu, 23 Feb 2017 12:19:05 +0000 (13:19 +0100)]
re PR target/71017 (libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift of 1 by 31 places cannot be represented in type 'int')

2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>

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

From-SVN: r245680

7 years agore PR tree-optimization/79683 (SLP vectorizer drops gs: prefix)
Richard Biener [Thu, 23 Feb 2017 11:43:51 +0000 (11:43 +0000)]
re PR tree-optimization/79683 (SLP vectorizer drops gs: prefix)

2017-02-23  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79683
* tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
vector types for data-refs.

* gcc.target/i386/pr79683.c: New testcase.

From-SVN: r245679

7 years agoFix typo in ChangeLog
Martin Liska [Thu, 23 Feb 2017 08:45:54 +0000 (08:45 +0000)]
Fix typo in ChangeLog

From-SVN: r245678

7 years agoChange default of param not being smaller that min.
Martin Liska [Thu, 23 Feb 2017 08:38:35 +0000 (09:38 +0100)]
Change default of param not being smaller that min.

2017-02-23  Martin Liska  <mliska@suse.cz>

* params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.

From-SVN: r245677

7 years agore PR middle-end/79665 (gcc's signed (x*x)/200 is slower than clang's)
Jakub Jelinek [Thu, 23 Feb 2017 07:49:06 +0000 (08:49 +0100)]
re PR middle-end/79665 (gcc's signed (x*x)/200 is slower than clang's)

PR middle-end/79665
* internal-fn.c (get_range_pos_neg): Moved to ...
* tree.c (get_range_pos_neg): ... here.  No longer static.
* tree.h (get_range_pos_neg): New prototype.
* expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
are known to be in between 0 and signed maximum inclusive, try to
expand both unsigned and signed divmod and use the cheaper one from
those.

From-SVN: r245676

7 years agore PR tree-optimization/79578 (Unnecessary instructions in generated code)
Jeff Law [Thu, 23 Feb 2017 05:47:43 +0000 (22:47 -0700)]
re PR tree-optimization/79578 (Unnecessary instructions in generated code)

PR tree-optimization/79578
* tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
to compare base operands.

PR tree-optimization/79578
* g++.dg/tree-ssa/ssa-dse-3.C: New test.

From-SVN: r245675

7 years agoPR c++/79679 - missing destructor for argument
Jason Merrill [Thu, 23 Feb 2017 01:15:43 +0000 (20:15 -0500)]
PR c++/79679 - missing destructor for argument

PR c++/79679 - missing destructor for argument
* call.c (build_over_call): Don't pass tf_no_cleanup to argument
conversions.

From-SVN: r245672

7 years agoDaily bump.
GCC Administrator [Thu, 23 Feb 2017 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r245671

7 years agors6000: Fix fsel pattern (PR79211)
Segher Boessenkool [Wed, 22 Feb 2017 23:50:46 +0000 (00:50 +0100)]
rs6000: Fix fsel pattern (PR79211)

The fsel define_insn uses fpr_reg_operand for its predicates.  This
won't work because passes can put a hard register in the operands: in
the testcase, combine likes to forward the parameter registers to what
then is still an smin, and then split1 uses "*s<minmax><mode>3_fpr"
(which has gpc_reg_operand).  And then we have a GPR in the operand,
which does not match fpr_reg_operand.

It seems to me the predicates should be gpc_reg_operand here as well.
This patch changes that.

PR target/79211
* config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
gpc_reg_operand instead of fpr_reg_operand.

From-SVN: r245667

7 years agoFix MIPS o32 calling convention for MSA and FP vector types
Sameera Deshpande [Wed, 22 Feb 2017 23:09:43 +0000 (23:09 +0000)]
Fix MIPS o32 calling convention for MSA and FP vector types

gcc/
* config/mips/mips.c (mips_return_in_memory): Force FP
vector types to be returned in memory for o32 ABI.

gcc/testsuite/

* gcc.target/mips/msa-fp-cc.c: New test.

From-SVN: r245666

7 years ago* pt.c (do_class_deduction): Handle 0 argument case.
Jason Merrill [Wed, 22 Feb 2017 22:55:26 +0000 (17:55 -0500)]
* pt.c (do_class_deduction): Handle 0 argument case.

From-SVN: r245665

7 years agore PR c++/79664 (ICE with #pragma omp parallel in constexpr function)
Jakub Jelinek [Wed, 22 Feb 2017 22:36:20 +0000 (23:36 +0100)]
re PR c++/79664 (ICE with #pragma omp parallel in constexpr function)

PR c++/79664
* parser.c (cp_parser_omp_teams, cp_parser_omp_target): Use
SET_EXPR_LOCATION on OMP_TARGET/OMP_TEAMS tree.
* constexpr.c (potential_constant_expression_1): Handle
OMP_*, OACC_* and CILK_* trees.  Use error_at with
EXPR_LOC_OR_LOC (t, input_location) computed early
instead of error, or error_at with location_of (t).

* g++.dg/gomp/teams-1.C: Adjust expected diagnostic location.
* g++.dg/cpp1y/constexpr-throw.C: Likewise.
* g++.dg/gomp/pr79664.C: New test.

From-SVN: r245662

7 years agodwarf2out.c (gen_variable_die): For -gdwarf-5...
Jakub Jelinek [Wed, 22 Feb 2017 21:33:47 +0000 (22:33 +0100)]
dwarf2out.c (gen_variable_die): For -gdwarf-5...

* dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
instead of DW_TAG_member for static data member declarations and don't
set no_linkage_name for static inline data members.
(gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
to DW_TAG_member.

* g++.dg/debug/dwarf2/inline-var-2.C: New test.

From-SVN: r245661

7 years agore PR c/79662 (ICE on invalid code in convert_arguments in c/c-typeck.c:3452)
Marek Polacek [Wed, 22 Feb 2017 21:28:42 +0000 (21:28 +0000)]
re PR c/79662 (ICE on invalid code in convert_arguments in c/c-typeck.c:3452)

PR c/79662
* c-typeck.c (convert_arguments): Handle error_mark_node.

* gcc.dg/enum-incomplete-4.c: New test.

From-SVN: r245660

7 years agoinstead of -Wnormalized=<options>
Martin Liska [Wed, 22 Feb 2017 21:15:46 +0000 (22:15 +0100)]
instead of -Wnormalized=<options>

2017-02-22  Martin Liska  <mliska@suse.cz>

* doc/invoke.texi: Replace inequality signs with square brackets
for -Wnornalized.
2017-02-22  Martin Liska  <mliska@suse.cz>

* c.opt: Replace inequality signs with square brackets
for -Wnornalized.

From-SVN: r245659

7 years agore PR c++/79657 (ICE on invalid c++ code in finish_underlying_type cp/semantics.c...
Marek Polacek [Wed, 22 Feb 2017 19:33:13 +0000 (19:33 +0000)]
re PR c++/79657 (ICE on invalid c++ code in finish_underlying_type cp/semantics.c:3849)

PR c++/79657
* semantics.c (finish_underlying_type): Bail out for incomplete enums.

* g++.dg/ext/underlying_type12.C: New test.

From-SVN: r245658

7 years agore PR c++/79653 (ICE on invalid c++ code in cp_check_const_attributes in cp/decl2...
Marek Polacek [Wed, 22 Feb 2017 19:31:49 +0000 (19:31 +0000)]
re PR c++/79653 (ICE on invalid c++ code in cp_check_const_attributes in cp/decl2.c:1423)

PR c++/79653
* parser.c (cp_parser_std_attribute_spec): Don't build the attribute
if the alignas expression is erroneous.
* pt.c (tsubst_attribute): If tsubst_pack_expansion fails, return
error_mark_node.

* g++.dg/cpp0x/alignas10.C: New test.
* g++.dg/cpp0x/alignas9.C: New test.

From-SVN: r245657

7 years agore PR tree-optimization/68644 (FAIL: gcc.dg/tree-ssa/ivopts-lt-2.c scan-tree-dump...
Bill Schmidt [Wed, 22 Feb 2017 18:00:21 +0000 (18:00 +0000)]
re PR tree-optimization/68644 (FAIL: gcc.dg/tree-ssa/ivopts-lt-2.c scan-tree-dump-times ivopts "PHI <p_" 1)

2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/68644
* gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.

From-SVN: r245656

7 years agoSupport WORD_REGISTER_OPERATIONS requirements in simplify_operand_subreg
Matthew Fortune [Wed, 22 Feb 2017 17:20:14 +0000 (17:20 +0000)]
Support WORD_REGISTER_OPERATIONS requirements in simplify_operand_subreg

gcc/
PR target/78660
* lra-constraints.c (simplify_operand_subreg): Handle
WORD_REGISTER_OPERATIONS targets.

From-SVN: r245655

7 years agore PR target/70465 (Poor code for x87 asm)
Jakub Jelinek [Wed, 22 Feb 2017 17:17:17 +0000 (18:17 +0100)]
re PR target/70465 (Poor code for x87 asm)

PR target/70465
* reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
elimination by swapping fld*.

* gcc.target/i386/pr70465-2.c: New test.

From-SVN: r245654

7 years agopr61441.c: Use dg-add-options ieee.
Uros Bizjak [Wed, 22 Feb 2017 15:39:03 +0000 (16:39 +0100)]
pr61441.c: Use dg-add-options ieee.

* gcc.dg/pr61441.c: Use dg-add-options ieee.

From-SVN: r245652

7 years agoChangeLog: Add missing entry.
Uros Bizjak [Wed, 22 Feb 2017 15:36:24 +0000 (16:36 +0100)]
ChangeLog: Add missing entry.

* ChangeLog: Add missing entry.
* testsuite/ChangeLog: Ditto.

From-SVN: r245651

7 years agore PR middle-end/79673 (GIMPLE verification fails when compiling code with __seg_gs)
Richard Biener [Wed, 22 Feb 2017 15:00:39 +0000 (15:00 +0000)]
re PR middle-end/79673 (GIMPLE verification fails when compiling code with __seg_gs)

2017-02-22  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79673
* tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
irrelevant address-space qualifiers and avoiding a
ADDR_SPACE_CONVERT_EXPR from fold_convert.

* gcc.target/i386/pr79673.c: New testcase.

From-SVN: r245649

7 years agore PR tree-optimization/79666 (wrong code (SIGFPE) at -O2 on x86_64-linux-gnu (in...
Richard Biener [Wed, 22 Feb 2017 12:11:27 +0000 (12:11 +0000)]
re PR tree-optimization/79666 (wrong code (SIGFPE) at -O2 on x86_64-linux-gnu (in both 32-bit and 64-bit modes))

2017-02-22  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79666
* tree-vrp.c (extract_range_from_binary_expr_1): Make sure
to not symbolically negate if that may introduce undefined
overflow.

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

From-SVN: r245648

7 years agoRemove wrong assert about gcov_type (PR lto/79587).
Martin Liska [Wed, 22 Feb 2017 09:45:42 +0000 (10:45 +0100)]
Remove wrong assert about gcov_type (PR lto/79587).

2017-02-22  Martin Liska  <mliska@suse.cz>

PR lto/79587
* data-streamer-in.c (streamer_read_gcov_count): Remove assert.
* data-streamer-out.c (streamer_write_gcov_count_stream):
Likewise.
* value-prof.c (stream_out_histogram_value): Make assert more
precise based on type of counter.
2017-02-22  Martin Liska  <mliska@suse.cz>

PR lto/79587
* gcc.dg/tree-prof/pr79587.c: New test.

From-SVN: r245647

7 years agoDaily bump.
GCC Administrator [Wed, 22 Feb 2017 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r245646

7 years agoPR c++/50308 - wrong deprecated warning with ADL
Jason Merrill [Tue, 21 Feb 2017 20:51:03 +0000 (15:51 -0500)]
PR c++/50308 - wrong deprecated warning with ADL

PR c++/17729 - duplicate deprecated warning
* semantics.c (finish_id_expression): Only call mark_used on a
function if we aren't building a call.

From-SVN: r245643

7 years agoPR c++/41727 - ICE with partial spec of partial instantiation
Jason Merrill [Tue, 21 Feb 2017 20:50:57 +0000 (15:50 -0500)]
PR c++/41727 - ICE with partial spec of partial instantiation

* pt.c (process_partial_specialization): For now, don't check more
specialized if there is more than one level of args.

From-SVN: r245642

7 years agore PR c++/79535 (ICE in verify_ctor_sanity, at cp/constexpr.c:2636)
Marek Polacek [Tue, 21 Feb 2017 20:23:09 +0000 (20:23 +0000)]
re PR c++/79535 (ICE in verify_ctor_sanity, at cp/constexpr.c:2636)

PR c++/79535
* cp-tree.h (maybe_reject_flexarray_init): Declare.
* init.c (maybe_reject_flexarray_init): No longer static.
Add check for current_function_decl.
* parser.c (cp_parser_late_parse_one_default_arg): Reject
a default mem-initializer for a flexible array.

* g++.dg/ext/flexary23.C: New test.

From-SVN: r245641

7 years agore PR rtl-optimization/79593 (Poor/Worse code generation for FPU on versions after 6)
Uros Bizjak [Tue, 21 Feb 2017 18:29:57 +0000 (19:29 +0100)]
re PR rtl-optimization/79593 (Poor/Worse code generation for FPU on versions after 6)

PR target/79593
* config/i386/i386.md (standard_x87sse_constant_load splitter):
Use nonimmediate_operand instead of memory_operand for operand 1.
(float-extend standard_x87sse_constant_load splitter): Ditto.

testsuite/ChangeLog:

PR target/79593
* gcc.target/i386/pr79593.c: New test.

From-SVN: r245640

7 years agore PR c++/79654 (ICE on invalid c++ code in register_dtor_fn in cp/decl.c:7877)
Jakub Jelinek [Tue, 21 Feb 2017 18:00:35 +0000 (19:00 +0100)]
re PR c++/79654 (ICE on invalid c++ code in register_dtor_fn in cp/decl.c:7877)

PR c++/79654
* decl.c (cp_finish_decomp): Don't set decl's type to error_mark_node
on error.
* pt.c (tsubst_decomp_names): Return error_mark_node if the first
decl after the decomposition artificial decl has error_mark_node.
* decl2.c (prune_vars_needing_no_initialization): Use error_operand_p
instead of just == error_mark_node comparison.

* g++.dg/cpp1z/decomp26.C: New test.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r245639

7 years agore PR sanitizer/79589 (ICE in gimplify_compound_expr (gimplify.c:5712) with -fsanitiz...
Jakub Jelinek [Tue, 21 Feb 2017 17:59:07 +0000 (18:59 +0100)]
re PR sanitizer/79589 (ICE in gimplify_compound_expr (gimplify.c:5712) with -fsanitize=undefined)

PR sanitizer/79589
* decl.c: Include gimplify.h.
(cp_finish_decomp): Make sure there is no sharing of trees
in between DECL_VALUE_EXPR of decomposition decls.

* g++.dg/ubsan/pr79589.C: New test.

From-SVN: r245638

7 years agore PR tree-optimization/79621 (Missed path isolation opportunity)
Jeff Law [Tue, 21 Feb 2017 17:58:00 +0000 (10:58 -0700)]
re PR tree-optimization/79621 (Missed path isolation opportunity)

PR tree-optimization/79621
* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
blocks with edges to themselves.

PR tree-optimization/79621
* gcc.c-torture/compile/pr79621.c: New test.

From-SVN: r245637

7 years agore PR c++/79655 (ICE on invalid c++ code in cxx_eval_store_expression in cp/constexpr...
Jakub Jelinek [Tue, 21 Feb 2017 17:57:23 +0000 (18:57 +0100)]
re PR c++/79655 (ICE on invalid c++ code in cxx_eval_store_expression in cp/constexpr.c:3464)

PR c++/79655
* constexpr.c (cxx_eval_array_reference): Diagnose negative subscript.

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

From-SVN: r245636

7 years agore PR c++/79639 (ICE with -O and constexpr)
Jakub Jelinek [Tue, 21 Feb 2017 17:48:57 +0000 (18:48 +0100)]
re PR c++/79639 (ICE with -O and constexpr)

PR c++/79639
* constexpr.c (cxx_eval_store_expression): If *valp is a PTRMEM_CST,
call cplus_expand_constant on it first.

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

From-SVN: r245635

7 years agore PR target/79633 (ICE in gimple_call_arg, at gimple.h:3163)
Jakub Jelinek [Tue, 21 Feb 2017 17:46:42 +0000 (18:46 +0100)]
re PR target/79633 (ICE in gimple_call_arg, at gimple.h:3163)

PR target/79633
* tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
Use gimple_call_builtin_p.

* gcc.target/i386/mpx/pr79633.c: New test.

From-SVN: r245634

7 years agore PR target/79570 (ICE in sel-sched-ir.c:4534 in pr69956.c)
Jakub Jelinek [Tue, 21 Feb 2017 16:56:11 +0000 (17:56 +0100)]
re PR target/79570 (ICE in sel-sched-ir.c:4534 in pr69956.c)

PR target/79570
* sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
on temporarily removed DEBUG_INSNs.

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

From-SVN: r245633

7 years agore PR c++/79641 (ICE with const variable and attribute)
Jakub Jelinek [Tue, 21 Feb 2017 16:55:00 +0000 (17:55 +0100)]
re PR c++/79641 (ICE with const variable and attribute)

PR c++/79641
* c-attribs.c (handle_mode_attribute): Use build_qualified_type to
preserve quals.

* c-c++-common/pr79641.c: New test.

From-SVN: r245632

7 years agore PR middle-end/79649 (Memset pattern in named address space crashes compiler or...
Jakub Jelinek [Tue, 21 Feb 2017 16:29:37 +0000 (17:29 +0100)]
re PR middle-end/79649 (Memset pattern in named address space crashes compiler or generates wrong code)

PR tree-optimization/79649
* tree-loop-distribution.c (classify_partition): Give up on
non-generic address space loads/stores.

* gcc.target/i386/pr79649.c: New test.

From-SVN: r245631