1. 20 Nov, 2014 14 commits
    • [multiple changes] · c05ba1f1
      2014-11-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Make_Call_Into_Operator): In ASIS mode, propagate
      	back the resolved operands to the original call node, taking
      	into account that the original call may have named associations.
      
      2014-11-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* inline.adb (Has_Some_Contract): Change the
      	guard to test the Ekind of the entity rather than the Analyzed
      	flag. This handles partially analyzed contexts.
      
      2014-11-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch8.adb (Analyze_Object_Renaming): In Ada 83 mode, do
      	not reject the renaming of a function result if the renaming
      	does not come for source.
      
      2014-11-20  Robert Dewar  <dewar@adacore.com>
      
      	* exp_util.ads: Minor addition of ??? clause.
      
      2014-11-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Is_Variable): For an Ada 2012 implicit
      	dereference introduced for an indexing opertion, check that the
      	type of the corresponding access discriminant is not an access
      	to constant.
      
      2014-11-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch6.adb (Find_Corresponding_Spec): Inherit
      	the ghostness of the matching spec, the same way convention
      	is inherited.
      
      From-SVN: r217835
      Arnaud Charlet committed
    • sem_ch3.adb (Analyze_Object_Declaration): Swap a couple of tests in a condition… · 4a0a5d5f
      sem_ch3.adb (Analyze_Object_Declaration): Swap a couple of tests in a condition so Following_Address_Clause is invoked...
      
      2014-11-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch3.adb (Analyze_Object_Declaration): Swap a couple of
      	tests in a condition so Following_Address_Clause is invoked
      	only if need be.
      	* exp_util.ads (Following_Address_Clause): Add small note.
      
      From-SVN: r217834
      Eric Botcazou committed
    • Minor reformatting. · 58b81ab0
      From-SVN: r217833
      Arnaud Charlet committed
    • adaint.c (remove_handle): New local routine without a lock. · 6654786e
      2014-11-20  Pascal Obry  <obry@adacore.com>
      
      	* adaint.c (remove_handle): New local routine without a lock.
      	(win32_wait): fix the critical section to properly protect needed
      	code, use new remove_handle.
      	(__gnat_win32_remove_handle): refactor code with remove_handle.
      
      From-SVN: r217832
      Pascal Obry committed
    • [multiple changes] · 04e9213d
      2014-11-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* inline.adb (Analyze_Inlined_Bodies): Iterate between loading
      	of the inlined bodies and instantiation of the generic bodies
      	until no more bodies need to be loaded.
      
      2014-11-20  Vincent Celier  <celier@adacore.com>
      
      	* prj.adb, prj.ads, prj-conf.adb: Minor change of procedure name:
      	Update_Ignore_Missing_With becomes Set_Ignore_Missing_With.
      
      From-SVN: r217831
      Arnaud Charlet committed
    • re PR target/63966 (inconsistent operand constraints compiling build libcpp) · 8a23b100
      	PR target/63966
      	* lex.c [__i386__ || __x86_64__]: Include system <cpuid.h> for
      	GCC_VERSION < 5000.
      
      From-SVN: r217830
      Uros Bizjak committed
    • [multiple changes] · 3cb9a885
      2014-11-20  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch7.adb, sem_ch5.adb, sem_ch7.adb, sem_util.adb,
      	sem_ch6.adb: Minor reformatting.
      
      2014-11-20  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Type_Conversion): Add missing implicit
      	conversion to force the displacement of the pointer to the object
      	to reference the secondary dispatch table.
      
      From-SVN: r217829
      Arnaud Charlet committed
    • re PR tree-optimization/63962 ([x86] Code pessimization after r217213) · e6121733
      2014-11-20  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/63962
      	* match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
      	Guard with single-use operand 0.
      
      	* gcc.dg/tree-ssa/forwprop-30.c: New testcase.
      
      From-SVN: r217828
      Richard Biener committed
    • re PR tree-optimization/63677 (Failure to constant fold with vectorization.) · b00734df
      2014-11-20   Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/63677
      	* tree-ssa-dom.c: Include gimplify.h for unshare_expr.
      	(avail_exprs_stack): Make a vector of pairs.
      	(struct hash_expr_elt): Replace stmt member with vop member.
      	(expr_elt_hasher::equal): Simplify.
      	(initialize_hash_element): Adjust.
      	(initialize_hash_element_from_expr): Likewise.
      	(dom_opt_dom_walker::thread_across_edge): Likewise.
      	(record_cond): Likewise.
      	(dom_opt_dom_walker::before_dom_children): Likewise.
      	(print_expr_hash_elt): Likewise.
      	(remove_local_expressions_from_table): Restore previous state
      	if requested.
      	(record_equivalences_from_stmt): Record &x + CST as constant
      	&MEM[&x, CST] for further propagation.
      	(vuse_eq): New function.
      	(lookup_avail_expr): For loads use the alias oracle to see
      	whether a candidate from the expr hash is usable.
      	(avail_expr_hash): Do not hash VUSEs.
      
      	* gcc.dg/tree-ssa/ssa-dom-cse-2.c: New testcase.
      	* gcc.dg/tree-ssa/ssa-dom-cse-3.c: Likewise.
      
      From-SVN: r217827
      Richard Biener committed
    • Fix missing output formatter. · 07dc4e87
      2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
      	PR target/59593
      	* config/arm/arm.md (*movhi_insn): Use right formatting
      	for immediate.
      
      From-SVN: r217826
      Ramana Radhakrishnan committed
    • re PR sanitizer/63845 (c-c++-common/asan/bitfield-[12345].c fails on i?86 -with -fpic) · 8f51aa6b
      gcc/
      
      	PR sanitizer/63845
      	* function.c (assign_parms): Move init of pic_offset_table_rtx
      	from here to...
      	* cfgexpand.c (expand_used_vars): ...here.
      
      gcc/testsuite/
      
      	PR sanitizer/63845
      	* gcc.dg/asan/pr63845.c: New test.
      
      From-SVN: r217825
      Igor Zamyatin committed
    • tree.c (free_lang_data_in_type): If BINFO has no important information in it, set it to NULL. · 1be0e58d
      
      	* tree.c (free_lang_data_in_type): If BINFO has no important
      	information in it, set it to NULL.
      	(get_binfo_at_offset): Do not walk fields, only bases.
      	* ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
      	to be NULL.
      	* ipa-polymorphic-call.c (record_known_type): Likewise.
      
      From-SVN: r217824
      Jan Hubicka committed
    • re PR c++/56041 (Constexpr conversion function definition not found in template argument context) · 1b5695e6
      	PR c++/56041
      	* cp-tree.h (struct processing_template_decl_sentinel): New.
      	* pt.c (instantiate_non_dependent_expr_internal): Split out from...
      	(instantiate_non_dependent_expr_sfinae): Here.
      	(convert_nontype_argument): Use them.
      	* constexpr.c (fold_non_dependent_expr): Use them.
      
      From-SVN: r217823
      Jason Merrill committed
    • Daily bump. · 9d39384c
      From-SVN: r217822
      GCC Administrator committed
  2. 19 Nov, 2014 26 commits
    • re PR sanitizer/63939 (Massive asan failures (356) on darwin) · 9adcf668
      	PR sanitizer/63939
      	* c-c++-common/asan/global-overflow-1.c: Allow extra spaces after
      	stack pointer address, to fit darwin output when symbolizer is not
      	present.
      	* c-c++-common/asan/heap-overflow-1.c: Likewise.
      	* c-c++-common/asan/memcmp-1.c: Likewise.
      	* c-c++-common/asan/misalign-1.c: Likewise.
      	* c-c++-common/asan/misalign-2.c: Likewise.
      	* c-c++-common/asan/null-deref-1.c: Likewise.
      	* c-c++-common/asan/stack-overflow-1.c: Likewise.
      	* c-c++-common/asan/strlen-overflow-1.c: Likewise.
      	* c-c++-common/asan/strncpy-overflow-1.c: Likewise.
      	* c-c++-common/asan/use-after-free-1.c: Likewise.
      	* g++.dg/asan/deep-stack-uaf-1.C: Likewise.
      	* g++.dg/asan/deep-tail-call-1.C: Likewise.
      	* g++.dg/asan/large-func-test-1.C: Likewise.
      
      From-SVN: r217817
      Francois-Xavier Coudert committed
    • re PR sanitizer/63939 (Massive asan failures (356) on darwin) · 7c59493a
      	PR sanitizer/63939
      	* g++.dg/asan/large-func-test-1.C: Ajust dg-output.
      
      From-SVN: r217816
      Francois-Xavier Coudert committed
    • re PR c++/63885 (ICE in static assert of constexpr forwarding xvalue container… · f2acb8ad
      re PR c++/63885 (ICE in static assert of constexpr forwarding xvalue container member rvalue reference)
      
      	PR c++/63885
      	* constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: Don't
      	complain yet about a reference.
      	[TARGET_EXPR]: Handle TARGET_EXPR with addr == true.
      	[ADDR_EXPR]: Make sure we don't take the address of a CONSTRUCTOR.
      	(cxx_bind_parameters_in_call): In the new scheme addr is always false.
      	* typeck.c (build_address): Don't take the address of a CONSTRUCTOR.
      
      From-SVN: r217815
      Jason Merrill committed
    • re PR c++/57979 (G++ accepts constant expression defined using floating point… · 69eb4fde
      re PR c++/57979 (G++ accepts constant expression defined using floating point non-constexpr glvalue)
      
      	PR c++/57979
      	* init.c (decl_really_constant_value): Rename from
      	integral_constant_value.
      	(scalar_constant_value): Similar but limited to scalar results.
      	(decl_constant_value_safe): Remove.
      	(constant_value_1): Respect return_aggregate_cst_ok_p.
      	* typeck.c (decay_conversion): Use scalar_constant_value.
      	* call.c (convert_like_real): Likewise.
      	* cvt.c (ocp_convert): No need to check CLASS_TYPE_P.
      	* typeck.c (decay_conversion): Or ARRAY_TYPE.
      	* constexpr.c (struct constexpr_ctx): Add strict field.
      	(cxx_eval_constant_expression) [VAR_DECL]: Use it to select between
      	decl_constant_value and decl_really_constant_value.
      	(cxx_eval_outermost_constant_expr): Add strict parm.
      	(maybe_constant_init): Not strict.
      	(potential_constant_expression_1): Add strict parm.
      	Shorten most internal calls with RECUR macro.
      	* cp-tree.h, pt.c, semantics.c: Adjust.
      
      From-SVN: r217814
      Jason Merrill committed
    • re PR sanitizer/63939 (Massive asan failures (356) on darwin) · 6d06c429
      	PR sanitizer/63939
      	* c-c++-common/asan/heap-overflow-1.c: Ajust dg-output.
      	* c-c++-common/asan/memcmp-1.c: Likewise.
      	* c-c++-common/asan/strncpy-overflow-1.c: Likewise.
      	* c-c++-common/asan/use-after-free-1.c: Likewise.
      
      From-SVN: r217813
      Francois-Xavier Coudert committed
    • PR jit/63854: Fix leaks in test-fuzzer.c · 3d1f12d5
      gcc/testsuite/ChangeLog:
      	PR jit/63854
      	* jit.dg/test-fuzzer.c (fuzzer_init): Free malloced buffers.
      	(make_random_function): Free ff->locals.
      
      From-SVN: r217812
      David Malcolm committed
    • PR jit/63854: Fix leak in ipa-icf.c · ba2dbfce
      gcc/ChangeLog:
      	PR jit/63854
      	* ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
      	congruence_class_group *.
      
      From-SVN: r217811
      David Malcolm committed
    • re PR target/63947 (Wrong fcmov suffix) · 9da8fef0
      	PR target/63947
      	* config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
      	Output "b" and "nb" suffix for FP mode.
      
      testsuite/ChangeLog:
      
      	PR target/63947
      	* gcc.target/i386/pr63947.c: New test.
      
      From-SVN: r217810
      Uros Bizjak committed
    • re PR lto/63963 (LTO doesn't work with __attribute__((__target__("sse4.2")))) · 61204ad9
      
      
      	PR bootstrap/63963
      	* tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
      	DECL_FUNCTION_SPECIFIC_TARGET
      	* tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
      	DECL_FUNCTION_SPECIFIC_TARGET.
      
      From-SVN: r217809
      Jan Hubicka committed
    • PR jit/63854: Fix leaking vec in jit · b957b2e0
      gcc/jit/ChangeLog:
      	PR jit/63854
      	* jit-playback.c (gcc::jit::playback::compound_type::set_fields):
      	Convert param from const vec<playback::field *> & to
      	const auto_vec<playback::field *> *.
      	(gcc::jit::playback::context::new_function_type): Convert param
      	"param_types" from vec<type *> * to const auto_vec<type *> *.
      	(gcc::jit::playback::context::new_function): Convert param
      	"params" from vec<param *> * to const auto_vec<param *> *.
      	(gcc::jit::playback::context::build_call): Convert param "args"
      	from vec<rvalue *> to const auto_vec<rvalue *> *.
      	(gcc::jit::playback::context::new_call): Likewise.
      	(gcc::jit::playback::context::new_call_through_ptr): Likewise.
      	(wrapper_finalizer): New function.
      	(gcc::jit::playback::wrapper::operator new): Call the finalizer
      	variant of ggc_internal_cleared_alloc, supplying
      	wrapper_finalizer.
      	(gcc::jit::playback::function::finalizer): New.
      	(gcc::jit::playback::block::finalizer): New.
      	(gcc::jit::playback::source_file::finalizer): New.
      	(gcc::jit::playback::source_line::finalizer): New.
      
      	* jit-playback.h
      	(gcc::jit::playback::context::new_function_type): Convert param
      	"param_types" from vec<type *> * to const auto_vec<type *> *.
      	(gcc::jit::playback::context::new_function): Convert param
      	"params" from vec<param *> * to const auto_vec<param *> *.
      	(gcc::jit::playback::context::new_call): Convert param
      	"args" from vec<rvalue *> to const auto_vec<rvalue *> *.
      	(gcc::jit::playback::context::new_call_through_ptr): Likewise.
      	(gcc::jit::playback::context::build_call): Likewise.
      	(gcc::jit::playback::context): Convert fields "m_functions",
      	"m_source_files", "m_cached_locations" from vec to auto_vec.
      	(gcc::jit::playback::wrapper::finalizer): New virtual function.
      	(gcc::jit::playback::compound_type::set_fields): Convert param fro
      	const vec<playback::field *> & to
      	const auto_vec<playback::field *> *.
      	(gcc::jit::playback::function::finalizer): New.
      	(gcc::jit::playback::block::finalizer): New.
      	(gcc::jit::playback::source_file::finalizer): New.
      	(gcc::jit::playback::source_line::finalizer): New.
      
      	* jit-recording.c
      	(gcc::jit::recording::function_type::replay_into): Convert local
      	from a vec into an auto_vec.
      	(gcc::jit::recording::fields::replay_into): Likewise.
      	(gcc::jit::recording::function::replay_into): Likewise.
      	(gcc::jit::recording::call::replay_into): Likewise.
      	(gcc::jit::recording::call_through_ptr::replay_into): Likewise.
      
      	* jit-recording.h (gcc::jit::recording::context): Convert fields
      	"m_mementos", "m_compound_types", "m_functions" from vec<> to
      	auto_vec <>.
      	(gcc::jit::recording::function_type::get_param_types): Convert
      	return type from vec<type *> to const vec<type *> &.
      	(gcc::jit::recording::function_type): Convert field
      	"m_param_types" from a vec<> to an auto_vec<>.
      	(gcc::jit::recording::fields): Likewise for field "m_fields".
      	(gcc::jit::recording::function::get_params): Convert return type
      	from vec <param *> to const vec<param *> &.
      	(gcc::jit::recording::function): Convert fields "m_params",
      	"m_locals", "m_blocks" from vec<> to auto_vec<>.
      	(gcc::jit::recording::block): Likewise for field "m_statements".
      	vec<> to auto_vec<>.
      	(gcc::jit::recording::call): Likewise for field "m_args".
      	(gcc::jit::recording::call_through_ptr): Likewise.
      
      From-SVN: r217808
      David Malcolm committed
    • PR jit/63854: Add all_late_ipa_passes to GCC_PASS_LISTS · 1f1e44ed
      gcc/ChangeLog:
      	PR jit/63854
      	* pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
      
      From-SVN: r217807
      David Malcolm committed
    • PR jit/63854: lra.c: Fix leak of point_freq_vec's buffer when calling lra_inheritance · 8f047f6c
      gcc/ChangeLog:
      	PR jit/63854
      	* lra.c (lra): After creating live ranges in preparation for call
      	to lra_inheritance, set live_p to true.
      
      From-SVN: r217806
      David Malcolm committed
    • PR jit/63854: Fix leak of paths within jump threading · 89bd38d3
      gcc/ChangeLog:
      	PR jit/63854
      	* tree-ssa-threadedge.c (thread_across_edge): Don't just release
      	"path", delete it.
      	* tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
      
      From-SVN: r217804
      David Malcolm committed
    • PR jit/63854: Fix leak of "avail" within tree-ssa-pre.c · 3b56f890
      gcc/ChangeLog:
      	PR jit/63854
      	* tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
      	vec<> to auto_vec<> to fix a leak.
      
      From-SVN: r217803
      David Malcolm committed
    • PR jit/63854: Fix leak of worklist within jit-recording.c · 79cafc7a
      gcc/jit/ChangeLog:
      	PR jit/63854
      	* jit-recording.c (recording::function::validate): Convert
      	"worklist" from vec<> to autovec<> to fix a leak.
      
      From-SVN: r217802
      David Malcolm committed
    • PR jit/63854: Don't leak producer_string in dwarf2out.c · b705fe72
      gcc/ChangeLog:
      	PR jit/63854
      	* dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
      
      From-SVN: r217801
      David Malcolm committed
    • PR jit/63854: Add ira_costs_c_finalize · eec42458
      gcc/ChangeLog:
      	PR jit/63854
      	* ira-costs.c (ira_costs_c_finalize): New function.
      	* ira.h (ira_costs_c_finalize): New prototype.
      	* toplev.c (toplev::finalize): Call ira_costs_c_finalize.
      
      From-SVN: r217800
      David Malcolm committed
    • PR jit/63854: Fix leak of optimization_summary_obstack · 4c4d052c
      gcc/ChangeLog:
      	PR jit/63854
      	* ipa-reference.c (ipa_reference_c_finalize): Release
      	optimization_summary_obstack.
      
      From-SVN: r217797
      David Malcolm committed
    • PR jit/63854: Fix leak of opts_obstack · d5bee0f2
      gcc/ChangeLog:
      	PR jit/63854
      	* toplev.c (toplev::finalize): Free opts_obstack.
      
      From-SVN: r217796
      David Malcolm committed
    • PR jit/63854: Fix memory leak of save_decoded_options · 7dd2b60b
      gcc/ChangeLog:
      	PR jit/63854
      	* toplev.c (toplev::finalize): Clean up save_decoded_options.
      
      From-SVN: r217795
      David Malcolm committed
    • PR jit/63854: Fix memory leak within bb-reorder.c · 548296b0
      gcc/ChangeLog:
      	PR jit/63854
      	* bb-reorder.c
      	(find_rarely_executed_basic_blocks_and_crossing_edges): Convert
      	local bbs_in_hot_partition from vec<> to auto_vec<>.
      
      From-SVN: r217794
      David Malcolm committed
    • PR jit/63854: Fix memory leaks within context/pass_manager/dump_manager · 10fdd6e9
      gcc/ChangeLog:
      	PR jit/63854
      	* config/alpha/alpha.c (alpha_option_override): Remove static from
      	"handle_trap_shadows_info" and "align_insns_info".
      	* config/i386/i386.c (ix86_option_override): Likewise for
      	"insert_vzeroupper_info".
      	* config/rl78/rl78.c (rl78_asm_file_start): Likewise for
      	"rl78_devirt_info" and "rl78_move_elim_info".
      	* config/rs6000/rs6000.c (rs6000_option_override): Likewise for
      	"analyze_swaps_info".
      	* context.c (gcc::context::~context): New.
      	* context.h (gcc::context::~context): New.
      	* dumpfile.c (dump_files): Add "false" initializers for new field
      	"owns_strings".
      	(gcc::dump_manager::~dump_manager): New.
      	(gcc::dump_manager::dump_register): Add param "take_ownership".
      	* dumpfile.h (struct dump_file_info): Add field "owns_strings".
      	(gcc::dump_manager::~dump_manager): New.
      	(gcc::dump_manager::dump_register): Add param "take_ownership".
      	* pass_manager.h (gcc::pass_manager::operator delete): New.
      	(gcc::pass_manager::~pass_manager): New.
      	* passes.c (pass_manager::register_one_dump_file): Pass "true" to
      	new "owns_strings" argument to dump_register.
      	(pass_manager::operator delete): New.
      	(delete_pass_tree): New function.
      	(pass_manager::~pass_manager): New.
      	* statistics.c (statistics_early_init): Pass "false" to
      	new "owns_strings" argument to dump_register.
      	* toplev.c (toplev::finalize): Clean up the context and thus the
      	things it owns.
      
      From-SVN: r217793
      David Malcolm committed
    • PR jit/63854: Fix memory leak of reginfo.c: valid_mode_changes_obstack · a4fe9e99
      gcc/ChangeLog:
      	PR jit/63854
      	* reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
      	obstack_free when cleaning up valid_mode_changes_obstack.
      
      From-SVN: r217792
      David Malcolm committed
    • PR jit/63854: Fix memory leak within gcc_options · 0ef443cf
      gcc/ChangeLog:
      	PR jit/63854
      	* opts.c (finalize_options_struct): New.
      	* opts.h (finalize_options_struct): New.
      	* toplev.c (toplev::finalize): Call finalize_options_struct
      	on global_options and global_options_set.
      
      From-SVN: r217791
      David Malcolm committed
    • re PR c++/63928 (use after free in cp/constexpr.c) · 3bdf0a9b
      	PR c++/63928
      	* constexpr.c (cxx_eval_store_expression): Return init, not *valp.
      
      From-SVN: r217790
      Jason Merrill committed
    • re PR driver/36312 (should refuse to overwrite input file with output file) · 92c66d83
      	PR driver/36312
      	PR driver/63837
      	* gcc.c (process_command): Don't check for input/output
      	filename equality if output is HOST_BIT_BUCKET.
      	* toplev.c (init_asm_output): Likewise.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r217789
      Manuel López-Ibáñez committed