Commit Graph

134389 Commits

Author SHA1 Message Date
Thomas Quinot 8b64ed4caa sem_ch13.adb: Complete previous change.
2014-11-20  Thomas Quinot  <quinot@adacore.com>

	* sem_ch13.adb: Complete previous change.
	* exp_dist.adb, exp_dist.ads: Rework PolyORB/DSA arguments processing
	circuitry to correctly handle the case of non-private limited
	unconstrained formals.

From-SVN: r217845
2014-11-20 12:39:44 +01:00
Arnaud Charlet 5e9d6f05dd [multiple changes]
2014-11-20  Robert Dewar  <dewar@adacore.com>

	* freeze.adb, exp_dbug.adb, sem_ch13.adb: Minor reformatting.

2014-11-20  Thomas Quinot  <quinot@adacore.com>

	* einfo.ads: Fix minor typo in comment.

From-SVN: r217844
2014-11-20 12:37:33 +01:00
Arnaud Charlet 73e5aa55f9 Minor reformatting.
From-SVN: r217843
2014-11-20 12:34:34 +01:00
Arnaud Charlet eefd2467a6 [multiple changes]
2014-11-20  Robert Dewar  <dewar@adacore.com>

	* inline.adb, sem_util.adb: Minor reformatting.

2014-11-20  Pierre-Marie Derodat  <derodat@adacore.com>

	* uintp.h (UI_Eq): Declare.
	* urealp.h (Norm_Den): Declare.
	(Norm_Num): Declare.
	* exp_dbug.adb (Is_Handled_Scale_Factor): New.
	(Get_Encoded_Name): Do not output ___XF GNAT encodings
	for fixed-point types when these can be handled by GCC's DWARF
	back-end.

2014-11-20  Thomas Quinot  <quinot@adacore.com>

	* sem_ch13.db (Inherit_Aspects_At_Freeze_Point): Inherit parent
	SSO even if set through a pragma Default_Scalar_Storage_Order.
	* freeze.adb (Set_SSO_From_Default): For a type extension,
	do not let the default SSO override the parent SSO.
	* gnat_rm.texi: document the above

From-SVN: r217842
2014-11-20 12:34:09 +01:00
Arnaud Charlet 697b781a68 [multiple changes]
2014-11-20  Robert Dewar  <dewar@adacore.com>

	* a-stream.ads, a-reatim.ads, a-calend.ads, sinfo.ads, s-crtl.ads,
	interfac.ads, s-taskin.ads: Minor reformatting.

2014-11-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Extensions_Visible can now
	apply to an expression function.
	* sem_util.adb (Extensions_Visible_Status): Add special processing
	for expression functions.

2014-11-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* inline.adb (Build_Body_To_Inline): Remove meaningless aspects
	and pragmas.
	(Generate_Subprogram_Body): Remove meaningless aspects and pragmas.
	(Remove_Aspects_And_Pragmas): New routine.
	(Remove_Pragmas): Removed.
	* namet.ads, namet.adb (Nam_In): New versions of the routine.

From-SVN: r217841
2014-11-20 12:28:12 +01:00
Arnaud Charlet 39f0fa29d0 [multiple changes]
2014-11-20  Thomas Quinot  <quinot@adacore.com>

	* sem_util.adb: Minor reformatting.

2014-11-20  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Linker_Section): Detect
	duplicate Linker_Section.

2014-11-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb: Add guard for build-in-place boolean op.

2014-11-20  Yannick Moy  <moy@adacore.com>

	* checks.adb (Apply_Scalar_Range_Check): In GNATprove mode,
	put a range check when an empty range is used, instead of an
	error message.
	* sinfo.ads Update comment on GNATprove mode.

2014-11-20  Arnaud Charlet  <charlet@adacore.com>

	* a-stream.ads, s-osinte-linux.ads, a-reatim.ads, a-calend.ads,
	s-crtl.ads, interfac.ads, s-taskin.ads: Replace uses of 2 ** 63 and
	2 ** 64 by references to Long_Long_Integer instead, to allow these
	units to be analyzed by codepeer or spark when using a target
	configuration file with long_long_size set to 32.

From-SVN: r217840
2014-11-20 12:24:51 +01:00
Hristian Kirtchev a18d0b1580 sem_util.adb (Extensions_Visible_Status): Modify the logic to account for non-SPARK code.
2014-11-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Extensions_Visible_Status): Modify the logic to account
	for non-SPARK code.
	(Object_Access_Level): In ASIS mode, recognize
	a selected component with an implicit dereference so that it
	yields the same value with and without expansion.

From-SVN: r217839
2014-11-20 12:21:41 +01:00
Arnaud Charlet 5fde9688e0 [multiple changes]
2014-11-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Implemented): In ASIS
	(compile-only) mode, use original type declaration to determine
	whether protected type implements an interface.

2014-11-20  Yannick Moy  <moy@adacore.com>

	* a-cfdlli.adb, a-cfdlli.ads, a-cfinve.adb, a-cfinve.ads,
	* a-cofove.adb, a-cofove.ads: Mark spec as SPARK_Mode, and private
	part/body as SPARK_Mode Off.
	* a-cfhama.adb, a-cfhama.ads, a-cfhase.adb, a-cfhase.ads,
	* a-cforma.adb, a-cforma.ads, a-cforse.adb, a-cforse.ads: Use
	aspect instead of pragma for uniformity.

2014-11-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Is_EVF_Expression): Include
	attributes 'Loop_Entry, 'Old and 'Update to the logic.

2014-11-20  Bob Duff  <duff@adacore.com>

	* sem_res.adb (Make_Call_Into_Operator): Don't
	call Left_Opnd in the case of unary operators, because they only
	have Right.

From-SVN: r217838
2014-11-20 12:16:44 +01:00
Arnaud Charlet 6c802906a3 [multiple changes]
2014-11-20  Pascal Obry  <obry@adacore.com>

	* initialize.c (ProcListCS): New extern variable (critical section).
	(ProcListEvt): New extern variable (handle).
	(__gnat_initialize)[Win32]: Initialize the ProcListCS critical
	section object and the ProcListEvt event.
	* final.c (__gnat_finalize)[Win32]: Properly finalize the
	ProcListCS critical section and the ProcListEvt event.
	* adaint.c (ProcListEvt): New Win32 event handle.
	(EnterCS): New routine to enter the critical section when dealing with
	child processes chain list.
	(LeaveCS): As above to exit from the critical section.
	(SignalListChanged): Routine to signal that the chain process list has
	been updated.
	(add_handle): Use EnterCS/LeaveCS, also call SignalListChanged when the
	handle has been added.
	(__gnat_win32_remove_handle): Use EnterCS/LeaveCS,
	also call SignalListChanged if the handle has been found and removed.
	(remove_handle): Routine removed, implementation merged with the above.
	(win32_wait): Use EnterCS/LeaveCS for the critical section. Properly
	copy the PID list locally to ensure that even if the list is updated
	the local copy remains valid. Add into the hl (handle list) the
	ProcListEvt handle. This handle is used to signal that a change has
	been made into the process chain list. This is to ensure that a waiting
	call can be resumed to take into account new processes. We also make
	sure that if the handle was not found into the list we start over
	the wait call. Indeed another concurrent call to win32_wait()
	could already have handled this process.

2014-11-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Actuals): The legality rule concerning
	the use of class-wide actuals for a non-controlling formal are
	not rechecked in an instance.

2014-11-20  Pascal Obry  <obry@adacore.com>

	* g-dirope.ads: Minor typo fix.

2014-11-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference,
	Expand_Update_Attribute): Preserve the tag of a prefix by offering
	a specific view of the class-wide version of the prefix.

From-SVN: r217837
2014-11-20 12:13:40 +01:00
Arnaud Charlet 4b963531a1 [multiple changes]
2014-11-20  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Analyze_Function_Return): For functions returning
	an access to an interface add an implicit conversion to the target
	type to force the displacement of the pointer to the object to
	reference the secondary dispatch table.
	(Check_Anonymous_Return): Skip internally built functions which handle
	the case of null access when locating the master of a task.
	* sem_res.adb (Valid_Conversion): Return true for internally
	generated conversions of access to interface types added to force
	the displacement of the pointer to reference the corresponding
	dispatch table.

2014-11-20  Pascal Obry  <obry@adacore.com>

	* adaint.c (add_handle): realloc with a size of +100.

From-SVN: r217836
2014-11-20 12:02:25 +01:00
Arnaud Charlet c05ba1f179 [multiple changes]
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
2014-11-20 12:00:44 +01:00
Eric Botcazou 4a0a5d5fc1 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
2014-11-20 11:56:01 +01:00
Arnaud Charlet 58b81ab059 Minor reformatting.
From-SVN: r217833
2014-11-20 11:47:23 +01:00
Pascal Obry 6654786e8f adaint.c (remove_handle): New local routine without a lock.
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
2014-11-20 11:47:11 +01:00
Arnaud Charlet 04e9213da7 [multiple changes]
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
2014-11-20 11:46:08 +01:00
Uros Bizjak 8a23b10063 re PR target/63966 (inconsistent operand constraints compiling build libcpp)
PR target/63966
	* lex.c [__i386__ || __x86_64__]: Include system <cpuid.h> for
	GCC_VERSION < 5000.

From-SVN: r217830
2014-11-20 11:43:45 +01:00
Arnaud Charlet 3cb9a885df [multiple changes]
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
2014-11-20 11:01:05 +01:00
Richard Biener e6121733d5 re PR tree-optimization/63962 ([x86] Code pessimization after r217213)
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
2014-11-20 09:26:48 +00:00
Richard Biener b00734dfd6 re PR tree-optimization/63677 (Failure to constant fold with vectorization.)
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
2014-11-20 08:40:52 +00:00
Ramana Radhakrishnan 07dc4e8707 Fix missing output formatter.
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
2014-11-20 08:38:34 +00:00
Igor Zamyatin 8f51aa6b26 re PR sanitizer/63845 (c-c++-common/asan/bitfield-[12345].c fails on i?86 -with -fpic)
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
2014-11-20 08:15:21 +00:00
Jan Hubicka 1be0e58d30 tree.c (free_lang_data_in_type): If BINFO has no important information in it, set it to NULL.
* 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
2014-11-20 06:15:03 +00:00
Jason Merrill 1b5695e610 re PR c++/56041 (Constexpr conversion function definition not found in template argument context)
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
2014-11-19 22:25:26 -05:00
GCC Administrator 9d39384c6b Daily bump.
From-SVN: r217822
2014-11-20 00:16:25 +00:00
Francois-Xavier Coudert 9adcf66816 re PR sanitizer/63939 (Massive asan failures (356) on darwin)
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
2014-11-19 22:33:36 +00:00
Francois-Xavier Coudert 7c59493a0f re PR sanitizer/63939 (Massive asan failures (356) on darwin)
PR sanitizer/63939
	* g++.dg/asan/large-func-test-1.C: Ajust dg-output.

From-SVN: r217816
2014-11-19 22:06:47 +00:00
Jason Merrill f2acb8ad43 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
2014-11-19 17:06:26 -05:00
Jason Merrill 69eb4fde58 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
2014-11-19 17:06:17 -05:00
Francois-Xavier Coudert 6d06c429dc re PR sanitizer/63939 (Massive asan failures (356) on darwin)
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
2014-11-19 21:31:23 +00:00
David Malcolm 3d1f12d56b PR jit/63854: Fix leaks in test-fuzzer.c
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
2014-11-19 20:45:03 +00:00
David Malcolm ba2dbfce55 PR jit/63854: Fix leak in ipa-icf.c
gcc/ChangeLog:
	PR jit/63854
	* ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
	congruence_class_group *.

From-SVN: r217811
2014-11-19 20:42:29 +00:00
Uros Bizjak 9da8fef02f re PR target/63947 (Wrong fcmov suffix)
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
2014-11-19 21:38:59 +01:00
Jan Hubicka 61204ad95c re PR lto/63963 (LTO doesn't work with __attribute__((__target__("sse4.2"))))
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
2014-11-19 20:35:49 +00:00
David Malcolm b957b2e025 PR jit/63854: Fix leaking vec in jit
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
2014-11-19 20:31:52 +00:00
David Malcolm 1f1e44ed24 PR jit/63854: Add all_late_ipa_passes to GCC_PASS_LISTS
gcc/ChangeLog:
	PR jit/63854
	* pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.

From-SVN: r217807
2014-11-19 20:26:57 +00:00
David Malcolm 8f047f6c3c PR jit/63854: lra.c: Fix leak of point_freq_vec's buffer when calling lra_inheritance
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
2014-11-19 20:21:19 +00:00
David Malcolm 89bd38d3c1 PR jit/63854: Fix leak of paths within jump threading
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
2014-11-19 20:17:44 +00:00
David Malcolm 3b56f890da PR jit/63854: Fix leak of "avail" within tree-ssa-pre.c
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
2014-11-19 20:14:18 +00:00
David Malcolm 79cafc7ae4 PR jit/63854: Fix leak of worklist within jit-recording.c
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
2014-11-19 20:10:00 +00:00
David Malcolm b705fe729a PR jit/63854: Don't leak producer_string in dwarf2out.c
gcc/ChangeLog:
	PR jit/63854
	* dwarf2out.c (dwarf2out_c_finalize): Free producer_string.

From-SVN: r217801
2014-11-19 19:57:09 +00:00
David Malcolm eec424587c PR jit/63854: Add ira_costs_c_finalize
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
2014-11-19 19:49:28 +00:00
David Malcolm 4c4d052c40 PR jit/63854: Fix leak of optimization_summary_obstack
gcc/ChangeLog:
	PR jit/63854
	* ipa-reference.c (ipa_reference_c_finalize): Release
	optimization_summary_obstack.

From-SVN: r217797
2014-11-19 19:45:39 +00:00
David Malcolm d5bee0f2af PR jit/63854: Fix leak of opts_obstack
gcc/ChangeLog:
	PR jit/63854
	* toplev.c (toplev::finalize): Free opts_obstack.

From-SVN: r217796
2014-11-19 19:43:20 +00:00
David Malcolm 7dd2b60b2f PR jit/63854: Fix memory leak of save_decoded_options
gcc/ChangeLog:
	PR jit/63854
	* toplev.c (toplev::finalize): Clean up save_decoded_options.

From-SVN: r217795
2014-11-19 19:33:49 +00:00
David Malcolm 548296b07c PR jit/63854: Fix memory leak within bb-reorder.c
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
2014-11-19 19:28:33 +00:00
David Malcolm 10fdd6e94f PR jit/63854: Fix memory leaks within context/pass_manager/dump_manager
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
2014-11-19 19:23:06 +00:00
David Malcolm a4fe9e9923 PR jit/63854: Fix memory leak of reginfo.c: valid_mode_changes_obstack
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
2014-11-19 19:11:37 +00:00
David Malcolm 0ef443cf01 PR jit/63854: Fix memory leak within gcc_options
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
2014-11-19 19:08:29 +00:00
Jason Merrill 3bdf0a9ba5 re PR c++/63928 (use after free in cp/constexpr.c)
PR c++/63928
	* constexpr.c (cxx_eval_store_expression): Return init, not *valp.

From-SVN: r217790
2014-11-19 14:03:20 -05:00
Manuel López-Ibáñez 92c66d8311 re PR driver/36312 (should refuse to overwrite input file with output file)
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
2014-11-19 19:11:54 +01:00