1. 20 Nov, 2014 13 commits
  2. 19 Nov, 2014 27 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
    • re PR c++/55425 (constexpr does not work in many situations (both built-in and… · 0162cb3b
      re PR c++/55425 (constexpr does not work in many situations  (both built-in and user supplied literals))
      
      /cp
      2014-11-19  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/55425
      	* constexpr.c (constexpr_fn_retval): Accept __func__, __FUNCTION__,
      	and __PRETTY_FUNCTION__.
      
      /testsuite
      2014-11-19  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/55425
      	* g++.dg/cpp0x/constexpr-__func__.C
      
      From-SVN: r217788
      Paolo Carlini committed