platform/upstream/gcc.git
7 years agotree-vect-data-refs.c (compare_tree): Rename and move ...
Bin Cheng [Fri, 26 May 2017 14:04:49 +0000 (14:04 +0000)]
tree-vect-data-refs.c (compare_tree): Rename and move ...

* tree-vect-data-refs.c (compare_tree): Rename and move ...
* tree-data-ref.c (data_ref_compare_tree): ... to here.
* tree-data-ref.h (data_ref_compare_tree): New decalaration.
* tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
(operator==, comp_dr_with_seg_len_pair): Ditto.
(vect_prune_runtime_alias_test_list): Ditto.

From-SVN: r248510

7 years ago* name-lookup.c (name_lookup::search_adl): ADL OMP UDR type args.
Nathan Sidwell [Fri, 26 May 2017 11:36:39 +0000 (11:36 +0000)]
* name-lookup.c (name_lookup::search_adl): ADL OMP UDR type args.

From-SVN: r248506

7 years agoBound partial-inlining-entry-probability param (PR ipa/80663).
Martin Liska [Fri, 26 May 2017 11:05:52 +0000 (13:05 +0200)]
Bound partial-inlining-entry-probability param (PR ipa/80663).

2017-05-26  Martin Liska  <mliska@suse.cz>

PR ipa/80663
* params.def: Bound partial-inlining-entry-probability param.
2017-05-26  Martin Liska  <mliska@suse.cz>

PR ipa/80663
* g++.dg/ipa/pr80212.C: Remove the test as it does not longer
split at the problematic spot.
* gcc.dg/ipa/pr48195.c: Change 101 to 100 as 101 is no longer
a valid value of the param.

From-SVN: r248489

7 years agore PR sanitizer/80875 (UBSAN: compile time crash in fold_binary_loc at fold-const...
Marek Polacek [Fri, 26 May 2017 09:31:36 +0000 (09:31 +0000)]
re PR sanitizer/80875 (UBSAN: compile time crash in fold_binary_loc at fold-const.c:9817)

PR sanitizer/80875
* fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
can be negated.

* c-c++-common/ubsan/pr80875.c: New test.

From-SVN: r248485

7 years agoReplace absolute line numbers in gcc.dg
Tom de Vries [Fri, 26 May 2017 09:25:00 +0000 (09:25 +0000)]
Replace absolute line numbers in gcc.dg

2017-05-26  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80557
* gcc.dg/20011021-1.c: Replace absolute line numbers.
* gcc.dg/Wcxx-compat-8.c: Same.
* gcc.dg/Wobjsize-1.c: Same.
* gcc.dg/Wshadow-local-2.c: Same.
* gcc.dg/Wstrict-aliasing-converted-assigned.c: Same.
* gcc.dg/anon-struct-6.c: Same.
* gcc.dg/asm-wide-1.c: Same.
* gcc.dg/builtin-inf-1.c: Same.
* gcc.dg/builtin-redefine.c: Same.
* gcc.dg/c90-array-lval-6.c: Same.
* gcc.dg/c90-array-lval-7.c: Same.
* gcc.dg/c90-fordecl-1.c: Same.
* gcc.dg/c99-fordecl-2.c: Same.
* gcc.dg/cast-lvalue-1.c: Same.
* gcc.dg/cast-lvalue-2.c: Same.
* gcc.dg/compound-lvalue-1.c: Same.
* gcc.dg/cond-lvalue-1.c: Same.
* gcc.dg/cpp/20000419-1.c: Same.
* gcc.dg/cpp/backslash.c: Same.
* gcc.dg/cpp/backslash2.c: Same.
* gcc.dg/cpp/macspace1.c: Same.
* gcc.dg/cpp/macspace2.c: Same.
* gcc.dg/cpp/multiline-2.c: Same.
* gcc.dg/cpp/pr27777.c: Same.
* gcc.dg/cpp/pr30786.c: Same.
* gcc.dg/cpp/pr34602.c: Same.
* gcc.dg/cpp/redef1.c: Same.
* gcc.dg/cpp/tr-warn1.c: Same.
* gcc.dg/cpp/tr-warn3.c: Same.
* gcc.dg/cpp/tr-warn6.c: Same.
* gcc.dg/cpp/trad/hash.c: Same.
* gcc.dg/cpp/trad/redef1.c: Same.
* gcc.dg/cpp/ucs.c: Same.
* gcc.dg/declspec-10.c: Same.
* gcc.dg/declspec-11.c: Same.
* gcc.dg/declspec-18.c: Same.
* gcc.dg/format/c99-strftime-1.c: Same.
* gcc.dg/format/ext-3.c: Same.
* gcc.dg/format/pr72858.c: Same.
* gcc.dg/gomp/appendix-a/a.24.1.c: Same.
* gcc.dg/init-string-1.c: Same.
* gcc.dg/label-decl-3.c: Same.
* gcc.dg/m-un-2.c: Same.
* gcc.dg/nofixed-point-2.c: Same.
* gcc.dg/noncompile/20020213-1.c: Same.
* gcc.dg/pch/counter-2.c: Same.
* gcc.dg/plugin/diagnostic-test-string-literals-2.c: Same.
* gcc.dg/pr27528.c: Same.
* gcc.dg/pr27953.c: Same.
* gcc.dg/pr35899.c: Same.
* gcc.dg/pr37561.c: Same.
* gcc.dg/pr45461.c: Same.
* gcc.dg/pr45750.c: Same.
* gcc.dg/pr53196-2.c: Same.
* gcc.dg/pr53265.c: Same.
* gcc.dg/redecl-1.c: Same.
* gcc.dg/tls/thr-init-1.c: Same.
* gcc.dg/torture/pr51106-1.c: Same.
* gcc.dg/torture/pr51106-2.c: Same.
* gcc.dg/uninit-19.c: Same.
* gcc.dg/uninit-pr20644.c: Same.

From-SVN: r248484

7 years agocp-tree.h (struct lang_decl_decomp): New type.
Jakub Jelinek [Fri, 26 May 2017 09:17:54 +0000 (11:17 +0200)]
cp-tree.h (struct lang_decl_decomp): New type.

* cp-tree.h (struct lang_decl_decomp): New type.
(struct lang_decl): Add u.decomp.
(LANG_DECL_DECOMP_CHECK): Define.
(DECL_DECOMPOSITION_P): Note it is set also on the vars
for user identifiers.
(DECL_DECOMP_BASE): Define.
(retrofit_lang_decl): Add extra int = 0 argument.
* lex.c (retrofit_lang_decl): Add SEL argument, if non-zero
use it to influence the selector choices and for selector
0 to non-zero transition copy old content.
(cxx_dup_lang_specific_decl): Handle DECL_DECOMPOSITION_P.
* decl.c (poplevel): For DECL_DECOMPOSITION_P, check
!DECL_DECOMP_BASE instead of !DECL_VALUE_EXPR.  Adjust warning
wording if decl is a structured binding.
(cp_finish_decomp): Pass 4 as the new argument to retrofit_lang_decl.
Set DECL_DECOMP_BASE.  Ignore DECL_READ_P sets from initialization
of individual variables for tuple structured bindings.
(grokdeclarator): Pass 4 as the new argument to retrofit_lang_decl.
Clear DECL_DECOMP_BASE.
* decl2.c (mark_used): Mark DECL_DECOMP_BASE TREE_USED as well.
* pt.c (tsubst_decomp_names): Assert DECL_DECOMP_BASE matches what
is expected.
* expr.c (mark_exp_read): Recurse on DECL_DECOMP_BASE instead of
DECL_VALUE_EXPR.

* g++.dg/cpp1z/decomp29.C (p): New variable.
(main): Add further tests.

From-SVN: r248483

7 years agore PR tree-optimization/80842 (ICE at -O3 on x86_64-linux-gnu in "set_lattice_value")
Richard Biener [Fri, 26 May 2017 07:19:00 +0000 (07:19 +0000)]
re PR tree-optimization/80842 (ICE at -O3 on x86_64-linux-gnu in "set_lattice_value")

2017-05-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80842
* tree-ssa-ccp.c (set_lattice_value): Always meet with the old
value.

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

From-SVN: r248482

7 years agore PR tree-optimization/80844 (OpenMP SIMD doesn't know how to efficiently zero a...
Richard Biener [Fri, 26 May 2017 07:14:52 +0000 (07:14 +0000)]
re PR tree-optimization/80844 (OpenMP SIMD doesn't know how to efficiently zero a vector (its stores zeros and reloads))

2017-05-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80844
* tree-vectorizer.c (adjust_simduid_builtins): Propagate
results.

From-SVN: r248481

7 years agoDaily bump.
GCC Administrator [Fri, 26 May 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248479

7 years agoMAINTAINERS: Add self to Write After Approval
Eric Gallager [Thu, 25 May 2017 23:38:05 +0000 (23:38 +0000)]
MAINTAINERS: Add self to Write After Approval

2017-05-25  Eric Gallager  <egall@gwmail.gwu.edu>

* MAINTAINERS: Add self to Write After Approval

From-SVN: r248475

7 years agore PR c++/79652 (ICE on invalid c++ code in warn_extern_redeclared_static in cp/decl...
Paolo Carlini [Thu, 25 May 2017 22:29:40 +0000 (22:29 +0000)]
re PR c++/79652 (ICE on invalid c++ code in warn_extern_redeclared_static in cp/decl.c:1231)

2017-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79652
* g++.dg/cpp0x/pr79652.C: New.

From-SVN: r248474

7 years agore PR c++/71451 (ICE on invalid C++11 code on x86_64-linux-gnu: in dependent_type_p...
Paolo Carlini [Thu, 25 May 2017 22:28:54 +0000 (22:28 +0000)]
re PR c++/71451 (ICE on invalid C++11 code on x86_64-linux-gnu: in dependent_type_p, at cp/pt.c:22599)

2017-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71451
* g++.dg/cpp0x/variadic170.C: New.

From-SVN: r248473

7 years agore PR libfortran/78379 (Processor-specific versions for matmul)
Thomas Koenig [Thu, 25 May 2017 21:51:27 +0000 (21:51 +0000)]
re PR libfortran/78379 (Processor-specific versions for matmul)

2017-05-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR libfortran/78379
* Makefile.am: Add generated/matmulavx128_*.c files.
Handle them for compiling and setting the right flags.
* acinclude.m4: Add tests for FMA3, FMA4 and AVX128.
* configure.ac: Call them.
* Makefile.in: Regenerated.
* config.h.in: Regenerated.
* configure: Regenerated.
* m4/matmul.m4:  Handle AMD chips by calling 128-bit AVX
versions which use FMA3 or FMA4.
* m4/matmulavx128.m4: New file.
        * generated/matmul_c10.c: Regenerated.
        * generated/matmul_c16.c: Regenerated.
        * generated/matmul_c4.c: Regenerated.
        * generated/matmul_c8.c: Regenerated.
        * generated/matmul_i1.c: Regenerated.
        * generated/matmul_i16.c: Regenerated.
        * generated/matmul_i2.c: Regenerated.
        * generated/matmul_i4.c: Regenerated.
        * generated/matmul_i8.c: Regenerated.
        * generated/matmul_r10.c: Regenerated.
        * generated/matmul_r16.c: Regenerated.
        * generated/matmul_r4.c: Regenerated.
        * generated/matmul_r8.c: Regenerated.
        * generated/matmulavx128_c10.c: New file.
        * generated/matmulavx128_c16.c: New file.
        * generated/matmulavx128_c4.c: New file.
        * generated/matmulavx128_c8.c: New file.
        * generated/matmulavx128_i1.c: New file.
        * generated/matmulavx128_i16.c: New file.
        * generated/matmulavx128_i2.c: New file.
        * generated/matmulavx128_i4.c: New file.
        * generated/matmulavx128_i8.c: New file.
        * generated/matmulavx128_r10.c: New file.
        * generated/matmulavx128_r16.c: New file.
        * generated/matmulavx128_r4.c: New file.
        * generated/matmulavx128_r8.c: New file.

From-SVN: r248472

7 years ago* g++.dg/cpp1z/nontype-auto11.C: Move from pr79583.C.
Jason Merrill [Thu, 25 May 2017 21:24:48 +0000 (17:24 -0400)]
* g++.dg/cpp1z/nontype-auto11.C: Move from pr79583.C.

From-SVN: r248471

7 years agoPR c++/80605 - __is_standard_layout and zero-length array
Jason Merrill [Thu, 25 May 2017 21:24:36 +0000 (17:24 -0400)]
PR c++/80605 - __is_standard_layout and zero-length array

* class.c (check_bases): Use DECL_FIELD_IS_BASE.

From-SVN: r248470

7 years agoKill OVL_CURRENT, OVL_NEXT.
Nathan Sidwell [Thu, 25 May 2017 20:55:07 +0000 (20:55 +0000)]
Kill OVL_CURRENT, OVL_NEXT.

* cp-tree.h (OVL_CURRENT, OVL_NEXT): Delete.
* name-lookup.c (set_decl_namespace): Use ovl_iterator.
(consider_binding_level): Use OVL_FIRST.
(cp_emit_debug_info_for_using): Use lkp_iterator.
* pt.c (check_explicit_specialization): Use ovl_iterator.

From-SVN: r248469

7 years agomd.texi (Machine Constraints): Update x86 family machine constraints section to match...
Sebastian Peryt [Thu, 25 May 2017 19:41:29 +0000 (21:41 +0200)]
md.texi (Machine Constraints): Update x86 family machine constraints section to match 'config/i386/constraints.md'.

* doc/md.texi (Machine Constraints): Update x86 family
machine constraints section to match 'config/i386/constraints.md'.

From-SVN: r248468

7 years agoKill DECL_NAMESPACE_USERS, DECL_NAMESPACE_ASSOCIATIONS.
Nathan Sidwell [Thu, 25 May 2017 18:52:47 +0000 (18:52 +0000)]
Kill DECL_NAMESPACE_USERS, DECL_NAMESPACE_ASSOCIATIONS.

gcc/cp/
Kill DECL_NAMESPACE_USERS, DECL_NAMESPACE_ASSOCIATIONS.
* cp-tree.h (lang_decl_ns): Remove ns_users field.
(DECL_NAMESPACE_USERS, DECL_NAMESPACE_ASSOCIATIONS): Delete.
(TREE_INDIRECT_USING): Delete.
* name-lookup.h (is_associated_namespace): Delete.
* name-lookup.c (name_lookup::search_usings
name_lookup::do_queue_usings): Usings are always direct.
(is_associated_namespace): Delete.
(handle_namespace_attrs): Use DECL_NAMESPACE_INLINE_P.
(namespace_ancestor_1, namespace_ancestor): Delete.
(push_using_directive_1, push_using_directive): Delete.
(add_using_namespace_1): Delete.
(add_using_namespace): Reimplement.
(emit_debug_info_using_namespace): New.
(finish_namespace_using_directive, finish_local_using_directive
push_namespace): Adjust.
* tree.c (cp_free_lang_data): Remove DECL_NAMESPACE_USERS
handling.

libcc1/
* libcp1plugin.cc (plugin_make_namespace_inline): Check and set
DECL_NAMESPACE_INLINE_P.

gcc/testsuite/
* g++.dg/lookup/using56.C: New.
* g++.dg/lookup/using57.C: New.
* g++.dg/lookup/using58.C: New.
* g++.dg/lookup/using59.C: New.

From-SVN: r248467

7 years agoinvoke.texi (-Wcatch-value=): Document new warning option.
Volker Reichelt [Thu, 25 May 2017 17:05:07 +0000 (17:05 +0000)]
invoke.texi (-Wcatch-value=): Document new warning option.

        * doc/invoke.texi (-Wcatch-value=): Document new warning option.

        * c.opt (Wcatch-value=): New C++ warning flag.

        * semantics.c (finish_handler_parms): Warn about non-reference
        * type
        catch handlers.

        * g++.dg/warn/Wcatch-value-1.C: New test.
        * g++.dg/warn/Wcatch-value-2.C: New test.
        * g++.dg/warn/Wcatch-value-3.C: New test.

From-SVN: r248466

7 years agoReimplement unqualified namespace lookup.
Nathan Sidwell [Thu, 25 May 2017 16:55:43 +0000 (16:55 +0000)]
Reimplement unqualified namespace lookup.

gcc/cp/
Reimplement unqualified namespace lookup.
* name-lookup.c (name_lookup::using_pair)
name_lookup::using_queue): New typedefs.
(name_lookup::queue_namespace, name_lookup::do_queue_usings,
name_lookup::queue_usings): New.
(name_lookup::search_unqualified): New.
(merge_functions, same_entity_p, ambiguous_decl)
unqualified_namespace_lookup_1, unqualified_namespace_lookup,
lookup_using_namespace): Delete.
(lookup_name_real_1): Adjust.

gcc/testsuite/
* g++.dg/lookup/using17.C: Adjust diagnostics.

From-SVN: r248465

7 years agooverflow-warn-9.c: Adjust expected warnings to avoid false positives on ILP32.
Martin Sebor [Thu, 25 May 2017 16:51:24 +0000 (16:51 +0000)]
overflow-warn-9.c: Adjust expected warnings to avoid false positives on ILP32.

gcc/testsuite/ChangeLog:
* gcc.dg/overflow-warn-9.c: Adjust expected warnings to avoid false
positives on ILP32.
* gcc.dg/pr59963-2.c: Replace tabs with spaces, adjust expected
column numbers.
* gcc.dg/pr60114.c: Same.

From-SVN: r248464

7 years agoReimplement qualified namespace lookup.
Nathan Sidwell [Thu, 25 May 2017 15:12:38 +0000 (15:12 +0000)]
Reimplement qualified namespace lookup.

* name-lookup.c (name_lookup::flags): New member.  Adjust ctor.
(name_lookup::ambiguous, name_lookup::add_value)
name_lookup::add_type, name_lookup::process_binding): New.
(name_lookup::search_namespace_only)
name_lookup::search_namespace, name_lookup::search_usings): New.
(name_lookup::search_qualified): New.
(do_nonmember_using_decl, suggest_alternatives_for)
lookup_qualified_name): Adjust.
(tree_vec_contains): Delete.
(qualified_lookup_using_namespace): Rename to ...
(qualified_namespace_lookup): ... here.  Reimplement.
(((--This line, and those below, will be ignored--

M    cp/name-lookup.c
M    cp/ChangeLog

From-SVN: r248462

7 years ago* gfortran.dg/pr48636.f90: Fix template better.
Jan Hubicka [Thu, 25 May 2017 14:49:43 +0000 (16:49 +0200)]
* gfortran.dg/pr48636.f90: Fix template better.

From-SVN: r248460

7 years agoFix bootstrap failure in Ada FE due to -Werror=ignored-qualifiers
Jonathan Wakely [Thu, 25 May 2017 13:24:46 +0000 (14:24 +0100)]
Fix bootstrap failure in Ada FE due to -Werror=ignored-qualifiers

* gcc-interface/utils2.c (compare_elmt_bitpos): Remove redundant
const qualifiers that cause -Wignored-qualifiers warnings.

From-SVN: r248458

7 years agocp-tree.h (LOOKUP_SEEN_P, [...]): New.
Nathan Sidwell [Thu, 25 May 2017 12:51:30 +0000 (12:51 +0000)]
cp-tree.h (LOOKUP_SEEN_P, [...]): New.

gcc/cp/
* cp-tree.h (LOOKUP_SEEN_P, LOOKUP_FOUND_P): New.
* name-lookup.h (lookup_arg_dependent): Return plain tree.
* name-lookup.c (arg_lookup, arg_assoc, arg_assoc_args)
arg_assoc_args_vec, arg_assoc_type, add_function,
arg_assoc_namespace, arg_assoc_class_only, arg_assoc_bases,
arg_assoc_class, arg_assoc_template_arg, arg_assoc,
lookup_arg_dependent_1): Delete.
(name_lookup): New lookup object.
(name_lookup::preserve_state, name_lookup::restore_state)
name_lookup::mark_seen, name_lookup::find_and_mark,
name_lookup::add_fns, name_lookup::adl_namespace_only,
name_lookup::adl_namespace, name_lookup::adl_class_only,
name_lookup::adl_bases, name_lookup::adl_class,
name_lookup::adl_expr, name_lookup::adl_type,
name_lookup::adl_template_arg, name_lookup::search_adl): New.
(lookup_arg_dependent): Return a plain tree.  Adjust.
(is_associated_namespace): Move later.
gcc/cp/
* g++.dg/lookup/koenig14.C: New.

From-SVN: r248457

7 years agodump-parse-tree.c (show_expr): Also replace with dumpfile for showing values for...
Thomas Koenig [Thu, 25 May 2017 12:21:22 +0000 (12:21 +0000)]
dump-parse-tree.c (show_expr): Also replace with dumpfile for showing values for forgotten case.

2017-05-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

* dump-parse-tree.c (show_expr):  Also replace
with dumpfile for showing values for forgotten
case.

From-SVN: r248456

7 years agoconfigure.ac: Add --enable-languages=default to mean default and make --enable-langua...
Nathan Sidwell [Thu, 25 May 2017 11:05:38 +0000 (11:05 +0000)]
configure.ac: Add --enable-languages=default to mean default and make --enable-languages=all...

* configure.ac: Add --enable-languages=default to mean default and
make --enable-languages=all mean all supported languages.
* configure: Regenerated.
gcc/
* doc/invoke.texi (--enable-languages): Update documentation.

From-SVN: r248454

7 years agoAdd -fdump*-folding suboption.
Martin Liska [Thu, 25 May 2017 10:08:02 +0000 (12:08 +0200)]
Add -fdump*-folding suboption.

2017-05-25  Martin Liska  <mliska@suse.cz>

* dumpfile.c: Add TDF_FOLDING.
* dumpfile.h (enum dump_kind): Likewise.
* genmatch.c (dt_simplify::gen_1): Use it.

From-SVN: r248452

7 years agore PR c++/79583 (ICE (internal compiler error) upon instantiation of class template...
Paolo Carlini [Thu, 25 May 2017 09:32:46 +0000 (09:32 +0000)]
re PR c++/79583 (ICE (internal compiler error) upon instantiation of class template with `auto` template parameter containing inner class template)

2017-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79583
* g++.dg/cpp0x/pr79583.C: New.

From-SVN: r248451

7 years agore PR c++/68578 (ICE on invalid template declaration and instantiation)
Paolo Carlini [Thu, 25 May 2017 09:32:06 +0000 (09:32 +0000)]
re PR c++/68578 (ICE on invalid template declaration and instantiation)

2017-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68578
* g++.dg/cpp1y/pr68578.C: New.

From-SVN: r248450

7 years agoRelax VIEW_CONVERT_EXPR - CONVERT_EXPR combination
Marc Glisse [Thu, 25 May 2017 08:50:54 +0000 (10:50 +0200)]
Relax VIEW_CONVERT_EXPR - CONVERT_EXPR combination

2017-05-25  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (view_convert (convert@0 @1)): Handle zero-extension.

gcc/testsuite/
* gcc.dg/tree-ssa/vce-1.c: New file.

From-SVN: r248449

7 years agoAllow some NOP conversions in (X+CST1)+CST2 in match.pd
Marc Glisse [Thu, 25 May 2017 08:45:48 +0000 (10:45 +0200)]
Allow some NOP conversions in (X+CST1)+CST2 in match.pd

2017-05-25  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd ((A +- CST1) +- CST2): Allow some conversions.
* tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.

gcc/testsuite/
* gcc.dg/tree-ssa/addadd.c: New file.

From-SVN: r248448

7 years agoMove "(A & C) == D is false when D & ~C != 0" to match.pd
Marc Glisse [Thu, 25 May 2017 08:39:37 +0000 (10:39 +0200)]
Move "(A & C) == D is false when D & ~C != 0" to match.pd

2017-05-25  Marc Glisse  <marc.glisse@inria.fr>

* fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
* match.pd (X == C): Rewrite it here.
(with_possible_nonzero_bits, with_possible_nonzero_bits2,
with_certain_nonzero_bits2): New predicates.
* tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.

From-SVN: r248447

7 years agolto-streamer-in.c (lto_input_data_block): Adjust T const cast to avoid warning.
Nathan Sidwell [Thu, 25 May 2017 01:21:01 +0000 (01:21 +0000)]
lto-streamer-in.c (lto_input_data_block): Adjust T const cast to avoid warning.

* lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
avoid warning.

From-SVN: r248445

7 years agoauto-profile.c (afdo_propagate): Adjust T const cast to avoid warning.
Nathan Sidwell [Thu, 25 May 2017 01:12:29 +0000 (01:12 +0000)]
auto-profile.c (afdo_propagate): Adjust T const cast to avoid warning.

* auto-profile.c (afdo_propagate): Adjust T const cast to avoid
warning.

From-SVN: r248444

7 years agoc=common.c (field_decl_cmp, [...]): Adjust T const casts to avoid warning.
Nathan Sidwell [Thu, 25 May 2017 00:55:10 +0000 (00:55 +0000)]
c=common.c (field_decl_cmp, [...]): Adjust T const casts to avoid warning.

* c=common.c (field_decl_cmp, resort_field_decl_cmp): Adjust T
const casts to avoid warning.

From-SVN: r248443

7 years ago* libiberty.h (ASTRDUP): Adjust cast to avoid warning.
Nathan Sidwell [Thu, 25 May 2017 00:33:48 +0000 (00:33 +0000)]
* libiberty.h (ASTRDUP): Adjust cast to avoid warning.

From-SVN: r248442

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

From-SVN: r248441

7 years agofriend.c (do_friend): Remove check for existing decl.
Nathan Sidwell [Wed, 24 May 2017 23:18:58 +0000 (23:18 +0000)]
friend.c (do_friend): Remove check for existing decl.

cp/
* friend.c (do_friend): Remove check for existing decl.
* name-lookup.h (lookup_name_innermost_nonclass_level): Delete.
* name-lookup.c (push_local_binding): Directly look for binding.
(lookup_name_innermost_nonclass_level_1): Delete.
(lookup_name_innermost_nonclass_level): Delete.

testsuite/
* g++.dg/lookup/friend12.C: Adjust diagnostics.
* g++.dg/lookup/friend19.C: New.
* g++.dg/lookup/friend20.C: New.

From-SVN: r248435

7 years ago* Make-lang.in (CXX_AND_OBJCXX_OBJS): Alphabetize.
Nathan Sidwell [Wed, 24 May 2017 23:13:01 +0000 (23:13 +0000)]
* Make-lang.in (CXX_AND_OBJCXX_OBJS): Alphabetize.

From-SVN: r248434

7 years agocp-tree.h (cp_free_lang_data): Add extern.
Nathan Sidwell [Wed, 24 May 2017 23:08:17 +0000 (23:08 +0000)]
cp-tree.h (cp_free_lang_data): Add extern.

* cp-tree.h (cp_free_lang_data): Add extern.
(ovl_skip_hidden, is_overloaded_fn, really_overloaded_fn): Add
ATTRIBUTE_PURE.
(type_unknown_p): Return bool, make inline, lose TREE_LIST check.
* typeck.c (type_unknown_p): Delete.
* tree.c (is_overloaded_fn): Use MAYBE_BASELINE_FUNCTIONS, adjust
overload management.
(dependent_name): Likewise.
(decl_anon_ns_mem_p): Simplify.

From-SVN: r248433

7 years agoPR c++/80544 strip cv-quals from cast results
Jonathan Wakely [Wed, 24 May 2017 22:16:59 +0000 (23:16 +0100)]
PR c++/80544 strip cv-quals from cast results

gcc/cp:

PR c++/80544
* tree.c (reshape_init): Use unqualified type for direct enum init.
* typeck.c (maybe_warn_about_cast_ignoring_quals): New.
(build_static_cast_1, build_reinterpret_cast_1): Strip cv-quals from
non-class destination types.
(build_const_cast_1): Strip cv-quals from destination types.
(build_static_cast, build_reinterpret_cast, build_const_cast)
(cp_build_c_cast): Add calls to maybe_warn_about_cast_ignoring_quals.

gcc/testsuite:

PR c++/80544
* g++.dg/expr/cast11.C: New test.

From-SVN: r248432

7 years agoPR c/80731 - poor -Woverflow warnings
Martin Sebor [Wed, 24 May 2017 22:07:21 +0000 (22:07 +0000)]
PR c/80731 - poor -Woverflow warnings

gcc/c-family/ChangeLog:

PR c/80731
* c-common.h (unsafe_conversion_p): Add a function argument.
* c-common.c (unsafe_conversion_p): Same.
Add type names and values to diagnostics.
(scalar_to_vector): Adjust.
* c-warn.c (constant_expression_error): Add a function argument.
Add type names and values to diagnostics.
(conversion_warning): Add a function argument.
Add type names and values to diagnostics.
(warnings_for_convert_and_check): Same.

gcc/c/ChangeLog:

PR c/80731
* c-fold.c (c_fully_fold_internal): Adjust.
* c-typeck.c (parser_build_unary_op): Adjust.

gcc/cp/ChangeLog:

PR c/80731
* call.c (fully_fold_internal): Adjust.

gcc/testsuite/ChangeLog:

PR c/80731
* c-c++-common/Wfloat-conversion.c: Adjust.
* c-c++-common/dfp/convert-int-saturate.c: Same.
* c-c++-common/pr68657-1.c: Same.
* g++.dg/ext/utf-cvt.C: Same.
* g++.dg/ext/utf16-4.C: Same.
* g++.dg/warn/Wconversion-real-integer-3.C: Same.
* g++.dg/warn/Wconversion-real-integer2.C: Same.
* g++.dg/warn/Wconversion3.C: Same.
* g++.dg/warn/Wconversion4.C: Same.
* g++.dg/warn/Wsign-conversion.C: Same.
* g++.dg/warn/overflow-warn-1.C: Same.
* g++.dg/warn/overflow-warn-3.C: Same.
* g++.dg/warn/overflow-warn-4.C: Same.
* g++.dg/warn/pr35635.C: Same.
* g++.old-deja/g++.mike/enum1.C: Same.
* gcc.dg/Wconversion-3.c: Same.
* gcc.dg/Wconversion-5.c: Same.
* gcc.dg/Wconversion-complex-c99.c: Same.
* gcc.dg/Wconversion-complex-gnu.c: Same.
* gcc.dg/Wconversion-integer.c: Same.
* gcc.dg/Wsign-conversion.c: Same.
* gcc.dg/bitfld-2.c: Same.
* gcc.dg/c90-const-expr-11.c: Same.
* gcc.dg/c90-const-expr-7.c: Same.
* gcc.dg/c99-const-expr-7.c: Same.
* gcc.dg/overflow-warn-1.c: Same.
* gcc.dg/overflow-warn-2.c: Same.
* gcc.dg/overflow-warn-3.c: Same.
* gcc.dg/overflow-warn-4.c: Same.
* gcc.dg/overflow-warn-5.c: Same.
* gcc.dg/overflow-warn-8.c: Same.
* gcc.dg/overflow-warn-9.c: New test.
* gcc.dg/pr35635.c: Adjust.
* gcc.dg/pr59940.c: Same.
* gcc.dg/pr59963-2.c: Same.
* gcc.dg/pr60114.c: Same.
* gcc.dg/switch-warn-2.c: Same.
* gcc.dg/utf-cvt.c: Same.
* gcc.dg/utf16-4.c: Same.

From-SVN: r248431

7 years agowaitpid.c (wait): Define as a macro that calls _cwait, so that this function works...
Eli Zaretskii [Wed, 24 May 2017 21:35:59 +0000 (21:35 +0000)]
waitpid.c (wait): Define as a macro that calls _cwait, so that this function works on MinGW.

2017-05-24  Eli Zaretskii  <eliz@gnu.org>
* libiberty/waitpid.c (wait) [__MINGW32__]: Define as a macro
that calls _cwait, so that this function works on MinGW.

From-SVN: r248430

7 years agoSplit off powerpcspe from rs6000 port
Segher Boessenkool [Wed, 24 May 2017 19:35:49 +0000 (21:35 +0200)]
Split off powerpcspe from rs6000 port

* config/powerpcspe: New port.  Files are copied from the rs6000
port, with "rs6000" in filenames replaced by "powerpcspe".

* config.gcc (powerpc*-*-*spe*): New.
(powerpc-*-eabispe*): Use ${cpu_type} instead of hardcoded pathnames.
(powerpc-*-rtems*spe*): New.
(powerpc*-*-linux*spe*): New.
(powerpc-wrs-vxworksspe): New.
(powerpc*-*-*, rs6000-*-*): Use ${cpu_type}.
(misc flags) [powerpc*-*-*, rs6000-*-*): Use ${cpu_type}.
* config.host (powerpc*-*-*spe*): New.

From-SVN: r248429

7 years agoUse CHAR_BIT instead of assuming 8 bits
Jonathan Wakely [Wed, 24 May 2017 19:27:28 +0000 (20:27 +0100)]
Use CHAR_BIT instead of assuming 8 bits

* src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
instead of fixed number of bits.

From-SVN: r248428

7 years agointeger-pack2.C: Require int32 effective target.
Jakub Jelinek [Wed, 24 May 2017 19:11:01 +0000 (21:11 +0200)]
integer-pack2.C: Require int32 effective target.

* g++.dg/ext/integer-pack2.C: Require int32 effective target.
Don't include limits.h.
(w): Conditionalize on long long wider than int.  Use
1LL << (__SIZEOF_INT__ * __CHAR_BIT__) instead of
-9223372036854775808.
(x): Use __INT_MAX__ instead of INT_MAX.

From-SVN: r248427

7 years agodump-parse-tree.c (show_expr): Replace stdout with dumpfile for showing values.
Thomas Koenig [Wed, 24 May 2017 19:00:47 +0000 (19:00 +0000)]
dump-parse-tree.c (show_expr): Replace stdout with dumpfile for showing values.

2017-05-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

* dump-parse-tree.c (show_expr):  Replace stdout
with dumpfile for showing values.

From-SVN: r248426

7 years agore PR fortran/66094 (Handle transpose(A) in inline matmul)
Thomas Koenig [Wed, 24 May 2017 18:44:35 +0000 (18:44 +0000)]
re PR fortran/66094 (Handle transpose(A) in inline matmul)

2017-05-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/66094
* frontend-passes.c (matrix_case):  Add A2TB2.
(inline_limit_check):  Handle MATMUL(TRANSPOSE(A),B)
(inline_matmul_assign):  Likewise.

2017-05-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/66094
* gfortran.dg/inline_matmul_16.f90:  New test.

From-SVN: r248425

7 years agoWhen lra-remat rematerializes an instruction with a clobber, it checks that the clobb...
Wilco Dijkstra [Wed, 24 May 2017 17:06:55 +0000 (17:06 +0000)]
When lra-remat rematerializes an instruction with a clobber, it checks that the clobber does not kill live registers.

When lra-remat rematerializes an instruction with a clobber, it checks
that the clobber does not kill live registers.  However it fails to check
that the clobber also doesn't overlap with the destination register of the
final rematerialized instruction.  As a result it is possible to generate
illegal instructions with the same hard register as the destination and a
clobber.  Fix this by also checking for overlaps with the destination
register.

    gcc/
PR rtl-optimization/80754
* lra-remat.c (do_remat): Add overlap checks for dst_regno.

From-SVN: r248424

7 years agocp-tree.h (ovl_skip_hidden): Declare.
Nathan Sidwell [Wed, 24 May 2017 15:56:06 +0000 (15:56 +0000)]
cp-tree.h (ovl_skip_hidden): Declare.

* cp-tree.h (ovl_skip_hidden): Declare.
* tree.c (ovl_skip_hidden): New.
* name-lookup.c (arg_assoc_namespace): Call ovl_skip_hidden.
(lookup_arg_dependent_1): Likewise.
(ambiguous_decl): Use DECL_HIDDEN_P, ovl_skip_hidden.
(hidden_name_p, remove_hidden_names): Delete.
(lookup_name_real_1): Do not strip hidden names.
* name-lookup.h (hidden_name_p, remove_hidden_names): Delete.

From-SVN: r248423

7 years agoFix a SPARC -mcbcond compare-and-branch out of range failure.
Sheldon Lobo [Wed, 24 May 2017 14:46:05 +0000 (14:46 +0000)]
Fix a SPARC -mcbcond compare-and-branch out of range failure.

* config/sparc/sparc.md (length): Return the correct value for -mflat
sibcalls to match output_sibcall.

From-SVN: r248422

7 years agors6000: Fix for separate shrink-wrapping for fp (PR80860, PR80843)
Segher Boessenkool [Wed, 24 May 2017 14:33:11 +0000 (16:33 +0200)]
rs6000: Fix for separate shrink-wrapping for fp (PR80860, PR80843)

After my r248256, rs6000_components_for_bb allocates an sbitmap of size
only 32 while it can use up to 64.  This patch fixes it.  It moves the
n_components variable into the machine_function struct so that other
hooks can use it.

PR bootstrap/80860
PR bootstrap/80843
* config/rs6000/rs6000.c (struct machine_function): Add new field
n_components.
(rs6000_get_separate_components): Init that field, use it.
(rs6000_components_for_bb): Use the field.

From-SVN: r248421

7 years agobaseline_symbols.txt: Update.
Andreas Schwab [Wed, 24 May 2017 14:33:07 +0000 (14:33 +0000)]
baseline_symbols.txt: Update.

* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.

From-SVN: r248420

7 years ago[ARM] Fix typo in comment in arm_expand_prologue
Thomas Preud'homme [Wed, 24 May 2017 14:12:00 +0000 (14:12 +0000)]
[ARM] Fix typo in comment in arm_expand_prologue

2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.

From-SVN: r248419

7 years agoReinstate absolute line number in gcc.dg/cpp/19940712-1.c
Tom de Vries [Wed, 24 May 2017 14:08:37 +0000 (14:08 +0000)]
Reinstate absolute line number in gcc.dg/cpp/19940712-1.c

2017-05-24  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/cpp/19940712-1.c: Reinstate absolute line number.

From-SVN: r248418

7 years agoOpenACC 1.0 compatibility: acc_async_wait, acc_async_wait_all
Thomas Schwinge [Wed, 24 May 2017 13:25:01 +0000 (15:25 +0200)]
OpenACC 1.0 compatibility: acc_async_wait, acc_async_wait_all

libgomp/
* openacc.h (acc_async_wait, acc_async_wait_all): New prototypes.
* libgomp.map (OACC_2.0.1): Add these.
* oacc-async.c (acc_async_wait, acc_async_wait_all): New aliases
for "acc_wait", and "acc_wait_all", respectively.
* openacc.f90 (acc_async_wait, acc_async_wait_all): New interfaces
for "acc_wait", and "acc_wait_all", respectively.
* openacc_lib.h (acc_async_wait, acc_async_wait_all): Likewise.
* libgomp.texi (acc_wait, acc_wait_all): Update.
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Update.
* testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: New file.
* testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.

From-SVN: r248413

7 years agoFortran OpenACC "openacc_lib.h": acc_pcopyin, acc_pcreate
Thomas Schwinge [Wed, 24 May 2017 13:23:55 +0000 (15:23 +0200)]
Fortran OpenACC "openacc_lib.h": acc_pcopyin, acc_pcreate

libgomp/
* openacc_lib.h (acc_pcopyin, acc_pcreate): Route to
acc_present_or_copyin and acc_present_or_create procedures,
respectively.
* testsuite/libgomp.oacc-fortran/lib-32-1.f: Exercise these, and
generally different variants of OpenACC Runtime Library functions.
* testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.

From-SVN: r248412

7 years agoTranslate libgomp.oacc-c-c++-common/lib-32.c into Fortran
Thomas Schwinge [Wed, 24 May 2017 13:23:45 +0000 (15:23 +0200)]
Translate libgomp.oacc-c-c++-common/lib-32.c into Fortran

libgomp/
* testsuite/libgomp.oacc-fortran/lib-32-1.f: New file.
* testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.

From-SVN: r248411

7 years agoC/C++ OpenACC: acc_pcopyin, acc_pcreate
Thomas Schwinge [Wed, 24 May 2017 13:23:34 +0000 (15:23 +0200)]
C/C++ OpenACC: acc_pcopyin, acc_pcreate

libgomp/
* openacc.h (acc_pcopyin, acc_pcreate): Provide prototypes instead
of preprocessor definitions.
* libgomp.h (strong_alias): Guard by "#ifdef
HAVE_ATTRIBUTE_ALIAS".
* oacc-mem.c: Provide "acc_pcreate" as alias for
"acc_present_or_create", and "acc_pcopyin" as alias for
"acc_present_or_copyin".
* libgomp.map: New version "OACC_2.0.1".
(OACC_2.0.1): Add "acc_pcopyin", and "acc_pcreate".
* testsuite/libgomp.oacc-c-c++-common/lib-38.c: Remove, merging
its content into...
* testsuite/libgomp.oacc-c-c++-common/lib-32.c: ... this file.
Extend testing.

From-SVN: r248410

7 years agore PR middle-end/80823 (ICE: verify_flow_info failed)
Peter Bergner [Wed, 24 May 2017 12:10:54 +0000 (07:10 -0500)]
re PR middle-end/80823 (ICE: verify_flow_info failed)

gcc/
PR middle-end/80823
* tree-cfg.c (group_case_labels_stmt): Delete increment of "i";

gcc/testsuite/
PR middle-end/80823
* gcc.dg/pr80823.c: New test.

From-SVN: r248408

7 years agoS/390: Fix PR80725.
Andreas Krebbel [Wed, 24 May 2017 11:36:54 +0000 (11:36 +0000)]
S/390: Fix PR80725.

gcc/ChangeLog:

2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/80725
* config/s390/s390.c (s390_check_qrst_address): Check incoming
address against address_operand predicate.
* config/s390/s390.md ("*indirect_jump"): Swap alternatives.

gcc/testsuite/ChangeLog:

2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/pr80725.c: New test.

From-SVN: r248407

7 years agocp-tree.h (OVL_HIDDEN_P): New.
Nathan Sidwell [Wed, 24 May 2017 11:28:54 +0000 (11:28 +0000)]
cp-tree.h (OVL_HIDDEN_P): New.

gcc/cp/
* cp-tree.h (OVL_HIDDEN_P): New.
(ovl_iterator::hidden_p, ovl_iterator::reveal_node): New.
(ovl_iterator::reveal_node): Declare.
* tree.c (ovl_copy): Copy OVL_HIDDEN_P.
(ovl_insert): Order on hiddenness.
(ovl_iterator::reveal_node): New.
* name-lookup.c (anticipated_builtin_p): New.
(supplement_binding_1): Use it.
(set_local_extern_decl_linkage): Use hidden_p.
(do_pushdecl): Deal with unhiding a hidden decl, use
anticipated_builtin_p.
(do_nonmember_using_decl): Use anticipated_decl_p.
(lookup_name_real_1): Use DECL_HIDDEN_P.

gcc/testsuite/
* g++.dg/lookup/extern-c-hidden.C: New.
* g++.dg/lookup/extern-redecl1.C: New.

From-SVN: r248406

7 years agocheck_GNU_style.py: print usage if no file specified
Tom de Vries [Wed, 24 May 2017 08:49:56 +0000 (08:49 +0000)]
check_GNU_style.py: print usage if no file specified

2017-05-24  Tom de Vries  <tom@codesourcery.com>

* check_GNU_style_lib.py: New file, factored out of ...
* check_GNU_style.py: ... here.  Call main unconditionally.

From-SVN: r248403

7 years agovar-tracking.c (track_expr_p): Do not return 0 for tracked record parameters passed...
Eric Botcazou [Wed, 24 May 2017 08:12:27 +0000 (08:12 +0000)]
var-tracking.c (track_expr_p): Do not return 0 for tracked record parameters passed indirectly.

* var-tracking.c (track_expr_p): Do not return 0 for tracked record
parameters passed indirectly.

From-SVN: r248402

7 years agolibgomp nvptx plugin: Debugging output when disabling nvptx offloading
Thomas Schwinge [Wed, 24 May 2017 06:59:05 +0000 (08:59 +0200)]
libgomp nvptx plugin: Debugging output when disabling nvptx offloading

libgomp/
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Debugging output
when disabling nvptx offloading.

From-SVN: r248400

7 years ago-Wunused and C++17 structured bindings
Jason Merrill [Wed, 24 May 2017 01:46:16 +0000 (21:46 -0400)]
-Wunused and C++17 structured bindings

* decl.c (poplevel): Don't warn about unused structured bindings,
only real variables.
* error.c (dump_simple_decl): Handle structured bindings.
* expr.c (mark_exp_read): Look through DECL_VALUE_EXPR.

From-SVN: r248399

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

From-SVN: r248398

7 years agocompiler: detect failure to set init priority for package
Ian Lance Taylor [Tue, 23 May 2017 23:55:59 +0000 (23:55 +0000)]
compiler: detect failure to set init priority for package

    This would have caught the problem fixed by https://golang.org/cl/43610.

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

From-SVN: r248394

7 years agogcc_release (XZ): Default to xz --best.
Matthias Klose [Tue, 23 May 2017 23:14:10 +0000 (23:14 +0000)]
gcc_release (XZ): Default to xz --best.

2017-05-23  Matthias Klose  <doko@ubuntu.com>

        * gcc_release (XZ): Default to xz --best.

From-SVN: r248392

7 years agocp-tree.h (PUSH_GLOBAL, [...]): Delete.
Nathan Sidwell [Tue, 23 May 2017 21:15:48 +0000 (21:15 +0000)]
cp-tree.h (PUSH_GLOBAL, [...]): Delete.

* cp-tree.h (PUSH_GLOBAL, PUSH_LOCAL, PUSH_USING): Delete.
* name-lookup.c (create_local_binding): New.
(update_binding): New.
(pushdecl_maybe_friend_1): Rename to ...
(do_pushdecl): ... this.  Reimplement.
(pushdecl): Adjust.
(push_overloaded_decl_1, push_overloaded_decl): Delete.

From-SVN: r248387

7 years agoPR c++/80396 - built-in for make_integer_sequence.
Jason Merrill [Tue, 23 May 2017 20:14:01 +0000 (16:14 -0400)]
PR c++/80396 - built-in for make_integer_sequence.

* pt.c (builtin_pack_fn_p, builtin_pack_call_p)
(expand_integer_pack, expand_builtin_pack_call): New.
(find_parameter_packs_r): Check builtin_pack_call_p.
(check_for_bare_parameter_packs): Handle it.
(tsubst_pack_expansion): Call expand_builtin_pack_call.
(declare_integer_pack): New.
(init_template_processing): Call it.
* decl2.c (mark_used): Check builtin_pack_fn_p.

From-SVN: r248384

7 years agoi386.md (*movdi_internal): Remove SSE4 alternative 18 (?r, *v).
Uros Bizjak [Tue, 23 May 2017 19:47:40 +0000 (21:47 +0200)]
i386.md (*movdi_internal): Remove SSE4 alternative 18 (?r, *v).

* config/i386/i386.md (*movdi_internal): Remove SSE4
alternative 18 (?r, *v).  Update insn attributes.
(*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
Update insn attributes.
(*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
Update insn attributes.
* config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
alternative 1 (r, v). Remove isa attribute.
* config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.

From-SVN: r248383

7 years agoname-lookup.c (find_namespace_binding): New.
Nathan Sidwell [Tue, 23 May 2017 19:37:03 +0000 (19:37 +0000)]
name-lookup.c (find_namespace_binding): New.

* name-lookup.c (find_namespace_binding): New.
(pushdecl_maybe_friend_1): Use CP_DECL_CONTEXT.
(set_identifier_type_value_with_scope): Use
find_namespace_binding.
(find_binding, cp_binding_level_find_binding_for_name)
binding_for_name, namespace_binding_1): Delete.
(push_overloaded_decl_1): Use CP_DECL_CONTEXT.
(get_namespace_binding, set_namespace_binding)
finish_namespace_using_decl, unqualified_namespace_lookup_1,
qualified_lookup_using_namespace, lookup_type_scope_1,
lookup_name_innermost_nonclass_level_1): Use
find_namespace_binding.
((--This line, and those below, will be ignored--

M    cp/name-lookup.c
M    cp/ChangeLog

From-SVN: r248382

7 years agore PR c++/80866 (segfault in is_overloaded_fn())
Nathan Sidwell [Tue, 23 May 2017 17:04:56 +0000 (17:04 +0000)]
re PR c++/80866 (segfault in is_overloaded_fn())

PR c++/80866
* parser.c (cp_parser_template_id): Keep the lookup when stashing
the template_id.

PR c++/80866
* g++.dg/parse/pr80866.C: New.

From-SVN: r248377

7 years agoDocument dg-line directive
Tom de Vries [Tue, 23 May 2017 16:38:31 +0000 (16:38 +0000)]
Document dg-line directive

2017-05-23  Tom de Vries  <tom@codesourcery.com>

* doc/sourcebuild.texi (Directives, Verify compiler message): Document
dg-line directive.

From-SVN: r248376

7 years agocgraphunit.c (symbol_table::process_new_functions): Update.
Jan Hubicka [Tue, 23 May 2017 16:20:53 +0000 (18:20 +0200)]
cgraphunit.c (symbol_table::process_new_functions): Update.

* cgraphunit.c (symbol_table::process_new_functions): Update.
* ipa-fnsummary.c (pass_data_inline_parameters): Remove.
(inline_generate_summary): Rename to ...
(ipa_fn_summary_generate): ... this one.
(inline_read_summary): Rename to ...
(ipa_fn_summary_read): ... this one.
(inline_write_summary): Rename to ...
(ipa_fn_summary_write): ... this one.
(inline_free_summary): Rename to ...
(ipa_free_fn_summary): ... this one.
(pass_data_local_fn_summary, pass_local_fn_summary,
make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
pass_data_ipa_fn_summary, pass_ipa_fn_summary,
make_pass_ipa_fn_summary): New.
* ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
inline_write_summary, inline_free_summary): Remove.
(ipa_free_fn_summary) : New.
* ipa-inline.c (ipa_inline): Update.
(pass_ipa_inline): Do not generate summaries.
* ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
Remove.
* passes.def: Replace pass_inline_parameters by pass_local_fn_summary
and add pass_ipa_fn_summary.
* tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
New.
(make_pass_inline_parameters): Remove.

* lto.c (do_whole_program_analysis): Replace inline_free_summary
by ipa_free_fn_summary.

* gcc.dg/ipa/ctor-empty-1.c: Update template.
* gcc.dg/ipa/inline-5.c: Likewise.
* gfortran.dg/pr48636.f90: Likewise.

From-SVN: r248375

7 years agoPR libstdc++/67578 Implement non-trivial std::random_device::entropy
Xi Ruoyao [Tue, 23 May 2017 16:11:57 +0000 (16:11 +0000)]
PR libstdc++/67578 Implement non-trivial std::random_device::entropy

2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
    Jonathan Wakely  <jwakely@redhat.com>

PR libstdc++/67578
* acinclude.m4: Bump libtool_VERSION.
* config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Add test for <linux/random.h>.
* doc/xml/manual/abi.xml: Document new library version.
* include/bits/random.h (random_device::entropy)
[_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
(random_device::_M_getentropy): Declare.
* src/c++11/random.cc (random_device::_M_getentropy): Define.
* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
versions, and make it the latest version.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r248374

7 years agocp-tree.h (DECL_HIDDEN_P): New.
Nathan Sidwell [Tue, 23 May 2017 16:03:34 +0000 (16:03 +0000)]
cp-tree.h (DECL_HIDDEN_P): New.

gcc/cp/
* cp-tree.h (DECL_HIDDEN_P): New.
* name-lookup.c (set_decl_context)
set_local_extern_decl_linkage): New, broken out of ...
(pushdecl_maybe_friend_1): ... here.  Call them.

gcc/testsuite/
* g++.dg/parse/ctor9.C: Adjust expected error.
(--This line, and those below, will be ignored--

M    cp/name-lookup.c
M    cp/ChangeLog
M    cp/cp-tree.h
M    testsuite/ChangeLog
M    testsuite/g++.dg/parse/ctor9.C

From-SVN: r248373

7 years agoRemove unused "default_kind" member from gcc/omp-low.c's "struct omp_context"
Thomas Schwinge [Tue, 23 May 2017 16:00:56 +0000 (18:00 +0200)]
Remove unused "default_kind" member from gcc/omp-low.c's "struct omp_context"

gcc/
* omp-low.c (struct omp_context): Remove "default_kind" member.
Adjust all users.

From-SVN: r248372

7 years agore PR fortran/80256 (Cygwin test fail: bind_c_array_params_2.f90 scan-assembler-times)
Jerry DeLisle [Tue, 23 May 2017 15:54:59 +0000 (15:54 +0000)]
re PR fortran/80256 (Cygwin test fail: bind_c_array_params_2.f90 scan-assembler-times)

2017-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/80256
* gfortran.dg/bind_c_array_params_2.f90: Modify to pass on
Cygwin.

From-SVN: r248371

7 years agoOpenACC 2.5 kernels construct: num_gangs, num_workers, vector_length clauses
Thomas Schwinge [Tue, 23 May 2017 15:47:32 +0000 (17:47 +0200)]
OpenACC 2.5 kernels construct: num_gangs, num_workers, vector_length clauses

gcc/c/
* c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add
"PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS",
"VECTOR_LENGTH".
gcc/cp/
* parser.c (OACC_KERNELS_CLAUSE_MASK): Add
"PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS",
"VECTOR_LENGTH".
gcc/fortran/
* openmp.c (OACC_KERNELS_CLAUSES): Add "OMP_CLAUSE_NUM_GANGS",
"OMP_CLAUSE_NUM_WORKERS", "OMP_CLAUSE_VECTOR_LENGTH".
gcc/
* omp-offload.c (execute_oacc_device_lower): Remove the
parallelism dimensions function attributes for unparallelized
OpenACC kernels constructs.
gcc/testsuite/
* c-c++-common/goacc/parallel-dims-1.c: Update.
* c-c++-common/goacc/parallel-dims-2.c: Likewise.
* c-c++-common/goacc/routine-1.c: Likewise.
* c-c++-common/goacc/uninit-dim-clause.c: Likewise.
* g++.dg/goacc/template.C: Likewise.
* gfortran.dg/goacc/kernels-tree.f95: Likewise.
* gfortran.dg/goacc/routine-3.f90: Likewise.
* gfortran.dg/goacc/sie.f95: Likewise.
* gfortran.dg/goacc/uninit-dim-clause.f95: Likewise.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Update.
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.

From-SVN: r248370

7 years agoIntroduce symtab_node::dump_{asm_,}name functions.
Martin Liska [Tue, 23 May 2017 14:39:11 +0000 (16:39 +0200)]
Introduce symtab_node::dump_{asm_,}name functions.

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

* cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
functions.
(cgraph_edge::make_speculative): Likewise.
(cgraph_edge::resolve_speculation): Likewise.
(cgraph_edge::redirect_call_stmt_to_callee): Likewise.
(cgraph_node::dump): Likewise.
* cgraph.h: Likewise.
* cgraphunit.c (analyze_functions): Likewise.
(symbol_table::compile): Likewise.
* ipa-cp.c (print_all_lattices): Likewise.
(determine_versionability): Likewise.
(initialize_node_lattices): Likewise.
(ipcp_verify_propagated_values): Likewise.
(estimate_local_effects): Likewise.
(update_profiling_info): Likewise.
(create_specialized_node): Likewise.
(perhaps_add_new_callers): Likewise.
(decide_about_value): Likewise.
(decide_whether_version_node): Likewise.
(identify_dead_nodes): Likewise.
(ipcp_store_bits_results): Likewise.
* ipa-devirt.c (dump_targets): Likewise.
(ipa_devirt): Likewise.
* ipa-icf.c (sem_item::dump): Likewise.
(sem_function::equals): Likewise.
(sem_variable::equals): Likewise.
(sem_item_optimizer::read_section): Likewise.
(sem_item_optimizer::execute): Likewise.
(congruence_class::dump): Likewise.
* ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
(dump_inline_summary): Likewise.
(estimate_node_size_and_time): Likewise.
(inline_analyze_function): Likewise.
* ipa-inline-transform.c (inline_call): Likewise.
* ipa-inline.c (report_inline_failed_reason): Likewise.
(want_early_inline_function_p): Likewise.
(edge_badness): Likewise.
(update_edge_key): Likewise.
(inline_small_functions): Likewise.
* ipa-profile.c (ipa_profile): Likewise.
* ipa-prop.c (ipa_print_node_jump_functions): Likewise.
(ipa_make_edge_direct_to_target): Likewise.
(remove_described_reference): Likewise.
(ipa_impossible_devirt_target): Likewise.
(propagate_controlled_uses): Likewise.
(ipa_print_node_params): Likewise.
(ipcp_transform_function): Likewise.
* ipa-pure-const.c (pure_const_read_summary): Likewise.
(propagate_pure_const): Likewise.
* ipa-reference.c (generate_summary): Likewise.
(read_write_all_from_decl): Likewise.
(propagate): Likewise.
(ipa_reference_read_optimization_summary): Likewise.
* ipa-utils.c (ipa_merge_profiles): Likewise.
* ipa.c (walk_polymorphic_call_targets): Likewise.
(symbol_table::remove_unreachable_nodes): Likewise.
(ipa_single_use): Likewise.
* passes.c (execute_todo): Likewise.
* predict.c (drop_profile): Likewise.
* symtab.c (symtab_node::get_dump_name): New function.
(symtab_node::dump_name): Likewise.
(symtab_node::dump_asm_name): Likewise.
(symtab_node::dump_references): Likewise.
(symtab_node::dump_referring): Likewise.
(symtab_node::dump_base): Likewise.
(symtab_node::debug_symtab): Likewise.
* tree-sra.c (convert_callers_for_node): Likewise.
* tree-ssa-structalias.c (ipa_pta_execute): Likewise.
* value-prof.c (init_node_map): Likewise.
2017-05-23  Martin Liska  <mliska@suse.cz>

* lto-symtab.c (lto_cgraph_replace_node): Use
symtab_node::dump_{asm_,}name functions.
* lto.c (read_cgraph_and_symbols): Likewise.
(do_whole_program_analysis): Likewise.

From-SVN: r248369

7 years agoMove symtab_node::dump_table to symbol_table::dump
Martin Liska [Tue, 23 May 2017 14:28:35 +0000 (16:28 +0200)]
Move symtab_node::dump_table to symbol_table::dump

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

* cgraph.h: Move symtab_node::dump_table to symbol_table::dump
and symtab_node::debug_symtab to symbol_table::debug.
* cgraphunit.c (analyze_functions): Use the renamed function.
(symbol_table::compile): Likewise.
* ipa-cp.c (ipcp_verify_propagated_values): Likewise.
* ipa-icf.c (sem_item_optimizer::execute): Likewise.
* passes.c (execute_todo): Likewise.
* symtab.c (symbol_table::dump): New function.
* tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
2017-05-23  Martin Liska  <mliska@suse.cz>

* lto.c (read_cgraph_and_symbols): Use the renamed function.
(do_whole_program_analysis): Use the renamed function.

From-SVN: r248368

7 years agoipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check that nonconst...
Jan Hubicka [Tue, 23 May 2017 12:20:05 +0000 (14:20 +0200)]
ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check that nonconst implies exec.

* ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
that nonconst implies exec.

From-SVN: r248366

7 years agoipa-inline-analysis.c (cgraph_2edge_hook_list, [...]): Remove.
Jan Hubicka [Tue, 23 May 2017 10:59:35 +0000 (12:59 +0200)]
ipa-inline-analysis.c (cgraph_2edge_hook_list, [...]): Remove.

* ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
(inline_edge_summary_vec): Turn into ...
(ipa_call_summaries): ... this one.
(redirect_to_unreachable, edge_set_predicate,
evaluate_properties_for_edge, inline_summary_alloc,
reset_ipa_call_summary, reset_inline_summary,
inline_summary_t::duplicate): Update.
(inline_edge_duplication_hook): Turn to ...
(ipa_call_summary_t::duplicate): ... this one.
(inline_edge_removal_hook): Turn to ...
(ipa_call_summary_t::remove): ... this one.
(dump_inline_edge_summary): Turn to ...
(dump_ipa_call_summary): ... this one.
(estimate_function_body_sizes): Update.
(inline_update_callee_summaries): Update.
(remap_edge_change_prob): Update.
(remap_edge_summaries): Update.
(inline_merge_summary): Update.
(do_estimate_edge_time): Update.
(inline_generate_summary): Update.
(inline_read_section): Update.
(inline_read_summary): Update.
(inline_free_summary): Update.
* ipa-inline.c (can_inline_edge_p): Update.
(compute_inlined_call_time): Update.
(want_inline_small_function_p): Update.
(edge_badness): Update.
(early_inliner): Update.
* ipa-inline.h (inline_edge_summary): Turn to ...
(ipa_call_summary): ... this one.
(ipa_call_summary_t): New class.
(inline_edge_summary_t, inline_edge_summary_vec): Remove.
(ipa_call_summaries): New.
(inline_edge_summary): Remove.
(estimate_edge_growth): Update.
* ipa-profile.c (ipa_propagate_frequency_1): Update.
* ipa-prop.c (ipa_make_edge_direct_to_target): Update.
* ipa-split.c (execute_split_functions): Update.
* ipa.c (symbol_table::remove_unreachable_nodes): Update.

From-SVN: r248365

7 years agocp-tree.h (OVL_P): New.
Nathan Sidwell [Tue, 23 May 2017 10:58:57 +0000 (10:58 +0000)]
cp-tree.h (OVL_P): New.

gcc/cp
* cp-tree.h (OVL_P): New.
* name-lookup.h (push_local_binding): Delete.
(do_toplevel_using_decl, do_local_using_decl): Rename to ...
(finish_namespace_using_decl, finish_local_using_decl): ... here
* name-lookup.c (add_decl_to_level): Swap args.
(pop_bindings_and_leave_scope): Look inside TREE_LIST.
(diagnose_name_conflict): Check contexts are same for redecl.
(update_local_overload): New.
(compparms_for_decl_and_using): Rename to ...
(matching_fn_p): ... here.
(pushdecl_maybe_friend_1): Adjust add_decl_to_level,
push_local_bindings call.
(push_local_binding): Make static, replace FLAGS arg with
IS_USING.
(validate_nonmember_using_decl): Use OVL_FIRST.
(do_nonmember_using_decl): Use in/out parameters.  Use
lkp_iterator and simplify.
(do_toplevel_using_decl, do_local_using_decl): Rename to ...
(finish_namespace_using_decl, finish_local_using_decl): ... here.
Adjust.
(lookup_type_current_level): Delete.
* parser.c (cp_parser_using_declaration): Adjust.
* pt.c (tsubst_expr): Adjust.

libcc1/
* libcp1plugin.cc (plugin_add_using_decl): Call
finish_namespace_using_decl.  Use assert not unreachable.

gcc/testsuite/
* g++.dg/lookup/using13.C: Adjust expected error.

From-SVN: r248364

7 years agoc-parser.c (c_parser_compound_statement_nostart): Remove redundant quotes.
Marek Polacek [Tue, 23 May 2017 10:47:50 +0000 (10:47 +0000)]
c-parser.c (c_parser_compound_statement_nostart): Remove redundant quotes.

* c-parser.c (c_parser_compound_statement_nostart): Remove redundant
quotes.

From-SVN: r248363

7 years agoPR libstdc++/67214 Avoid signed overflow in num_get::_M_extract_int
Xi Ruoyao [Tue, 23 May 2017 10:16:08 +0000 (10:16 +0000)]
PR libstdc++/67214 Avoid signed overflow in num_get::_M_extract_int

2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>

PR libstdc++/67214
* include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
explicit conversion to avoid signed overflow.

From-SVN: r248362

7 years agoFix bogus builtin-snprintf-warn-3.c failure for avr
Senthil Kumar Selvaraj [Tue, 23 May 2017 09:49:27 +0000 (09:49 +0000)]
Fix bogus builtin-snprintf-warn-3.c failure for avr

The test declares a struct with an array member that has INT_MAX/32767
elements. This causes a "type xxx is too large" error for targets like
the avr, which has 16 bit pointers.

Fix by marking the test as unsupported for targets with ptr size < 32.

2017-05-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.dg/tree-ssa/builtin-snprintf-warn-3.c: Require ptr32plus.

From-SVN: r248361

7 years agoDocument rdrand effective target
Tom de Vries [Tue, 23 May 2017 09:40:21 +0000 (09:40 +0000)]
Document rdrand effective target

2017-05-23  Tom de Vries  <tom@codesourcery.com>

* doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
attributes): Document rdrand effective target.

From-SVN: r248360

7 years agoSort 'Other hardware attributes' table in sourcebuild.texi
Tom de Vries [Tue, 23 May 2017 09:40:10 +0000 (09:40 +0000)]
Sort 'Other hardware attributes' table in sourcebuild.texi

2017-05-23  Tom de Vries  <tom@codesourcery.com>

* doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
attributes): Sort alphabetically.

From-SVN: r248359

7 years agoRuntime checking of OpenACC parallelism dimensions clauses
Thomas Schwinge [Tue, 23 May 2017 09:16:05 +0000 (11:16 +0200)]
Runtime checking of OpenACC parallelism dimensions clauses

libgomp/
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Rewrite.
* testsuite/lib/libgomp.exp
(check_effective_target_openacc_nvidia_accel_configured): New
proc.
* testsuite/libgomp.oacc-c++/c++.exp (check_effective_target_c)
(check_effective_target_c++): New procs.
* testsuite/libgomp.oacc-c/c.exp (check_effective_target_c)
(check_effective_target_c++): Likewise.

From-SVN: r248358

7 years agogenmultilib.awk: Use gsub instead of gensub.
Georg-Johann Lay [Tue, 23 May 2017 07:51:26 +0000 (07:51 +0000)]
genmultilib.awk: Use gsub instead of gensub.

* config/avr/genmultilib.awk: Use gsub instead of gensub.

From-SVN: r248357

7 years agoDaily bump.
GCC Administrator [Tue, 23 May 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248356

7 years agore PR target/80718 (GCC generates slow code for offsettable vec_duplicate)
Michael Meissner [Mon, 22 May 2017 22:44:45 +0000 (22:44 +0000)]
re PR target/80718 (GCC generates slow code for offsettable vec_duplicate)

[gcc]
2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/80718
* config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
V2DF/V2DI splat into two separate patterns, one that handles
registers, and the other that only handles memory.  Drop support
for splatting from a GPR on ISA 2.07 and then splitting the
splat into direct move and splat.
(vsx_splat_<mode>_reg): Likewise.
(vsx_splat_<mode>_mem): Likewise.

[gcc/testsuite]
2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/80718
* gcc.target/powerpc/pr80718.c: New test.

From-SVN: r248352

7 years agocfgcleanup: Ignore clobbers in bb_is_just_return
Segher Boessenkool [Mon, 22 May 2017 21:20:51 +0000 (23:20 +0200)]
cfgcleanup: Ignore clobbers in bb_is_just_return

The function bb_is_just_return finds if the BB it is asked about does
just a return and nothing else.  It currently does not allow clobbers
in the block either, which we of course can allow just fine.

This patch changes that.

* cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.

gcc/testsuite/

From-SVN: r248351

7 years agop8-vec-xl-xst.c: Fix target string to LE-only.
Bill Schmidt [Mon, 22 May 2017 19:43:36 +0000 (19:43 +0000)]
p8-vec-xl-xst.c: Fix target string to LE-only.

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

* gcc.target/powerpc/p8-vec-xl-xst.c: Fix target string to
LE-only.

From-SVN: r248348

7 years agoc-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal result for SAVE_EXPR...
Jakub Jelinek [Mon, 22 May 2017 18:55:29 +0000 (20:55 +0200)]
c-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal result for SAVE_EXPR operand and set...

* c-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal
result for SAVE_EXPR operand and set SAVE_EXPR_FOLDED_P even if
it returned invariant.  Call tree_invariant_p unconditionally
afterwards to decide whether to return expr or op0.

From-SVN: r248347

7 years agore PR middle-end/80809 (Multi-free error for variable size array used within OpenMP...
Jakub Jelinek [Mon, 22 May 2017 18:54:54 +0000 (20:54 +0200)]
re PR middle-end/80809 (Multi-free error for variable size array used within OpenMP task)

PR middle-end/80809
* omp-low.c (finish_taskreg_remap): New function.
(finish_taskreg_scan): If unit size of ctx->record_type
is non-constant, unshare the size expression and replace
decls in it with possible outer var refs.

* testsuite/libgomp.c/pr80809-2.c: New test.
* testsuite/libgomp.c/pr80809-3.c: New test.

From-SVN: r248346