Commit Graph

135401 Commits

Author SHA1 Message Date
Olivier Hainque
1a9ee22281 trans.c (gnat_to_gnu, [...]): Elaborate the expression as part of the same stmt group as the actions.
2015-01-07  Olivier Hainque  <hainque@adacore.com>
                                             
	* gcc-interface/trans.c (gnat_to_gnu, <N_Expression_With_Action>):      
	Elaborate the expression as part of the same stmt group as the actions.

From-SVN: r219286
2015-01-07 10:49:24 +01:00
Arnaud Charlet
7d1286f61e [multiple changes]
2015-01-07  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor error message change.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Preelaborable_Initialization):
	Following AI05-028, the pragam applies legally to any composite type.

From-SVN: r219285
2015-01-07 10:31:05 +01:00
Arnaud Charlet
95e0ceefa5 [multiple changes]
2015-01-07  Arnaud Charlet  <charlet@adacore.com>

	* s-osinte-vxworks.adb, s-osinte-vxworks.ads
	(sigwait, sigwaitinfo): Removed, not needed after all on any
	VxWorks configurations.

2015-01-07  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, freeze.adb, exp_disp.adb: Minor reformatting.

From-SVN: r219284
2015-01-07 09:55:01 +01:00
Arnaud Charlet
2ea3ba25c0 [multiple changes]
2015-01-07  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Expand_Interface_Conversion): Adding missing
	generation of accessibility check.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Derived_Type_Declaration): In the case of an
	illegal completion from a class- wide type, set etype of the
	derived type properly to prevent cascaded errors.

From-SVN: r219283
2015-01-07 09:52:35 +01:00
Robert Dewar
18dae8141c prj.ads, [...]: Minor reformatting.
2015-01-07  Robert Dewar  <dewar@adacore.com>

	* prj.ads, i-cpoint.adb, freeze.adb, ghost.adb, prj-err.adb: Minor
	reformatting.

2015-01-07  Robert Dewar  <dewar@adacore.com>

	* restrict.adb (Check_Restriction_No_Use_Of_Attribute):
	New procedure.
	(OK_No_Use_Of_Entity_Name): New function.
	(Set_Restriction_No_Use_Of_Entity): New procedure.
	* restrict.ads (Check_Restriction_No_Use_Of_Attribute):
	New procedure.
	(OK_No_Use_Of_Entity_Name): New function.
	(Set_Restriction_No_Use_Of_Entity): New procedure.
	* sem_ch8.adb (Find_Direct_Name): Add check for violation of
	No_Use_Of_Entity.
	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Add processing for new restriction No_Use_Of_Entity.

From-SVN: r219282
2015-01-07 09:49:42 +01:00
Eric Botcazou
7806a9ed84 freeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic component type as to Has_Atomic_Components type.
2015-01-07  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic
	component type as to Has_Atomic_Components type.  Remove useless
	test on Is_Aliased component type.

From-SVN: r219281
2015-01-07 09:45:17 +01:00
Hristian Kirtchev
8636f52f7b 2015-01-07 Hristian Kirtchev <kirtchev@adacore.com>
* alloc.ads Alphabetize several declarations. Add constants
	Ignored_Ghost_Units_Initial and Ignored_Ghost_Units_Increment.
	* atree.adb Add with and use clauses for Opt.
	(Allocate_Initialize_Node): Mark a node as ignored Ghost
	if it is created in an ignored Ghost region.
	(Ekind_In): New variant.
	(Is_Ignored_Ghost_Node): New routine.
	(Set_Is_Ignored_Ghost_Node): New routine.
	* atree.adb Aplhabetize several subprograms declarations. Flag
	Spare0 is now known as Is_Ignored_Ghost_Node.
	(Ekind_In): New variant.
	(Is_Ignored_Ghost_Node): New routine.
	(Set_Is_Ignored_Ghost_Node): New routine.
	* einfo.adb: Flag 279 is now known as Contains_Ignored_Ghost_Code.
	(Contains_Ignored_Ghost_Code): New routine.
	(Set_Contains_Ignored_Ghost_Code): New routine.
	(Set_Is_Checked_Ghost_Entity, Set_Is_Ignored_Ghost_Entity):
	It is now possible to set this property on an unanalyzed entity.
	(Write_Entity_Flags): Output the status of flag
	Contains_Ignored_Ghost_Code.
	* einfo.ads New attribute Contains_Ignored_Ghost_Code along with
	usage in nodes.
	(Contains_Ignored_Ghost_Code): New routine
	along with pragma Inline.
	(Set_Contains_Ignored_Ghost_Code): New routine along with pragma Inline.
	* exp_ch3.adb Add with and use clauses for Ghost.
	(Freeze_Type): Capture/restore the value of Ghost_Mode on entry/exit.
	Set the Ghost_Mode in effect.
	(Restore_Globals): New routine.
	* exp_ch7.adb (Process_Declarations): Do not process a context
	that invoves an ignored Ghost entity.
	* exp_dbug.adb (Qualify_All_Entity_Names): Skip an ignored Ghost
	construct that has been rewritten as a null statement.
	* exp_disp.adb Add with and use clauses for Ghost.
	(Make_DT): Capture/restore the value of Ghost_Mode on entry/exit. Set
	the Ghost_Mode in effect.
	(Restore_Globals): New routine.
	* exp_util.adb (Requires_Cleanup_Actions): An ignored Ghost entity
	does not require any clean up. Add two missing cases that deal
	with block statements.
	* freeze.adb Add with and use clauses for Ghost.
	(Freeze_Entity): Capture/restore the value of Ghost_Mode on entry/exit.
	Set the Ghost_Mode in effect.
	(Restore_Globals): New routine.
	* frontend.adb Add with and use clauses for Ghost. Remove any
	ignored Ghost code from all units that qualify.
	* ghost.adb New unit.
	* ghost.ads New unit.
	* gnat1drv.adb Add with clause for Ghost. Initialize and lock
	the table in package Ghost.
	* lib.ads: Alphabetize several subprogram declarations.
	* lib-xref.adb (Output_References): Do not generate reference
	information for ignored Ghost entities.
	* opt.ads Add new type Ghost_Mode_Type and new global variable
	Ghost_Mode.
	* rtsfind.adb (Load_RTU): Provide a clean environment when
	loading a runtime unit.
	* sem.adb (Analyze): Capture/restore the value of Ghost_Mode on
	entry/exit as the node may set a different mode.
	(Do_Analyze):
	Capture/restore the value of Ghost_Mode on entry/exit as the
	unit may be withed from a unit with a different Ghost mode.
	* sem_ch3.adb Add with and use clauses for Ghost.
	(Analyze_Full_Type_Declaration, Analyze_Incomplete_Type_Decl,
	Analyze_Number_Declaration, Analyze_Private_Extension_Declaration,
	Analyze_Subtype_Declaration): Set the Ghost_Mode in effect. Mark
	the entity as Ghost when there is a Ghost_Mode in effect.
	(Array_Type_Declaration): The implicit base type inherits the
	"ghostness" from the array type.
	(Derive_Subprogram): The
	alias inherits the "ghostness" from the parent subprogram.
	(Make_Implicit_Base): The implicit base type inherits the
	"ghostness" from the parent type.
	* sem_ch5.adb Add with and use clauses for Ghost.
	(Analyze_Assignment): Set the Ghost_Mode in effect.
	* sem_ch6.adb Add with and use clauses for Ghost.
	(Analyze_Abstract_Subprogram_Declaration, Analyze_Procedure_Call,
	Analyze_Subprogram_Body_Helper, Analyze_Subprogram_Declaration):
	Set the Ghost_Mode in effect. Mark the entity as Ghost when
	there is a Ghost_Mode in effect.
	* sem_ch7.adb Add with and use clauses for Ghost.
	(Analyze_Package_Body_Helper, Analyze_Package_Declaration,
	Analyze_Private_Type_Declaration): Set the Ghost_Mode in
	effect. Mark the entity as Ghost when there is a Ghost_Mode
	in effect.
	* sem_ch8.adb Add with and use clauses for Ghost.
	(Analyze_Exception_Renaming, Analyze_Generic_Renaming,
	Analyze_Object_Renaming, Analyze_Package_Renaming,
	Analyze_Subprogram_Renaming): Set the Ghost_Mode in effect. Mark
	the entity as Ghost when there is a Ghost_Mode in effect.
	(Find_Type): Check the Ghost context of a type.
	* sem_ch11.adb Add with and use clauses for Ghost.
	(Analyze_Exception_Declaration): Set the Ghost_Mode in
	effect. Mark the entity as Ghost when there is a Ghost_Mode
	in effect.
	* sem_ch12.adb Add with and use clauses for Ghost.
	(Analyze_Generic_Package_Declaration,
	Analyze_Generic_Subprogram_Declaration): Set the Ghost_Mode in effect.
	Mark the entity as Ghost when there is a Ghost_Mode in effect.
	* sem_prag.adb Add with and use clauses for Ghost.
	(Analyze_Pragma): Ghost-related checks are triggered when there
	is a Ghost mode in effect.
	(Create_Abstract_State): Mark the
	entity as Ghost when there is a Ghost_Mode in effect.
	* sem_res.adb Add with and use clauses for Ghost.
	(Check_Ghost_Context): Removed.
	* sem_util.adb (Check_Ghost_Completion): Removed.
	(Check_Ghost_Derivation): Removed.
	(Incomplete_Or_Partial_View):
	Add a guard in case the entity has not been analyzed yet
	and does carry a scope.
	(Is_Declaration): New routine.
	(Is_Ghost_Entity): Removed.
	(Is_Ghost_Statement_Or_Pragma):
	Removed.
	(Is_Subject_To_Ghost): Removed.
	(Set_Is_Ghost_Entity):
	Removed.
	(Within_Ghost_Scope): Removed.
	* sem_util.adb (Check_Ghost_Completion): Removed.
	(Check_Ghost_Derivation): Removed.
	(Is_Declaration): New routine.
	(Is_Ghost_Entity): Removed.
	(Is_Ghost_Statement_Or_Pragma): Removed.
	(Is_Subject_To_Ghost): Removed.
	(Set_Is_Ghost_Entity): Removed.
	(Within_Ghost_Scope): Removed.
	* sinfo.ads Add a section on Ghost mode.
	* treepr.adb (Print_Header_Flag): New routine.
	(Print_Node_Header): Factor out code. Output flag
	Is_Ignored_Ghost_Node.
	* gcc-interface/Make-lang.in: Add dependency for unit Ghost.

From-SVN: r219280
2015-01-07 09:41:47 +01:00
Marek Polacek
4a9a42abc4 re PR c/64440 (-Wdiv-by-zero false negative on const variables)
PR c/64440
	* c-common.c (c_fully_fold_internal): Warn for division and modulo
	if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST and is zero.

	* gcc.dg/pr64440.c: New test.
	* c-c++-common/pr56607.c: Don't limit dg-warnings to C++.

From-SVN: r219279
2015-01-07 08:21:50 +00:00
Marek Polacek
2cc901dcb2 re PR c/64417 ([SH] FAIL: gcc.c-torture/compile/pr28865.c -O0 (test for excess errors))
PR c/64417
c/
	* c-typeck.c (process_init_element): Disallow initialization of
	a flexible array member with a string constant if the structure
	is in an array.
testsuite/
	* gcc.c-torture/compile/pr28865.c: Add dg-errors.
	* gcc.dg/pr64417.c: New test.

From-SVN: r219278
2015-01-07 08:19:48 +00:00
Sandra Loosemore
0e905f0f46 invoke.texi (RS/6000 and PowerPC Options): Tidy formatting of -mrecip= documentation.
2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
	of -mrecip= documentation.

From-SVN: r219277
2015-01-06 20:28:04 -05:00
GCC Administrator
93c5c540f9 Daily bump.
From-SVN: r219276
2015-01-07 00:16:58 +00:00
Ian Lance Taylor
80e3412f4f compiler: Add explicit sign to exported complex constants without imaginary component.
Fixes issue 31.

From-SVN: r219273
2015-01-07 00:15:46 +00:00
Ian Lance Taylor
7d7d64c1ae libgo: Add sources for go, cgo, and gofmt commands.
The new commands are not yet built.  That will be done
separately.

Also include a few changes to go/build to support them.

From-SVN: r219272
2015-01-06 23:26:02 +00:00
Jason Merrill
efcdb22fe3 parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid template-ids.
* parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid
	template-ids.

From-SVN: r219269
2015-01-06 15:44:59 -05:00
Jason Merrill
c6a38536f2 re PR c++/64455 (A constexpr variable template can't be used with enable_if)
PR c++/64455
	* pt.c (type_dependent_expression_p): Handle variable templates.
	* constexpr.c (potential_constant_expression_1): Use it.

From-SVN: r219268
2015-01-06 15:44:51 -05:00
Jason Merrill
b433d944ab re PR c++/64487 (internal compiler error: in fold_offsetof_1, at c-family/c-common.c:9857)
PR c++/64487
	* semantics.c (finish_offsetof): Handle templates here.
	* parser.c (cp_parser_builtin_offsetof): Not here.

From-SVN: r219267
2015-01-06 15:44:46 -05:00
Jason Merrill
47867b4f65 re PR c++/64496 (ICE with NSDMI and lambda)
PR c++/64496
	* semantics.c (process_outer_var_ref): Diagnose lambda in local
	class NSDMI.

From-SVN: r219266
2015-01-06 15:44:39 -05:00
Ville Voutilainen
864822bd88 re PR c++/64489 (A simple struct wrapping a const int is not trivially copyable)
PR c++/64489
	* class.c (check_field_decls): Make copy assignment operators
	complex only in c++98 mode.

From-SVN: r219265
2015-01-06 15:44:32 -05:00
Michael Meissner
512ef94939 re PR target/64505 (Powerpc compiler generates insn not found for -m32 -mpowerpc64)
[gcc]
2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/64505
	* config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
	correct reload handler if -m32 -mpowerpc64 is used.

[gcc/testsuite]
2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/64505
	* gcc.target/powerpc/pr64505.c: New file to test -m32 -mpowerpc64
	fix is correct.

From-SVN: r219264
2015-01-06 20:29:54 +00:00
Chris Manghane
861393acbf go-gcc.cc (constructor_expression): Don't initialize zero-sized fields, just evaluate the values for side effects.
* go-gcc.cc (constructor_expression): Don't initialize zero-sized
	fields, just evaluate the values for side effects.

From-SVN: r219262
2015-01-06 18:57:06 +00:00
Tom de Vries
f0cbb0afd9 Fix typo in struct same_succ_def comment
2015-01-06  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.

From-SVN: r219261
2015-01-06 14:42:13 +00:00
Jonathan Wakely
63f2136103 * config/abi/pre/gnu.ver: Fix version conflict for std::locale::name().
From-SVN: r219260
2015-01-06 13:13:36 +00:00
Eric Botcazou
f423b58c5a tsan-dg.exp (check_effective_target_fsanitize_thread): Check if testcases run without errors, not just if they compile.
* lib/tsan-dg.exp (check_effective_target_fsanitize_thread):
	Check if testcases run without errors, not just if they compile.

From-SVN: r219259
2015-01-06 12:23:07 +00:00
Christian Bruel
6a6b03ba34 re PR target/64507 (SH inlined builtin strncmp doesn't return 0 for 0 length)
PR target/64507
* config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.

From-SVN: r219257
2015-01-06 12:59:09 +01:00
Thomas Preud'homme
e4a5735015 re PR tree-optimization/63259 (Detecting byteswap sequence)
2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR tree-optimization/63259
    * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
    if optab exists for 16bit byteswap.

From-SVN: r219256
2015-01-06 11:51:16 +00:00
Arnaud Charlet
02169d7807 Kill new warnings.
From-SVN: r219255
2015-01-06 11:45:03 +01:00
Eric Botcazou
5dc6778ce1 freeze.adb (Freeze_Array_Type): Remove always true test and unreachable 'else' arm.
2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Freeze_Array_Type) <Complain_CS>: Remove always
	true test and unreachable 'else' arm.

From-SVN: r219254
2015-01-06 11:35:08 +01:00
Arnaud Charlet
bb6c60f4c6 [multiple changes]
2015-01-06  Vincent Celier  <celier@adacore.com>

	* prj-conf.adb (Check_Target): Improve error message when
	there are mismatched targets between the on in the configuration
	project file and the specified one, either in the main project
	file or in the --target= switch.

2015-01-06  Pascal Obry  <obry@adacore.com>

	* prj-attr.adb, projects.texi, snames.ads-tmpl: Add Mode and
	Install_Name attribute definitions.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Wrap_Imported_Subprogram): Indicate that the
	generated Import pragma for the internal imported procedure does
	not come from an aspect, so that Is_Imported can be properly
	set for it.

2015-01-06  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch12.adb (Might_Inline_Subp): Record whether
	any subprograms in the generic package are marked with
	pragma Inline_Always (setting flag Has_Inline_Always).
	(Analyze_Package_Instantiation): Add test of Has_Inline_Always
	alongside existing test of Front_End_Inlining as alternative
	conditions for setting Inline_Now. Also add test of
	Has_Inline_Always along with Front_End_Inlining test as an
	alternative condition for setting Needs_Body to False.

2015-01-06  Tristan Gingold  <gingold@adacore.com>

	* i-cpoint.adb (Copy_Array): Handle overlap.

From-SVN: r219253
2015-01-06 11:33:32 +01:00
Arnaud Charlet
3dfe4883e7 [multiple changes]
2015-01-06  Pascal Obry  <obry@adacore.com>

	* bindgen.adb: Minor style fix.

2015-01-06  Robert Dewar  <dewar@adacore.com>

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

2015-01-06  Vincent Celier  <celier@adacore.com>

	* prj-conf.adb (Parse_Project_And_Apply_Config): Reset incomplete
	with flags before parsing the projects.
	* prj-err.adb (Error_Msg): Do nothing if there are incomplete withs.
	* prj-part.adb (Post_Parse_Context_Clause): Set Incomplete_Withs
	to True in the flags, when Ignore_Missing_With is True and an
	imported project cannot be found.
	* prj-proc.adb (Expression): When there are incomplete withs and
	a variable or attribute is not found, set the variable/attribute
	to unknown.
	* prj.ads (Processing_Flags): New flag Incomplete_Withs,
	defaulted to False.

2015-01-06  Vasiliy Fofanov  <fofanov@adacore.com>

	* prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-conf.adb,
	prj-err.adb: Add new switch --no-command-line.

From-SVN: r219252
2015-01-06 11:30:54 +01:00
Arnaud Charlet
59e9bc0b6f [multiple changes]
2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb: Sloc of wrapper is that of instantiation.

2015-01-06  Robert Dewar  <dewar@adacore.com>

	* sem_ch11.adb: Minor reformatting.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Get_Assoc_Expr): New routine internal to
	Build_Array_Aggr_Code, used to initialized components covered
	by a box association. If the component type is scalar and has
	a default aspect, use it to initialize such components.

2015-01-06  Pascal Obry  <obry@adacore.com>

	* rtinit.c (__gnat_runtime_initialize): Add a parameter to
	control the setup of the exception handler.
	* initialize.c: Remove unused declaration.
	* bindgen.adb: Always call __gnat_runtime_initialize and pass
	whether the exeception handler must be set or not.

From-SVN: r219251
2015-01-06 11:22:41 +01:00
Arnaud Charlet
1a779058e1 [multiple changes]
2015-01-06  Thomas Quinot  <quinot@adacore.com>

	* freeze.adb (Set_SSO_From_Defaults): When setting scalar storage
	order to native from default, make sure to also adjust bit order.
	* exp_aggr.adb: Minor reformatting.

2015-01-06  Robert Dewar  <dewar@adacore.com>

	* s-valllu.adb, s-valllu.ads, s-valuti.ads, s-valuns.adb, s-valuns.ads,
	s-valrea.adb, s-valrea.ads: Add some additional guards for
	Str'Last = Positive'Last.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb, sem_ch8.adb: Ongoing work for wrappers for actual
	subprograms.

2015-01-06  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Expand_Interface_Conversion): Reapply patch.

From-SVN: r219250
2015-01-06 11:20:44 +01:00
Thomas Quinot
375cbc2bec sem_util.ads: Minor reformatting.
2015-01-06  Thomas Quinot  <quinot@adacore.com>

	* sem_util.ads: Minor reformatting.
	* sem_cat.adb (In_RCI_Visible_Declarations): Change back to...
	(In_RCI_Declaration) Return to old name, as proper checking of
	entity being in the visible part depends on entity kind and must
	be done by the caller.

From-SVN: r219249
2015-01-06 11:15:25 +01:00
Arnaud Charlet
fc6d979642 [multiple changes]
2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb, sem_ch12.ads, sem_ch8.adb: Ongoing work for wrappers
	for operators in SPARK.

2015-01-06  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb: Revert previous patch again.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Get_Value): In ASIS mode, preanalyze the
	expression in an others association before making copies for
	separate resolution and accessibility checks. This ensures that
	the type of the expression is available to ASIS in all cases,
	in particular if the expression is itself an aggregate.

From-SVN: r219248
2015-01-06 11:13:24 +01:00
Arnaud Charlet
28fa5430b8 [multiple changes]
2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Has_Independent_Components): Document extended usage.
	* einfo.adb (Has_Independent_Components): Remove obsolete assertion.
	(Set_Has_Independent_Components): Adjust assertion.
	* sem_prag.adb (Analyze_Pragma): Also set Has_Independent_Components
	for pragma Atomic_Components.  Set Has_Independent_Components
	on the object instead of the type for an object declaration with
	pragma Independent_Components.

2015-01-06  Olivier Hainque  <hainque@adacore.com>

	* set_targ.adb (Read_Target_Dependent_Values): Set
	Long_Double_Index when "long double" is read.
	(elaboration code): Register_Back_End_Types only when not reading from
	config files. Doing otherwise is pointless and error prone.

2015-01-06  Robert Dewar  <dewar@adacore.com>

	* s-valrea.adb (Value_Real): Check for Str'Last = Positive'Last

2015-01-06  Robert Dewar  <dewar@adacore.com>

	* a-wtgeau.adb, a-ztgeau.adb, a-tigeau.adb (String_Skip): Raise PE if
	Str'Last = Positive'Last.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Matches_Limited_View): Handle properly the case
	where the non-limited type is a generic actual and appears as
	a subtype of the non-limited view of the other.
	* freeze.adb (Build_Renamed_Body): If the return type of the
	declaration that is being completed is a limited view and the
	non-limited view is available, use it in the specification of
	the generated body.

2015-01-06  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb: Reapplying reversed patch.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Find_Type_Name): If there is a previous tagged
	incomplete view, the type of the classwide type common to both
	views is the type being declared.

From-SVN: r219247
2015-01-06 11:08:52 +01:00
Eric Botcazou
8a52daeeb0 einfo.ads (Is_Independent): Further document extended usage.
2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Is_Independent): Further document extended usage.

From-SVN: r219246
2015-01-06 11:04:22 +01:00
Eric Botcazou
6ced6aa2aa einfo.ads (Is_Independent): Document extended usage.
2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Is_Independent): Document extended usage.
	* einfo.adb (Is_Independent): Remove obsolete assertion.
	(Set_Is_Independent): Likewise.
	* sem_prag.adb (Process_Atomic_Shared_Volatile): Rename into...
	(Process_Atomic_Independent_Shared_Volatile): ...this.
	Deal with pragma Independent here.
	(Analyze_Pragma): Adjust
	to above renaming and also invoke it for pragma Independent.
	Adjust comment for Independent_Components.

From-SVN: r219245
2015-01-06 11:03:43 +01:00
Robert Dewar
61ae296d2b snames.ads-tmpl: Remove entries for attribute Enum_Image.
2015-01-06  Robert Dewar  <dewar@adacore.com>

	* snames.ads-tmpl: Remove entries for attribute Enum_Image.
	* exp_attr.adb: Remove reference to Attribute_Enum_Image.

2015-01-06  Robert Dewar  <dewar@adacore.com>

	* s-vallli.adb (Value_Long_Long_Integer): Handle case of Str'Last
	= Positive'Last.
	* s-valllu.adb (Value_Long_Long_Unsigned): Handle case of
	Str'Last = Positive'Last.

2015-01-06  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Process_Inline): Remove redundant construct
	warning (-gnatw.r) for an ineffective pragma Inline.

From-SVN: r219244
2015-01-06 11:01:05 +01:00
Robert Dewar
21db8699c3 s-valint.adb: Fix typo in last checkin.
2015-01-06  Robert Dewar  <dewar@adacore.com>

	* s-valint.adb: Fix typo in last checkin.
	* s-valuns.adb (Value_Unsigned): More efficient fix for
	Positive'Last case.
	* sem_attr.adb (Analyze_Attribute): Minor reformatting
	(Eval_Attribute): Static ervaluation of 'Img for enumeration types.

From-SVN: r219243
2015-01-06 10:55:03 +01:00
Arnaud Charlet
8d1359c773 [multiple changes]
2015-01-06  Robert Dewar  <dewar@adacore.com>

	* s-valint.adb, s-valuns.adb (Value_Integer): Deal with case where
	Str'Last = Positive'Last

2015-01-06  Thomas Quinot  <quinot@adacore.com>

	* xoscons.adb: Display exception information and return non-zero
	exit status in top level exception handler.

From-SVN: r219242
2015-01-06 10:53:40 +01:00
Jakub Jelinek
fb153d02da opts.c (common_handle_option): Add support for -fno-sanitize=all and -f{,no-}sanitize-recover=all.
* opts.c (common_handle_option): Add support for
	-fno-sanitize=all and -f{,no-}sanitize-recover=all.
	* doc/invoke.texi: Document -fno-sanitize=all,
	-f{,no-}sanitize-recover=all.  Document that
	-fsanitize=float-cast-overflow is not enabled
	by -fsanitize=undefined.  Fix up documentation
	of -f{,no-}sanitize-recover.

	* c-c++-common/asan/sanitize-all-1.c: New test.
	* c-c++-common/ubsan/sanitize-all-1.c: New test.
	* c-c++-common/ubsan/sanitize-all-2.c: New test.
	* c-c++-common/ubsan/sanitize-all-3.c: New test.
	* c-c++-common/ubsan/sanitize-all-4.c: New test.

From-SVN: r219241
2015-01-06 10:52:06 +01:00
Arnaud Charlet
a1954e97e7 [multiple changes]
2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb: Code clean up.

2015-01-06  Tristan Gingold  <gingold@adacore.com>

	* targparm.ads: Remove obsolete comment.

From-SVN: r219240
2015-01-06 10:51:49 +01:00
Olivier Hainque
f72a845b32 decl.c (gnat_to_gnu_entity, [...]): When constructing a ref to variable...
2015-01-06  Olivier Hainque  <hainque@adacore.com>
        
	* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable): When
	constructing a ref to variable, update inner_const_flag from the
	variable TREE_READONLY attribute.
	* gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Remove default
	definition.
	(get_target_float_size): Remove.
	(get_target_double_size): Remove.
	(get_target_long_double_size): Remove.

From-SVN: r219239
2015-01-06 10:49:00 +01:00
Pascal Obry
07e188be3b adaint.c (ProcListEvt): Set to NULL.
2015-01-06  Pascal Obry  <obry@adacore.com>

	* adaint.c (ProcListEvt): Set to NULL.
	* rtinit.c: New file.
	(__gnat_rt_init_count): New reference counter set to 0.
	(__gnat_runtime_initialize): Move code here from __gnat_initialize when
	this code is actually needed for the runtime initialization. This
	routine returns immediately if the initialization has already been done.
	* final.c: Revert previous change.
	* rtfinal.c: New file.
	(__gnat_runtime_finalize)[Win32]: Add finalization of the critical
	section and event. The default version of this routine is empty (except
	for the reference counting code). This routine returns immediately if
	some others libraries are referencing the runtime.
	* bindgen.adb (Gen_Adainit): Generate call to Runtime_Initialize
	remove circuitry to initialize the signal handler as this is
	now done by the runtime initialization routine.
	(Gen_Adafinal): Generate call to Runtime_Finalize.
	* gnat_ugn.texi: Update documentation about concurrency and
	initialization/finalization of the run-time.
	* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Add
	references to rtfinal.o and rtinit.o

From-SVN: r219238
2015-01-06 10:47:48 +01:00
Arnaud Charlet
7665df2248 Minor reformatting.
From-SVN: r219237
2015-01-06 10:39:03 +01:00
Robert Dewar
4199e8c6fb exp_attr.adb (Expand_N_Attribute_Reference): Add dummy entry for Enum_Image.
2015-01-06  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Add dummy entry
	for Enum_Image.
	* sem_attr.adb: Implement Enum_Image attribute.
	* snames.ads-tmpl: Add entries for Enum_Image attribute.

From-SVN: r219236
2015-01-06 10:35:30 +01:00
Arnaud Charlet
db761fee4c [multiple changes]
2015-01-06  Robert Dewar  <dewar@adacore.com>

	* namet.ads: Document use of Boolean2 for No_Use_Of_Entity.
	* restrict.ads (No_Use_Of_Entity): New table.
	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Ignore No_Use_Of_Entity (will be processed in parser).
	* snames.ads-tmpl: Add entry for Name_No_Use_Of_Entity.

2015-01-06  Vincent Celier  <celier@adacore.com>

	* prj-tree.adb (Imported_Or_Extended_Project_Of): Do not try
	to check for an extended project, if a project does not have
	yet a project declaration.

From-SVN: r219235
2015-01-06 10:32:06 +01:00
Arnaud Charlet
0566484a15 [multiple changes]
2015-01-06  Pierre-Marie Derodat  <derodat@adacore.com>

	* scos.ads: Update documentation about the SCO table build
	process and about table records format.
	* par_sco.ads (SCO_Record): Rename to SCO_Record_Raw.
	(SCO_Record_Filtered): New procedure.
	(Set_SCO_Logical_Operator): New procedure.
	(dsco): Update documentation.
	* par_sco.adb: Update library-level comments.
	(SCO_Generation_State_Type): New type.
	(SCO_Generation_State): New variable.
	(SCO_Raw_Table): New package instanciation.
	(Condition_Pragma_Hash_Table): Rename to SCO_Raw_Hash_Table.
	("<"): New.
	(Tristate): New type.
	(Is_Logical_Operator): Return Tristate and update documentation.
	(Has_Decision): Update call to Is_Logical_Operator and complete
	documentation.
	(Set_Table_Entry): Rename to Set_Raw_Table_Entry, update
	comment, add an assertion for state checking and change
	references to SCO_Table into SCO_Raw_Table.
	(dsco): Refactor to dump the raw and the filtered tables.
	(Process_Decisions.Output_Decision_Operand): Handle putative
	short-circuit operators.
	(Process_Decisions.Output_Element): Update references
	to Set_Table_Entry and to Condition_Pragma_Hash_Table.
	(Process_Decisions.Process_Decision_Operand): Update call
	to Is_Logical_Operator.
	(Process_Decisions.Process_Node): Handle putative short-circuit
	operators and change references to
	SCO_Table into SCO_Raw_Table.
	(SCO_Output): Add an assertion
	for state checking and remove code that used to stamp out SCO entries.
	(SCO_Pragma_Disabled): Change reference to SCO_Table
	into SCO_Raw_Table.
	(SCO_Record): Rename to SCO_Record_Raw,
	add an assertion for state checking and change references
	to SCO_Table into SCO_Raw_Table.
	(Set_SCO_Condition): Add an assertion for state checking, update
	references to Condition_Pragma_Hash_Table and change references to
	SCO_Table into SCO_Raw_Table.
	(Set_SCO_Pragma_Enabled): Add an assertion for state checking and
	change references to SCO_Table into SCO_Raw_Table.
	(Set_SCO_Logical_Operator): New procedure.
	(Traverse_Declarations_Or_Statements.Set_Statement_Entry): Update
	references to Set_Table_Entry and to Condition_Pragma_Hash_Table.
	(SCO_Record_Fildered): New procedure.
	* gnat1drv.adb (Gnat1drv): Invoke the SCO filtering pass.
	* lib-writ.adb (Write_ALI): Invoke the SCO filtering pass and
	output SCOs.
	* par-load.adb (Load): Update reference to SCO_Record.
	* par.adb (Par): Update reference to SCO_Record.
	* put_scos.adb (Put_SCOs): Add an assertion to check that no
	putative SCO condition reaches this end.
	* sem_ch10.adb (Analyze_Proper_Body): Update reference to SCO_Record.
	* sem_res.adb (Resolve_Logical_Op): Validate putative SCOs
	when corresponding to an "and"/"or" operator affected by the
	Short_Circuit_And_Or pragma.

2015-01-06  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb (Analyze_Use_Package): Give more specific error
	msg for attempted USE of generic subprogram or subprogram.

From-SVN: r219234
2015-01-06 10:30:31 +01:00
Arnaud Charlet
72eaa36512 [multiple changes]
2015-01-06  Robert Dewar  <dewar@adacore.com>

	* s-valllu.adb, a-tiinau.adb, a-timoau.adb, a-ztinau.adb, a-ztmoau.adb,
	s-valuns.adb, s-valrea.adb, a-wtflau.adb, a-tiflau.adb, a-ztflau.adb,
	a-wtinau.adb, a-wtmoau.adb: Document recognition of : in place of #.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): For aspects
	that specify stream subprograms, if the prefix is a class-wide
	type then the generated attribute definition clause must apply
	to the same class-wide type.
	(Default_Iterator): An iterator defined by an aspect of some
	container type T must have a first parameter of type T, T'class,
	or an access to such (from code reading RM 5.5.1 (2/3)).

2015-01-06  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb: Minor: complete previous change.

2015-01-06  Olivier Hainque  <hainque@adacore.com>

	* set_targ.ads (C_Type_For): New function. Return the name of
	a C type supported by the back-end and suitable as a basis to
	construct the standard Ada floating point type identified by
	the T parameter. This is used as a common ground to feed both
	ttypes values and the GNAT tree nodes for the standard floating
	point types.
	* set_targ.adb (Long_Double_Index): The index at which "long
	double" gets registered in the FPT_Mode_Table. This is useful to
	know whether we have a "long double" available at all and get at
	it's characteristics without having to search the FPT_Mode_Table
	when we need to decide which C type should be used as the
	basis for Long_Long_Float in Ada.
	(Register_Float_Type): Fill Long_Double_Index.
	(FPT_Mode_Index_For): New function. Return the index in
	FPT_Mode_Table that designates the entry corresponding to the
	provided C type name.
	(FPT_Mode_Index_For): New function. Return the index in
	FPT_Mode_Table that designates the entry for a back-end type
	suitable as a basis to construct the standard Ada floating point
	type identified by the input T parameter.
	(elaboration code): Register_Back_End_Types unconditionally,
	so C_Type_For can operate regardless of -gnateT. Do it
	early so we can query it for the floating point sizes, via
	FPT_Mode_Index_For. Initialize Float_Size, Double_Size and
	Long_Double_Size from the FPT_Mode_Table, as cstand will do.
	* cstand.adb (Create_Float_Types): Use C_Type_For to determine
	which C type should be used as the basis for the construction
	of the Standard Ada floating point types.
	* get_targ.ads (Get_Float_Size, Get_Double_Size,
	Get_Long_Double_Size): Remove.
	* get_targ.adb: Likewise.

2015-01-06  Thomas Quinot  <quinot@adacore.com>

	* sem_cat.adb (In_RCI_Declaration): Remove unnecessary
	parameter and rename to...
	(In_RCI_Visible_Declarations): Fix handling of private part of nested
	package.
	(Validate_RCI_Subprogram_Declaration): Reject illegal function
	returning anonymous access in RCI unit.

From-SVN: r219233
2015-01-06 10:24:33 +01:00
Arnaud Charlet
948ed27746 [multiple changes]
2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity): In GNATprove mode, a
	function wrapper may be a homonym of another local declaration.
	* sem_ch8.adb (Analyze_Subprogram_Renaming): In GNATprove mode,
	build function and operator wrappers after the actual subprogram
	has been resolved, and replace the standard renaming declaration
	with the declaration of wrapper.
	* sem_ch12.ads (Build_Function_Wrapper, Build_Operator_Wraooer):
	make public for use elsewhere.
	* sem_ch12.adb (Build_Function_Wrapper, Build_Operator_Wraooer):
	rewrite, now that actual is fully resolved when wrapper is
	constructed.

2015-01-06  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb: Revert previous change.

From-SVN: r219232
2015-01-06 10:20:55 +01:00
Arnaud Charlet
a921e83c12 [multiple changes]
2015-01-06  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb: Change name Name_Table_Boolean to
	Name_Table_Boolean1.
	* namet.adb: Change name Name_Table_Boolean to Name_Table_Boolean1
	Introduce Name_Table_Boolean2/3.
	* namet.ads: Change name Name_Table_Boolean to Name_Table_Boolean1
	Introduce Name_Table_Boolean2/3.
	* par-ch13.adb: Change name Name_Table_Boolean to
	Name_Table_Boolean1.

2015-01-06  Bob Duff  <duff@adacore.com>

	* gnat_rm.texi: Improve documentation regarding No_Task_Termination.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregte, Get_Value): For an
	others choice that covers multiple components, analyze each
	copy with the type of the component even in compile-only mode,
	to detect potential accessibility errors.

2015-01-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_res.adb (Is_Assignment_Or_Object_Expression): New routine.
	(Resolve_Actuals): An effectively volatile out
	parameter cannot act as an in or in out actual in a call.
	(Resolve_Entity_Name): An effectively volatile out parameter
	cannot be read.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is
	the expansion of an expression function it may be pre-analyzed
	if a 'access attribute is applied to the function, in which case
	last_entity may have been assigned already.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_One_Call): If formal has an incomplete
	type and actual has the corresponding full view, there is no
	error, but a case of use of incomplete type in a predicate or
	invariant expression.

2015-01-06  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Insert_No_Roots): Make sure that the same source
	in two different project tree is checked in both trees, if they
	are sources of two different projects, extended or not.

2015-01-06  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb: Minor code clean up.
	(Adjust_Global_Switches): Ignore gnatprove_mode in codepeer_mode.

2015-01-06  Bob Duff  <duff@adacore.com>

	* osint.adb (Read_Source_File): Don't print out
	file name unless T = Source.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Is_Variable, Is_OK_Variable_For_Out_Formal):
	recognize improper uses of constant_reference types as actuals
	for in-out parameters.
	(Check_Function_Call): Do not collect identifiers if function
	name is missing because of previous error.

From-SVN: r219231
2015-01-06 10:18:13 +01:00