Commit Graph

153806 Commits

Author SHA1 Message Date
Nathan Sidwell
3a9cc6853a 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
2017-05-23 21:15:48 +00:00
Jason Merrill
f0c1ade45a 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
2017-05-23 16:14:01 -04:00
Uros Bizjak
f6744083c8 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
2017-05-23 21:47:40 +02:00
Nathan Sidwell
aa7bda5f27 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
2017-05-23 19:37:03 +00:00
Nathan Sidwell
6131102ce3 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
2017-05-23 17:04:56 +00:00
Tom de Vries
1b4b1fc7ca 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
2017-05-23 16:38:31 +00:00
Jan Hubicka
d2db2e6b05 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
2017-05-23 16:20:53 +00:00
Xi Ruoyao
78aa76df40 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
2017-05-23 17:11:57 +01:00
Nathan Sidwell
e4ea7a4cfe 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
2017-05-23 16:03:34 +00:00
Thomas Schwinge
8a4674bb23 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
2017-05-23 18:00:56 +02:00
Jerry DeLisle
c2d7c404a9 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
2017-05-23 15:54:59 +00:00
Thomas Schwinge
fd71a9a24d 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
2017-05-23 17:47:32 +02:00
Martin Liska
464d01188e 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
2017-05-23 14:39:11 +00:00
Martin Liska
6c52831d98 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
2017-05-23 14:28:35 +00:00
Jan Hubicka
3494e738cf 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
2017-05-23 12:20:05 +00:00
Jan Hubicka
0bceb67106 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
2017-05-23 10:59:35 +00:00
Nathan Sidwell
9d029ddfda 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
2017-05-23 10:58:57 +00:00
Marek Polacek
92fa0f9e09 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
2017-05-23 10:47:50 +00:00
Xi Ruoyao
5383998a58 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
2017-05-23 11:16:08 +01:00
Senthil Kumar Selvaraj
008c736788 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
2017-05-23 09:49:27 +00:00
Tom de Vries
8d4f5c6821 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
2017-05-23 09:40:21 +00:00
Tom de Vries
8a1a519471 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
2017-05-23 09:40:10 +00:00
Thomas Schwinge
0c36d0d571 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
2017-05-23 11:16:05 +02:00
Georg-Johann Lay
bdf58f6bf4 genmultilib.awk: Use gsub instead of gensub.
* config/avr/genmultilib.awk: Use gsub instead of gensub.

From-SVN: r248357
2017-05-23 07:51:26 +00:00
GCC Administrator
5012c56f1b Daily bump.
From-SVN: r248356
2017-05-23 00:16:18 +00:00
Michael Meissner
d1f6caaee5 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
2017-05-22 22:44:45 +00:00
Segher Boessenkool
2ea0d75014 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
2017-05-22 23:20:51 +02:00
Bill Schmidt
25b8168681 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
2017-05-22 19:43:36 +00:00
Jakub Jelinek
d11c168a67 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
2017-05-22 20:55:29 +02:00
Jakub Jelinek
655e52652b 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
2017-05-22 20:54:54 +02:00
Jakub Jelinek
e9e2ef9f2f 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
2017-05-22 20:54:05 +02:00
Jakub Jelinek
c24783c499 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
2017-05-22 20:51:54 +02:00
Joseph Myers
051e40e0cb * da.po, es.po: Update.
From-SVN: r248342
2017-05-22 18:11:36 +01:00
Janus Weil
477f145b57 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
2017-05-22 19:08:24 +02:00
Martin Sebor
a5f15ed90a 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
2017-05-22 10:17:59 -06:00
Nathan Sidwell
65cc14079e 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
2017-05-22 16:00:35 +00:00
Jan Hubicka
27d020cf7d 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
2017-05-22 15:36:02 +00:00
Jan Hubicka
b7cb2251a3 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
2017-05-22 13:56:52 +00:00
Nathan Sidwell
58aca9d95c 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
2017-05-22 12:25:06 +00:00
Georg-Johann Lay
6aea3c3720 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
2017-05-22 12:16:21 +00:00
Nathan Sidwell
3b205ea1bd * config-lang.in (gtfiles): Sort list, break lines.
From-SVN: r248330
2017-05-22 12:07:51 +00:00
Nathan Sidwell
1a66d857e6 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
2017-05-22 11:32:16 +00:00
Nathan Sidwell
c405923d02 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
2017-05-22 11:16:49 +00:00
Thomas Preud'homme
0c4f817854 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
2017-05-22 10:52:26 +00:00
Jan Hubicka
106eeddc29 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
2017-05-22 10:39:46 +00:00
Eric Botcazou
fbb1c7d4a0 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
2017-05-22 09:38:09 +00:00
Jan Hubicka
61890ff25a 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
2017-05-22 09:35:21 +00:00
Eric Botcazou
d327113612 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
2017-05-22 09:24:24 +00:00
Eric Botcazou
4c24ec6d58 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
2017-05-22 08:17:40 +00:00
Eric Botcazou
772cd69487 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
2017-05-22 07:17:48 +00:00