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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Wed, 24 May 2017 00:16:23 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248398
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Tue, 23 May 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248356
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
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
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
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
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
Jakub Jelinek [Mon, 22 May 2017 18:54:05 +0000 (20:54 +0200)]
re PR middle-end/80809 (Multi-free error for variable size array used within OpenMP task)
PR middle-end/80809
* gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
GOVD_SHARED rather than GOVD_PRIVATE with it.
(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
* testsuite/libgomp.c/pr80809-1.c: New test.
From-SVN: r248345
Jakub Jelinek [Mon, 22 May 2017 18:51:54 +0000 (20:51 +0200)]
re PR middle-end/80853 (OpenMP ICE in build_outer_var_ref with array reduction)
PR middle-end/80853
* omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
as last argument to build_outer_var_ref for pointer bases of array
section reductions.
* testsuite/libgomp.c/pr80853.c: New test.
From-SVN: r248344
Joseph Myers [Mon, 22 May 2017 17:11:36 +0000 (18:11 +0100)]
* da.po, es.po: Update.
From-SVN: r248342
Janus Weil [Mon, 22 May 2017 17:08:24 +0000 (19:08 +0200)]
re PR fortran/80766 ([OOP] ICE with type-bound procedure returning an array)
2017-05-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/80766
* resolve.c (resolve_fl_derived): Make sure that vtype symbols are
properly resolved.
2017-05-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/80766
* gfortran.dg/typebound_call_28.f90: New test.
From-SVN: r248341
Martin Sebor [Mon, 22 May 2017 16:17:59 +0000 (16:17 +0000)]
print-tree.c (print_node): Print DECL_READ_P flag.
gcc/ChangeLog:
* print-tree.c (print_node): Print DECL_READ_P flag.
From-SVN: r248339
Nathan Sidwell [Mon, 22 May 2017 16:00:35 +0000 (16:00 +0000)]
name-lookup.h (parse_using_directive): Replace with ...
* name-lookup.h (parse_using_directive): Replace with ...
(finish_namespace_using_directive): ... this and ...
(finish_local_using_directive): ... this.
* name-lookup.c (add_using_namespace_1): Move later.
(add_using_namespace): Move later, add namespace_p arg, remove
indirect arg.
(push_using_directive_1): Directly recurse.
(do_using_directive, parse_using_directive): Delete, split into
...
(finish_namespace_using_directive): ... this and ...
(finish_local_using_directive): ... this.
(push_namespace): Use add_using_namespace.
* parser.c (cp_parser_using_directive): Call
finish_namespace_using_directive or finish_local_using_directive.
* pt.c (tsubst_expr): Call finish_local_using_directive.
From-SVN: r248337
Jan Hubicka [Mon, 22 May 2017 15:36:02 +0000 (17:36 +0200)]
Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
* Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
* auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
* cgraph.c: Likewise.
* cgraphunit.c: Likewise.
* gengtype.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-devirt.c: Likewise.
* ipa-icf.c: Likewise.
* ipa-predicate.c: Likewise.
* ipa-profile.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-split.c: Likewise.
* ipa.c: Likewise.
* ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
edge_predicate_pool, dump_inline_hints,
inline_summary::account_size_time, redirect_to_unreachable,
edge_set_predicate, set_hint_predicate,
evaluate_conditions_for_known_args, evaluate_properties_for_edge,
inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
inline_summary_t::remove, remap_hint_predicate_after_duplication,
inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
ipa_call_summary_t::remove, initialize_growth_caches,
free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
mark_modified, unmodified_parm_1, unmodified_parm,
unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
compute_bb_predicates, will_be_nonconstant_expr_predicate,
will_be_nonconstant_predicate, record_modified_bb_info,
get_minimal_bb, record_modified, param_change_prob,
phi_result_unknown_predicate, predicate_for_phi_result,
array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
estimate_function_body_sizes, compute_inline_parameters,
compute_inline_parameters_for_curren, pass_data_inline_parameters,
estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
inline_update_callee_summaries, remap_edge_change_prob,
remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
inline_analyze_function, inline_summary_t::insert,
inline_generate_summary, read_ipa_call_summary, inline_read_section,
inline_read_summary, write_ipa_call_summary, inline_write_summary,
inline_free_summary): Move to ipa-fnsummary.h
(predicate_t): Remove.
* ipa-fnsummary.c: New file.
* ipa-inline.h: Do not include sreal.h and ipa-predicate.h
(enum inline_hints_vals, inline_hints, agg_position_info,
INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
inline_summaries, ipa_call_summary, ipa_call_summary_t,
ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
dump_inline_summary, dump_inline_hints, inline_generate_summary,
inline_read_summary, inline_write_summary, inline_free_summary,
inline_analyze_function, initialize_inline_failed,
inline_merge_summary, inline_update_overall_summary,
compute_inline_parameters): Move to ipa-fnsummary.h
* ipa-fnsummary.h: New file.
* ipa-inline-transform.h: Include ipa-inline.h.
* ipa-inline.c: LIkewise.
* lto.c: Replace ipa-inline.h by ipa-fnsummary.h
* lto-partition.c: Replace ipa-inline.h by ipa-fnsummary.h
From-SVN: r248336
Jan Hubicka [Mon, 22 May 2017 13:56:52 +0000 (15:56 +0200)]
ipa-inline.c (edge_badness): Use inlined_time instead of inline_summaries->get.
* ipa-inline.c (edge_badness): Use inlined_time instead of
inline_summaries->get.
From-SVN: r248334
Nathan Sidwell [Mon, 22 May 2017 12:25:06 +0000 (12:25 +0000)]
invoke.texi (fdump-translation-unit): Delete documentation.
gcc/
* doc/invoke.texi (fdump-translation-unit): Delete documentation.
(fdump-lang): Document 'raw' option.
* dumpfile.h (TDI_tu): Delete.
* dumpfile.c (dump_files): Remove translation-unit.
(FIRST_AUTO_NUMBERED_DUMP): Decrement.
gcc/cp/
* cp-objcp-common.c (cp_register_dumps): Register raw dumper.
* cp-tree.h (raw_dump_id): Declare.
* decl2.c (raw_dump_id): Define.
(dump_tu): Use raw_dump_id.
gcc/c/
* c-decl.c (c_parse_final_cleanups): Drop TDI_tu handling.
From-SVN: r248333
Georg-Johann Lay [Mon, 22 May 2017 12:16:21 +0000 (12:16 +0000)]
Simplify config/avr/genmultilib.awk.
gcc/
Simplify config/avr/genmultilib.awk.
* config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
command option from $(AWK) call.
* config/avr/genmultilib.awk: Simplify and rewrite so that it
generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
[FORMAT]: Remove handling of variable.
* config/avr/t-multilib: Regenerate.
From-SVN: r248332
Nathan Sidwell [Mon, 22 May 2017 12:07:51 +0000 (12:07 +0000)]
* config-lang.in (gtfiles): Sort list, break lines.
From-SVN: r248330
Nathan Sidwell [Mon, 22 May 2017 11:32:16 +0000 (11:32 +0000)]
cp-tree.h (CPTI_TERMINATE, [...]): Rename to ...
* cp-tree.h (CPTI_TERMINATE, CPTI_CALL_UNEXPECTED): Rename to ...
(CPTI_TERMINATE_FN, CPTI_CALL_UNEXPECTED_FN): ... here.
( CPTI_GET_EXCEPTION_PTR_FN, CPTI_BEGIN_CATCH_FN)
(CPTI_END_CATCH_FN)
CPTI_ALLOCATE_EXCEPTION_FN, CPTI_FREE_EXCEPTION_FN, CPTI_THROW_FN,
CPTI_RETHROW_FN): New.
(noexcept_deferred_spec): New.
(terminate_node, call_unexpected_node): Rename to ...
(terminate_fn, call_unexpected_fn): ... here.
(get_exception_ptr_fn, begin_catch_fn, end_catch_fn)
allocate_exception_fn, free_exception_fn, throw_fn, rethrow_fn):
New.
* except.c (fn1..fn5, throw_fn, rethrow_rn, spec): Delete.
(init_exception_processing): Adjust.
(declare_library_fn): Create and push the fns here.
(do_get_exception_ptr, do_begin_catch, do_end_catch)
do_allocate_exception_ptr, do_free_exception_ptr): Adjust
declare_library_fn use.
(unevaluated_noexcept_spec): Adjust.
* cp-gimplify.c (genericize_eh_spec_block)
gimplify_most_not_throw_expr): Adjust.
((((--This line, and those below, will be ignored--
M cp/cp-tree.h
M cp/ChangeLog
M cp/cp-gimplify.c
M cp/except.c
From-SVN: r248328
Nathan Sidwell [Mon, 22 May 2017 11:16:49 +0000 (11:16 +0000)]
name-lookup.c (pushdecl_top_level) pushdecl_top_level_and_finish): Move after namespace pushing and popping functions.
* name-lookup.c (pushdecl_top_level)
pushdecl_top_level_and_finish): Move after namespace pushing and
popping functions.
(push_to_top_level): Rename to ...
(do_push_to_top_level): ... here. Remove timing code.
(pop_from_top_level_1): Rename to ...
(do_pop_from_top_level): ... here.
(do_push_nested_namespace, do_pop_nested_namespace)
(push_to_top_level): New wrapper for do_push_to_top_level.
(pop_from_top_level): Adjust.
(push_nested_namepace, pop_nested_namespace): Wrappers for workers.
(--This line, and those below, will be ignored--
M cp/ChangeLog
M cp/name-lookup.c
From-SVN: r248327
Thomas Preud'homme [Mon, 22 May 2017 10:52:26 +0000 (10:52 +0000)]
Add MOVT testing for ARMv8-M Baseline
2017-05-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/testsuite/
* gcc.target/arm/movsi_movt.c: New test.
* gcc.target/arm/movdi_movt.c: New test.
From-SVN: r248326
Jan Hubicka [Mon, 22 May 2017 10:39:46 +0000 (12:39 +0200)]
ipa-inline-analysis.c (inline_summary::reset): Do not reset self_time.
* ipa-inline-analysis.c (inline_summary::reset): Do not reset
self_time.
(dump_inline_summary): Do not print self_time.
(estimate_function_body_sizes): Do not set self_time.
(compute_inline_parameters): Likewise.
(inline_read_section, inline_write_summary): Do not stream self_time.
* ipa-inline.h (inline_summary): Drop self_time.
From-SVN: r248325
Eric Botcazou [Mon, 22 May 2017 09:38:09 +0000 (09:38 +0000)]
decl.c (gnat_to_gnu_entity): Skip regular processing for Itypes that are E_Access_Subtype.
* gcc-interface/decl.c (gnat_to_gnu_entity): Skip regular processing
for Itypes that are E_Access_Subtype.
<E_Access_Subtype>: Use the DECL of the base type directly.
From-SVN: r248323
Jan Hubicka [Mon, 22 May 2017 09:35:21 +0000 (11:35 +0200)]
ipa-inline-analysis.c (account_size_time): Rename to ...
* ipa-inline-analysis.c (account_size_time): Rename to ...
(inline_summary::account_size_time): ... this one.
(reset_ipa_call_summary): Turn to ...
(ipa_call_summary::reset): ... this one.
(reset_inline_summary): Turn to ...
(inline_summary::reset): ... this one.
(inline_summary_t::remove): Update.
(inline_summary_t::duplicate): Update.
(ipa_call_summary_t::remove): Update.
(dump_inline_summary): Update.
(estimate_function_body_sizes): Update.
(compute_inline_parameters): Update.
(estimate_node_size_and_time): Update.
(inline_merge_summary): Update.
(inline_update_overall_summary): Update.
(inline_read_section): Update.
(inline_write_summary): Update.
* ipa-inline.h (inline_summary): Rename entry to size_time_table;
add account_size_time and reset member functions.
(ipa_call_summary): Add reset function.
* ipa-predicate.h (predicate::operator &): Constify.
From-SVN: r248322
Eric Botcazou [Mon, 22 May 2017 09:24:24 +0000 (09:24 +0000)]
sem_ch4.adb (Analyze_Call): In
Ada2012 an incomplete type from a limited view may appear in the profile of...
* sem_ch4.adb (Analyze_Call): In
Ada2012 an incomplete type from a
limited view may appear in the profile of a function, and a call to
that function in another unit in which the full view is available must
use this full view to spurious type errors at the point of call.
* inline.adb (Analyze_Inlined_Bodies): Remove restriction on loading
of parent body with a with clause for the main unit.
* gcc-interface/decl.c (defer_limited_with_list): Document new usage.
(gnat_to_gnu_entity) <E_Access_Type>: Handle completed Taft Amendment
types declared in external units like types from limited with clauses.
Adjust final processing of defer_limited_with_list accordingly.
* gcc-interface/trans.c (gnat_to_gnu) < N_Selected_Component>: Try
again to translate the prefix after the field if it is incomplete.
From-SVN: r248321
Eric Botcazou [Mon, 22 May 2017 08:17:40 +0000 (08:17 +0000)]
decl.c (gnat_to_gnu_field): Do not enforce strict alignment for simple volatile fields and remove...
* gcc-interface/decl.c (gnat_to_gnu_field): Do not enforce strict
alignment for simple volatile fields and remove associated errors.
testsuite/
* gnat.dg/specs/volatile1.ads: Remove obsolete errors.
* gnat.dg/specs/clause_on_volatile.ads: Likewise.
From-SVN: r248320
Eric Botcazou [Mon, 22 May 2017 07:17:48 +0000 (07:17 +0000)]
configure.ac: Add check for sys/capability.h header.
* configure.ac: Add check for sys/capability.h header.
(have_capability): New substitution.
* configure: Regenerate.
* Makefile.in (GNATLIBCFLAGS_FOR_C): Add @have_capability@.
From-SVN: r248319
Richard Biener [Mon, 22 May 2017 07:14:10 +0000 (07:14 +0000)]
df-scan.c (df_insn_refs_verify): Speedup when not verifying.
2017-05-22 Richard Biener <rguenther@suse.de>
* df-scan.c (df_insn_refs_verify): Speedup when not verifying.
From-SVN: r248318
GCC Administrator [Mon, 22 May 2017 00:16:33 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248317
Paolo Carlini [Sun, 21 May 2017 22:20:05 +0000 (22:20 +0000)]
re PR c++/70265 (ICE on code with constexpr on x86_64-linux-gnu in tree check: expected statement_list, have nop_expr in tsi_start, at tree-iterator.h:42)
2017-05-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70265
* g++.dg/cpp1y/constexpr-70265-1.C: New.
* g++.dg/cpp1y/constexpr-70265-2.C: Likewise.
From-SVN: r248313
GCC Administrator [Sun, 21 May 2017 00:16:35 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248312
Eli Zaretskii [Sat, 20 May 2017 01:22:07 +0000 (01:22 +0000)]
environ.h: Add #ifndef guard.
2017-05-19 Eli Zaretskii <eliz@gnu.org>
* environ.h: Add #ifndef guard.
From-SVN: r248308
GCC Administrator [Sat, 20 May 2017 00:16:28 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248307
Jason Merrill [Fri, 19 May 2017 19:31:52 +0000 (15:31 -0400)]
c-warn.c (match_case_to_enum_1): Don't warn about enums with no enumerators.
* c-warn.c (match_case_to_enum_1): Don't warn about enums with no
enumerators.
From-SVN: r248303
Jason Merrill [Fri, 19 May 2017 18:55:17 +0000 (14:55 -0400)]
* tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
From-SVN: r248302
Than McIntosh [Fri, 19 May 2017 16:07:24 +0000 (16:07 +0000)]
dwarf.c (free_line_header): Don't free dirs if dirs_count == 0.
* dwarf.c (free_line_header): Don't free dirs if dirs_count == 0.
(read_line_header): Don't allocate dirs if dirs_count == 0.
* edtest.c: New file.
* edtest2.c: New file.
* Makefile.am (edtest_SOURCES, edtest_LDADD): Define.
(check_PROGRAMS): Add edtest.
(edtest2_build.c, gen_edtest2_build): New targets.
* Makefile.in: Rebuild.
From-SVN: r248295
Jerry DeLisle [Fri, 19 May 2017 15:48:35 +0000 (15:48 +0000)]
[multiple changes]
2017-05-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/80333
* trans-io.c (nml_get_addr_expr): If we are dealing with class
type data set tmp tree to get that address.
(transfer_namelist_element): Set the array spec to point to the
the class data.
2017-05-19 Paul Thomas <pault@gcc.gnu.org>
Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/80333
* list_read.c (nml_read_obj): Compute pointer into class/type
arrays from the nl->dim information. Update it for each iteration
of the loop for the given object.
2017-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/80333
* gfortran.dg/dtio_30.f03: New test.
From-SVN: r248293
Marek Polacek [Fri, 19 May 2017 15:30:54 +0000 (15:30 +0000)]
re PR sanitizer/80800 (UBSAN: yet another false positive)
PR sanitizer/80800
* fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
TYPE_OVERFLOW_WRAPS checks.
* c-c++-common/ubsan/pr80800.c: New test.
* c-c++-common/Wduplicated-branches-1.c: Adjust an expression.
From-SVN: r248291
Bernd Edlinger [Fri, 19 May 2017 14:39:44 +0000 (14:39 +0000)]
c-format.c (locus): Move out of function scope, add GTY attribute.
gcc/c-family:
2017-05-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
* c-format.c (locus): Move out of function scope,
add GTY attribute.
gcc/cp:
2017-05-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
* config-lang.in (gtfiles): Add c-family/c-format.c,
except.c, init.c, lambda.c and friend.c.
* class.c (dvirt_fn): Move out of function scope,
add GTY attribute.
* except.c (fn1-5, throw_fn, rethrow_fn, spec): Likewise.
* init.c (fn): Likewise.
* lambda.c (ptr_id, max_id): Likewise.
* friend.c (global_friend): Add GTY attribute.
From-SVN: r248290
Nathan Sidwell [Fri, 19 May 2017 14:12:14 +0000 (14:12 +0000)]
call.c (add_list_candidates): Use OVL_FIRST.
* call.c (add_list_candidates): Use OVL_FIRST.
(build_new_method_call_1): Likewise.
* cp-tree.h (OVL_SINGLE_P): New.
(TYPE_HIDDEN_P): New.
* decl.c (xref_tag_1): Use TYPE_HIDDEN_P.
* dump.c (cp_tump_tree): Adjust overload dumping.
* error.c (dump_decl): Use OVL_SINGLE_P, simplify context
printing.
* method.c (lazily_declare_fn): Assert we added it.
* parser.c (cp_parser_nested_name_specifier): Use OVL_SINGLE_P,
OVL_FIRST.
(cp_parser_template_name): Use lkp_iterator.
* pt.c (begin_template_parm_list): Fixup comment.
(instantiate_class_template_1): Use TYPE_HIDDEN_P.
* tree.c (ovl_iterator::remove_node): Cope with inherited ctors.
(ovl_scope): Use lkp_iterator.
From-SVN: r248285
David Malcolm [Fri, 19 May 2017 13:52:14 +0000 (13:52 +0000)]
fortran: remove trailing exclamation mark from various diagnostics (PR fortran/79852)
gcc/fortran/ChangeLog:
PR fortran/79852
* bbt.c (insert): Remove trailing exclamation mark from message.
* decl.c (gfc_match_final_decl): Likewise.
* dump-parse-tree.c (show_expr): Likewise.
* module.c (gfc_use_module): Likewise.
* primary.c (build_actual_constructor): Likewise.
(gfc_convert_to_structure_constructor): Likewise.
From-SVN: r248283
Martin Liska [Fri, 19 May 2017 13:48:52 +0000 (13:48 +0000)]
Make the script executable.
From-SVN: r248282
Martin Liska [Fri, 19 May 2017 13:47:53 +0000 (15:47 +0200)]
Introduce new check_GNU_style.py script.
2017-05-19 Martin Liska <mliska@suse.cz>
* check_GNU_style.py: New file.
From-SVN: r248281
Thomas Schwinge [Fri, 19 May 2017 13:32:48 +0000 (15:32 +0200)]
OpenACC 2.5 default (present) clause
gcc/c/
* c-parser.c (c_parser_omp_clause_default): Handle
"OMP_CLAUSE_DEFAULT_PRESENT".
gcc/cp/
* parser.c (cp_parser_omp_clause_default): Handle
"OMP_CLAUSE_DEFAULT_PRESENT".
gcc/fortran/
* gfortran.h (enum gfc_omp_default_sharing): Add
"OMP_DEFAULT_PRESENT".
* dump-parse-tree.c (show_omp_clauses): Handle it.
* openmp.c (gfc_match_omp_clauses): Likewise.
* trans-openmp.c (gfc_trans_omp_clauses): Likewise.
gcc/
* tree-core.h (enum omp_clause_default_kind): Add
"OMP_CLAUSE_DEFAULT_PRESENT".
* tree-pretty-print.c (dump_omp_clause): Handle it.
* gimplify.c (enum gimplify_omp_var_data): Add
"GOVD_MAP_FORCE_PRESENT".
(gimplify_adjust_omp_clauses_1): Map it to
"GOMP_MAP_FORCE_PRESENT".
(oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
gcc/testsuite/
* c-c++-common/goacc/default-1.c: Update.
* c-c++-common/goacc/default-2.c: Likewise.
* c-c++-common/goacc/default-4.c: Likewise.
* gfortran.dg/goacc/default-1.f95: Likewise.
* gfortran.dg/goacc/default-4.f: Likewise.
* c-c++-common/goacc/default-5.c: New file.
* gfortran.dg/goacc/default-5.f: Likewise.
libgomp/
* testsuite/libgomp.oacc-c++/template-reduction.C: Update.
* testsuite/libgomp.oacc-c-c++-common/nested-2.c: Update.
* testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
From-SVN: r248280
Thomas Schwinge [Fri, 19 May 2017 13:32:30 +0000 (15:32 +0200)]
Clarify gcc/gimplify.c:oacc_default_clause
gcc/
* gimplify.c (oacc_default_clause): Clarify.
From-SVN: r248279
Thomas Schwinge [Fri, 19 May 2017 13:32:19 +0000 (15:32 +0200)]
OpenACC default clause maintenance
gcc/cp/
* parser.c (cp_parser_omp_clause_default): Avoid printing more
than one syntax error message.
gcc/testsuite/
* c-c++-common/goacc/default-1.c: New file.
* c-c++-common/goacc/default-2.c: Likewise.
* c-c++-common/goacc/data-default-1.c: Remove file, including its
test cases in...
* c-c++-common/goacc/default-3.c: ... this new file, and...
* c-c++-common/goacc/default-4.c: ... this new file.
* gfortran.dg/goacc/default.f95: Remove file, including its test
cases in...
* gfortran.dg/goacc/default-1.f95: ... this new file, and...
* gfortran.dg/goacc/default-2.f: ... this new file.
* gfortran.dg/goacc/default-3.f95: New file.
* gfortran.dg/goacc/default-4.f: Likewise.
From-SVN: r248278
Thomas Schwinge [Fri, 19 May 2017 13:32:04 +0000 (15:32 +0200)]
libgomp hsa plugin: debug output for HSA runtime library loading failure
libgomp/
* plugin/plugin-hsa.c (DLSYM_FN, init_hsa_runtime_functions):
Debug output for failure.
From-SVN: r248277
Martin Liska [Fri, 19 May 2017 13:31:01 +0000 (15:31 +0200)]
Enable by default -Werror just for bootstrap-debug.mk and default build.
2017-05-19 Martin Liska <mliska@suse.cz>
* configure.ac: Add --enable-werror-always just for
bootstrap-debug (or none build config) and do not add it
when we are on a release branch.
* configure: Regenerated.
From-SVN: r248276
Nathan Sidwell [Fri, 19 May 2017 13:10:36 +0000 (13:10 +0000)]
toplev.c (general_init): Call register dump lang hook.
LANG_HOOK_REGISTER_DUMPS
gcc/
* toplev.c (general_init): Call register dump lang hook.
* doc/invoke.texi: Document -fdump-lang option family.
* dumpfile.c (dump_files): Remove class dump here.
(FIRST_AUTO_NUMBERED_DUMP): Adjust.
* dumpfile.h (tree_dump_index): Remove TDI_class.
* langhooks-def.h (lhd_register_dumps): Declare.
(LANG_HOOKS_REGISTER_DUMPS): Define.
(LANG_HOOKS_INITIALIZER): Add it.
* langhooks.c (lhd_register_dumps): Define.
* langhooks.h (struct lang_hooks): Add register_dumps.
c-family/
* c-opts.c (class_dump_file, class_dump_flags): Delete.
(c_common_parse_file): Remove class dump handling.
(get_dump_info): Likewise.
cp/
* class.c (class_dump_id): Define.
(dump_class_hierarchy, dump_vtable, dump_vtt): Use it.
* cp-objcp-common.c (cp_register_dumps): New.
* cp-objcp-common.h (cp_register_dumps): Declare.
(LANG_HOOKS_REGISTER_DUMPS): Override.
* cp-tree.h (class_dump_id): Declare.
testsuite/
* g++.dg/inherit/covariant7.C: Adjust.
From-SVN: r248271
Prakhar Bahuguna [Fri, 19 May 2017 13:04:27 +0000 (13:04 +0000)]
[ARM] Only test tls-disable-literal-pool.c if target supports native TLS
2017-05-19 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
gcc/testsuite/
* gcc.target/arm/tls-disable-literal-pool.c: Change
require-effective-target to tls_native.
Move dg-error to return statement line and change to dg-message.
From-SVN: r248270
Richard Biener [Fri, 19 May 2017 12:34:54 +0000 (12:34 +0000)]
re PR c++/80593 (GCC 7, aligned_storage and “dereferencing type-punned pointer will break strict-aliasing rules”)
2017-05-19 Richard Biener <rguenther@suse.de>
PR c++/80593
* c-warn.c (strict_aliasing_warning): Do not warn for accesses
to alias-set zero memory.
* g++.dg/warn/Wstrict-aliasing-bogus-char-2.C: New testcase.
* g++.dg/warn/Wstrict-aliasing-6.C: Adjust expected outcome.
From-SVN: r248269
Nathan Sidwell [Fri, 19 May 2017 12:32:48 +0000 (12:32 +0000)]
context.h (context::set_passes): New.
* context.h (context::set_passes): New.
* context.c (context::context): Do not create pass manager.
* toplev.c (general_init): Create pass manager here.
From-SVN: r248268
Jonathan Wakely [Fri, 19 May 2017 12:11:31 +0000 (13:11 +0100)]
PR libstdc++/80796 Add new std::search overload for C++17
PR libstdc++/80796
* include/bits/stl_algo.h (search): Add new overload for C++17.
* testsuite/25_algorithms/search/searcher.cc: New.
From-SVN: r248266
Segher Boessenkool [Fri, 19 May 2017 11:29:21 +0000 (13:29 +0200)]
rs6000: Make constant formation a tiny bit better
If we cannot load a constant into a register in one insn, and that
constant is a valid mask (for rotate instructions), we currently
prefer to load -1 and then mask it. This patch makes us not do that if
instead we could use two add or or instructions, since those are
sometimes faster on certain CPUs (and never are slower).
* config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
use this splitter if two add or or instructions would also work for
the constant we want to generate.
From-SVN: r248265
Richard Biener [Fri, 19 May 2017 11:13:48 +0000 (11:13 +0000)]
re PR tree-optimization/80821 (genmatch conflicting predicates)
2017-05-19 Richard Biener <rguenther@suse.de>
PR build/80821
* genmatch.c (dt_node::gen_kids_1): Add missing scope around
predicate evaluation.
From-SVN: r248264
Jan Hubicka [Fri, 19 May 2017 09:36:56 +0000 (11:36 +0200)]
ipa-inline.h (ipa_call_summary): Turn sizes into signed; add ctor.
* ipa-inline.h (ipa_call_summary): Turn sizes into signed;
add ctor.
* ipa-inline.c (want_inline_small_function_p): Do not cast to
unsigned.
From-SVN: r248263
Jan Hubicka [Fri, 19 May 2017 08:52:26 +0000 (10:52 +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: r248262
Richard Biener [Fri, 19 May 2017 08:23:37 +0000 (08:23 +0000)]
re PR middle-end/80764 (ICE at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (internal compiler error: in verify_loop_structure, at cfgloop.c:1644))
2017-05-19 Richard Biener <rguenther@suse.de>
PR middle-end/80764
* cfgexpand.c (expand_gimple_cond): Fix loop fixup.
* gcc.dg/torture/pr80764.c: New testcase.
From-SVN: r248261
GCC Administrator [Fri, 19 May 2017 00:16:28 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248260
Segher Boessenkool [Thu, 18 May 2017 23:38:04 +0000 (01:38 +0200)]
rs6000: Separate shrink-wrapping for FPRs
This patch implements separate shrink-wrapping for the non-volatile
floating point registers (FPR14..FPR31). It is pretty much exactly
analogous to the code for GPRs.
* config/rs6000/rs6000.c (struct machine_function): Add field
fpr_is_wrapped_separately.
(rs6000_get_separate_components): Use 64 components. Handle the
new FPR components.
(rs6000_components_for_bb): Handle the FPR components.
(rs6000_emit_prologue_components): Handle the FPR components.
(rs6000_emit_epilogue_components): Handle the FPR components.
(rs6000_set_handled_components): Handle the FPR components.
(rs6000_emit_prologue): Don't output prologue code for those FPRs
that are already separately shrink-wrapped.
(rs6000_emit_epilogue): Don't output epilogue code for those FPRs
that are already separately shrink-wrapped.
From-SVN: r248256
Ian Lance Taylor [Thu, 18 May 2017 22:44:12 +0000 (22:44 +0000)]
re PR go/80814 (commit
aa443150c83535fedccb3dee80daa7e01fafd92d causes a build error.)
PR go/80814
* Makefile.am (AM_GOCFLAGS): Define.
* Makefile.in: Rebuild.
From-SVN: r248255
Michael Meissner [Thu, 18 May 2017 19:34:13 +0000 (19:34 +0000)]
re PR target/80510 (Optimize Power7/power8 Altivec load/stores)
[gcc]
2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/80510
* config/rs6000/predicates.md (simple_offsettable_mem_operand):
New predicate.
* config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
(define_peephole2 for Altivec d-form load): Add peepholes to catch
cases where the register allocator uses a move and an offsettable
memory operation to/from a FPR register on ISA 2.06/2.07.
(define_peephole2 for Altivec d-form store): Likewise.
[gcc/testsuite]
2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/80510
* gcc.target/powerpc/pr80510-1.c: New test.
* gcc.target/powerpc/pr80510-2.c: Likewise.
From-SVN: r248254
Eric Gallager [Thu, 18 May 2017 18:55:33 +0000 (18:55 +0000)]
Add testcase to ensure that #pragma GCC diagnostic push/pop works with -Wtraditional
2017-05-18 Eric Gallager <egall@gwmail.gwu.edu>
* gcc.dg/pragma-diag-7.c: New test.
From-SVN: r248253