Andreas Krebbel [Tue, 1 Mar 2016 09:27:10 +0000 (09:27 +0000)]
S/390: Disallow SImode in s390_decompose_address
After Y is never used anymore with SImode operands we can finally
disallow SImode (if != Pmode) in s390_decompose_address. In fact that
was the whole point of the patch series.
gcc/ChangeLog:
2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_decompose_address): Don't accept SImode
anymore.
From-SVN: r233849
Andreas Krebbel [Tue, 1 Mar 2016 09:26:20 +0000 (09:26 +0000)]
S/390: Use define_subst for the setmem patterns.
While trying to get rid of the Y constraint in the setmem patterns I
noticed that for these patterns it isn't even a problem since these
always only use the constraint with a Pmode match_operand. But while
being at it I've tried to fold some of the patterns a bit.
gcc/ChangeLog:
2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/constraints.md ("jm8"): New constraint.
* config/s390/predicates.md ("const_int_8bitset_operand"): New predicate.
* config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
into ...
("*setmem_long<setmem_and>"): New pattern.
("*setmem_long_31z", "*setmem_long_and_31z"): Merge
into ...
("*setmem_long_31z<setmem_and>"): New pattern.
* config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
New substitution rules with the required attributes.
From-SVN: r233848
Andreas Krebbel [Tue, 1 Mar 2016 09:25:23 +0000 (09:25 +0000)]
S/390: Get rid of Y constraint in vector.md.
This finally removes the Y constraint from the vector patterns while
folding some of them using a code iterator.
gcc/ChangeLog:
2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/subst.md (DSI_VI): New mode iterator.
("addr_style_op_subst"): Use DSI_VI instead of DSI.
* config/s390/vector.md ("vec_set<mode>"): Move expander before
the insn definition.
("*vec_set<mode>"): Change predicate and add alternative to
support only either register or const_int operands as element
selector.
("*vec_set<mode>_plus"): New pattern to support reg + const_int
operands.
("vec_extract<mode>"): New expander.
("*vec_extract<mode>"): New insn definition supporting reg and
const_int element selectors.
("*vec_extract<mode>_plus"): New insn definition supporting
reg+const_int element selectors.
("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
following expander+insn definition.
("<vec_shifts_name><mode>3"): New expander.
("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
From-SVN: r233847
Andreas Krebbel [Tue, 1 Mar 2016 09:24:29 +0000 (09:24 +0000)]
S/390: Get rid of Y constraint in tabort.
This removes the Y constraint from the tabort pattern definition. In
this case it is easier without using substitutions.
gcc/ChangeLog:
2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.md ("*tabort_1"): Change predicate to
nonmemory_operand. Add a second alternative to cover
register as well as const int operands.
("*tabort_1_plus"): New pattern definition.
From-SVN: r233846
Andreas Krebbel [Tue, 1 Mar 2016 09:23:41 +0000 (09:23 +0000)]
S/390: Get rid of Y constraint in arithmetic right shift
patterns.
The arithmetic shift patterns set also the condition code. This adds
more substitution potential. Depending on whether the actual result
or the CC output will be used 3 different variants of each of these
patterns are needed. This multiplied with the PLUS and the AND
operands from the earlier substitutions enables a lot of folding.
2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.md ("*ashrdi3_cc_31")
("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
Merge insn definitions into ...
("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
New pattern definition.
("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
("*ashr<mode>3_and"): Merge insn definitions into ...
("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
New pattern definition.
* config/s390/subst.md ("addr_style_op_cc_subst")
("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
substitutions patterns plus attributes.
Add ashiftrt to SUBST iterator.
From-SVN: r233845
Andreas Krebbel [Tue, 1 Mar 2016 09:22:20 +0000 (09:22 +0000)]
S/390: Get rid of Y constraint in left and logical right
shift patterns.
With this patch the substitution patterns added earlier are used for
the logical right shift and all the left shift patterns.
2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.md ("<shift><mode>3"): Change predicate of
op2 to nonmemory_operand.
("*<shift>di3_31", "*<shift>di3_31_and"):
Merge into single pattern definition ...
("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
pattern definition ...
("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
* config/s390/subst.md: Add ashift and lshiftrt to SUBST
iterator.
From-SVN: r233844
Andreas Krebbel [Tue, 1 Mar 2016 09:21:23 +0000 (09:21 +0000)]
S/390: Get rid of Y constraint in rotate patterns.
This patch introduces substitution patterns to add PLUS const_int, and
AND operands to patterns and uses this to rewrite the existing rotate
pattern.
gcc/ChangeLog:
2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/predicates.md (const_int_6bitset_operand): New
predicates.
* config/s390/s390.md: Include subst.md.
("rotl<mode>3"): New expander.
("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
...
("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
* config/s390/subst.md: New file.
From-SVN: r233843
Andreas Krebbel [Tue, 1 Mar 2016 09:20:12 +0000 (09:20 +0000)]
S/390: Use enabled attribute overrides to disable
alternatives.
So far whenever we wanted to disable an alternative we have used mode
attributes emitting constraints matching an earlier alternative
assuming that due to this the later alternative will never be chosen.
With this patch the `enabled' attribute, which so far is only set from
`cpu_facility', is overridden to 0 to disable certain alternatives.
This comes handy when defining the substitutions later and while
adding it anyway I've used it for the existing cases as well.
gcc/ChangeLog:
2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.md ("op_type", "atype", "length" attributes):
Remove RRR type. It doesn't really exist.
("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
attributes.
("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
`enabled' attribute.
From-SVN: r233842
Andreas Krebbel [Tue, 1 Mar 2016 09:19:14 +0000 (09:19 +0000)]
gensupport: Fix define_subst operand renumbering.
When processing substitutions the operands are renumbered. To find a
free operand number the array used_operands_numbers is used.
Currently this array is used to assign new numbers before all the
RTXes in the vector have been processed. I did run into problems with
this for insns where a match_dup occurred in a later (use ...) operand
referring to an earlier operand (e.g. s390.md "setmem_long").
The patch splits the loop doing the processing into two in order to
have all the operand numbers collected already when assigning new
numbers.
gcc/ChangeLog:
2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gensupport.c (process_substs_on_one_elem): Split loop to
complete mark_operands_used_in_match_dup on all expressions in the
vector first.
(adjust_operands_numbers): Inline into process_substs_on_one_elem
and remove function.
From-SVN: r233841
Bill Schmidt [Tue, 1 Mar 2016 04:14:15 +0000 (04:14 +0000)]
re PR target/70011 (test case gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c fails)
2016-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/70011
* gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr299925.c:
XFAIL when hardware supports efficient unaligned storage access.
From-SVN: r233840
Patrick Palka [Tue, 1 Mar 2016 01:24:44 +0000 (01:24 +0000)]
Fix PR c++/69961 (invalid ctor call with dependent args)
gcc/cp/ChangeLog:
PR c++/68948
PR c++/69961
* pt.c (tsubst_baselink): Reinstate the check for an invalid
constructor call.
gcc/testsuite/ChangeLog:
PR c++/69961
* g++.dg/template/pr69961a.C: New test.
* g++.dg/template/pr69961b.C: New test.
From-SVN: r233838
David Malcolm [Tue, 1 Mar 2016 01:02:49 +0000 (01:02 +0000)]
PR preprocessor/69985: fix ICE with long lines in -Wformat
gcc/testsuite/ChangeLog:
PR preprocessor/69985
* gcc.dg/cpp/pr69985.c: New test case.
libcpp/ChangeLog:
PR preprocessor/69985
(linemap_position_for_loc_and_offset): Rename param from "offset"
to "column_offset". Right-shift the column_offset by m_range_bits
of the pertinent ordinary map whenever offsetting a
source_location. For clarity, offset the column by the column
offset, rather than the other way around.
From-SVN: r233836
Eric Botcazou [Tue, 1 Mar 2016 00:22:26 +0000 (00:22 +0000)]
re PR target/69706 (internal compiler error: in extract_constrain_insn, at recog.c:2246)
PR target/69706
* config/sparc/sparc.c (NWORDS_UP): Rename to...
(CEIL_NWORDS): ...this. Use CEIL macro.
(compute_fp_layout): Adjust to above renaming.
(function_arg_union_value): Likewise.
(sparc_arg_partial_bytes): Likewise.
(sparc_function_arg_advance): Likewise.
From-SVN: r233833
GCC Administrator [Tue, 1 Mar 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233832
Jeff Law [Tue, 1 Mar 2016 00:04:48 +0000 (17:04 -0700)]
re PR tree-optimization/70005 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
PR tree-optimization/70005
* tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
where an object with a boolean range is compared against a value
outside [0..1].
PR tree-optimization/70005
* gcc.c-torture/execute/pr70005.c New test.
From-SVN: r233829
Jeff Law [Mon, 29 Feb 2016 22:45:41 +0000 (15:45 -0700)]
re PR tree-optimization/69999 (ICE in verify_loop_structure, at cfgloop.c:1639 (error: loop with header 3 not in loop tree) at -O3 or -Ofast)
PR tree-optimization/69999
* gimple-ssa-split-paths.c (split_paths): When duplicating a block
with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
loop cleanups.
PR tree-optimization/69999
* gcc.c-torture/compile/pr69999.c: New test.
From-SVN: r233824
Joseph Myers [Mon, 29 Feb 2016 20:48:24 +0000 (20:48 +0000)]
* sv.po: Update.
From-SVN: r233820
Martin Liska [Mon, 29 Feb 2016 15:40:20 +0000 (16:40 +0100)]
Poison ENABLE_CHECKING macro
* system.h: Poison ENABLE_CHECKING macro.
From-SVN: r233817
Richard Biener [Mon, 29 Feb 2016 15:30:50 +0000 (15:30 +0000)]
re PR target/69994 (test case gfortran.dg/reassoc_6.f fails starting with r233669)
2016-02-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/69994
* tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
(get_unary_op): Look through nop conversions.
(ops_equal_values_p): New function, look for equality diregarding
nop conversions.
(eliminate_plus_minus_pair): Use ops_equal_values_p
(repropagate_negates): Do not use get_unary_op here.
From-SVN: r233816
Martin Liska [Mon, 29 Feb 2016 15:30:08 +0000 (16:30 +0100)]
Replace ENABLE_CHECKING macro with flag_checking in GNAT
* gcc-interface/utils.c (set_reverse_storage_order_on_pad_type):
Replace ENABLE_CHECKING macro with flag_checking.
From-SVN: r233815
Martin Liska [Mon, 29 Feb 2016 15:15:27 +0000 (16:15 +0100)]
HSA: reduce dump output w/o -details flag
* hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
is presented in dump flags.
* hsa-regalloc.c (linear_scan_regalloc): Likewise.
(hsa_regalloc): Likewise.
From-SVN: r233814
Yuri Rumyantsev [Mon, 29 Feb 2016 14:32:24 +0000 (14:32 +0000)]
re PR tree-optimization/69652 ([ICE] verify_ssa fail w/ -O2 -ffast-math -ftree-vectorize)
gcc/testsuite/
2016-02-29 Yuri Rumyantsev <ysrumyan@gmail.com>
PR tree-optimization/69652
* gcc.dg/torture/pr69652.c: Delete test.
* gcc.dg/vect/pr69652.c: New test.
From-SVN: r233811
Jason Merrill [Mon, 29 Feb 2016 14:25:57 +0000 (09:25 -0500)]
re PR c++/69995 ([C++14] Invalid result when evaluating constexpr function)
PR c++/69995
* constexpr.c (cxx_eval_store_expression): Unshare init.
From-SVN: r233810
Richard Biener [Mon, 29 Feb 2016 13:24:24 +0000 (13:24 +0000)]
re PR tree-optimization/69980 (Supposedly wrong SLP code emitted)
2016-02-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/69980
* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
permutation of those we need to keep.
* gfortran.dg/vect/pr69980.f90: New testcase.
From-SVN: r233809
Eric Botcazou [Mon, 29 Feb 2016 10:20:31 +0000 (10:20 +0000)]
re PR target/69706 (internal compiler error: in extract_constrain_insn, at recog.c:2246)
PR target/69706
* config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
(NWORDS_UP): ...this
(init_cumulative_args): Minor tweaks.
(sparc_promote_function_mode): Likewise.
(scan_record_type): Delete.
(traverse_record_type): New function template.
(classify_data_t): New structure type.
(classify_registers): New inline function.
(function_arg_slotno): In 64-bit mode, bail out early if FP slots are
exhausted. Instantiate traverse_record_type on classify_registers and
deal with the case of a structure passed in slot #15 with no FP field
in the first word.
(assign_data_t): New structure type.
(compute_int_layout): New static function.
(compute_fp_layout): Likewise.
(count_registers): New inline function.
(assign_int_registers): New static function.
(assign_fp_registers): Likewise.
(assign_registers): New inline function.
(function_arg_record_value_1): Delete.
(function_arg_record_value_2): Likewise.
(function_arg_record_value_3): Likewise.
(function_arg_record_value): Adjust to above changes. Instantiate
traverse_record_type on count_registers to first count the number of
registers to be used and then on assign_registers to assign them.
(function_arg_union_value): Adjust to above renaming.
(sparc_function_arg_1); Minor tweaks. Remove commented out code.
(sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
case of a structure passed in slot #15
(sparc_function_arg_advance): Likewise.
(function_arg_padding): Minor tweak.
From-SVN: r233808
Eric Botcazou [Mon, 29 Feb 2016 09:30:09 +0000 (09:30 +0000)]
decl.c (gnat_to_gnu_entity): Retrofit handling of unconstrained array types as designated types into common...
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Retrofit
handling of unconstrained array types as designated types into common
processing. Also handle array types as incomplete designated types.
From-SVN: r233807
Eric Botcazou [Mon, 29 Feb 2016 09:21:12 +0000 (09:21 +0000)]
decl.c (gnat_to_gnu_entity): In ASIS mode, fully lay out the minimal record type.
* gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In
ASIS mode, fully lay out the minimal record type.
From-SVN: r233806
Eric Botcazou [Mon, 29 Feb 2016 09:16:57 +0000 (09:16 +0000)]
trans.c (finalize_nrv_r): Remove obsolete code.
* gcc-interface/trans.c (finalize_nrv_r): Remove obsolete code.
(build_return_expr): Likewise.
(Call_to_gnu): If this is a function call and there is no target,
create a temporary for the return value for all aggregate types,
but never create it for a return statement. Push a binding level
around the call in more cases. Remove obsolete code.
From-SVN: r233805
Eric Botcazou [Mon, 29 Feb 2016 09:02:46 +0000 (09:02 +0000)]
ada-tree.h (DECL_RETURN_VALUE_P): New macro.
* gcc-interface/ada-tree.h (DECL_RETURN_VALUE_P): New macro.
* gcc-interface/gigi.h (gigi): Remove useless attribute.
(gnat_gimplify_expr): Likewise.
(gnat_to_gnu_external): Declare.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Factor out
code dealing with the expression of external constants into...
Invoke gnat_to_gnu_external instead.
<E_Variable>: Invoke gnat_to_gnu_external to translate renamed objects
when not for a definition. Deal with COMPOUND_EXPR and variables with
DECL_RETURN_VALUE_P set for renamings and with the case of a dangling
'reference to a function call in a renaming. Remove obsolete test and
adjust associated comment.
* gcc-interface/trans.c (Call_to_gnu): Set DECL_RETURN_VALUE_P on the
temporaries created to hold the return value, if any.
(gnat_to_gnu_external): ...this. New function.
* gcc-interface/utils.c (create_var_decl): Detect a constant created
to hold 'reference to function call.
* gcc-interface/utils2.c (build_unary_op) <ADDR_EXPR>: Add folding
for COMPOUND_EXPR in the DECL_RETURN_VALUE_P case.
From-SVN: r233804
Richard Biener [Mon, 29 Feb 2016 08:45:17 +0000 (08:45 +0000)]
re PR tree-optimization/69720 (wrong code at -O3 on x86_64-linux-gnu)
2016-02-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/69720
* tree-vect-loop.c (get_initial_def_for_reduction): Avoid
the adjustment_def path for possibly vectorized defs.
(vect_create_epilog_for_reduction): Handle vectorized initial
defs properly.
* gcc.dg/vect/vect-outer-pr69720.c: New testcase.
From-SVN: r233803
GCC Administrator [Mon, 29 Feb 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233801
Thomas Koenig [Sun, 28 Feb 2016 22:27:55 +0000 (22:27 +0000)]
re PR fortran/68147 (Potential incorrect code generation for string self-assignment)
2016-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/68147
PR fortran/47674
* frontend-passes.c (realloc_string_callback): Don't set
walk_subtrees.
2016-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/68147
PR fortran/47674
* gfortran.dg/realloc_on_assign_26.f90: New test case.
From-SVN: r233797
Thomas Koenig [Sun, 28 Feb 2016 22:24:27 +0000 (22:24 +0000)]
dump-parse-tree.c (show_code_node): Print association list of a block if present.
2016-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
* dump-parse-tree.c (show_code_node): Print association
list of a block if present. Handle EXEC_END_BLOCK.
From-SVN: r233796
Harald Anlauf [Sun, 28 Feb 2016 19:07:42 +0000 (19:07 +0000)]
re PR fortran/56007 (Remarkably bad error message with DO array=1,2)
2016-02-28 Harald Anlauf <anlauf@gmx.de>
Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/56007
* match.c (gfc_match_iterator): Add diagnostic for array variable
as do loop index.
* gfortran.dg/coarray_8.f90: Adjust error message.
* gfortran.dg/pr56007.f90: New test.
* gfortran.dg/pr56007.f: New test.
Co-Authored-By: Jerry DeLisle <jvdelisle@gcc.gnu.org>
From-SVN: r233795
H.J. Lu [Sun, 28 Feb 2016 17:41:45 +0000 (17:41 +0000)]
Add a test for PR tree-optimization/69989
PR tree-optimization/69989
* gcc.dg/torture/pr69989.c: New test.
From-SVN: r233792
Eric Botcazou [Sun, 28 Feb 2016 14:36:41 +0000 (14:36 +0000)]
* config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
From-SVN: r233791
Harald Anlauf [Sun, 28 Feb 2016 13:39:39 +0000 (13:39 +0000)]
re PR fortran/60126 (Internal compiler error with code using pointer reshaping (gfortran 4.8.2))
2016-02-28 Harald Anlauf <anlauf@gmx.de>
PR fortran/60126
* gfortran.dg/pr60126.f90: New test.
From-SVN: r233790
Jeff Law [Sun, 28 Feb 2016 06:34:20 +0000 (23:34 -0700)]
Revert
2016-02-26 Richard Biener <rguenther@suse.de>
Jeff Law <law@redhat.com>
PR tree-optimization/69740
* cfghooks.c (remove_edge): Request loop fixups if we delete
an edge that might turn an irreducible loop into a natural
loop.
Revert
2016-02-26 Richard Biener <rguenther@suse.de>
Jeff Law <law@redhat.com>
PR tree-optimization/69740
* gcc.c-torture/compile/pr69740-1.c: New test.
* gcc.c-torture/compile/pr69740-2.c: New test.
From-SVN: r233787
GCC Administrator [Sun, 28 Feb 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233786
Jerry DeLisle [Sat, 27 Feb 2016 22:04:08 +0000 (22:04 +0000)]
2016-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Fix ChangeLogs
From-SVN: r233783
Jerry DeLisle [Sat, 27 Feb 2016 19:07:13 +0000 (19:07 +0000)]
re PR fortran/69910 (ICE with NEWUNIT)
2016-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69110
* io.c (gfc_match_open): Check that open status is an expression
constant before comparing string to 'scratch' with NEWUNIT.
* gfortran.dg/newunit_4.f90: New test.
Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org>
From-SVN: r233782
Jakub Jelinek [Sat, 27 Feb 2016 13:31:39 +0000 (14:31 +0100)]
re PR target/69613 (wrong code with -O and simple 128bit arithmetics and vectors @ aarch64)
PR target/69613
PR rtl-optimization/69886
* gcc.dg/torture/pr69886.c: Add -w -Wno-psabi to dg-options.
* gcc.dg/torture/pr69613.c: Likewise. Guard -mavx with avx_runtime
target.
From-SVN: r233781
Alessandro Fanfarillo [Sat, 27 Feb 2016 11:57:16 +0000 (04:57 -0700)]
Right size for events
From-SVN: r233779
Jakub Jelinek [Sat, 27 Feb 2016 06:43:20 +0000 (07:43 +0100)]
re PR rtl-optimization/69896 (wrong code with -frename-registers @ x64_64)
PR rtl-optimization/69896
* tree-vect-generic.c (get_compute_type): Avoid single element
vector types.
From-SVN: r233777
GCC Administrator [Sat, 27 Feb 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233775
Evandro Menezes [Fri, 26 Feb 2016 23:41:53 +0000 (23:41 +0000)]
Rename the tuning option and related functions to enable the Newton series for the reciprocal square root to reflect its approximative characteristic.
gcc/
* config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
function to "aarch64_emit_approx_rsqrt".
* config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
AARCH64_EXTRA_TUNE_APPROX_RSQRT.
* config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
(xgene1_tunings): Likewise.
(use_rsqrt_p): Likewise.
(aarch64_emit_swrsqrt): Use new function name.
* config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
* config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
text explaining this option.
* doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
From-SVN: r233772
Martin Sebor [Fri, 26 Feb 2016 23:24:29 +0000 (23:24 +0000)]
PR tree-optimization/15826 - don't use "if" to extract a single bit
PR tree-optimization/15826 - don't use "if" to extract a single bit
bit-field
2016-02-26 Martin Sebor <msebor@redhat.com>
PR tree-optimization/15826
* gcc.dg/tree-ssa/pr15826.c: New test.
From-SVN: r233771
Jakub Jelinek [Fri, 26 Feb 2016 22:35:00 +0000 (23:35 +0100)]
re PR target/69969 (Function attribute no-vsx)
PR target/69969
* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
complain about -mallow-movmisalign without -mvsx if
TARGET_ALLOW_MOVMISALIGN was not set explicitly.
* gcc.target/powerpc/pr69969.c: New test.
From-SVN: r233767
Martin Sebor [Fri, 26 Feb 2016 21:50:15 +0000 (14:50 -0700)]
PR c++/15766 - bad parse error recovery (2 bugs)
gcc/testsuite/ChangeLog:
2016-02-26 Martin Sebor <msebor@redhat.com>
PR c++/15766
* g++.old-deja/g++.other/decl5.C: Add a test case.
From-SVN: r233765
Joel Sherrill [Fri, 26 Feb 2016 20:03:19 +0000 (20:03 +0000)]
config-list.mk: Add aarch64-rtems and x86_64-rtems
2016-02-26 Joel Sherrill <joel@rtems.org>
* config-list.mk: Add aarch64-rtems and x86_64-rtems
From-SVN: r233763
Joel Sherrill [Fri, 26 Feb 2016 20:02:28 +0000 (20:02 +0000)]
config.host: Add x86_64-*-rtems*.
2016-02-26 Joel Sherrill <joel@rtems.org>
* config.host: Add x86_64-*-rtems*.
From-SVN: r233762
Joel Sherrill [Fri, 26 Feb 2016 20:01:34 +0000 (20:01 +0000)]
config.gcc: Add x86_64-*-rtems*.
2016-02-26 Joel Sherrill <joel@rtems.org>
* config.gcc: Add x86_64-*-rtems*.
* gcc/config/i386/rtems-64.h: New file.
From-SVN: r233761
Joel Sherrill [Fri, 26 Feb 2016 19:59:55 +0000 (19:59 +0000)]
config.gcc: Add aarch64-*-rtems*.
2016-02-26 Joel Sherrill <joel@rtems.org>
* config.gcc: Add aarch64-*-rtems*.
* gcc/config/aarch64/rtems.h: New file.
From-SVN: r233760
Joel Sherrill [Fri, 26 Feb 2016 19:59:04 +0000 (19:59 +0000)]
config.host: Add aarch64-*-rtems*.
2016-02-26 Joel Sherrill <joel@rtems.org>
* libgcc/config.host: Add aarch64-*-rtems*.
From-SVN: r233759
Jason Merrill [Fri, 26 Feb 2016 19:54:33 +0000 (14:54 -0500)]
re PR c++/69958 (sizeof... computes wrong size)
PR c++/69958
* pt.c (make_argument_pack): New.
(tsubst_copy) [SIZEOF_EXPR]: Handle partial expansion.
(tsubst_copy_and_build): Likewise.
From-SVN: r233758
Keith McDaniel [Fri, 26 Feb 2016 19:42:31 +0000 (19:42 +0000)]
[hsa,testsuite] Introduce offload_device_shared_as effective target
2016-02-26 Keith McDaniel <k.allen.mcdaniel@gmail.com>
Martin Jambor <mjambor@suse.cz>
* testsuite/lib/libgomp.exp
(check_effective_target_offload_device_shared_as): New proc.
* testsuite/libgomp.c++/declare_target-1.C: New test.
Co-Authored-By: Martin Jambor <mjambor@suse.cz>
From-SVN: r233757
Paul E. Murphy [Fri, 26 Feb 2016 19:20:54 +0000 (19:20 +0000)]
sfp-machine.h (_FP_DECL_EX): Declare _fpsr as a union of u64 and double.
2016-02-26 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/sfp-machine.h (_FP_DECL_EX): Declare _fpsr as a
union of u64 and double.
(FP_TRAPPING_EXCEPTIONS): Return a bitmask of trapping exceptions.
(FP_INIT_ROUNDMODE): Read the fpscr instead of writing a mystery
value.
(FP_ROUNDMODE): Update the usage of _fpscr.
Co-Authored-By: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
From-SVN: r233756
Segher Boessenkool [Fri, 26 Feb 2016 18:49:18 +0000 (19:49 +0100)]
powerpc: Handle DImode rotatert implemented with rlwinm (PR69946)
Some DImode rotate-right-and-mask can be implemented best with a rlwinm
instruction: those that could be a lshiftrt instead of a rotatert, while
the mask is not right-aligned. Why the rotate in the testcase is not
optimised to a plain shift is another question, but we need to handle
it here anyway. We compute the shift amount for a 64-bit rotate. This
is 32 too high in this case; if we print using %h that is masked out (and
this doesn't silently let through invalid instructions, everything is
checked by rs6000_is_valid_shift_mask which is much more thorough).
PR target/69946
* config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
shift amount using %h. Add comment.
gcc/testsuite/
* gcc.target/powerpc/pr69946.c: New file.
From-SVN: r233755
Richard Biener [Fri, 26 Feb 2016 18:17:02 +0000 (18:17 +0000)]
re PR tree-optimization/69740 (gcc ICE at -O2 and above on valid code on x86_64-linux-gnu in "verify_loop_structure")
PR tree-optimization/69740
* cfghooks.c (remove_edge): Request loop fixups if we delete
an edge that might turn an irreducible loop into a natural
loop.
PR tree-optimization/69740
* gcc.c-torture/compile/pr69740-1.c: New test.
* gcc.c-torture/compile/pr69740-2.c: New test.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r233754
Martin Jambor [Fri, 26 Feb 2016 18:06:42 +0000 (19:06 +0100)]
[PR 69920] Prevent SRA from leaving a removed SSA_NAME in IL
2016-02-26 Martin Jambor <mjambor@suse.cz>
PR middle-end/69920
* tree-sra.c (sra_modify_assign): Do not remove loads of
uninitialized aggregates to SSA_NAMEs.
testsuite/
* gcc.dg/torture/pr69932.c: New test.
* gcc.dg/torture/pr69936.c: Likewise.
From-SVN: r233753
Andreas Krebbel [Fri, 26 Feb 2016 18:03:51 +0000 (18:03 +0000)]
S/390: PR69709 Fix risbg splitter
This fixes a wrong code generation problem with the splitters introduced
with that patch: https://gcc.gnu.org/ml/gcc-patches/2015-07/msg01840.html
The target operand is used as temporary. This fails if it matches the
source of the left shift which is read after writing the temporary.
Thanks to Dominik for debugging it and thanks to Richard for the fix!
Bootstrapped and regtested on s390x with-arch=z13.
Bye,
-Andreas-
gcc/ChangeLog:
2016-02-26 Richard Henderson <rth@redhat.com>
PR target/69709
* config/s390/s390.md (risbg and risbgn splitters): Allocate new
pseudo in case the target rtx matches the source of the left
shift.
gcc/testsuite/ChangeLog:
2016-02-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/69709
* gcc.target/s390/pr69709.c: New test.
From-SVN: r233752
Martin Jambor [Fri, 26 Feb 2016 17:48:19 +0000 (18:48 +0100)]
[hsa/69568] Fix ld instruction type for packed data
2016-02-26 Martin Jambor <mjambor@suse.cz>
PR hsa/69568
* hsa.h (hsa_type_packed_p): Declare.
* hsa.c (hsa_type_packed_p): New function.
* hsa-gen.c (mem_type_for_type): Use unsigned type for packed
loads.
(gen_hsa_insns_for_store): Use hsa_type_packed_p.
* hsa-brig.c (emit_basic_insn): Likewise.
From-SVN: r233751
Martin Jambor [Fri, 26 Feb 2016 17:45:37 +0000 (18:45 +0100)]
[hsa/69674] Make testsuite libgomp.c/for-3.c compile with -m32
2016-02-26 Martin Jambor <mjambor@suse.cz>
pr hsa/69674
* hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
pointers.
(gen_hsa_addr): Allow integer constants in TMR_INDEX2.
From-SVN: r233750
Martin Jambor [Fri, 26 Feb 2016 17:42:06 +0000 (18:42 +0100)]
[hsa] Satisfy conditional move operand type constrains
2016-02-26 Martin Jambor <mjambor@suse.cz>
* hsa.h (is_a_helper): New overload for hsa_op_immed for
hsa_op_with_type operands.
(hsa_unsigned_type_for_type): Declare.
* hsa.c (hsa_unsigned_type_for_type): New function.
* hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
(gen_hsa_insns_for_operation_assignment): Satisfy constrains of
the finalizer. Do not emit extra move.
From-SVN: r233749
Martin Jambor [Fri, 26 Feb 2016 17:39:11 +0000 (18:39 +0100)]
[hsa] Fail in presence of atomic operations in private segment
2016-02-26 Martin Jambor <mjambor@suse.cz>
* hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
atomic operations in private segment.
From-SVN: r233748
Ian Lance Taylor [Fri, 26 Feb 2016 17:36:00 +0000 (17:36 +0000)]
re PR go/69966 (libgo: Port syscall.SetsockoptUcred from golang)
PR go/69966
syscall: Add new Getsockopt functions.
Add GetsockoptICMPv6Filter, GetsockoptIPv6MTUInfo, GetsockoptUcred as
appropriate. These functions exist in the master library.
For GCC PR 69966.
Reviewed-on: https://go-review.googlesource.com/19960
From-SVN: r233747
Martin Jambor [Fri, 26 Feb 2016 17:35:29 +0000 (18:35 +0100)]
[omp, hsa] Do not gridify simd constructs
2016-02-26 Martin Jambor <mjambor@suse.cz>
* omp-low.c (grid_find_ungridifiable_statement): Store problematic
statements to wi->info. Also disallow omp simd constructs.
(grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
for not gridifying. Dump special string for omp_for.
From-SVN: r233746
Kyrylo Tkachov [Fri, 26 Feb 2016 16:02:21 +0000 (16:02 +0000)]
[AArch64] Set TREE_TARGET_GLOBALS in aarch64_set_current_function when new tree is the default node to recalculate optab availability
PR target/69245
* config/aarch64/aarch64.c (aarch64_set_current_function):
Save/restore target globals when switching to
target_option_default_node.
* gcc.target/aarch64/pr69245_1.c: New test.
From-SVN: r233745
Kyrylo Tkachov [Fri, 26 Feb 2016 15:59:45 +0000 (15:59 +0000)]
[AArch64] PR target/69613: Return zero TARGET_SHIFT_TRUNCATION_MASK when SHIFT_COUNT_TRUNCATED is false
PR target/69613
* config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
Return 0 if !SHIFT_COUNT_TRUNCATED.
* gcc.dg/torture/pr69613.c: New test.
From-SVN: r233744
Jakub Jelinek [Fri, 26 Feb 2016 15:53:43 +0000 (16:53 +0100)]
re PR rtl-optimization/69891 (wrong code with -mstringop-strategy=libcall @ i686)
PR rtl-optimization/69891
* dse.c (scan_insn): If we can't figure out memset arguments
or they are non-constant, call clear_rhs_from_active_local_stores.
* gcc.target/i386/pr69891.c: New test.
Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r233743
William Schmidt [Fri, 26 Feb 2016 15:30:18 +0000 (15:30 +0000)]
Fix ChangeLog formatting
From-SVN: r233742
William Schmidt [Fri, 26 Feb 2016 15:25:29 +0000 (15:25 +0000)]
Update ChangeLog to mention pr61397
From-SVN: r233740
Michael Meissner [Fri, 26 Feb 2016 15:24:55 +0000 (15:24 +0000)]
p8vector-ldst.c: Adjust to test desired functionality for both 32-bit and 64-bit.
2016-02-26 Michael Meissner <meissner@linux.vnet.ibm.com>
Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/p8vector-ldst.c: Adjust to test desired
functionality for both 32-bit and 64-bit.
Co-Authored-By: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
From-SVN: r233739
Martin Liska [Fri, 26 Feb 2016 11:56:17 +0000 (12:56 +0100)]
Mention clog10{,f,l} in documentation (Builtins section)
* doc/extend.texi: Mention clog10, clog10f an clog10l
in Builtins section.
From-SVN: r233738
Martin Liska [Fri, 26 Feb 2016 10:46:48 +0000 (11:46 +0100)]
Replace ENABLE_CHECKING with CHECKING_P in dwarf2out
* dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
CHECKING_P.
(resolve_args_picking_1): Likewise.
* dwarf2out.h (struct GTY): Likewise.
From-SVN: r233737
Martin Liska [Fri, 26 Feb 2016 10:10:11 +0000 (11:10 +0100)]
Replace ENABLE_CHECKING macro with flag_checking in HSA
* hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
with flag_checking.
* hsa-regalloc.c (linear_scan_regalloc): Likewise.
From-SVN: r233736
Markus Trippelsdorf [Fri, 26 Feb 2016 10:02:45 +0000 (10:02 +0000)]
Mention --enable-valgrind-annotations in install.texi
Martin Liska <mliska@suse.cz>
* doc/install.texi: Mention --enable-valgrind-annotations.
Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r233735
Richard Biener [Fri, 26 Feb 2016 08:34:58 +0000 (08:34 +0000)]
re PR target/69551 (Wrong code with single element vector insert)
2016-02-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/69551
* tree-ssa-structalias.c (get_constraint_for_ssa_var): When
looking through aliases adjust DECL_PT_UID to refer to the
ultimate alias target.
* gcc.dg/torture/pr69951.c: New testcase.
From-SVN: r233734
Jason Merrill [Fri, 26 Feb 2016 04:53:58 +0000 (23:53 -0500)]
re PR c++/69889 (ICE: in assign_temp, at function.c:961)
PR c++/69889
* cp-tree.h (AGGR_INIT_FROM_THUNK_P): New.
* tree.c (build_aggr_init_expr): Set it.
* semantics.c (simplify_aggr_init_expr): Check it.
* cp-gimplify.c (cp_genericize_r): Don't walk into
a call/aggr_init from a thunk.
From-SVN: r233733
GCC Administrator [Fri, 26 Feb 2016 00:16:22 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233732
Martin Liska [Thu, 25 Feb 2016 16:57:39 +0000 (17:57 +0100)]
Do not gather mem stats in run_exit_handles (PR
PR middle-end/69919
* alloc-pool.c (after_memory_report): New variable.
* alloc-pool.h (base_pool_allocator ::release): Do not use
the infrastructure if after_memory_report.
* toplev.c (toplev::main): Mark after memory report.
From-SVN: r233722
Jason Merrill [Thu, 25 Feb 2016 15:23:47 +0000 (10:23 -0500)]
re PR c++/69842 (Parameter deduction in polymorphic lambdas)
PR c++/69842
* method.c (forward_parm): Handle parameter packs.
* lambda.c (maybe_add_lambda_conv_op): Use it for them.
From-SVN: r233719
Jason Merrill [Thu, 25 Feb 2016 14:09:24 +0000 (09:09 -0500)]
re PR c++/67364 ("accessing uninitialized member" error in constexpr context)
PR c++/67364
* constexpr.c (cxx_eval_component_reference): Don't complain about
unevaluated empty classes.
From-SVN: r233716
Jason Merrill [Thu, 25 Feb 2016 14:09:18 +0000 (09:09 -0500)]
re PR c++/68049 (template instantiation involving may_alias defines symbol twice)
PR c++/68049
* tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
From-SVN: r233715
Richard Biener [Thu, 25 Feb 2016 13:20:25 +0000 (13:20 +0000)]
re PR tree-optimization/48795 (-Warray-bounds false positive)
2016-02-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/48795
* tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
* gcc.dg/Warray-bounds-18.c: New testcase.
From-SVN: r233714
Rainer Orth [Thu, 25 Feb 2016 12:47:28 +0000 (12:47 +0000)]
Require init_priority support for g++.dg/ext/attr-constructor1.C
* g++.dg/ext/attr-constructor1.C: Require init_priority support.
From-SVN: r233713
Ilya Verbin [Thu, 25 Feb 2016 12:23:52 +0000 (12:23 +0000)]
re PR driver/68463 (Offloading fails when some objects are compiled with LTO and some without)
gcc/
PR driver/68463
* config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
offloading is enabled and -fopenacc or -fopenmp is specified.
(CRTOFFLOADEND): Likewise.
(GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
(GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
* lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
(offload_objects_file_name): New static var.
(tool_cleanup): Remove offload_objects_file_name file.
(find_offloadbeginend): Replace with ...
(find_crtoffloadtable): ... this.
(run_gcc): Remove offload_argc and offload_argv.
Get offload_objects_file_name from -foffload-objects=... option.
Read names of object files with offload from this file, pass them to
compile_images_for_offload_targets. Don't call find_offloadbeginend and
don't pass offloadbegin and offloadend to the linker. Don't pass
offload non-LTO files to the linker, because now they're not claimed.
libgcc/
PR driver/68463
* Makefile.in (crtoffloadtable$(objext)): New rule.
* configure.ac (extra_parts): Add crtoffloadtable$(objext) if
enable_offload_targets is not empty.
* configure: Regenerate.
* offloadstuff.c: Move __OFFLOAD_TABLE__ from crtoffloadend to
crtoffloadtable.
libgomp/
PR driver/68463
* testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove.
lto-plugin/
PR driver/68463
* lto-plugin.c (struct plugin_offload_file): New.
(offload_files): Change type.
(offload_files_last, offload_files_last_obj): New.
(offload_files_last_lto): New.
(free_2): Adjust accordingly.
(all_symbols_read_handler): Don't add offload files to lto_arg_ptr.
Don't call free_1 for offload_files. Write names of object files with
offloading to the temporary file. Add new option to lto_arg_ptr.
(claim_file_handler): Don't claim file if it contains offload sections
without LTO sections. If it contains offload sections, add to the list.
From-SVN: r233712
Jan Hubicka [Thu, 25 Feb 2016 12:10:04 +0000 (13:10 +0100)]
re PR lto/69630 (LTO ICE in types_same_for_odr at ipa-devirt.c:402)
PR ipa/69630
* ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
on builtin_unreachable.
From-SVN: r233711
Jakub Jelinek [Thu, 25 Feb 2016 08:09:02 +0000 (09:09 +0100)]
re PR rtl-optimization/69896 (wrong code with -frename-registers @ x64_64)
PR rtl-optimization/69896
* regcprop.c: Include cfgrtl.h.
(copyprop_hardreg_forward_1): If noop_p insn uses narrower
than remembered mode, either delete it (if noop_move_p), or
treat like copy_p but not noop_p instruction.
* gcc.dg/pr69896.c: New test.
From-SVN: r233692
Patrick Palka [Thu, 25 Feb 2016 01:14:27 +0000 (01:14 +0000)]
re PR c++/69736 ("error: too few arguments to function" in c++14 but not c++11)
Fix PR c++/69736
gcc/cp/ChangeLog:
PR c++/69736
* cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
(maybe_undo_parenthesized_ref): Declare.
* semantics.c (maybe_undo_parenthesized_ref): Split out from
check_return_expr.
(finish_call_expr): Use it.
* typeck.c (check_return_expr): Use it.
* pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
REF_PARENTHESIZED_P flag.
gcc/testsuite/ChangeLog:
PR c++/69736
* g++.dg/cpp1y/paren2.C: New test.
From-SVN: r233691
GCC Administrator [Thu, 25 Feb 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233690
Martin Sebor [Wed, 24 Feb 2016 23:26:42 +0000 (23:26 +0000)]
PR c/51147 - attribute((mode(byte))) on an enum generates wrong code
gcc/testsuite/ChangeLog:
2016-02-24 Martin Sebor <msebor@redhat.com>
PR c/51147
* gcc.dg/enum-mode-2.c: New test.
From-SVN: r233686
Jakub Jelinek [Wed, 24 Feb 2016 22:04:09 +0000 (23:04 +0100)]
re PR debug/69705 (segfault in libgomp.fortran/task1.f90 with -flto -fno-use-linker-plugin -fno-toplevel-reorder -O1 -g)
PR debug/69705
* dwarf2out.c (gen_variable_die): Work around buggy LTO
- allow NULL decl for Fortran DW_TAG_common_block variables.
From-SVN: r233685
Jakub Jelinek [Wed, 24 Feb 2016 22:01:24 +0000 (23:01 +0100)]
re PR c++/69922 (Bogus -Wnonnull-compare for: ... ? static_cast<T*>(this) : nullptr)
PR c++/69922
* class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
Avoid folding it.
* init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
tests.
* cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
unless they are folded into INTEGER_CST, error_mark_node or some
comparison with NULL, avoid folding them and use either the original
comparison or non-folded comparison of folded arguments.
* cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
comparison, don't fold the comparison right away.
* g++.dg/warn/Wnonnull-compare-6.C: New test.
* g++.dg/warn/Wnonnull-compare-7.C: New test.
* g++.dg/ubsan/pr69922.C: New test.
From-SVN: r233684
Marek Polacek [Wed, 24 Feb 2016 21:47:59 +0000 (21:47 +0000)]
re PR c/69819 (ICE on invalid code on x86_64-linux-gnu in tree check: expected function_type or method_type, have array_type in function_args_iter_init, at tree.h:4536)
PR c/69819
* c-decl.c (finish_decl): Don't update the copy of the type of a
different decl type.
* gcc.dg/pr69819.c: New test.
From-SVN: r233683
Jason Merrill [Wed, 24 Feb 2016 19:56:09 +0000 (14:56 -0500)]
PR c++/69323 - errors
* friend.c (make_friend_class): Likewise.
* decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
From-SVN: r233682
Jason Merrill [Wed, 24 Feb 2016 19:56:03 +0000 (14:56 -0500)]
PR c++/69323 - valid
* pt.c (instantiate_class_template_1): Set
processing_template_decl before substituting friend_type.
From-SVN: r233681
Jason Merrill [Wed, 24 Feb 2016 19:55:57 +0000 (14:55 -0500)]
* doc/invoke.texi: Adjust -flifetime-dse documentation.
From-SVN: r233680
Martin Sebor [Wed, 24 Feb 2016 17:23:35 +0000 (17:23 +0000)]
PR c++/69912 - [6 regression] ICE in build_ctor_subob_ref initializing
PR c++/69912 - [6 regression] ICE in build_ctor_subob_ref initializing
a flexible array member
gcc/testsuite/ChangeLog:
2016-02-24 Martin Sebor <msebor@redhat.com>
PR c++/69912
* g++.dg/ext/flexary15.C: New test.
gcc/cp/ChangeLog:
2016-02-24 Martin Sebor <msebor@redhat.com>
PR c++/69912
* tree.c (build_ctor_subob_ref): Compare types' main variants
instead of the types as they are.
From-SVN: r233678
Martin Sebor [Wed, 24 Feb 2016 17:04:03 +0000 (17:04 +0000)]
Avoid making unportable assumptions about the relationship between SIZE_MAX
and UINT_MAX.
gcc/testsuite/ChangeLog:
* gcc/testsuite/gcc.dg/builtins-68.c: Avoid making unportable
assumptions about the relationship between SIZE_MAX and UINT_MAX.
* gcc/testsuite/g++.dg/ext/builtin_alloca.C: Same.
From-SVN: r233677