1. 23 Oct, 2015 39 commits
    • sem_ch6.adb (Check_Missing_Return): Do not report a missing return statement on… · 241fac51
      sem_ch6.adb (Check_Missing_Return): Do not report a missing return statement on a function body constructed to...
      
      2015-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Check_Missing_Return): Do not report a missing
      	return statement on a function body constructed to complete a
      	package body for a premature instantiation.
      
      2015-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Build_Procedure_Body_Form): Replace body of
      	original function with that of generated procedure, to simplify
      	processing and avoid scoping problems with local declarations.
      	(Rewrite_Function_Call_For_C): Handle properly the case of a
      	parameterless function.
      
      From-SVN: r229249
      Ed Schonberg committed
    • a-exextr.adb, [...]: Minor reformatting. · 43184ab7
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* a-exextr.adb, sem_ch6.adb, sem_ch13.adb: Minor reformatting.
      
      From-SVN: r229248
      Hristian Kirtchev committed
    • [multiple changes] · ed11bbfe
      2015-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* s-taskin.ads: Minor code clean up.
      	(Ada_Task_Control_Block): Move fixed size field before variable sized
      	ones.
      	* einfo.ads: Minor editing.
      
      2015-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Check_Aggregate_Accessibility): Apply rule in RM
      	6.5 (8.3) to verify that access discriminants in an aggregate
      	in a return statement have the proper accessibility, i.e. do
      	not lead to dangling references.
      
      2015-10-23  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Add missing
      	test on Address_Clause_Overlay_Warnings to the "constant overlays
      	variable" warning. For the reverse case, also issue a warning if
      	the modification is potentially made through the initialization
      	of the variable.
      
      2015-10-23  Jose Ruiz  <ruiz@adacore.com>
      
      	* a-exetim-posix.adb (Clock): Use the pthread_getcpuclockid
      	function to have access to CPU clocks for tasks other than the
      	calling task.
      
      From-SVN: r229247
      Arnaud Charlet committed
    • [multiple changes] · bf8f12c2
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* debug.adb: Switch -gnatd.5 is no longer in use, remove the
      	associated documentation.
      	* exp_dbug.adb (Get_External_Name): Do not add a special prefix
      	for ignored Ghost entities or when switch -gnatd.5 is enabled.
      	* exp_dbug.ads Remove the documentation concerning the encoding
      	of ignored Ghost entities.
      
      2015-10-23  Bob Duff  <duff@adacore.com>
      
      	* a-exextr.adb (Notify_Exception): For Unhandled_Raise_In_Main,
      	mimic the output from Ada.Exceptions.Last_Chance_Handler; don't
      	print "Exception raised".
      	* s-stalib.ads, s-exctra.ads, s-exctra.adb: Add
      	Unhandled_Raise_In_Main to types Exception_Trace_Kind/Trace_Kind.
      
      From-SVN: r229246
      Arnaud Charlet committed
    • Support for vectorizing conditional expressions · af29617a
      2015-10-23  Alan Hayward <alan.hayward@arm.com>
      
      gcc/
      	PR tree-optimization/65947
      	* tree-vect-loop.c
      	(vect_is_simple_reduction_1): Find condition reductions.
      	(vect_model_reduction_cost): Add condition reduction costs.
      	(get_initial_def_for_reduction): Add condition reduction initial var.
      	(vect_create_epilog_for_reduction): Add condition reduction epilog.
      	(vectorizable_reduction): Condition reduction support.
      	* tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
      	* doc/sourcebuild.texi (Vector-specific attributes): Document
      	vect_max_reduc
      
      gcc/testsuite
      	PR tree-optimization/65947
      	* lib/target-supports.exp
      	(check_effective_target_vect_max_reduc): Add.
      	* gcc.dg/vect/pr65947-1.c: New test.
      	* gcc.dg/vect/pr65947-2.c: New test.
      	* gcc.dg/vect/pr65947-3.c: New test.
      	* gcc.dg/vect/pr65947-4.c: New test.
      	* gcc.dg/vect/pr65947-5.c: New test.
      	* gcc.dg/vect/pr65947-6.c: New test.
      	* gcc.dg/vect/pr65947-7.c: New test.
      	* gcc.dg/vect/pr65947-8.c: New test.
      	* gcc.dg/vect/pr65947-9.c: New test.
      	* gcc.dg/vect/pr65947-10.c: New test.
      	* gcc.dg/vect/pr65947-11.c: New test.
      
      From-SVN: r229245
      Alan Hayward committed
    • exp_attr.adb, [...]: Minor reformatting. · f3bf0d9a
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_attr.adb, freeze.adb, sem_attr.adb, exp_aggr.adb,
      	gnatname.adb: Minor reformatting.
      
      From-SVN: r229244
      Hristian Kirtchev committed
    • [multiple changes] · 6031f544
      2015-10-23  Steve Baird  <baird@adacore.com>
      
      	* a-cbdlli.ads, a-cbhama.ads, a-cbhase.ads, a-cbmutr.ads,
      	a-cborma.ads, a-cborse.ads, a-cbprqu.ads, a-cbsyqu.ads,
      	a-cdlili.ads, a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads,
      	a-cfinve.ads, a-cforma.ads, a-cforse.ads, a-cidlli.ads,
      	a-cihama.ads, a-cihase.ads, a-cimutr.ads, a-ciorma.ads,
      	a-ciormu.ads, a-ciorse.ads, a-coboho.ads, a-cobove.ads,
      	a-cofove.ads, a-cohama.ads, a-cohase.ads, a-coinho.ads,
      	a-coinho-shared.ads, a-coinve.ads, a-comutr.ads, a-conhel.ads,
      	a-convec.ads, a-coorma.ads, a-coormu.ads, a-coorse.ads,
      	a-cuprqu.ads, a-cusyqu.ads, a-rbtgbo.ads: Add spec Annotate
      	pragmas.
      	* a-cbdlli.adb, a-cbhama.adb, a-cbhase.adb, a-cbmutr.adb,
      	a-cborma.adb, a-cborse.adb, a-cbprqu.adb, a-cbsyqu.adb,
      	a-cdlili.adb, a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb,
      	a-cfinve.adb, a-cforma.adb, a-cforse.adb, a-cidlli.adb,
      	a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb,
      	a-ciormu.adb, a-ciorse.adb, a-coboho.adb, a-cobove.adb,
      	a-cofove.adb, a-cohama.adb, a-cohase.adb, a-coinho.adb,
      	a-coinho-shared.adb, a-coinve.adb, a-comutr.adb, a-conhel.adb,
      	a-convec.adb, a-coorma.adb, a-coormu.adb, a-coorse.adb,
      	a-cuprqu.adb, a-cusyqu.adb, a-rbtgbo.adb: Remove body Annotate
      	pragmas.
      
      2015-10-23  Vincent Celier  <celier@adacore.com>
      
      	* gnatname.adb: When gnatname is invoked with a project file,
      	specified with switch -P, if gprname is available, gnatname will
      	invoke gprname, with the target if it is a cross gnatname.
      
      2015-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_ch4.adb: Fix typo.
      	* exp_ch6.adb: Update comment.
      	* exp_attr.adb (Expand_Min_Max_Attribute): Simplify expansion.
      	* exp_aggr.adb (Convert_To_Positional): Only convert to
      	positional when generating C in case of an object declaration.
      	(In_Object_Declaration): New.
      	(Late_Expansion): Adapt to trees generated by Modify_Tree_For_C.
      	* sinfo.ads: Update documentation.
      
      2015-10-23  Joel Brobecker  <brobecker@adacore.com brobecker>
      
      	* sigtramp.h (struct sigcontext, struct ucontext): Remove declarations,
      	and replace them by include of corresponding header file.
      
      From-SVN: r229243
      Arnaud Charlet committed
    • [multiple changes] · d742bfc0
      2015-10-23  Bob Duff  <duff@adacore.com>
      
      	* a-convec.adb (Copy): Make sure C is initialized
      	on all paths, including when Checks is False.
      
      2015-10-23  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove
      	error as unreachable.
      
      From-SVN: r229242
      Arnaud Charlet committed
    • [multiple changes] · 2700b9c1
      2015-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Adjust.
      
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_dbug.ads, exp_dbug.adb (Get_External_Name): The special prefix for
      	ignored Ghost entities is now ___ghost_.
      
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* ghost.adb (Is_Subject_To_Ghost): Check the
      	original node when searching for pragma Ghost to catch cases
      	where a source construct has been rewritten into something else.
      
      2015-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* einfo.ads, einfo.adb (Rewritten_For_C): New flag on functions
      	that return a constrained array type.  When generating C these
      	functions are rewritten as procedures with an out parameter,
      	and calls to such functions are rewritten accordingly.
      	* exp_ch6.adb (Expand_N_Subprogram_Declaration): When
      	Modify_Tree_For_C is set and the function returns a constrained
      	array type, generate a procedure declaration with an additional
      	out parameter. Mark original function as Rewritten_For_C.
      	The new declaration is inserted in tree immediately after
      	current declaration.
      	(Expand_Subprogram_Body): If entity is marked Rewritten_For_C,
      	generate body of corresponding procedure using declarations
      	and statements for function body. Replace return statements
      	with assignments to the out parameter, followed by a simple
      	return statement.
      	(Rewrite_Function_Call_For_C): New procedure to replace a function
      	call that returns an array by a procedure call.
      
      From-SVN: r229241
      Arnaud Charlet committed
    • [multiple changes] · 774454ac
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_util.adb (Denotes_Iterator): New routine.
      	(Is_Iterator): Code cleanup. Factor out the detection of a
      	predefined iterator.  As a result this fixes a missing case
      	where a tagged type implements interface Reversible_Iterator.
      
      2015-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Eval_Attribute): Constant-fold 'Enabled if
      	not within a generic unit, even if expander is not active, so
      	that instances of container packages remain preelaborable in
      	-gnatc mode.
      
      2015-10-23  Tristan Gingold  <gingold@adacore.com>
      
      	* init.c (__gnat_sigtramp): New assembly function for arm64-darwin.
      	(__gnat_error_handler): Use trampoline for arm64.
      
      2015-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch3.adb (Expand_N_Object_Declaration): if the type of the
      	object is a class-wide limited interface type, the expression
      	is not restricted to the forms specified for limited types.
      
      2015-10-23  Vincent Celier  <celier@adacore.com>
      
      	* gnatname.adb: Code clean up.
      	* s-taasde.ads: Fix comment.
      
      From-SVN: r229240
      Arnaud Charlet committed
    • [multiple changes] · eeedaac5
      2015-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Is_Iterator, Is_Reversible_iterator): Use
      	root type to determine whether the type is a descendant of the
      	corresponding interface type, so take into account multiple
      	levels of subtypes and derivations.
      
      2015-10-23  Olivier Hainque  <hainque@adacore.com>
      
      	* tracebak.c: Refine selection of GCC/GENERIC_UNWINDER for
      	tracebacks on x86 & x86_64.
      	(x86 & x86_64): If !SJLJ, always pick the
      	GCC_UNWINDER for x86_64 (not only on linux).
      	* sem_util.ads: Minor fix in comment.
      
      From-SVN: r229239
      Arnaud Charlet committed
    • sem_prag.adb (Analyze_Pragma): Pragma Volatile_Function should not apply to a… · 576da1ea
      sem_prag.adb (Analyze_Pragma): Pragma Volatile_Function should not apply to a function instantiation.
      
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Pragma): Pragma Volatile_Function should
      	not apply to a function instantiation.
      	* sem_util.adb (Has_Effectively_Volatile_Profile): New routine.
      	(Is_Volatile_Function): An instance of Ada.Unchecked_Conversion
      	is a volatile function when its profile contains an effectively
      	volatile type.
      	* sem_util.ads (Has_Effectively_Volatile_Profile): New routine.
      
      From-SVN: r229238
      Hristian Kirtchev committed
    • re PR libgcc/66883 (config/epiphany/udivsi3-float.c:52: bad if test ?) · 3e5bb7ee
              PR libgcc/66883
              * config/epiphany/udivsi3-float.c: Fix CONCISE test, and comment typo.
      
      N.B., this is not active code, just documenting a previous approach for this
      function in C.
      
      From-SVN: r229236
      Joern Rennecke committed
    • Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def and builtins.def. · ed4403c6
      2015-10-23  Richard Biener  <rguenther@suse.de>
      
      	* Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
      	and builtins.def.
      
      From-SVN: r229235
      Richard Biener committed
    • [multiple changes] · 90e7b558
      2015-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_unst.adb (Unnest_Subprogram): Complete previous
      	change and update comments.
      
      2015-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Check_Function_With_Address_Parameter):
      	A subprogram that has an Address parameter and is declared in a Pure
      	package is not considered Pure, because the parameter may be used as a
      	pointer and the referenced data may change even if the address value
      	itself does not.
      	* freeze.adb (Freeze_Subprogram): use it.
      	* exp_ch6.adb (Expand_N_Subprogram_Body): Use it.
      
      From-SVN: r229234
      Arnaud Charlet committed
    • [multiple changes] · 45fbea4f
      2015-10-23  Olivier Hainque  <hainque@adacore.com>
      
      	* tracebak.c: Fallback to generic unwinder for gcc-sjlj on x86 &
      	x86_64 linux
      	* tracebak.c: Rework x86 & x86_64 sections to resort to the
      	generic unwinder if __USING_SJLJ_EXCEPTIONS__.
      
      2015-10-23  Javier Miranda  <miranda@adacore.com>
      
      	* sem_util.adb (Check_Function_Writable_Actuals): For function
      	calls restrict the check to elementary types, as requested by
      	RM 6.4.1(6.15/3)
      
      2015-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_unst.adb (Unnest_Subprogram): Suppress initialization on
      	Decl_ARECnT since we are taking care of all initializations in
      	the generated code.
      
      From-SVN: r229233
      Arnaud Charlet committed
    • Adjust previous change. · faaf6d35
      From-SVN: r229232
      Arnaud Charlet committed
    • [multiple changes] · 265ca04a
      2015-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_dim.adb (Analyze_Dimension_Extension_Or_Record_Aggregate):
      	Handle properly a box-initialized aggregate component.
      
      2015-10-23  Yannick Moy  <moy@adacore.com>
      
      	* sem_prag.adb (Analyze_Pragma): Reject Volatile_Function not placed
      	on a function.
      
      2015-10-23  Yannick Moy  <moy@adacore.com>
      
      	* a-extiin.ads, a-reatim.ads, a-interr.ads, a-exetim-mingw.ads,
      	a-exetim-default.ads, a-exetim.ads, a-taside.ads: Add "Global => null"
      	contract on subprograms.
      	* lib-xref-spark_specific.adb: collect scopes for stubs of
      	protected objects
      
      2015-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Enable
      	Back_Annotate_Rep_Info to get size information from gigi.
      	(Gnat1drv): Code clean ups.
      	* frontend.adb (Frontend): Ditto.
      
      From-SVN: r229231
      Arnaud Charlet committed
    • gnat1drv.adb (Adjust_Global_Switches): Adjust settings. · 45969c97
      2015-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Adjust settings.
      	* sem.adb (Semantics): Remove special case.
      
      From-SVN: r229230
      Arnaud Charlet committed
    • Add missing private clause in libgomp.c++/member-2.C · 88ebcde5
      2015-10-23  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/68063
      	* testsuite/libgomp.c++/member-2.C (A::m1): Add missing private clause.
      
      From-SVN: r229229
      Tom de Vries committed
    • [multiple changes] · ed37f25a
      2015-10-23  Gary Dismukes  <dismukes@adacore.com>
      
      	* bindgen.adb, restrict.adb: Minor spelling/grammar fixes.
      
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_res.adb (Resolve_Entity_Name): Code cleanup. Check for possible
      	elaboration issues in SPARK when the name denotes a source variable.
      
      From-SVN: r229228
      Arnaud Charlet committed
    • exp_ch7.adb (Process_Transient_Objects): Reimplement to properly handle… · 6e840989
      exp_ch7.adb (Process_Transient_Objects): Reimplement to properly handle restriction No_Exception_Propagation.
      
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Process_Transient_Objects): Reimplement to properly
      	handle restriction No_Exception_Propagation.
      	* exp_ch11.adb (Expand_At_End_Handler): Update the parameter
      	profile and all references to Block.
      	* exp_ch11.ads (Expand_At_End_Handler): Update the parameter
      	profile and comment on usage.
      	* exp_intr.adb (Expand_Unc_Deallocation): Reimplement to properly
      	handle restriction No_Exception_Propagation.
      	* gnat1drv.adb, restrict.adb: Update comment.
      
      From-SVN: r229227
      Hristian Kirtchev committed
    • exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call SS_Release for a… · c79f6efd
      exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call SS_Release for a block statement enclosing the return statement in...
      
      2015-10-23  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call
      	SS_Release for a block statement enclosing the return statement in the
      	case where a build-in-place function return is returning
      	the result on the secondary stack. This is accomplished by
      	setting the Sec_Stack_Needed_For_Return flag on such blocks.
      	It was already being set for the function itself, and it was
      	already set correctly for blocks in the non-build-in-place case
      	(in Expand_Simple_Function_Return).
      	(Set_Enclosing_Sec_Stack_Return): New procedure to perform
      	the Set_Sec_Stack_Needed_For_Return calls. Called in the
      	build-in-place and non-build-in-place cases.
      	(Expand_Simple_Function_Return): Call
      	Set_Enclosing_Sec_Stack_Return instead of performing the loop
      	in line.
      
      2015-10-23  Bob Duff  <duff@adacore.com>
      
      	* scng.adb (Char_Literal_Case): If an apostrophe
      	follows a reserved word, treat it as a lone apostrophe, rather
      	than the start of a character literal. This was already done for
      	"all", but it needs to be done also for (e.g.) "Delta".
      
      From-SVN: r229226
      Bob Duff committed
    • fold-const.c (fold_binary_loc): Move Fold (A & ~B) - (A & B) into (A ^ B) - B to… · 10158317
      fold-const.c (fold_binary_loc): Move Fold (A & ~B) - (A & B) into (A ^ B) - B to match.pd Move (X & ~Y) | (~X &...
      
      2015-10-23  Richard Biener  <rguenther@suse.de>
      	    Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
      
      	* fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
      	into (A ^ B) - B to match.pd
      	Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
      
      	* match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
      	New simplifier.
      	(minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
      	New simplifier.
      	(minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
      	New simplifier.
      	(bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
      	New simplifier.
      	(bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0) 
      	INTEGER_CST@1)): New simplifier.
      
      
      Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
      
      From-SVN: r229225
      Richard Biener committed
    • [multiple changes] · 95fef24f
      2015-10-23  Bob Duff  <duff@adacore.com>
      
      	* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): Use
      	Underlying_Type for B_Typ, in case the Typ is a subtype of a type with
      	unknown discriminants.
      	* g-awk.ads: Minor style fix in comment
      
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* debug.adb: Document the use of debug switch -gnatd.5.
      	* einfo.adb: Code reformatting.	(Is_Ghost_Entity): Moved from ghost.adb.
      	* einfo.ads New synthesized attribute Is_Ghost_Enity along
      	with usage in nodes and pragma Inline.
      	(Is_Ghost_Entity: Moved from ghost.ads.
      	* exp_ch3.adb Code reformatting.
      	(Expand_Freeze_Array_Type): Capture, set and restore the Ghost mode.
      	(Expand_Freeze_Class_Wide_Type): Capture, set and restore the
      	Ghost mode.
      	(Expand_Freeze_Enumeration_Type): Capture, set and
      	restore the Ghost mode.
      	(Expand_Freeze_Record_Type): Capture, set and restore the Ghost mode.
      	* exp_ch6.adb (Expand_Subprogram_Contract): Do not expand the
      	contract of an ignored Ghost subprogram.
      	* exp_ch13.adb Add with and use clauses for Ghost.
      	(Expand_N_Freeze_Entity): Capture, set and restore the Ghost mode.
      	* exp_dbug.adb (Get_External_Name): Code reformatting. Add a
      	special prefix for ignored Ghost entities or when requested by
      	-gnatd.5 for any Ghost entity.
      	* exp_dbug.ads Document the use of prefix "_ghost_" for ignored
      	Ghost entities.
      	* exp_prag.adb (Expand_Pragma_Check): Capture, set and restore the
      	Ghost mode.
      	(Expand_Pragma_Loop_Variant): Use In_Assertion_Expr
      	to signal the original context.
      	* ghost.adb (Check_Ghost_Overriding): Code cleanup.
      	(Is_Ghost_Entity): Moved to einfo.adb.	(Is_OK_Declaration):
      	Move the assertion expression check to the outer level.
      	(Is_OK_Ghost_Context): An assertion expression is a valid Ghost
      	context.
      	* ghost.ads (Is_Ghost_Entity): Moved to einfo.ads.
      	* sem_ch3.adb (Analyze_Object_Contract): A source Ghost object
      	cannot be imported or exported. Mark internally generated objects
      	as Ghost when applicable.
      	(Make_Class_Wide_Type): Inherit the ghostness of the root tagged type.
      	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Mark
      	a stand alone subprogram body as Ghost when applicable.
      	(Analyze_Subprogram_Declaration): Mark internally generated
      	subprograms as Ghost when applicable.
      	* sem_ch7.adb: Code cleanup.
      	* sem_ch13.adb (Add_Invariants): Add various formal
      	parameters to break dependency on global variables.
      	(Build_Invariant_Procedure): Code cleanup. Capture, set and
      	restore the Ghost mode.
      	* sem_res.adb (Resolve_Actuals): The actual parameter of a source
      	Ghost subprogram whose formal is of mode IN OUT or OUT must be
      	a Ghost variable.
      
      2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch8.adb Code cleanup.
      	(Find_Expanded_Name): Replace
      	the call to In_Pragmas_Depends_Or_Global with a call to
      	In_Abstract_View_Pragma.
      	(In_Abstract_View_Pragma): New routine.
      	(In_Pragmas_Depends_Or_Global): Removed.
      	* sem_prag.adb (Analyze_Part_Of): Catch a case where indicator
      	Part_Of denotes the abstract view of a variable.
      
      From-SVN: r229224
      Arnaud Charlet committed
    • sem_util.ads (Unique_Defining_Entity): Document the result for tasks and entries. · 2e885093
      2015-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_util.ads (Unique_Defining_Entity): Document the result
      	for tasks and entries.
      	* sem_util.adb (Unique_Entity): Return declaration entity for task and
      	entry bodies
      
      From-SVN: r229222
      Arnaud Charlet committed
    • Move fold_trunc_transparent_mathfn to match.pd · 67dbe582
      This moves the fold rules for trunc, floor, ceil, round, nearbyint and
      rint in one go, since they're tested as a group.  Most of the code is
      supporting the f(x)->x fold when x is known to be integer-valued.
      Like with the non-negative test, this is probably more elegantly handled
      by tracking range information for reals, but until that happens, I think
      we should handle it analogously to tree_expr_nonnegative_p.
      
      I've incorporated the fix for PR68031 in the new version of
      integer_valued_real_p.  However, it seemed confusing to test for an
      SSA name at the head of the function rather than the case statement,
      and not fall through to tree_simple_nonnegative_warnv_p (which
      conceptually shouldn't care whether an update is in progress).
      But tree_simple_nonnegative_warnv_p is a no-op for SSA names,
      so I simply changed it to:
      
                return (!name_registered_for_update_p (t)
      	      && depth < PARAM_VALUE (PARAM_MAX_SSA_NAME_QUERY_DEPTH)
      	      && gimple_stmt_nonnegative_warnv_p (SSA_NAME_DEF_STMT (t),
      						  strict_overflow_p, depth));
      
      and used that in the new code too.
      
      Doing these folds later meant that IPA would start to use information
      about the aborting sinf and floor in 20030125-1.c before the folds
      kicked in.  I changed them from noinline to weak to stop that.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* builtins.c (integer_valued_real_p): Move to fold-const.c.
      	(fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
      	(fold_builtin_ceil, fold_builtin_round): Delete.
      	(fold_builtin_1): Handle constant trunc, floor, ceil and round
      	arguments here.
      	* convert.c (convert_to_real): Remove narrowing of rounding
      	functions.
      	* fold-const.h (integer_valued_real_unary_p)
      	(integer_valued_real_binary_p, integer_valued_real_call_p)
      	(integer_valued_real_single_p, integer_valued_real_p): Declare.
      	* fold-const.c (tree_single_nonnegative_warnv_p): Move
      	name_registered_for_update_p check to SSA_NAME case statement.
      	Don't call tree_simple_nonnegative_warnv_p for SSA names.
      	(integer_valued_real_unary_p, integer_valued_real_binary_p)
      	(integer_valued_real_call_p, integer_valued_real_single_p)
      	(integer_valued_real_invalid_p): New functions.
      	(integer_valued_real_p): Move from fold-const.c and rework
      	to call the functions above.  Handle SSA names.
      	* gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
      	* gimple-fold.c (gimple_assign_integer_valued_real_p)
      	(gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
      	(gimple_stmt_integer_valued_real_p): New functions.
      	* match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
      	Fold f(x)->x for the same f if x is known to be integer-valued.
      	Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
      	the result.  Canonicalize floor(x) as trunc(x) if x is
      	nonnegative.
      
      gcc/testsuite/
      	* gcc.c-torture/execute/20030125-1.c (floor, floorf, sin, sinf):
      	Make weak rather than noinline.
      	* gcc.dg/builtins-57.c: Compile with -O.
      	* gcc.dg/torture/builtin-integral-1.c: Skip for -O0.
      
      From-SVN: r229221
      Richard Sandiford committed
    • MAINTAINERS: Update email address. · 735a559c
      2015-10-23  Paulo Matos  <pmatos@linki.tools>
      
              * MAINTAINERS: Update email address.
      
      From-SVN: r229220
      Paulo Matos committed
    • Use make_constraint_from in intra_create_variable_infos · 0becf354
      2015-10-23  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-ssa-structalias.c (intra_create_variable_infos): Use
      	make_constraint_from.
      
      From-SVN: r229219
      Tom de Vries committed
    • Add missing is_full_var setting in create_variable_info_for_1 · 498dbe0a
      2015-10-23  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-ssa-structalias.c (create_variable_info_for_1): Add missing
      	setting of is_full_var in case of a single field.
      
      From-SVN: r229218
      Tom de Vries committed
    • Run tree-ssa/restrict-4.c without fipa-icf · 74093af2
      2015-10-23  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/tree-ssa/restrict-4.c: Add -fno-ipa-icf to dg-options.
      
      From-SVN: r229217
      Tom de Vries committed
    • MAINTAINERS (Write After Approval): Add myself. · 15713b43
      2015-10-23  Alan Hayward <alan.hayward@arm.com>
      
      	* MAINTAINERS  (Write After Approval): Add myself.
      
      From-SVN: r229216
      Alan Hayward committed
    • Update HOWTO_MERGE file for libsanitizer. · 02f4d3e9
      From-SVN: r229215
      Maxim Ostapenko committed
    • Fix typo. · 956dd14e
      From-SVN: r229213
      Nick Clifton committed
    • Fix ASan output pattern tests on Darwin. · 9f468f07
      gcc/testsuite/
      
      	PR sanitizer/68042
      	* c-c++-common/asan/memcmp-1.c: Adjust test to pass on Darwin.
      	* c-c++-common/asan/sanity-check-pure-c-1.c: Likewise.
      
      From-SVN: r229212
      Max Ostapenko committed
    • typo · 8ae06525
      From-SVN: r229211
      Jason Merrill committed
    • call.c (add_template_conv_candidate): Pass DEDUCE_CALL. · ba2b189e
      	* call.c (add_template_conv_candidate): Pass DEDUCE_CALL.
      	(add_template_candidate_real): Handle it.
      	(fn_type_unification): Handle it.
      
      From-SVN: r229210
      Jason Merrill committed
    • call.c (add_conv_candidate): Remove first_arg parm. · d4db5060
      	* call.c (add_conv_candidate): Remove first_arg parm.
      	(add_template_conv_candidate): Likewise.
      	(add_template_candidate_real): Don't pass it.
      	(build_op_call_1): Likewise.
      
      From-SVN: r229209
      Jason Merrill committed
    • Daily bump. · cfed1924
      From-SVN: r229208
      GCC Administrator committed
  2. 22 Oct, 2015 1 commit
    • re PR driver/68043 (many undocumented options, missing punctuation) · ffbd5e09
      gcc/ChangeLog:
      
      2015-10-22  Martin Sebor  <msebor@redhat.com>
      
      	PR driver/68043
      	* config/i386/i386.opt: Add missing periods to the ends of sentences.
      	* config/msp430/msp430.opt: Same.
      
      gcc/testsuite/ChangeLog:
      
      2015-10-22  Martin Sebor  <msebor@redhat.com>
      
      	PR driver/68043
      	* gcc.misc-tests/help.exp: Verify that option descriptions
      	end in periods.
      	* lib/options.exp (check_for_options): Use the regexp --line option.
      	Print unexpected match on failure.
      
      From-SVN: r229205
      Martin Sebor committed