12014-10-30  Release Manager
2
3	* GCC 4.9.2 released.
4
52014-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6
7	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove
8	superfluous computation for the max size.
9	<E_Array_Subtype>: Likewise.  Make sure that the max size calculation
10	does not overflow at compile time.
11
122014-10-13  Eric Botcazou  <ebotcazou@adacore.com>
13            Alan Modra  <amodra@gmail.com>
14
15	PR ada/63225
16	* uintp.adb (Vector_To_Uint): Move from here to...
17	* uintp.ads (UI_Vector): Make public.
18	(Vector_To_Uint): ...here.
19
202014-08-12  Joel Sherrill <joel.sherrill@oarcorp.com>
21
22	* socket.c: For RTEMS, use correct prototype of gethostbyname_r().
23	* gsocket.h Add include of <unistd.h> on RTEMS.
24
252014-08-11  Joel Sherrill <joel.sherrill@oarcorp.com>
26
27	* s-osinte-rtems.adb: Correct formatting of line in license block.
28
292014-07-16  Release Manager
30
31	* GCC 4.9.1 released.
32
332014-05-19  Eric Botcazou  <ebotcazou@adacore.com>
34
35	Backport from mainline
36	2014-04-22  Richard Henderson  <rth@redhat.com>
37
38	* init.c [__linux__] (HAVE_GNAT_ALTERNATE_STACK): New define.
39	(__gnat_alternate_stack): Enable for all linux except ia64.
40
412014-05-18  Eric Botcazou  <ebotcazou@adacore.com>
42
43	* utils.c (gnat_write_global_declarations): Adjust the flags put on
44	dummy_global.
45
462014-05-18  Eric Botcazou  <ebotcazou@adacore.com>
47
48	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Do not
49	consider that regular packed arrays can never be superflat.
50
512014-05-17  Eric Botcazou  <ebotcazou@adacore.com>
52
53	Backport from mainline
54	2014-04-28  Richard Henderson  <rth@redhat.com>
55
56	* gcc-interface/Makefile.in: Support aarch64-linux.
57
58	2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
59
60	* exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix,
61	add 'Suffix' parameter and adjust comment.
62	(Get_External_Name_With_Suffix): Delete.
63	* exp_dbug.adb (Get_External_Name_With_Suffix): Merge into...
64	(Get_External_Name): ...here.  Add 'False' default to Has_Suffix, add
65	'Suffix' parameter.
66	(Get_Encoded_Name): Remove 2nd argument in call to Get_External_Name.
67	Call Get_External_Name instead of Get_External_Name_With_Suffix.
68	(Get_Secondary_DT_External_Name): Likewise.
69	* exp_cg.adb (Write_Call_Info): Likewise.
70	* exp_disp.adb (Export_DT): Likewise.
71	(Import_DT): Likewise.
72	* comperr.ads (Compiler_Abort): Remove Code parameter and add From_GCC
73	parameter with False default.
74	* comperr.adb (Compiler_Abort): Likewise.  Adjust accordingly.
75	* types.h (Fat_Pointer): Rename into...
76	(String_Pointer): ...this.  Add comment on interfacing rules.
77	* fe.h (Compiler_Abort): Adjust for above renaming.
78	(Error_Msg_N): Likewise.
79	(Error_Msg_NE): Likewise.
80	(Get_External_Name): Likewise.  Add third parameter.
81	(Get_External_Name_With_Suffix): Delete.
82	* gcc-interface/decl.c (STDCALL_PREFIX): Define.
83	(create_concat_name): Adjust call to Get_External_Name, remove call to
84	Get_External_Name_With_Suffix, use STDCALL_PREFIX, adjust for renaming.
85	* gcc-interface/trans.c (post_error): Likewise.
86	(post_error_ne): Likewise.
87	* gcc-interface/misc.c (internal_error_function): Likewise.
88
892014-04-22  Release Manager
90
91	* GCC 4.9.0 released.
92
932014-04-09  Eric Botcazou  <ebotcazou@adacore.com>
94	    Svante Signell <svante.signell@gmail.com>
95
96	PR ada/54040
97	PR ada/59346
98	* s-osinte-x32.adb: New file.
99	* s-linux.ads (Time): New section.
100	* s-linux-alpha.ads (Time): Likewise.
101	* s-linux-android.ads (Time: Likewise.
102	* s-linux-hppa.ads (Time): Likewise.
103	* s-linux-mipsel.ads (Time): Likewise.
104	* s-linux-sparc.ads (Time): Likewise.
105	* s-linux-x32.ads (Time): Likewise.
106	* s-osprim-x32.ads (timespec): Adjust.
107	(Clock): Likewise.
108	(To_Timespec): Likewise.
109	* s-osinte-linux.ads (Time): Define local subtypes for those defined
110	in System.Linux.
111	* s-taprop-linux.adb (Monotonic_Clock): Do not define timeval.
112	* s-osinte-hpux.ads (timespec): Revert POSIX breakage.
113	* s-osinte-kfreebsd-gnu.ads (timespec): Likewise.
114	* s-osinte-solaris-posix.ads (timespec): Likewise.
115	* s-osinte-posix.adb (To_Timespec): Likewise.
116	* gcc-interface/Makefile.in (x32/Linux): Use s-osinte-x32.adb.
117
1182014-04-08  Eric Botcazou  <ebotcazou@adacore.com>
119
120	PR ada/60411
121	* gcc-interface/Makefile.in (arm% linux-android): Switch to EHABI.
122	* s-linux-android.ads: New file.
123	* s-intman-android.adb: Likewise.
124	* s-osinte-android.ads: Adjust.
125	* sigtramp-armdroid.c: Likewise.
126	* sigtramp.h: Add Android support.
127
1282014-04-07  Eric Botcazou  <ebotcazou@adacore.com>
129
130	* gcc-interface/Makefile.in (alpha-vms): Add missing line.
131
1322014-03-30  Eric Botcazou  <ebotcazou@adacore.com>
133
134	PR ada/60703
135	* system-linux-alpha.ads: Adjust for Ada 2005.
136	* system-linux-mips.ads: Likewise.
137	* system-linux-mips64el.ads: Likewise.
138	* system-linux-mipsel.ads: Likewise.
139	* system-linux-s390.ads: Likewise.
140	* system-linux-s390x.ads: Likewise.
141	* system-linux-sparc.ads: Likewise.
142	* system-linux-sparcv9.ads: Likewise.
143	* system-rtems.ads: Likewise.
144	* system-vxworks-arm.ads: Likewise.
145
1462014-03-16  Andreas Schwab  <schwab@linux-m68k.org>
147
148	PR ada/39172
149	* gcc-interface/Makefile.in (target_cpu_default): Revert
150	2013-10-11 change.
151
1522014-03-13  Eric Botcazou  <ebotcazou@adacore.com>
153
154	PR ada/51483
155	* cstand.adb (Register_Float_Type): Add 'precision' parameter and use
156	it to set the RM size.  Use directly 'size' for the Esize.
157	(Create_Back_End_Float_Types): Adjust call to above.
158	* get_targ.ads (Register_Type_Proc): Add 'precision' parameter.
159	* set_targ.ads (FPT_Mode_Entry): Add 'precision' component.
160	(Write_Target_Dependent_Values): Adjust comment.
161	* set_targ.adb (Register_Float_Type): Add 'precision' parameter and
162	deal with it.
163	(Write_Target_Dependent_Values): Write the precision in lieu of size.
164	(Initialization): Read the precision in lieu of size and compute the
165	size from the precision and the alignment.
166	* gcc-interface/gigi.h (enumerate_modes): Add integer parameter.
167	* gcc-interface/misc.c (enumerate_modes): Likewise.  Do not register
168	types for vector modes, pass the size in addition to the precision.
169
1702014-03-10  Eric Botcazou  <ebotcazou@adacore.com>
171
172	* gcc-interface/Make-lang.in (ADA_DEPFILES): Fix typo.
173
1742014-03-07  Doug Rupp  <rupp@adacore.com>
175
176	PR ada/60411
177	* system-linux-armel.ads (Backend_Overflow_Checks): Set to True.
178	(Support_64_Bit_Divides): Removed, no longer used.
179	(ZCX_By_Default): Enabled.
180
1812014-02-25  Doug Rupp  <rupp@adacore.com>
182
183	* gcc-interface/Makefile.in (arm-linux):
184	(EH_MECHANISM): Use ARM unwinder (-arm)
185	(LIBGNAT_TARGET_PAIRS: Override defaults with a-exexpr-gcc.adb and
186	s-excmac-arm.ads.
187	(EXTRA_LIBGNAT_OBJS): Add raise-gcc.o
188	(EXTRA_GNATRTL_NONTASKING_OBJS): Add g-cppexc.o s-excmac.o.
189	(arm-wrs-vxworks): Add EH_MECHANISM=-gcc for kernel mode.
190	(EXTRA_LIBGNAT_OBJS): Add sigtramp-armvxw.o
191	Add dependencies for sigtramp-armvxw.o.
192
1932014-02-25  Eric Botcazou  <ebotcazou@adacore.com>
194
195	* gcc-interface/trans.c (Pragma_to_gnu): Deal with Warning_As_Error.
196
1972014-02-25  Robert Dewar  <dewar@adacore.com>
198
199	* rtsfind.adb (Is_RTE): Protect against entity with no scope
200	field (previously this call blew up on the Standard entity).
201	* sem_attr.adb (Analyze_Attribute, case Access): Remove
202	test for No_Abort_Statements, this is now handled in
203	Set_Entity_With_Checks.
204	* exp_ch6.adb, sem_ch10.adb, sem_ch4.adb, sem_ch8.adb, sem_res.adb:
205	Change name Set_Entity_With_Style_Check => Set_Entity_With_Checks.
206	* sem_util.ads, sem_util.adb: Change name Set_Entity_With_Style_Check =>
207	Set_Entity_With_Checks.
208	(Set_Entity_With_Checks): Add checks for No_Dynamic_Attachment,
209	Add checks for No_Abort_Statements.
210
2112014-02-25  Robert Dewar  <dewar@adacore.com>
212
213	* exp_ch9.adb (Expand_Entry_Barrier): Add comment that call to
214	Check_Restriction is OK.
215
2162014-02-25  Ed Schonberg  <schonberg@adacore.com>
217
218	* sem_ch3.adb (Process_Full_View): Better error message when
219	the full view of  a private type without discriminants is an
220	unconstrained type.
221	* sem_ch7.adb (Uninstall_Declarations): Ditto.
222
2232014-02-25  Eric Botcazou  <ebotcazou@adacore.com>
224
225	* sigtramp-armvxw.c: Also restore r0.
226
2272014-02-25  Robert Dewar  <dewar@adacore.com>
228
229	* errout.adb (Error_Msg_Internal): Warning_Msg_Char set
230	unconditionally (Set_Msg_Insertion_Warning): Warning_Msg_Char
231	set unconditionally.
232	* erroutc.adb (Get_Warning_Tag): Does not give a leading space
233	any more (Output_Msg_Text): Rewritten with new convention on
234	output of warnings that are treated as errors.
235	* erroutc.ads (Error_Msg_Object): Warn_Chr is always set even
236	if Warn is False.
237	* gnat_rm.texi: Updates to documentation on pragma
238	Warning_As_Error.
239	* warnsw.adb (Set_Dot_Warning_Switch): -gnatw.e should not
240	set Warning_Doc_Switch.
241	* lib-writ.ads: Add documentation note on ALI file generation
242	for C.
243	* exp_ch6.adb (Expand_Call): Remove check for No_Abort_Statements
244	(belongs in Sem).
245	* sem_attr.adb (Resolve_Attribute, case Access):
246	Abort_Task'Access violates the No_Abort_Statements restriction.
247	* sem_res.adb (Resolve_Call): Check restriction
248	No_Abort_Statements for call to Abort_Task or a renaming of it.
249
2502014-02-25  Robert Dewar  <dewar@adacore.com>
251
252	* sem_ch3.adb (Array_Type_Declaration): Check for case of using
253	type name as index.
254	* lib.ads: Minor reformatting.
255	* einfo.ads: Minor reformatting.
256
2572014-02-25  Doug Rupp  <rupp@adacore.com>
258
259	* sem_mech.adb (Set_Mechanisms): For convention Fortran on VMS
260	use Short_Descriptor(S) as the argument passing mechanism.
261
2622014-02-25  Eric Botcazou  <ebotcazou@adacore.com>
263
264	* sigtramp-ppcvxw.c (CFI_COMMON_REGS): Also include r0.
265
2662014-02-25  Robert Dewar  <dewar@adacore.com>
267
268	* atree.ads (Warnings_Treated_As_Errors): New variable.
269	* errout.adb (Error_Msg_Internal): Set Warn_Err flag in
270	error object (Initialize): Initialize Warnings_As_Errors_Count
271	(Write_Error_Summary): Include count of warnings treated as errors.
272	* erroutc.adb (Warning_Treated_As_Error): New function.
273	(Matches): Function moved to outer level of package.
274	* erroutc.ads (Error_Msg_Object): Add Warn_Err flag.
275	(Warning_Treated_As_Error): New function.
276	* gnat_rm.texi: Document pragma Treat_Warning_As_Error.
277	* opt.adb: Add handling of Warnings_As_Errors_Count[_Config].
278	* opt.ads (Config_Switches_Type): Add entry for
279	Warnings_As_Errors_Count.
280	(Warnings_As_Errors_Count): New variable.
281	(Warnings_As_Errors): New array.
282	* par-prag.adb: Add dummy entry for Warning_As_Error.
283	* sem_prag.adb (Analyze_Pragma): Implement new pragma
284	Warning_As_Error.
285	* snames.ads-tmpl: Add entries for Warning_As_Error pragma.
286
2872014-02-25  Eric Botcazou  <ebotcazou@adacore.com>
288
289	* sigtramp.h: Fix minor inaccuracy.
290
2912014-02-25  Ben Brosgol  <brosgol@adacore.com>
292
293	* gnat_ugn.texi: Added description of kill command.
294
2952014-02-25  Robert Dewar  <dewar@adacore.com>
296
297	* gnat_rm.texi (Address_Clauses): Add a section discussing the
298	problem of address clauses causing unexpected initialization,
299	including the effect of Initialize_Scalars.
300
3012014-02-25  Robert Dewar  <dewar@adacore.com>
302
303	* errout.adb: Various changes for better msgs for anonmous access
304	subprogram types.
305	* erroutc.ads, erroutc.adb (Buffer_Ends_With): Version with character
306	argument.
307	(Buffer_Remove): Version with character argument.
308	* sem_attr.adb (Resolve_Attribute, case Access): Better handling
309	of mismatching conventions for access-to-subprogram case.
310	* sem_prag.adb (Set_Convention_From_Pragma): Deal with anonymous
311	access types in record.
312	* sem_util.ads, sem_util.adb (Set_Convention): Handle anonymous access
313	types, including in records.
314
3152014-02-25  Doug Rupp  <rupp@adacore.com>
316
317	* sigtramp-ppcvxw.c, sigtramp.h, sigtramp-armvxw.c: Comment
318	enhancements and corrections.
319
3202014-02-25  Robert Dewar  <dewar@adacore.com>
321
322	* gnat_rm.texi: New section "Conventions and Anonymous Access Types"
323
3242014-02-25  Robert Dewar  <dewar@adacore.com>
325
326	* gnat_rm.texi: First set of documentation additions for
327	predefined RM units.
328	* checks.adb: Minor reformatting.
329	* sem_elab.adb (Check_Task_Activation): Minor fix to error
330	message.
331	* sem_util.adb: Minor reformatting.
332
3332014-02-25  Arnaud Charlet  <charlet@adacore.com>
334
335	* usage.adb (Usage): Add help on -gnateC.
336	* switch-c.adb (Scan_Front_End_Switches): Add handling of -gnateC.
337	* opt.ads (Generate_CodePeer_Messages): New flag.
338	* gnat_ugn.texi: Document new switch -gnateC.
339
3402014-02-25  Ben Brosgol  <brosgol@adacore.com>
341
342	* gnat_rm.texi: Corrected minor typos in Implementation Defined
343	Aspects.
344	* opt.ads: Minor reformatting.
345
3462014-02-25  Robert Dewar  <dewar@adacore.com>
347
348	* binde.adb: Change messages to mention -gnatel instead of -gnatwl.
349	* gnat_ugn.texi: Update documentation of -gnatwl Add documentation
350	of -gnatel/-gnateL.
351	* opt.ads (Warn_Info_Messages): New flag.
352	* sem_elab.adb: Use Elab_Warnings, Elab_Info_Messages to control
353	messages.
354	* sem_prag.adb: Use Elab_Warnings, Elab_Info_Messages to control
355	messages.
356	* switch-m.ad, switch-c.adb: Recognize new -gnatel/EL switches.
357	* usage.adb: Add documentation of -gnatel/-gnateL Update
358	documentation of -gnatwl/-gnatwL.
359	* warnsw.adb: New handling of Elab_Warnings, Elab_Info_Messages
360	* warnsw.ads (Elab_Info_Messages): New field in Warning_Record
361
3622014-02-25  Robert Dewar  <dewar@adacore.com>
363
364	* einfo.ads, einfo.adb (Has_Shift_Operator): New flag.
365	* gnat_rm.texi: Document pragma Provide_Shift_Operators.
366	* interfac.ads: Minor code reorganization (add pragma
367	Compiler_Unit_Warning).
368	* par-prag.adb: Add dummy entry for Provide_Shift_Operators.
369	* sem_ch3.adb (Build_Derived_Numeric_Type): Copy
370	Has_Shift_Operator flag.
371	* sem_intr.adb (Check_Intrinsic_Subprogram): Make sure
372	Check_Shift is always called (Check_Shift): Set Has_Shift_Operator.
373	* sem_prag.adb: Implement pragma Provide_Shift_Operators.
374	* snames.ads-tmpl: Add entries for pragma Provide_Shift_Operators
375	Add entry for Name_Amount.
376	* checks.adb (Selected_Range_Checks): When checking for a null
377	range, make sure we use the base type, and not the subtype for
378	deciding a range is null.
379	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check
380	for suspicious loop bound which is outside the range of the
381	loop subtype.
382	* gnat_ugn.texi: Add documentation section "Determining the
383	Chosen Elaboration Order"
384	* sem_ch13.adb (UC_Entry): Add field Act_Unit
385	(Validate_Unchecked_Conversion): Store Act_Unit
386	(Validate_Unchecked_Conversions): Test Warnings_Off in Act_Unit
387	* treepr.adb: Minor reformatting.
388
3892014-02-25  Arnaud Charlet  <charlet@adacore.com>
390
391	* usage.adb: Minor: fix typo.
392
3932014-02-25  Robert Dewar  <dewar@adacore.com>
394
395	* lib.ads, s-bitops.adb, s-bitops.ads, s-conca5.adb, gnat_rm.texi,
396	s-conca5.ads, s-conca7.adb, s-conca7.ads, s-crc32.adb, s-crc32.ads,
397	s-conca9.adb, s-conca9.ads, g-dyntab.adb, s-crtl.ads, g-dyntab.ads,
398	s-excdeb.adb, s-addope.adb, s-addope.ads, s-carun8.adb, s-carun8.ads,
399	g-htable.adb, g-htable.ads, g-hesora.adb, g-hesora.ads, s-conca2.adb,
400	s-conca2.ads, a-comlin.adb, a-chlat1.ads, a-comlin.ads, errout.ads,
401	a-except.adb, s-conca4.adb, a-except.ads, s-conca4.ads, s-conca6.adb,
402	s-conca6.ads, g-spchge.adb, g-spchge.ads, g-u3spch.adb, g-u3spch.ads,
403	a-strhas.ads, restrict.adb, aspects.adb, aspects.ads, s-conca8.adb,
404	s-conca8.ads, back_end.adb, par-prag.adb, g-byorma.adb, g-byorma.ads,
405	a-elchha.adb, a-elchha.ads, g-speche.adb, g-speche.ads, s-casuti.adb,
406	s-assert.adb, s-casuti.ads, s-assert.ads, a-clrefi.adb, a-clrefi.ads,
407	s-conca3.adb, s-conca3.ads, a-ioexce.ads: Implement pragma
408	Compiler_Unit_Warning, change Compiler_Unit everywhere to
409	Compiler_Unit_Warning.
410
4112014-02-25  Sergey Rybin  <rybin@adacore.com frybin>
412
413	* sem_prag.adb (Analyze_Depends_In_Decl_Part): Do not normalize
414	in ASIS mode aggregates that are used as aspect definitions.
415
4162014-02-25  Robert Dewar  <dewar@adacore.com>
417
418	* exp_ch7.adb, sem_util.adb, sem_util.ads, exp_ch6.adb: Minor
419	reformatting.
420
4212014-02-25  Ed Schonberg  <schonberg@adacore.com>
422
423	* freeze.adb (Freeze_Entity): If the return type of a function
424	is a limited view, and the non-limited view has not been seen yet,
425	defer freezing to some later point.
426
4272014-02-25  Robert Dewar  <dewar@adacore.com>
428
429	* sem_ch3.adb: Minor reformatting.
430
4312014-02-25  Robert Dewar  <dewar@adacore.com>
432
433	* s-excdeb.ads, s-except.ads, s-exctab.adb, s-exctab.ads, s-finmas.ads,
434	s-htable.adb, s-htable.ads, s-imenne.adb, s-imenne.ads, s-imgenu.adb,
435	s-imgenu.ads, s-mastop.adb, s-mastop.ads, s-memory-vms_64.adb,
436	s-memory-vms_64.ads, s-memory.adb, s-memory.ads, s-os_lib.adb,
437	s-os_lib.ads, s-parame.adb, s-parame.ads, s-purexc.ads, s-restri.adb,
438	s-restri.ads, s-rident.ads, s-secsta.adb, s-secsta.ads, s-soflin.adb,
439	s-soflin.ads, s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
440	s-sopco5.adb, s-sopco5.ads, s-spsufi.ads, s-stache.adb, s-stache.ads,
441	s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads, s-strcom.adb,
442	s-strcom.ads, s-strhas.adb, s-string.adb, s-string.ads, s-strops.adb,
443	s-strops.ads, s-ststop.adb, s-ststop.ads, s-traceb.adb, s-traceb.ads,
444	s-traent.adb, s-traent.ads, s-unstyp.ads, s-utf_32.adb, s-utf_32.ads,
445	s-wchcnv.adb, s-wchcnv.ads, s-wchcon.adb, s-wchcon.ads, s-wchjis.adb,
446	s-wchjis.ads, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_prag.adb,
447	snames.ads-tmpl: Change Compiler_Unit everywhere to
448	Compiler_Unit_Warning.
449
4502014-02-25  Hristian Kirtchev  <kirtchev@adacore.com>
451
452	* exp_ch6.adb (Add_Or_Save_Precondition): New routine.
453	(Collect_Body_Postconditions_In_Decls): New routine.
454	(Collect_Body_Postconditions_Of_Kind): Factor out code. Handle
455	postcondition aspects or pragmas that appear on a subprogram
456	body stub.
457	(Collect_Spec_Preconditions): Factor out code. Handle
458	precondition aspects or pragmas that appear on a subprogram
459	body stub.
460	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): The analysis of
461	aspects that apply to a subprogram body stub is no longer delayed,
462	the aspects are analyzed on the spot.
463	(SPARK_Aspect_Error):
464	Aspects that apply to a subprogram declaration cannot appear in
465	a subunit.
466	* sem_ch10.adb Remove with and use clause for Sem_Ch13.
467	(Analyze_Proper_Body): Add local variable Comp_Unit. Unum
468	is now a local variable. Code cleanup. Analysis related to
469	the aspects of a subprogram body stub is now carried out by
470	Analyze_Subprogram_Body_Helper. Do not propagate the aspects
471	and/or pragmas of a subprogram body stub to the proper body
472	as this is no longer needed. Do not analyze the aspects of a
473	subprogram stub when the corresponding source unit is missing.
474	(Analyze_Protected_Body_Stub): Flag the illegal use of aspects
475	on a stub.
476	(Analyze_Task_Body_Stub): Flag the illegal use of
477	aspects on a stub.
478	(Optional_Subunit): Add local variable Unum.
479	* sem_ch13.adb (Insert_Delayed_Pragma): Do not analyze a generated
480	pragma when it applies to a subprogram body stub.
481	* sem_prag.adb (Analyze_Pragma): Pragmas Contract_Cases,
482	Depends and Global can now apply to a subprogram body stub as
483	long as it acts as its own spec.
484	(Analyze_Refined_Pragma):
485	Code reformatting. Refinement pragmas cannot apply to a subunit.
486
4872014-02-25  Hristian Kirtchev  <kirtchev@adacore.com>
488
489	* einfo.ads Update the usage of flag
490	Uses_Sec_Stack. Uses_Sec_Stack now applies to E_Loop entities.
491	* exp_ch5.adb (Expand_Iterator_Loop): The temporary for a cursor
492	now starts with the letter 'C'. This makes reading expanded
493	code easier.
494	* exp_ch7.adb (Establish_Transient_Scope): Add local variable
495	Iter_Loop. Signal that an Ada 2012 iterator loop requires
496	secondary stack management when creating a transient scope for
497	an element reference.
498	* exp_util.adb (Process_Statements_For_Controlled_Objects):
499	When wrapping the statements of a loop, pass the E_Loop entity
500	to the wrapping machinery.
501	(Wrap_Statements_In_Block): Add
502	formal parameter Scop along with comment on usage. Add local
503	variables Block_Id, Block_Nod and Iter_Loop. Mark the generated
504	block as requiring secondary stack management when the block is
505	created inside an Ada 2012 iterator loop. This ensures that any
506	reference objects are reclaimed on each iteration of the loop.
507	* sem_ch5.adb (Analyze_Loop_Statement): Mark the generated block
508	tasked with the handling of container iterators as requiring
509	secondary stack management. This ensures that iterators are
510	reclaimed when the loop terminates or is exited in any fashion.
511	* sem_util.adb (Add_Block_Identifier): New routine.
512	(Find_Enclosing_Iterator_Loop): New routine.
513	* sem_util.ads (Add_Block_Identifier): New routine.
514	(Find_Enclosing_Iterator_Loop): New routine.
515
5162014-02-25  Robert Dewar  <dewar@adacore.com>
517
518	* sinfo.ads: Minor reformatting.
519
5202014-02-25  Tristan Gingold  <gingold@adacore.com>
521
522	* s-expllu.ads, s-expuns.ads, s-expmod.ads: Minor comment fix.
523
5242014-02-25  Pascal Obry  <obry@adacore.com>
525
526	* sinput-l.adb, osint.adb, osint.ads: Add Prep_Suffix to factorize code.
527
5282014-02-25  Tristan Gingold  <gingold@adacore.com>
529
530	* sem_ch10.adb: Minor comment fix.
531
5322014-02-25  Bob Duff  <duff@adacore.com>
533
534	* s-tasdeb.adb: Misc cleanup of this package,
535	including printing addresses in hexadecimal.
536	(Write): Fix minor bug when taking 'Address of an empty string.
537
5382014-02-25  Ed Schonberg  <schonberg@adacore.com>
539
540	* sem_prag.adb (Analyze_Part_Of): Reject state refinement in a
541	public child unit when it does not refer to the abstract state
542	of a public ancestor.
543
5442014-02-25  Yannick Moy  <moy@adacore.com>
545
546	* sem_prag.adb (Analyze_Pragma/Pragma_Validity_Checks): Ignore pragma
547	Validity_Checks in GNATprove and CodePeer modes.
548
5492014-02-25  Pascal Obry  <obry@adacore.com>
550
551	* prj-attr.adb, projects.texi, snames.ads-tmpl: Add package Install's
552	Artifacts attribute.
553
5542014-02-25  Yannick Moy  <moy@adacore.com>
555
556	* sem_prag.adb: Minor reformatting to get consistent messages.
557
5582014-02-25  Robert Dewar  <dewar@adacore.com>
559
560	* checks.adb: Minor reformatting.
561	* sinfo.ads (Do_Range_Check): Document that this flag is never
562	passed to the back end.
563
5642014-02-25  Yannick Moy  <moy@adacore.com>
565
566	* sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem_attr.adb,
567	sem_ch6.adb: Remove useless references to SPARK RM in error messages.
568
5692014-02-25  Hristian Kirtchev  <kirtchev@adacore.com>
570
571	* sem_res.adb (Appears_In_Check): New routine.
572	(Resolve_Entity_Name): Remove local variables Prev and
573	Usage_OK. Par is now a constant. Remove the parent chain traversal
574	as the placement of a volatile object with enabled property
575	Async_Writers and/or Effective_Reads must appear immediately
576	within a legal construct.
577
5782014-02-25  Hristian Kirtchev  <kirtchev@adacore.com>
579
580	* checks.adb (Apply_Selected_Range_Checks):
581	Alphabetize local constants and variables. Add comments.
582	Always insert a range check that requires runtime evaluation into
583	the tree.
584
5852014-02-25  Robert Dewar  <dewar@adacore.com>
586
587	* sem_attr.adb, sem_ch6.adb, par-ch3.adb: Minor reformatting.
588
5892014-02-25  Bob Duff  <duff@adacore.com>
590
591	* s-tassta.adb (Finalize_Global_Tasks): Limit the number of loop
592	iterations while waiting for independent tasks to terminate;
593	if an independent task does not terminate, we do not want to
594	hang here. In that case, the thread will be terminated when the
595	process exits.
596	* s-taprop-linux.adb (Abort_Task): Fix Assert to allow for ESRCH.
597
5982014-02-25  Ed Schonberg  <schonberg@adacore.com>
599
600	* sem_prag.adb (Check_SPARK_Aspect_For_ASIS): New subprogram,
601	used to perform pre-analysis of the expression for SPARK
602	aspects that have a non-standard syntax, such as GLobal and
603	Initializes. The procedure applies to the original expression
604	in an aspect specification, prior to the analysis of the
605	corresponding pragma, in order to provide semantic information
606	for ASIS navigation purposes.
607	(Analyze_Global_In_Decl_List, Analyze_Initializes_In_Decl_Part):
608	Call new subprogram.
609
6102014-02-25  Yannick Moy  <moy@adacore.com>
611
612	* sem_prag.adb: Remove obsolete reference to SPARK RM in error message.
613
6142014-02-25  Doug Rupp  <rupp@adacore.com>
615
616	* init.c (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Enable for ARM.
617	(__gnat_adjust_context_for_raise): Bump the PC by 2.
618
6192014-02-25  Ed Schonberg  <schonberg@adacore.com>
620
621	* par-ch3.adb (P_Basic_Declarative_Items): In the case of a
622	misplaced IS, add a statement sequence to improper body only if
623	one has not been parsed already.
624
6252014-02-25  Ed Schonberg  <schonberg@adacore.com>
626
627	* sem_attr.adb (Analyze_Attribute, case 'Update): Check for
628	mismatch when multidimensional array is updated with a single
629	index.
630
6312014-02-25  Yannick Moy  <moy@adacore.com>
632
633	* sem_ch3.adb, sem_ch5.adb, sem_prag.adb, sem_attr.adb, errout.ads,
634	sem_ch6.adb: Mark most references to SPARK RM in error messages
635	for removal.
636
6372014-02-24  Ed Schonberg  <schonberg@adacore.com>
638
639	* par-ch3.adb (P_Basic_Declarative_Items): If an improper body
640	appears in a list of basic declarations, complete the tree with
641	an empty statement list, to prevent cascaded errors and crashes
642	if semantic analysis is attempted.
643
6442014-02-24  Thomas Quinot  <quinot@adacore.com>
645
646	* g-sercom-mingw.adb (Open): Fix incorrect test for error return
647	value.
648	* erroutc.adb: Minor reformatting.
649
6502014-02-24  Hristian Kirtchev  <kirtchev@adacore.com>
651
652	* sem_prag.adb (Check_Clause_Syntax): Account
653	for a solitary input item in a dependency list.
654
6552014-02-24  Yannick Moy  <moy@adacore.com>
656
657	* gnat1drv.adb (Adjust_Global_Switches): Do not
658	use validity checks at all in GNATprove_Mode.
659
6602014-02-24  Robert Dewar  <dewar@adacore.com>
661
662	* g-sercom-mingw.adb, g-sercom-linux.adb, sem_prag.adb, freeze.adb,
663	atree.adb, atree.ads: Minor reformatting.
664
6652014-02-24  Hristian Kirtchev  <kirtchev@adacore.com>
666
667	* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not enforce
668	global and dependence refinement when SPARK_Mode is off.
669	* sem_ch7.adb (Analyze_Package_Body_Contract): Do not enforce
670	state refinement when SPARK_Mode is off.
671	* sem_ch13.adb (Analyze_Aspect_Specifications): Add local
672	variable Decl. Insert the generated pragma for Refined_State
673	after a potential pragma SPARK_Mode.
674	* sem_prag.adb (Analyze_Depends_In_Decl_Part): Add local
675	constant Deps. Remove local variable Expr. Check the syntax
676	of pragma Depends when SPARK_Mode is off. Factor out the
677	processing for extra parenthesis around individual clauses.
678	(Analyze_Global_In_Decl_List): Items is now a constant. Check
679	the syntax of pragma Global when SPARK_Mode is off.
680	(Analyze_Initializes_In_Decl_Part): Check the syntax of pragma
681	Initializes when SPARK_Mode is off.
682	(Analyze_Part_Of): Check
683	the syntax of the encapsulating state when SPARK_Mode is off.
684	(Analyze_Pragma): Check the syntax of pragma Abstract_State when
685	SPARK_Mode is off. Move the declaration order check with respect
686	to pragma Initializes to the end of the processing. Do not verify
687	the declaration order for pragma Initial_Condition when SPARK_Mode
688	is off. Do not complain about a useless package refinement when
689	SPARK_Mode is off.
690	(Analyze_Refined_Depends_In_Decl_Part): Refs
691	is now a constant. Check the syntax of pragma Refined_Depends
692	when SPARK_Mode is off.
693	(Analyze_Refined_Global_In_Decl_Part):
694	Check the syntax of pragma Refined_Global when SPARK_Mode is off.
695	(Analyze_Refined_State_In_Decl_Part): Check the syntax of pragma
696	Refined_State when SPARK_Mode is off.
697	(Check_Dependence_List_Syntax): New routine.
698	(Check_Global_List_Syntax): New routine.
699	(Check_Initialization_List_Syntax): New routine.
700	(Check_Item_Syntax): New routine.
701	(Check_State_Declaration_Syntax): New routine.
702	(Check_Refinement_List_Syntax): New routine.
703	(Has_Extra_Parentheses): Moved to the top level of Sem_Prag.
704
7052014-02-24  Robert Dewar  <dewar@adacore.com>
706
707	* a-tags.adb, s-os_lib.adb: Minor reformatting.
708
7092014-02-24  Thomas Quinot  <quinot@adacore.com>
710
711	* g-sercom-mingw.adb, g-sercom-linux.adb (Raise_Error): Include
712	strerror message, not just numeric errno value.
713
7142014-02-24  Doug Rupp  <rupp@adacore.com>
715
716	* raise-gcc.c (exception_class_eq): Make endian neutral.
717
7182014-02-24  Ed Schonberg  <schonberg@adacore.com>
719
720	* atree.ads, atree,adb (Copy_Separate_Tree): Remove Syntax_Only
721	flag, and reset Etype and Analyzed attributes unconditionally
722	when copying a tree that may be partly analyzed.
723	* freeze.adb: Change calls to Copy_Separate_Tree accordingly.
724	* sem_ch6.adb (Check_Inline_Pragma): If the Inline pragma appears
725	within a subprogram body and applies to it, remove it from the
726	body before making a copy of it, to prevent spurious errors when
727	analyzing the copied body.
728
7292014-02-24  Thomas Quinot  <quinot@adacore.com>
730
731	* s-os_lib.adb (Errno_Message): Do not depend on Integer'Image.
732	* s-oscons-tmplt.c: On VxWorks, include adaint.h only after
733	vxWorks.h has been included.  Also ensure that file attributes
734	related definitions are output even in cases where socket support
735	is not enabled.
736	* a-tags.adb: Code clean up.
737	* Make-generated.in (OSCONS_CPP, OSCONS_EXTRACT): Use -iquote
738	instead of -I to add the main ada source directory to the header
739	search path, in order to avoid conflict between our own "types.h"
740	and VxWork's <types.h>.
741
7422014-02-24  Robert Dewar  <dewar@adacore.com>
743
744	* atree.ads, atree.adb (Copy_Separate_Tree): Add Syntax_Only parameter.
745	* debug.adb: Remove documentation of -gnatd.X, no longer used.
746	* freeze.adb (Wrap_Imported_Subprogram): Fixed and activated.
747
7482014-02-24  Bob Duff  <duff@adacore.com>
749
750	* gnat_ugn.texi: Improve documentation of gnatpp.
751
7522014-02-24  Thomas Quinot  <quinot@adacore.com>
753
754	* g-stheme.adb, g-socthi-vms.adb, g-socthi-vms.ads,
755	g-socthi-vxworks.adb, g-socthi-vxworks.ads, g-stseme.adb,
756	g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb,
757	g-socthi.ads, g-socket.adb (Host_Error_Message): Return a string, not
758	a chars_ptr, because on Windows this is a renaming of
759	Socket_Error_Message.
760
7612014-02-24  Robert Dewar  <dewar@adacore.com>
762
763	* a-direct.adb, sem_ch5.adb, a-cfdlli.adb, a-cfhase.adb, a-tags.adb,
764	s-filatt.ads, a-cforma.adb, sem_ch6.adb, g-socthi-mingw.adb,
765	a-cfhama.adb, a-cforse.adb, a-cofove.adb: Minor reformatting and code
766	reorganization.
767
7682014-02-24  Thomas Quinot  <quinot@adacore.com>
769
770	* Make-generated.in (OSCONS_CPP, OSCONS_EXTRACT): Make sure
771	that the source directory containing s-oscons-tmplt.c is on the
772	include path, so that all internal header files are available.
773
7742014-02-24  Ed Schonberg  <schonberg@adacore.com>
775
776	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the
777	domain of iteration is an attribute reference 'Old, this is an
778	Ada 2012 iterator and the loop must be rewritten as such.
779
7802014-02-24  Thomas Quinot  <quinot@adacore.com>
781
782	* s-fileio.adb (Errno_Message): Remove, use shared version from
783	s-os_lib instead.
784	* s-crtrun.ads, Makefile.rtl: Remove now unused unit.
785	* g-stseme (Socket_Error_Message): Reimplement in terms of new
786	s-os_lib function.
787	* g-socthi.ads, g-socthi.adb: Change profile of
788	Socket_Error_Message to return String to allow the above.
789	* g-socket.adb, g-socthi-mingw.adb, g-socthi-mingw.ads,
790	* g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
791	* g-socthi-vxworks.ads: Update to account for the above profile
792	change.
793	* a-tags.adb: Use strlen builtin binding provided by s-crtl.
794	* s-crtl.ads (strncpy): New procedure.
795	* s-os_lib.adb (Copy_Attributes): Import just once (strncpy):
796	Use import from s-crtl.
797	* a-envvar.adb, osint.adb: Use imports of C runtime functions
798	from s-crtl instead of re-importing locally.
799
8002014-02-24  Hristian Kirtchev  <kirtchev@adacore.com>
801
802	* sem_prag.adb (Analyze_Global_Item): Emit the
803	variable related checks concerning volatile objects only when
804	SPARK_Mode is on.
805
8062014-02-24  Robert Dewar  <dewar@adacore.com>
807
808	* sem_ch5.adb (Analyze_Iterator_Specification): use
809	Error_Msg_Ada_2012_Feature.
810
8112014-02-24  Jose Ruiz  <ruiz@adacore.com>
812
813	* s-rident.ads (Profile_Info): For Ravenscar, the restrictions
814	No_Local_Timing_Events and No_Specific_Termination_Handlers
815	must be set, according to the Ravenscar profile definition
816	in D.13(6/3).
817
8182014-02-24  Ed Schonberg  <schonberg@adacore.com>
819
820	* sem_ch6.adb (Analyze_Expression_Function): If this is a
821	completion, freeze return type and its designated type if needed.
822
8232014-02-24  Thomas Quinot  <quinot@adacore.com>
824
825	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
826	'Address): When moving initialization statements to a freeze
827	entity, keep them under a single node (i.e. do not unwrap
828	expressions with actions), and set the Initialization_Statements
829	attribute again so that processing of a later pragma Import can
830	still remove them.
831
8322014-02-24  Claire Dross  <dross@adacore.com>
833
834	* a-cfdlli.adb, a-cfdlli.ads, a-cfhama.adb, a-cfhama.ads,
835	a-cfhase.adb, a-cfhase.ads, a-cforma.adb, a-cforma.ads,
836	a-cforse.adb, a-cforse.ads, a-cofove.adb, a-cofove.ads: Rename
837	Left/Right to First_To_Previous/Current_To_Last.
838
8392014-02-24  Thomas Quinot  <quinot@adacore.com>
840
841	* adaint.h (struct file_attributes): New component "error"
842	(__gnat_error_attributes): Accessor for the above.
843	* adaint.c (__gnat_error_attributes): New subprogram
844	(__gnat_stat): Fix returned value (expect errno value)
845	(__gnat_stat_to_attr): Add management of error component (set to
846	stat errno value, except for missing files where it is set to 0,
847	and exists is set to 0).
848	* osint.ads (File_Attributes_Size): Update per change above,
849	also clarify documentation.
850	* s-filatt.ads: New file, binding to file attributes related
851	functions.
852	* Makefile.rtl (s-filatt): New runtime unit.
853	* s-crtl.ads (strlen): Expose binding to GCC builtin (falls back
854	to library function if not available on target).
855	* s-os_lib.ads, s-os_lib.adb (Errno_Message): New subprogram.
856	* s-oscons-tmplt.c (SIZEOF_struct_file_attributes,
857	SIZEOF_struct_dirent_alloc): New constants.
858	* Make-generated.in (s-oscons.ads): Now requires adaint.h.
859	* a-direct.adb (Fetch_Next_Entry): Fix incorrect buffer sizes.
860	Perform appropriate error checking if stat fails (do not just
861	ignore existing files if stat fails)
862	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Update
863	dependencies.
864
8652014-02-24  Hristian Kirtchev  <kirtchev@adacore.com>
866
867	* sem_prag.adb (Analyze_Global_Item): Move the check concerning
868	the use of volatile objects as global items in a function to
869	the variable related checks section.
870	* sem_util.adb (Async_Readers_Enabled): Directly call
871	Has_Enabled_Property.
872	(Async_Writers_Enabled): Directly call Has_Enabled_Property.
873	(Effective_Reads_Enabled): Directly call Has_Enabled_Property.
874	(Effective_Writes_Enabled): Directly call Has_Enabled_Property.
875	(Has_Enabled_Property): Rename formal parameter State_Id to Item_Id.
876	Update the comment on usage. State_Has_Enabled_Property how handles
877	the original logic of the routine. Add processing for variables.
878	(State_Has_Enabled_Property): New routine.
879	(Variable_Has_Enabled_Property): New routine.
880
8812014-02-24  Robert Dewar  <dewar@adacore.com>
882
883	* sinfo.ads, sem_ch12.adb, sem_res.adb, sem_ch4.adb, par-ch12.adb:
884	Minor reformatting.
885	* atree.ads, atree.adb (Node35): New function.
886	(Set_Node35): New procedure.
887	* debug.adb: Define new debug flag -gnatd.X.
888	* einfo.ads, einfo.adb (Import_Pragma): New field.
889	* freeze.adb (Wrap_Imported_Procedure): New procedure (not
890	really active yet, has to be activated with -gnatd.X.
891	* sem_prag.adb (Set_Imported): Set new Import_Pragma
892	field (Set_Imported): Don't set Is_Public (see
893	Freeze.Wrap_Imported_Subprogram)
894	* par-ch3.adb (P_Component_List): Handle unexpected null component.
895
8962014-02-24  Yannick Moy  <moy@adacore.com>
897
898	* sem_ch3.adb: Correct reference to SPARK RM in error messages.
899	* gnat_rm.texi: Correct documentation of attribute Update.
900
9012014-02-24  Ed Schonberg  <schonberg@adacore.com>
902
903	* sem_ch5.adb (Analyze_Iterator_Specification): Reject container
904	iterator in older versions of Ada.
905
9062014-02-24  Gary Dismukes  <dismukes@adacore.com>
907
908	* sem_ch5.adb, sem_aux.ads, sem_ch12.adb, gnat_ugn.texi, par.adb,
909	par-ch12.adb: Change spelling 'parametrization' to 'parameterization'.
910
9112014-02-24  Ed Schonberg  <schonberg@adacore.com>
912
913	* sinfo.ads, sinfo.adb: New attribute Generalized_Indexing, for
914	indexed_components that are instances of Ada 2012 container
915	indexing operations. Analysis and resolution of such nodes
916	is performed on the attribute, and the original source is
917	preserved for ASIS operations. If expansion is enabled, the
918	indexed component is replaced by the value of this attribute,
919	which is in a call to an Indexing aspect, in most case wrapped
920	in a dereference operation.
921	* sem_ch4.adb (Analyze_Indexed_Component): Create
922	Generalized_Indexing attribute when appropriate.
923	(Analyze_Call): If prefix is not overloadable and has an indexing
924	aspect, transform into an indexed component so it can be analyzed
925	as a potential container indexing.
926	(Analyze_Expression): If node is an indexed component with a
927	Generalized_ Indexing, do not re-analyze.
928	* sem_res.adb (Resolve_Generalized_Indexing): Complete resolution
929	of an indexed_component that has been transformed into a container
930	indexing operation.
931	(Resolve_Indexed_Component): Call the above when required.
932	(Resolve): Do not insert an explicit dereference operation on
933	an indexed_component whose type has an implicit dereference:
934	the operation is inserted when resolving the related
935	Generalized_Indexing.
936
9372014-02-24  Olivier Ramonat  <ramonat@adacore.com>
938
939	* gnat_rm.texi, gnat_ugn.texi: Replace Ada Compiler by Ada Development
940	Environment.
941
9422014-02-24  Hristian Kirtchev  <kirtchev@adacore.com>
943
944	* sem_prag.adb (Check_Constituent_Usage): Remove leading spaces in
945	error messages.
946	(Inconsistent_Mode_Error): Remove leading spaces in error messages.
947	Merge the expected and available mode errors.
948	(Report_Unused_Constituents): Remove leading spaces in error messages.
949	(Report_Unused_States): Remove leading spaces in error messages.
950
9512014-02-24  Thomas Quinot  <quinot@adacore.com>
952
953	* par_sco.adb (Traverse_One): Refine categorization of statement
954	SCOs.
955
9562014-02-24  Robert Dewar  <dewar@adacore.com>
957
958	* aspects.ads, aspects.adb: Remove aspects Ada_2005 and Ada_2012,
959	Pure_05, Pure_12 and Preelaborate_05.
960	* gnat_rm.texi: Update accordingly.
961	* sem_prag.adb: Document one argument form of Ada_05/Ada_2005
962	pragmas Document one argument form of Ada_12/Ada_2012 pragmas
963	Recognize one argument form of these pragmas only in GNAT mode
964	(-gnatg).
965
9662014-02-24  Ed Schonberg  <schonberg@adacore.com>
967
968	* s-dimmks.ads: Replace symbol for temperature, previously the
969	Greek letter Theta, by the ASCII @ sign.
970	* s-diflio.ads: ditto.
971
9722014-02-24  Robert Dewar  <dewar@adacore.com>
973
974	* exp_ch4.adb: Minor code reorganization (use OR for boolean
975	variables).
976	* sem_ch3.adb, sem_prag.adb, freeze.adb: Minor reformatting.
977
9782014-02-24  Ben Brosgol  <brosgol@adacore.com>
979
980	* gnat_ugn.texi, projects.texi: Added the necessary conditionalization
981	so that references to gnatmem and ASIS tools do not appear in the FSF
982	edition of the GNAT User's Guide.
983
9842014-02-24  Yannick Moy  <moy@adacore.com>
985
986	* freeze.adb (Freeze_Entity): Do not issue warning
987	for pre/post being ignored on imported subprogram in GNATprove
988	mode.
989
9902014-02-24  Robert Dewar  <dewar@adacore.com>
991
992	* exp_ch5.adb, sem_ch5.adb, sem_type.adb, sem_res.adb, sem_attr.adb,
993	stand.ads, sem_eval.adb: Minor reformatting.
994
9952014-02-24  Yannick Moy  <moy@adacore.com>
996
997	* sem_prag.adb: Minor rewording in error message.
998
9992014-02-24  Johannes Kanig  <kanig@adacore.com>
1000
1001	* exp_util.adb (Expand_Subtype_From_Expr): Do not expand subtypes in
1002	GNATprove_mode, gnat2why doesn't need nor use these types.
1003
10042014-02-24  Gary Dismukes  <dismukes@adacore.com>
1005
1006	* exp_ch4.adb (Expand_N_Op_Expon): On the AAMP
1007	target, in the case of signed integer exponentiation that uses a
1008	run-time routine, always select the Exp_* versions, since overflow
1009	checking is automatically done by AAMP arithmetic instructions.
1010
10112014-02-24  Hristian Kirtchev  <kirtchev@adacore.com>
1012
1013	* sem_ch13.adb (Analyze_Aspect_Specifications):
1014	When the related context is a package instace, insert pragma
1015	Abstract_State after all internally-generated renamings related
1016	to the instance "header".
1017
10182014-02-24  Ed Schonberg  <schonberg@adacore.com>
1019
1020	* sem_ch3.adb (Analyze_Declarations): Analyze Contract of abstract
1021	subprograms.
1022	* sem_disp.adb (Check_Dispatching_Context): A non-dispatching
1023	call to an abstract subprogram is legal if it appears in a
1024	pre/postcondition of another abstract operation.
1025
10262014-02-24  Sergey Rybin  <rybin@adacore.com frybin>
1027
1028	* gnat_ugn.texi: Misc updates.
1029
10302014-02-24  Hristian Kirtchev  <kirtchev@adacore.com>
1031
1032	* exp_prag.adb (Expand_Old): Set the type of the generated temporary.
1033
10342014-02-24  Gary Dismukes  <dismukes@adacore.com>
1035
1036	* layout.adb (Layout_Variant_Record): Instantiate
1037	Generic_Check_Choices and call Check_Choices before calling
1038	Build_Discr_Checking_Funcs, since we need Others_Discrete_Choices
1039	set to prevent generating incorrect discriminant-checking
1040	functions for 'others' variants (functions that unconditionally
1041	return True rather than accounting for the values covered by the
1042	'others' choice).
1043	* sem_eval.ads (Subtypes_Statically_Compatible): Add formal
1044	Formal_Derived_Matching.
1045	(Subtypes_Statically_Match): Add formal Formal_Derived_Matching.
1046	* sem_eval.adb (Subtypes_Statically_Compatible): Pass new
1047	Formal_Derived_Matching formal to Subtypes_Statically_Match.
1048	(Subtypes_Statically_Match): Suppress the Object_Size matching
1049	test in the case where Formal_Derived_Matching is True.
1050	* sem_ch12.adb (Validate_Derived_Type_Instance): Pass
1051	True for Formal_Derived_Matching_Formal on the call to
1052	Subtypes_Statically_Compatible.
1053
10542014-02-23  Eric Botcazou  <ebotcazou@adacore.com>
1055
1056	* gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS): Robustify.
1057
10582014-02-23  Eric Botcazou  <ebotcazou@adacore.com>
1059
1060	* gcc-interface/utils2.c (build_simple_component_ref): Fix formatting.
1061	Look through a conversion between original and packable version to get
1062	the base object.
1063	(build_component_ref): Rework comment and fix formatting.
1064
10652014-02-20  Sergey Rybin  <rybin@adacore.com frybin>
1066
1067	* gnat_ugn.texi, vms_data.ads (gnatelim): Add description of
1068	project-specific options.
1069
10702014-02-20  Ed Schonberg  <schonberg@adacore.com>
1071
1072	* a-cbdlli.adb (Insert): When capacity exceeded, raise Capacity_Error,
1073	not Constraint_Error.
1074	* a-cbmutr.adb (Append_Child, Insert_Child, Prepend_Child): Ditto.
1075	* sem_ch5.adb: Code clean up.
1076
10772014-02-20  Hristian Kirtchev  <kirtchev@adacore.com>
1078
1079	* sem_prag.adb (Usage_Error): Remove local
1080	constant Typ. Remove the specialized diagnostics for unconstrained
1081	or tagged items as those are not part of the explicit input set
1082	of the related subprogram and should not be flagged.
1083
10842014-02-20  Ed Schonberg  <schonberg@adacore.com>
1085
1086	* sem_attr.adb: Add guard to preserve all errors.
1087
10882014-02-20  Vincent Celier  <celier@adacore.com>
1089
1090	* switch-m.adb (Normalize_Compiler_Switches): Take into account
1091	switches that are recorded in ALI files: -gnateA, -gnateE,
1092	-gnateF, -gnateinn, -gnateu, -gnateV and -gnateY.
1093
10942014-02-20  Ed Schonberg  <schonberg@adacore.com>
1095
1096	* sem_ch5.adb (Analyze_Iterator_Specification): Check legality
1097	of an element iterator form over a formal container with an
1098	Iterable aspect.
1099	* exp_ch5.adb (Build_Formal_Container_Iteration): Utility
1100	to create declaration and loop statements for both forms of
1101	container iterators.
1102	(Expand_Formal_Container_Element_Iterator): New procedure
1103	to handle loops of the form  "for E of C" when C is a formal
1104	container.
1105	(Expand_Formal_Container_Iterator): Code cleanup.
1106
11072014-02-20  Hristian Kirtchev  <kirtchev@adacore.com>
1108
1109	* sem_prag.adb (Add_Item_To_Name_Buffer): New routine.
1110	(Analyze_Contract_Case): Remove the use of
1111	"may". Replace "aspect Contract_Cases" to avoid categorization
1112	of aspect vs pragma.
1113	(Analyze_External_Property_In_Decl_Part): Remove the use of "formal".
1114	(Analyze_Global_Item): Remove
1115	the use of "formal", specify the subprogram.  Split the
1116	error message about a state with visible refinement into
1117	two. Remove the use of "global" from "volatile global item".
1118	(Analyze_Initialization_Item): Ensure that the SPARK RM reference
1119	is on one line.
1120	(Analyze_Input_Output): Update the call to
1121	Check_Mode. Specify the duplicated item. Reword the error
1122	message concerning an input of a null output list. Use "\"
1123	for error message continuation.
1124	(Analyze_Part_Of): Remove
1125	the use of "may". Use "\" for error message continuation.
1126	(Analyze_Refined_Depends_In_Decl_Part): Update the error
1127	message concerning a useless refinement to match the format
1128	of Refined_Global.
1129	(Analyze_Refined_Global_In_Decl_Part): Reword the error message
1130	concerning a useless refinement.
1131	(Analyze_Refinement_Clause): Use "\" for error message continuation.
1132	(Check_Constituent_Usage): Use "\" for error message continuation.
1133	(Check_Dependency_Clause): Use "\" for error message continuation.
1134	(Check_Matching_Constituent): Use "\" for error message continuation.
1135	(Check_Missing_Part_Of): Use "\" for error message continuation.
1136	(Check_Mode): Renamed to
1137	Check_Role. Update the comment on usage. Redo the error reporting
1138	to use Role_Error.
1139	(Check_Mode_Restriction_In_Enclosing_Context): Use "\" for error
1140	message continuation.
1141	(Find_Mode): Renamed to Find_Role. Update the parameter profile along
1142	with comment on usage. Update all occurrences of Is_Input and Is_Output.
1143	(Inconsistent_Mode_Error): Use "\" for error message continuation.
1144	(Input_Match): Use "\" for error message continuation.
1145	(Role_Error): New routine.
1146	(Set_Convention_From_Pragma): Use "\" for error message continuation.
1147	(Usage_Error): Add local variable Error_Msg. Build specialized error
1148	message showcasing the offending item kind. Redo the diagnostics for
1149	unconstrained types.
1150
11512014-02-20  Ed Schonberg  <schonberg@adacore.com>
1152
1153	* exp_util.adb (Is_Iterated_Container): Use high-level primitives
1154	to determine whether a type is a container type, rather than
1155	examining only its type declaration, so that subtypes and derived
1156	types are handled properly.
1157
11582014-02-20  Sergey Rybin  <rybin@adacore.com frybin>
1159
1160	* gnat_ugn.texi: gnatmetric: add description of project-specific
1161	options.
1162
11632014-02-20  Ed Schonberg  <schonberg@adacore.com>
1164
1165	* sem_attr.adb (Analyze_Attribute, case 'Update): Verify that
1166	all choices in an association for a record type have the same
1167	type, as is done for record aggregates.
1168
11692014-02-20  Robert Dewar  <dewar@adacore.com>
1170
1171	* a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb: Use pragma
1172	Unmodified rather than Warnings (Off). Make comments
1173	uniform in the four affected units.
1174
11752014-02-20  Robert Dewar  <dewar@adacore.com>
1176
1177	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
1178	Object_Size): For non-scalar types allow any value that is a
1179	multiple of 8.
1180	* gnat_rm.texi: Document Object_Size for composites more clearly.
1181
11822014-02-20  Yannick Moy  <moy@adacore.com>
1183
1184	* sem_util.ads, sem_util.adb (Default_Initialization): Remove function.
1185
11862014-02-20  Ed Schonberg  <schonberg@adacore.com>
1187
1188	* stand.ads: Raise_Type: new predefined entity, used as the type
1189	of a Raise_Expression prior to resolution.
1190	* cstand.adb: Build entity for Raise_Type.
1191	* sem_ch11.adb (Analyze_Raise_Expression): use Raise_Type as the
1192	initial type of the node.
1193	* sem_type.adb (Covers): Raise_Type is compatible with all
1194	other types.
1195	* sem_res.adb (Resolve): Remove special handling of Any_Type on
1196	Raise_Expression nodes.
1197	(Resolve_Raise_Expression): Signal ambiguity if the type of the
1198	context is still Raise_Type.
1199
12002014-02-20  Robert Dewar  <dewar@adacore.com>
1201
1202	* sem_ch12.adb (Validate_Access_Type_Instance): Add message if
1203	mismatching predicates.
1204	* sem_ch6.adb (Check_Conformance): Give better messages on
1205	predicate mismatch.
1206	* sem_eval.adb (Predicates_Match): Move to spec.
1207	* sem_eval.ads (Predicates_Match): Moved here from body.
1208
12092014-02-20  Ed Schonberg  <schonberg@adacore.com>
1210
1211	* a-cbmutr.adb: Use default value in Insert_Child.
1212
12132014-02-20  Vincent Celier  <celier@adacore.com>
1214
1215	* gnatcmd.adb, make.adb, prj-makr.adb, clean.adb: Call
1216	Stringt.Initialize in all project aware tools.
1217
12182014-02-20  Doug Rupp  <rupp@adacore.com>
1219
1220	* gnat_ugn.texi: Document gnatbind -X option.
1221	* vms_data.ads: Minor warnings documentation reformatting.
1222
12232014-02-20  Ed Schonberg  <schonberg@adacore.com>
1224
1225	* exp_ch3.adb (Expand_Freeze_Array_Type): Only create invariant
1226	procedure for a base type.
1227
12282014-02-20  Robert Dewar  <dewar@adacore.com>
1229
1230	* sem_ch4.adb (Analyze_Case_Expression): Get type from first
1231	expression with type info.
1232	* sem_ch13.adb: Minor reformatting.
1233	* sem_eval.adb (Subtypes_Statically_Match): Make sure we return
1234	False if predicates do not match on the two types.
1235
12362014-02-20  Arnaud Charlet  <charlet@adacore.com>
1237
1238	* sem_prag.adb (Analyze_Pragma [pragma Attach_Handler]):
1239	In Relaxed_RM_Semantics mode, allow any static integer value,
1240	for compatibility with other compilers.
1241
12422014-02-20  Vincent Celier  <celier@adacore.com>
1243
1244	* errutil.adb (Initialize): Properly initialize entry in table
1245	Warnings when warnings are suppressed.
1246
12472014-02-20  Robert Dewar  <dewar@adacore.com>
1248
1249	* s-os_lib.ads: Add warning about non-portability of Rename_File.
1250	* sem_util.ads, sem_util.adb (Is_Junk_Name): New function.
1251	* sem_warn.adb: Use Is_Junk_Name to suppress some warnings.
1252	* gnat_ugn.texi: Document no warnings on junk variable names.
1253	* layout.adb: Minor code reorganization (use Ekind_In).
1254	* stringt.adb: Move initialization of Null_String_Id to Initialize
1255	routine.
1256
12572014-02-20  Ed Schonberg  <schonberg@adacore.com>
1258
1259	* sem_ch13.adb: Initialize optional Element_Id.
1260
12612014-02-20  Robert Dewar  <dewar@adacore.com>
1262
1263	* s-os_lib.ads (Rename_File): Minor commment addition.
1264
12652014-02-20  Thomas Quinot  <quinot@adacore.com>
1266
1267	* einfo.ads: Minor reformatting.
1268
12692014-02-20  Hristian Kirtchev  <kirtchev@adacore.com>
1270
1271	* aspects.adb (Exchange_Aspects): New routine.
1272	* aspects.ads (Exchange_Aspects): New routine.
1273	* atree.adb (Rewrite): Do not check whether the save node has
1274	aspects as it never will, instead check the node about to be clobbered.
1275	* einfo.adb (Write_Field25_Name): Abstract_States can appear in
1276	entities of generic packages.
1277	* sem_ch6.adb (Analyze_Expression_Function): Fix the parent
1278	pointer of an aspect specification list after rewriting takes place.
1279	* sem_ch7.adb (Analyze_Package_Body_Helper): Swap the aspect
1280	specifications of the generic template and the copy used for analysis.
1281	* sem_ch12.adb (Analyze_Generic_Package_Declaration): Swap
1282	the aspect specifications of the generic template and the
1283	copy used for analysis.
1284	(Analyze_Package_Instantiation): Propagate the aspect specifications
1285	from the generic template to the instantiation.
1286	(Build_Instance_Compilation_Unit_Nodes): Propagate the aspect
1287	specifications from the generic template to the instantiation.
1288	* sem_ch13.adb (Analyze_Aspect_Specifications): Handle aspects
1289	Abstract_State, Initializes and Initial_Condition when they
1290	apply to a package instantiation.
1291
12922014-02-20  Robert Dewar  <dewar@adacore.com>
1293
1294	* stringt.adb: Add call to Initialize in package initialization.
1295
12962014-02-20  Robert Dewar  <dewar@adacore.com>
1297
1298	* a-crbtgk.adb, a-cihama.adb, a-coinve.adb, a-ciorse.adb, a-crbtgo.adb,
1299	a-cidlli.adb, a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb,
1300	a-chtgke.adb, a-chtgop.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb,
1301	a-convec.adb, a-cohase.adb, a-chtgbk.adb, a-chtgbo.adb: Minor
1302	reformatting.
1303
13042014-02-20  Bob Duff  <duff@adacore.com>
1305
1306	* s-os_lib.ads: Minor: Remove incorrect comment.
1307
13082014-02-20  Robert Dewar  <dewar@adacore.com>
1309
1310	* sem_elab.adb (Check_Elab_Assign): Clearer warning message.
1311
13122014-02-20  Ed Schonberg  <schonberg@adacore.com>
1313
1314	* a-cborma.adb (Assign): When creating a node without a specified
1315	element, insert an uninitialized element in the map, because
1316	the instance may provide an element type with a default
1317	initialization, e.g a scalar with a Default_Value aspect.
1318	* a-cbhama.adb (Assign_Key): Remove useless Allocate procedure.
1319	(Insert): In the version without explicit element, provide an
1320	uninitialized element, as above.
1321	* a-cbdlli.adb (Append): In the version without explicit element,
1322	provide an uninitalized element, as above.
1323	(Allocate): Remove unused version.
1324
13252014-02-20  Robert Dewar  <dewar@adacore.com>
1326
1327	* sem_elab.adb: Minor code reorganization (use Nkind_In).
1328	* stringt.adb: Remove temporary pragma Warnings (Off).
1329	* stringt.ads: Add pragma Elaborate_Body to ensure initialization
1330	of Null_String_Id.
1331
13322014-02-20  Matthew Heaney  <heaney@adacore.com>
1333
1334	* a-chtgbk.adb (Replace): Use correct offset when calculating bucket
1335	index.
1336
13372014-02-20  Ed Schonberg  <schonberg@adacore.com>
1338
1339	* sem_ch5.adb (Analyze_Iterator_Specification): Initialize
1340	properly the cursor type for subsequent volatile testing in SPARK
1341	mode, when domain is a formal container with an Iterabe aspect.
1342
13432014-02-20  Robert Dewar  <dewar@adacore.com>
1344
1345	* errout.adb (Set_Warnings_Mode_Off): Add Reason argument.
1346	(Set_Specific_Warning_Off): Add Reason argument.
1347	* errout.ads (Set_Warnings_Mode_Off): Add Reason argument.
1348	(Set_Specific_Warning_Off): Add Reason argument.
1349	* erroutc.adb (Warnings_Entry): Add Reason field
1350	(Specific_Warning_Entry): Add Reason field.
1351	(Warnings_Suppressed): return String_Id for Reason.
1352	(Warning_Specifically_Suppressed): return String_Id for Reason.
1353	* erroutc.ads (Warnings_Entry): Add Reason field.
1354	(Specific_Warning_Entry): Add Reason field.
1355	(Set_Specific_Warning_Off): Add Reason argument.
1356	(Set_Warnings_Mode_Off): Add Reason argument.
1357	(Warnings_Suppressed): return String_Id for Reason.
1358	(Warning_Specifically_Suppressed): return String_Id for Reason.
1359	* errutil.adb (Warnings_Suppressed): returns String_Id for Reason
1360	(Warning_Specifically_Suppressed): returns String_Id for Reason
1361	* gnat_rm.texi: Document that Warning parameter is string literal
1362	or a concatenation of string literals.
1363	* par-prag.adb: New handling for Reason argument.
1364	* sem_prag.adb (Analyze_Pragma, case Warning): New handling
1365	for Reason argument.
1366	* sem_util.ads, sem_util.adb (Get_Reason_String): New procedure.
1367	* sem_warn.ads (Warnings_Off_Entry): Add reason field.
1368	* stringt.adb: Set Null_String_Id.
1369	* stringt.ads (Null_String_Id): New constant.
1370
13712014-02-20  Robert Dewar  <dewar@adacore.com>
1372
1373	* einfo.ads: Minor comment addition: Etype of package is
1374	Standard_Void_Type.
1375	* checks.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch13.adb,
1376	exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb,
1377	exp_ch7.adb, exp_ch9.adb, exp_dbug.adb, exp_disp.adb, exp_imgv.adb,
1378	exp_intr.adb, exp_prag.adb, exp_sel.adb, exp_strm.adb, exp_util.adb,
1379	freeze.adb, rtsfind.adb, sem_aggr.adb, sem_attr.adb, sem_ch10.adb,
1380	sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
1381	sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb, sem_res.adb,
1382	sem_util.adb, tbuild.adb, tbuild.ads: Remove New_Reference_To.
1383	Replace all calls with calls to New_Occurrence_Of.
1384
13852014-02-20  Robert Dewar  <dewar@adacore.com>
1386
1387	* par-util.adb (Ignore, case of right paren): Make this a
1388	serious error.
1389
13902014-02-19  Robert Dewar  <dewar@adacore.com>
1391
1392	* sem_ch5.adb, sem_prag.adb, sem_attr.adb: Minor reformatting.
1393	* debug.adb: Remove -gnatd.X switch, no longer used.
1394	* styleg.adb (Check_Then): Remove check of -gnatd.X, check is
1395	now always made.
1396
13972014-02-19  Bob Duff  <duff@adacore.com>
1398
1399	* g-socket.ads: Minor: Correct some comments.
1400
14012014-02-19  Ed Schonberg  <schonberg@adacore.com>
1402
1403	* sem_ch5.adb: Inhibit iterator rewriting in ASIS mode.
1404
14052014-02-19  Arnaud Charlet  <charlet@adacore.com>
1406
1407	* sem_ch13.adb (Analyze_Aspect_Specifications): Do not generate
1408	an error on out of range priorities if Relaxed_RM_Semantics.
1409	* sem_prag.adb (Analyze_Pragma): Ditto.
1410
14112014-02-19  Bob Duff  <duff@adacore.com>
1412
1413	* sem_attr.adb (Resolve_Attribute): Detect the case of F'Access
1414	where F denotes the renaming of an enumeration literal, and
1415	issue a specialized error message.
1416
14172014-02-19  Matthew Heaney  <heaney@adacore.com>
1418
1419	* a-chtgop.ads (Checked_Index): New operation.
1420	(Next): Changed mode of hash table.
1421	* a-chtgop.adb (Adjust, Delete_Node_Sans_Free): Detect tampering
1422	(Generic_Read, Reserve_Capacity): Ditto.
1423	(Generic_Equal): Detect tampering.
1424	(Next): Changed mode of hash table, detect tampering.
1425	* a-chtgke.ads (Checked_Index, Checked_Equivalent_Keys): New
1426	operation.
1427	(Find): Changed mode of hash table.
1428	* a-chtgke.adb (Checked_Equivalent_Keys): New operation
1429	(Delete_Key_Sans_Free, Generic_Conditional_Insert): Detect
1430	tampering.
1431	(Find): Changed mode of hash table, check for tampering.
1432	(Generic_Replace_Element): Check for tampering.
1433	* a-chtgbk.ads (Checked_Index, Checked_Equivalent_Keys): New operation.
1434	* a-chtgbk.adb (Checked_Index, Checked_Equivalent_Keys): New
1435	operation (Delete_Key_Sans_Free, Generic_Conditional_Insert):
1436	Detect tampering.
1437	(Find, Generic_Replace_Element): Check for tampering.
1438	* a-chtgbo.ads (Checked_Index): New operation.
1439	* a-chtgbo.adb (Checked_Index): New operation
1440	(Delete_Node_Sans_Free, Generic_Equal): Detect tampering.
1441	(Generic_Read, Next): Ditto.
1442	* a-cohase.adb, a-cihase.adb (Is_In): Changed mode of hash
1443	table (Difference, Intersection): Use variable view of
1444	source, detect tampering (Find, Is_Subset, Overlap): Use
1445	variable view of container (Symmetric_Difference, Union):
1446	Detect tampering (Vet): Use Checked_Index to detect tampering
1447	(Constant_Reference, Element, Find): Use variable view of
1448	container.
1449	(Update_Element_Preserving_Key): Detect tampering.
1450	* a-cbhase.adb (Difference, Find, Is_In): Use variable view
1451	of container.
1452	(Is_Subset): Ditto.
1453	(Equivalent_Sets, Overlap): Use Node's Next component.
1454	(Vet): Use Checked_Index to detect tampering.
1455	(Constant_Reference, Element, Find): Use variable view of container.
1456	(Update_Element_Preserving_Key): Detect tampering.
1457	* a-cohama.adb, a-cihama.adb, a-cbhama.adb (Constant_Reference,
1458	Element, Find): Use variable view of container.
1459	(Reference): Rename hash table component.
1460	(Vet): Use Checked_Index to detect tampering.
1461
14622014-02-19  Arnaud Charlet  <charlet@adacore.com>
1463
1464	* adabkend.adb (Scan_Compiler_Arguments): Add missing handling
1465	of -nostdinc.
1466
14672014-02-19  Thomas Quinot  <quinot@adacore.com>
1468
1469	* tbuild.adb (New_Occurrence_Of, New_Rerefence_To): Guard
1470	against calls without Def_Id.
1471
14722014-02-19  Claire Dross  <dross@adacore.com>
1473
1474	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
1475	a-cofove.ads: Add global annotations to subprograms.
1476
14772014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1478
1479	* sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): Remove
1480	constants Errors, Pack_Id and Pack_Init. Remove variable Vars.
1481	Initial_Condition no longer requires the presence of pragma
1482	Initialized. Do not try to diagnose whether all variables mentioned in
1483	pragma Initializes also appear in Initial_Condition.
1484	(Collect_Variables): Removed.
1485	(Match_Variable): Removed.
1486	(Match_Variables): Removed.
1487	(Report_Unused_Variables): Removed.
1488
14892014-02-19  Thomas Quinot  <quinot@adacore.com>
1490
1491	* gnat_rm.texi (pragma Stream_Convert): Minor rewording.
1492
14932014-02-19  Robert Dewar  <dewar@adacore.com>
1494
1495	* sem_util.adb, sem_util.ads, prj-conf.adb, s-os_lib.adb: Minor
1496	reformatting.
1497
14982014-02-19  Vincent Celier  <celier@adacore.com>
1499
1500	* prj-part.adb (Parse_Single_Project): Use the fully resolved
1501	project path, with all symbolic links resolved, to check if the
1502	same project is imported with a different unresolved path.
1503	* prj-tree.ads (Project_Name_And_Node): Component Canonical_Path
1504	changed to Resolved_Path to reflect that all symbolic links
1505	are resolved.
1506
15072014-02-19  Ed Schonberg  <schonberg@adacore.com>
1508
1509	* sem_util.ads, sem_util.adb (Get_Cursor_Type): Moved to sem_util
1510	from sem_ch13, for use elsewhere.
1511	* sem_ch13.adb (Get_Cursor_Type): Moved to sem_util.
1512	* sem_ch5.adb (Analyze_Iterator_Specification): Set properly the
1513	cursor type on the loop variable when the iteration is over o
1514	formal container.
1515
15162014-02-19  Vincent Celier  <celier@adacore.com>
1517
1518	* prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Add declaration
1519	for an empty Target (Check_Target): Never fail when an empty
1520	target is declared in the configuration project.
1521
15222014-02-19  Ed Schonberg  <schonberg@adacore.com>
1523
1524	* sem_prag.adb (Check_Arg_Is_Local_Name): Argument is local if
1525	the pragma comes fron a predicate aspect and the context is a
1526	record declaration within the scope that declares the type.
1527
15282014-02-19  Robert Dewar  <dewar@adacore.com>
1529
1530	* gnat_rm.texi: Minor clarifications.
1531	* expander.adb, sem_aggr.adb: Add comments.
1532
15332014-02-19  Ed Schonberg  <schonberg@adacore.com>
1534
1535	* sem_prag.adb (Check_Arg_Is_Local_Name): For an aspect that
1536	applies to a subprogram body, the name is the current scope,
1537	rather than being declared in the current scope.
1538	(Analyze_Pragma, case No_Return): Handle properly a No_Return
1539	aspect applied to a subprogram body.
1540
15412014-02-19  Ed Schonberg  <schonberg@adacore.com>
1542
1543	* sem_ch13.adb (Resolve_Iterable_Operation): Improve resolution
1544	of overloaded subprograms, and fix bug in handling of primitive
1545	operation Element.
1546
15472014-02-19  Pascal Obry  <obry@adacore.com>
1548
1549	* s-os_lib.adb: Minor reformatting.
1550
15512014-02-19  Yannick Moy  <moy@adacore.com>
1552
1553	* expander.adb (Expand): Do nothing inside generics.
1554	* sem_aggr.adb (Aggregate_Constraint_Checks): Do nothing inside
1555	generics.
1556
15572014-02-19  Yannick Moy  <moy@adacore.com>
1558
1559	* exp_ch2.adb: Remove useless 'with' of unit Uintp.
1560
15612014-02-19  Robert Dewar  <dewar@adacore.com>
1562
1563	* sem_ch3.adb, style.adb, sem_prag.adb, sem_ch13.adb: Minor reformatting
1564	* a-sequio.adb: Remove useless pragma Extensions_Allowed (no
1565	longer needed).
1566
15672014-02-19  Claire Dross  <dross@adacore.com>
1568
1569	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
1570	a-cforse.ads, a-cofove.ads: Add Iterable aspect to formal containers.
1571
15722014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1573
1574	* sem_ch3.adb (Analyze_Declarations): Analyze
1575	a package contract at the end of the private declarations (if
1576	applicable), otherwise analyze it and the end of the visible
1577	declarations.
1578
15792014-02-19  Ed Schonberg  <schonberg@adacore.com>
1580
1581	* style.adb (Missing_Overriding): If subprogram is an
1582	instantiation, place warning on the instance node itself,
1583	without mention of the original generic. Do not emit message
1584	if explicit Ada version is older than the introduction of the
1585	overriding indicator.
1586
15872014-02-19  Yannick Moy  <moy@adacore.com>
1588
1589	* gnat_rm.texi: Doc clarifications.
1590
15912014-02-19  Yannick Moy  <moy@adacore.com>
1592
1593	* exp_util.adb (Remove_Side_Effects): Do not remove side-effects
1594	inside a generic.
1595
15962014-02-19  Ed Schonberg  <schonberg@adacore.com>
1597
1598	* sem_ch13.adb (Get_Cursor_Type): Obtain cursor type from
1599	specified First primitive, rather than by name.
1600	(Validate_Iterable_Aspect, Resolve_Iterable_Operation): Use it,
1601	and extend error checking for missing primitives and incorrect
1602	signatures.
1603
16042014-02-19  Ed Schonberg  <schonberg@adacore.com>
1605
1606	* sem_ch3.adb (Check_Pragma_Implemented): Detect additional
1607	errors when a Synchronization aspect on an overriding protected
1608	operation does not match the given aspect on the overridden
1609	operation of an ancestor interface.
1610
16112014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1612
1613	* sem_prag.adb (Check_Loop_Pragma_Grouping): New routine.
1614	(Check_Loop_Pragma_Placement): Update
1615	comment on usage. Remove local variables Orig_Stmt and
1616	Within_Same_Sequence. Check that the current Loop_Invariant or
1617	Loop_Variant pragma is grouped together with other such pragmas.
1618	(Is_Loop_Pragma): New routine.
1619	(Prev_In_Loop): Removed.
1620
16212014-02-19  Robert Dewar  <dewar@adacore.com>
1622
1623	* par-ch6.adb (P_Return): For extended return, end column lines
1624	up with RETURN.
1625	* par.adb: Minor documentation clarification.
1626
16272014-02-19  Yannick Moy  <moy@adacore.com>
1628
1629	* sem_prag.adb (Check_Loop_Pragma_Placement): Add check
1630	that Loop_Invariant and Loop_Variant appear consecutively.
1631	* gnat_rm.texi Update documentation of Loop_Invariant and
1632	Loop_Variant pragmas.
1633
16342014-02-19  Robert Dewar  <dewar@adacore.com>
1635
1636	* debug.adb: Document -gnatd.X.
1637	* par-ch5.adb (P_If_Statement): Always check THEN, even if not
1638	first token
1639	(Check_Then_Column): Ditto.
1640	* styleg.adb (Check_Then): Allow THEN on line after IF.
1641	(Check_Then): Check THEN placement under control of -gnatd.X
1642	* styleg.ads (Check_Then): Now called even if THEN is not first
1643	token on line.
1644	* stylesw.ads (Style_Check_If_Then_Layout): Document new
1645	relaxed rules.
1646	* gnat_ugn.texi: For -gnatyi, THEN can now be on line after IF.
1647
16482014-02-19  Robert Dewar  <dewar@adacore.com>
1649
1650	* a-cfhama.adb, a-cfhase.adb, a-cforse.adb, a-cofove.adb, a-ngcefu.adb,
1651	a-teioed.adb, a-wtedit.adb, a-ztedit.adb, exp_ch5.adb, inline.adb,
1652	prj-pp.adb, prj-tree.adb, sem_ch12.adb, sem_ch8.adb,
1653	vms_conv.adb: Fix bad layout of IF statements
1654
16552014-02-19  Robert Dewar  <dewar@adacore.com>
1656
1657	* exp_util.adb (Side_Effect_Free): Scalar if expressions can be SEF.
1658
16592014-02-19  Robert Dewar  <dewar@adacore.com>
1660
1661	* exp_util.adb: Update comments.
1662
16632014-02-19  Doug Rupp  <rupp@adacore.com>
1664
1665	* bindgen.adb (Gen_Adainit) [VMS] New global Float_Format.
1666	* init.c (__gl_float_format): [VMS] New global.
1667	(__gnat_set_features): Call FP_CONTROL to set FPSR for the float
1668	representation in effect.
1669
16702014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1671
1672	* exp_ch6.adb Add with and use clause for Exp_Prag.
1673	(Expand_Contract_Cases): Relocated to Exp_Prag.
1674	* exp_ch6.ads (Expand_Contract_Cases): Relocated to Exp_Prag.
1675	* exp_prag.adb Add with and use clauses for Checks and Validsw.
1676	(Expand_Contract_Cases): Relocated from Exp_Ch6. Update the
1677	structure of the expanded code to showcase the evaluation of
1678	attribute 'Old prefixes. Add local variable Old_Evals. Expand
1679	any attribute 'Old references found within a consequence. Add
1680	circuitry to evaluate the prefixes of attribute 'Old that
1681	belong to a selected consequence.
1682	(Expand_Old_In_Consequence): New routine.
1683	* exp_prag.ads (Expand_Contract_Cases): Relocated from Exp_Ch6.
1684	* sem_attr.adb (Check_Use_In_Contract_Cases): Warn that a
1685	potentially unevaluated prefix is always evaluated.
1686
16872014-02-19  Robert Dewar  <dewar@adacore.com>
1688
1689	* exp_attr.adb (Expand_Min_Max_Attribute): Use Insert_Declaration
1690	(Expand_Min_Max_Attribute): Use Matching_Standard_Type.
1691	* exp_ch4.adb (Expand_N_Expression_With_Actions): Remove special
1692	handling for the case of Modify_Tree_For_C, this approach did
1693	not work.
1694	* exp_util.adb (Matching_Standard_Type): New function
1695	(Side_Effect_Free): New top level functions (from
1696	Remove_Side_Effects).
1697	* exp_util.ads (Side_Effect_Free): New top level functions
1698	(moved from body).
1699	* sinfo.ads: Minor comment updates.
1700
17012014-02-19  Ed Schonberg  <schonberg@adacore.com>
1702
1703	* exp_ch6.adb (Expand_Simple_Function_Return): If return
1704	type is unconstrained and uses the secondary stack, mark the
1705	enclosing function accordingly, to ensure that the value is not
1706	prematurely removed.
1707
17082014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1709
1710	* par.adb Alphabetize the routines in Par.Sync.
1711	(Resync_Past_Malformed_Aspect): New routine.
1712	* par-ch13.adb (Get_Aspect_Specifications): Alphabetize local
1713	variables. Code and comment reformatting. Detect missing
1714	parentheses on aspects [Refined_]Global and [Refined_]Depends
1715	with a non-null definition.
1716	* par-sync.adb: Alphabetize all routines in this separate unit.
1717	(Resync_Past_Malformed_Aspect): New routine.
1718
17192014-02-19  Robert Dewar  <dewar@adacore.com>
1720
1721	* sem_eval.ads, sem_eval.adb (Subtypes_Statically_Match): Return False
1722	if Esize values do not match.
1723
17242014-02-19  Yannick Moy  <moy@adacore.com>
1725
1726	* sinfo.ads: Minor comment update.
1727
17282014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1729
1730	* atree.ads: Minor reformatting (change Entity_Info to Einfo).
1731
17322014-02-19  Thomas Quinot  <quinot@adacore.com>
1733
1734	* exp_ch7.adb (Find_Node_To_Be_Wrapped): An assignment statement
1735	that has the No_Ctrl_Actions flag is a suitable node to be
1736	wrapped if the assigned expression has no finalization actions.
1737	* sem_eval.adb (Eval_Entity_Name): For a compile time known
1738	boolean value, mark the corresponding condition SCO as constant.
1739
17402014-02-19  Robert Dewar  <dewar@adacore.com>
1741
1742	* exp_util.adb: Minor reformatting.
1743	* exp_util.ads (Matching_Standard_Type): New function.
1744	* exp_ch7.adb: Minor reformatting.
1745
17462014-02-19  Ed Schonberg  <schonberg@adacore.com>
1747
1748	* sem_ch13.adb (Get_Cursor_Type): Use scope of iterable type
1749	to find declaration for Cursor, to handle properly the case of
1750	a discriminated iterable type.
1751
17522014-02-19  Vincent Celier  <celier@adacore.com>
1753
1754	* gnatcmd.adb (GNATCmd): Always replace the object dirs of
1755	imported library projects with the library ALI dirs, when setting
1756	the object paths.
1757	* prj-env.ads (Ada_Objects_Path): Correct comments about
1758	argument Including_Libraries.
1759
17602014-02-19  Gary Dismukes  <dismukes@adacore.com>
1761
1762	* gnat_rm.texi: Minor spelling fixes.
1763
17642014-02-19  Doug Rupp  <rupp@adacore.com>
1765
1766	* init.c: Remove unneeded code.
1767	* fe.h (Float_Format): New macro
1768	* gcc-interface/trans.c (gigi): On VMS, set vms_float_format.
1769
17702014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1771
1772	* sem_prag.adb (Check_Refined_Global_Item):
1773	A state or variable acts as a constituent only it is part of an
1774	encapsulating state and the state has visible refinement.
1775
17762014-02-19  Ed Schonberg  <schonberg@adacore.com>
1777
1778	* sem_ch6.adb (Analyze_Subprogram_Contract): Do not warn on a
1779	postcondition for a function when the expression does not mention
1780	'Result but the function has in-out parameters.
1781
17822014-02-19  Robert Dewar  <dewar@adacore.com>
1783
1784	* gnat_rm.texi: Add documentation on Value_Size forcing biased
1785	representation.
1786
17872014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1788
1789	* lib-xref.ads Remove the small table of letter and symbol usage as we
1790	already have one.
1791
17922014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1793
1794	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Emit specific error
1795	messages depending on the offending misplaced aspect specifications.
1796	(Diagnose_Misplaced_Aspect_Specifications): New routine.
1797
17982014-02-19  Ed Schonberg  <schonberg@adacore.com>
1799
1800	* sem_ch13.adb (Get_Cursor): Utility to retrieve cursor type
1801	for iterable aspect primitives.
1802	(Resolve_Iterable_Operation): Use expected signature of iterable
1803	aspect to resolve primitive when overloading is present.
1804	(Validate_Iterable_Aspect, Analyze_Aspects_At_Freeze_Point): use it.
1805	(Check_Signature): Removed.
1806
18072014-02-19  Yannick Moy  <moy@adacore.com>
1808
1809	* sem_ch10.adb (Analyze_Proper_Body): Issue error on missing
1810	subunit in GNATprove_Mode.
1811	* sinfo.ads (GNATprove_Mode): Document error issued in GNATprove_Mode.
1812
18132014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1814
1815	* lib-xref.ads Alphabetize the contents of table
1816	Xref_Entity_Letters. Add an entry in table Xref_Entity_Letters
1817	for E_Abstract_State. List all letters and symbols in use.
1818	* sem_prag.adb (Analyze_Abstract_State): Update all calls
1819	to Create_Abstract_State to reflect the new signature.
1820	(Create_Abstract_State): Change subprogram profile and update
1821	the comment on usage. Use the proper location of the state
1822	declaration when creating a new abstract state entity. Do not
1823	generate an external name, but simply reuse the name coming from
1824	the state declaration.
1825
18262014-02-19  Robert Dewar  <dewar@adacore.com>
1827
1828	* exp_ch4.adb (Expand_N_Expression_With_Actions): Make sure
1829	declarations get properly inserted in Modify_Tree_For_C mode.
1830	* sinfo.ads: Minor comment addition.
1831
18322014-02-19  Robert Dewar  <dewar@adacore.com>
1833
1834	* par-ch9.adb, exp_ch5.adb, sem_ch5.adb, exp_attr.adb, sem_util.adb,
1835	sem_util.ads, sem_ch13.adb, sem_ch13.ads: Minor reformatting.
1836
18372014-02-19  Ed Schonberg  <schonberg@adacore.com>
1838
1839	* style.adb (Missing_Overriding): Warning does not apply in
1840	language versions prior to Ada 2005.
1841	* snames.ads-tmpl: Add Name_Iterable and Attribute_Iterable.
1842	* sem_attr.adb: Add Attribute_Iterable where needed.
1843	* exp_attr.adb: ditto.
1844	* exp_ch5.adb (Expand_Formal_Container_Loop): New procedure to
1845	handle loops and quantified expressions over types that have an
1846	iterable aspect.  Called from Expand_Iterator_Loop.
1847	* sem_ch5.adb (Analyze_Iterator_Specification): Recognize types
1848	with Iterable aspect.
1849	* sem_ch13.adb (Validate_Iterable_Aspect): Verify that the
1850	subprograms specified in the Iterable aspect have the proper
1851	signature involving container and cursor.
1852	(Check_Aspect_At_Freeze_Point): Analyze value of iterable aspect.
1853	* sem_ch13.ads (Validate_Iterable_Aspect): New subprogram.
1854	* sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive):
1855	New procedure to retrieve one of the primitives First, Last,
1856	or Has_Element, from the value of the iterable aspect of a
1857	formal container.
1858	(Is_Container_Element): Predicate to recognize expressions
1859	that denote an element of one of the predefined containers,
1860	for possible optimization.  This subprogram is not currently
1861	used, pending ARG discussions on the legality of the proposed
1862	optimization. Worth preserving for eventual use.
1863	(Is_Iterator): Recognize formal container types.
1864	* aspects.ads, aspects.adb: Add Aspect_Iterable where needed.
1865
18662014-02-19  Robert Dewar  <dewar@adacore.com>
1867
1868	* exp_attr.adb (Expand_Min_Max_Attribute): New procedure
1869	(Expand_N_Attribute_Reference): Use this procedure for Min and Max.
1870	* exp_ch4.adb (Expand_N_Expression_With_Actions): Remove object
1871	declarations from list of actions.
1872	* output.ads, output.adb (Delete_Last_Char): New procedure.
1873	* sinfo.ads: Document handling of Mod and expression with actions
1874	in Modify_Tree_For_C mode.
1875
18762014-02-19  Ed Schonberg  <schonberg@adacore.com>
1877
1878	* par-ch9.adb (P_Task): Add a null statement to produce a
1879	well-formed task body when due to a previous syntax error the
1880	statement list is empty.
1881
18822014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
1883
1884	* sem_prag.adb (Check_Dependency_Clause): Account
1885	for the case where a state with a non-null refinement matches a
1886	null output list. Comment reformatting.
1887	(Inputs_Match): Copy a solitary input to avoid an assertion failure
1888	when trying to match the same input in multiple clauses.
1889
18902014-02-19  Gary Dismukes  <dismukes@adacore.com>
1891
1892	* sem_attr.adb: Minor typo fix.
1893
18942014-02-18  Robert Dewar  <dewar@adacore.com>
1895
1896	* cstand.adb (Build_Signed_Integer_Type): Minor change of formal
1897	from Int to Nat (Build_Unsigned_Integer_Type): New procedure
1898	(Create_Standard): Create new unsigned types.
1899	* exp_ch4.adb (Expand_N_Op_Mod): Expand mod in Modify_Tree_For_C
1900	mode (Expand_N_Reference): Removed, problematic and not needed
1901	for now.
1902	* exp_ch4.ads (Expand_N_Reference): Removed, problematic and
1903	not needed for now.
1904	* exp_util.ads, exp_util.adb (Power_Of_Two): New function.
1905	* expander.adb: Remove call to Expand_N_Reference (problematic,
1906	and not needed now).
1907	* sem_aux.ads, sem_aux.adb (Corresponding_Unsigned_Type): New function.
1908	* stand.adb: Read and write unsigned type entities.
1909	* stand.ads: Add new unsigned types.
1910
19112014-02-18  Hristian Kirtchev  <kirtchev@adacore.com>
1912
1913	* sem_ch4.adb (Analyze_Call): Do not mark a function call
1914	as being inside an assertion expression as the flag is now removed.
1915	(Check_Ghost_Subprogram_Call): Do not query the
1916	In_Assertion_Expression flag as it is now removed, instead use
1917	a predicate function.
1918	* sem_elab.adb (Check_Internal_Call_Continue): Do not query the
1919	In_Assertion_Expression flag as it is now removed, instead use
1920	a predicate function.
1921	* sem_prag.ads: Add new table Assertion_Expression_Pragma.
1922	* sem_util.adb Add with and use clause for Sem_Prag.
1923	(In_Assertion_Expression_Pragma): New routine.
1924	* sem_util.ads (In_Assertion_Expression_Pragma): New routine.
1925	* sinfo.adb (In_Assertion_Expression): Removed.
1926	(Set_In_Assertion_Expression): Removed.
1927	* sinfo.ads Remove flag In_Assertion_Expression along with its
1928	use in nodes.
1929	(In_Assertion_Expression): Removed along with
1930	pragma Inline.	(Set_In_Assertion_Expression): Removed along
1931	with pragma Inline.
1932
19332014-02-18  Sergey Rybin  <rybin@adacore.com frybin>
1934
1935	* gnat_ugn.texi: gnatpp section: add note that '-j' cannot be
1936	used together with '-r', '-rf' or '-rnb' options.
1937
19382014-02-18  Hristian Kirtchev  <kirtchev@adacore.com>
1939
1940	* sem_attr.adb (Analyze_Attribute): Comment
1941	and code reformatting. Use separate routines to check the
1942	legality of attribute 'Old in certain pragmas. Verify
1943	the use of 'Old, 'Result and locally declared entities
1944	within the prefix of 'Old.
1945	(Check_References_In_Prefix): New routine.
1946	(Check_Use_In_Contract_Cases): New routine.
1947	(Check_Use_In_Test_Case): New routine.
1948
19492014-02-18  Vincent Celier  <celier@adacore.com>
1950
1951	* sem_aux.adb (Is_By_Reference_Type): For each components of
1952	a record type, check also if the component is volatile as it
1953	may have an aspect that makes it volatile. If it is, then the
1954	record type is a by reference type.
1955
19562014-02-18  Robert Dewar  <dewar@adacore.com>
1957
1958	* exp_attr.adb: Minor reformatting.
1959	* exp_ch4.ads, exp_ch4.adb (Expand_N_Reference): New procedure.
1960	* exp_util.adb (Remove_Side_Effects): Add conditional expressions
1961	as another case where we don't generate N_Reference nodes for
1962	primitive types.
1963	* expander.adb (Expand): Add call to Expand_N_Reference.
1964
19652014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
1966
1967	* sem_prag.adb (Analyze_Refined_Pragma): Remove
1968	local variable Pack_Spec. Refinement pragmas may now apply to
1969	bodies of both visible and private subprograms.
1970
19712014-02-06  Robert Dewar  <dewar@adacore.com>
1972
1973	* exp_attr.adb (Expand_Loop_Entry_Attribute):
1974	Minor change (Attr => N) (Expand_Pred_Succ): New name
1975	Expand_Pred_Succ_Attribute (Expand_N_Attribute_Reference, case
1976	Max): Expand into if expression if Modify_Tree_For_C mode.
1977	(Expand_N_Attribute_Reference, case Min): ditto
1978	* sinfo.ads: Modify_Tree_For_C takes care of expanding Min and
1979	Max attributes.
1980
19812014-02-06  Ed Schonberg  <schonberg@adacore.com>
1982
1983	* sem_ch3.adb (Analyze_Object_Declaration): Do not generate
1984	predicate check if this is an internal declaration with
1985	No_Initialization set, as for an expanded aggregate component.
1986
19872014-02-06  Doug Rupp  <rupp@adacore.com>
1988
1989	* init.c (__gnat_default_resignal_p) [VMS]: Test for and resignal
1990	conditions with severity of "SUCCESS" or "INFORMATIONAL".
1991
19922014-02-06  Yannick Moy  <moy@adacore.com>
1993
1994	* sem_prag.adb (Analyze_Pragma): Analyze pragma
1995	Debug rewritten node before rewriting it as a null statement in
1996	GNATprove mode.
1997
19982014-02-06  Robert Dewar  <dewar@adacore.com>
1999
2000	* sem_attr.adb (Min_Max): New procedure.
2001	(Max_Alignment_For_Allocation_Max_Size_In_Storage_Elements): New
2002	procedure.
2003
20042014-02-06  Sergey Rybin  <rybin@adacore.com frybin>
2005
2006	* gnat_ugn.texi, vms_data.ads: Add documentation of '-t' option for
2007	gnatmetric/gnatpp.
2008
20092014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2010
2011	* sem_prag.adb (Analyze_Abstract_State): Update
2012	all calls to Create_Abstract_State to pass the proper state
2013	"declaration".
2014	(Create_Abstract_State): Add new formal parameter
2015	State_Decl along with comment on usage. Establish a link between
2016	the abstract state entity and the state declaration.
2017
20182014-02-06  Robert Dewar  <dewar@adacore.com>
2019
2020	* sem_attr.adb (Analyze_Attribute, case Max): Check for improper
2021	comparison of unordered enumeration type.
2022	(Analyze_Attribute, case Max): Check for improper comparison of
2023	unordered enumeration type.
2024	* sem_res.adb (Bad_Unordered_Enumeration_Reference): Moved to
2025	sem_util.adb.
2026	* sem_util.ads, sem_util.adb (Bad_Unordered_Enumeration_Reference):
2027	Moved here from Sem_Res.
2028
20292014-02-06  Robert Dewar  <dewar@adacore.com>
2030
2031	* sem_ch3.adb, sem_prag.adb, sem_res.adb, lib-xref.adb: Minor
2032	reformatting.
2033
20342014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2035
2036	* sem_ch6.adb (Process_Formals): Error message reformatting.
2037
20382014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2039
2040	* sem_ch3.adb (Handle_Late_Controlled_Primitive): Add local
2041	variable Spec. Do not inherit the null indicator from the
2042	subprogram body when generating the spec.
2043
20442014-02-06  Robert Dewar  <dewar@adacore.com>
2045
2046	* casing.adb (Determine_Casing): Consider SPARK_Mode to be
2047	mixed case.
2048
20492014-02-06  Ed Schonberg  <schonberg@adacore.com>
2050
2051	* exp_ch6.adb (Is_Build_In_Place_Function): Predicate is false
2052	when the function has a foreign convention, but not if only the
2053	limited return type has such a convention.
2054
20552014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2056
2057	* sem_ch3.adb (Handle_Late_Controlled_Primitive): Remove local
2058	variable Spec. Comment reformatting. Use Copy_Separate_Tree
2059	rather than New_Copy_Tree when building the corresponding
2060	subprogram declaration.
2061
20622014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2063
2064	* sem_prag.adb (Analyze_Global_Item): Remove
2065	the mode-related checks on abstract states with enabled external
2066	properties.
2067	(Property_Error): Removed.
2068
20692014-02-06  Javier Miranda  <miranda@adacore.com>
2070
2071	* lib-xref.adb (Generate_Reference): When
2072	generating the reference to the first private entity take care
2073	of handling swapped entities.
2074
20752014-02-06  Sergey Rybin  <rybin@adacore.com frybin>
2076
2077	* gnat_ugn.texi, vms_data.ads: Add documentation of -j option for
2078	gnatmetric.
2079
20802014-02-06  Robert Dewar  <dewar@adacore.com>
2081
2082	* exp_ch4.adb (Expand_N_Shift_Left): Handle shift counts greater
2083	than the word size when operating in Modify_Tree_For_C mode.
2084	* sinfo.ads: Add documentation section on Modify_Tree_For_C mode.
2085
20862014-02-06  Robert Dewar  <dewar@adacore.com>
2087
2088	* erroutc.adb (Warning_Specifically_Suppressed.Matches):
2089	compare is case insensitive.
2090	* gnat_rm.texi: Document that string compare for Warnings Off
2091	is now case insensitive.
2092
20932014-02-06  Eric Botcazou  <ebotcazou@adacore.com>
2094
2095	* gnat_rm.texi: Small wording tweak.
2096
20972014-02-06  Pascal Obry  <obry@adacore.com>
2098
2099	* prj-attr.adb, projects.texi, snames.ads-tmpl: Add Included_Patterns
2100	and Included_Artifact_Patterns attribute definitions.
2101
21022014-02-06  Yannick Moy  <moy@adacore.com>
2103
2104	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set
2105	SPARK_Mode pragma component for all subprograms, including stubs.
2106
21072014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2108
2109	* sem_ch10.adb (Analyze_Package_Body_Stub): Maintain
2110	the configuration options of the enclosing context in a
2111	stack-like fasion.
2112	(Analyze_Subprogram_Body_Stub): Maintain the
2113	configuration options of the enclosing context in a stack-like
2114	fashion.
2115
21162014-02-06  Robert Dewar  <dewar@adacore.com>
2117
2118	* debug.adb: -gnatd.u sets Modify_Tree_For C
2119	* exp_ch4.adb (Expand_N_Op_Rotate_Left): Expand out
2120	if Modify_Tree_For_C (Expand_N_Op_Rotate_Right): ditto.
2121	(Expand_N_Op_Arithmetic_Right_Shift): ditto.
2122	* exp_intr.adb (Expand_Shift): Call expander so we do
2123	Modify_Tree_For_C expansions.
2124	* gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C
2125	if -gnatd.u set.
2126
21272014-02-06  Fedor Rybin  <frybin@adacore.com>
2128
2129	* prj-proc.ads (Tree_Loaded_Callback): new type Callback used
2130	after the phase 1 of the processing of each aggregated project
2131	to get access to project trees of aggregated projects.
2132	(Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded
2133	If specified, On_New_Tree_Loaded is called after each aggregated
2134	project has been processed succesfully.
2135	(Process): new parameter On_New_Tree_Loaded.
2136	* prj-proc.adb (Process_Aggregated_Projects): On_New_Tree_Loaded
2137	callback added after processing of each aggregated project.
2138	(Recursive_Process): new parameter On_New_Tree_Loaded.
2139	(Process): new parameter On_New_Tree_Loaded.
2140	(Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded.
2141	* prj-conf.ads (Parse_Project_And_Apply_Config): new parameter
2142	On_New_Tree_Loaded.
2143	* prj-conf.adb (Parse_Project_And_Apply_Config): new parameter
2144	On_New_Tree_Loaded.
2145
21462014-02-06  Bob Duff  <duff@adacore.com>
2147
2148	* gnat_ugn.texi: Implement --insert-blank-lines and
2149	--preserve-blank-lines switches.
2150
21512014-02-06  Sergey Rybin  <rybin@adacore.com frybin>
2152
2153	* gnat_ugn.texi, vms_data.ads: Add documentation of -j option for
2154	gnatelim.
2155
21562014-02-06  Eric Botcazou  <ebotcazou@adacore.com>
2157
2158	* gnat_rm.texi (Pragma Optimize_Alignment): Document the effect
2159	of the pragma on individual objects.
2160
21612014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2162
2163	* einfo.adb Node29 is now used as BIP_Initialization_Call.
2164	(BIP_Initialization_Call): New routine.
2165	(Set_BIP_Initialization_Call): New routine.
2166	(Write_Field29_Name): Add an entry for constants and variables.
2167	* einfo.ads Add new attribute BIP_Initialization_Call and update
2168	its usage in nodes.
2169	(BIP_Initialization_Call): New routine along with pragma Inline.
2170	(Set_BIP_Initialization_Call): New routine along with pragma Inline.
2171	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
2172	Add local declaration Res_Decl. Capture the build-in-place
2173	initialization call when the related object declaration has
2174	created a transient block.
2175	* exp_ch7.adb (Process_Transient_Objects): Add local variable
2176	Fin_Insrt. Recognize a scenario where an object declaration acts
2177	as a transient context and is initialized by a build-in-place
2178	function call.
2179
21802014-02-06  Pascal Obry  <obry@adacore.com>
2181
2182	* prj-util.adb (For_Interface_Sources): Fix handling of required
2183	bodies for aggregate libs.
2184
21852014-02-06  Robert Dewar  <dewar@adacore.com>
2186
2187	* nlists.ads: Minor comment clarifications.
2188
21892014-02-06  Robert Dewar  <dewar@adacore.com>
2190
2191	* gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C
2192	if gnatd.V set.
2193	* opt.ads (Modify_Tree_For_C): New flag.
2194	* output.ads, output.adb (Last_Char): New function.
2195
21962014-02-06  Pascal Obry  <obry@adacore.com>
2197
2198	* projects.texi, prj-env.adb (Initialize_Default_Project_Path): Add
2199	share/gpr for cross-builds.
2200
22012014-02-06  Robert Dewar  <dewar@adacore.com>
2202
2203	* exp_util.ads, checks.adb, sem_prag.adb, prj-util.adb, sem_ch13.adb:
2204	Minor reformatting and code clean ups.
2205
22062014-02-06  Pascal Obry  <obry@adacore.com>
2207
2208	* prj-util.adb (For_Interface_Sources): Skip non compilable languages.
2209	* prj.ads: Minor typo fix in comment.
2210
22112014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2212
2213	* sem_prag.adb (Analyze_Depends_In_Decl_Part): Add
2214	local variable Expr. Flag clauses with extra parenthesis as this
2215	is not allowed by the syntax of the pragma. Code reformatting.
2216
22172014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2218
2219	* exp_attr.adb (Expand_N_Attribute_Reference): Alphabetize
2220	variables. Rename variabme Tnn to Temp. Do not create a temporary
2221	if assertions are disabled. Find enclosing routine _Postconditions
2222	and insert the temporary that captures the value of the prefix
2223	before the routine.
2224	* exp_ch6.adb (Build_Postconditions_Procedure):
2225	Insert the generated _Postconditions routine
2226	before the first source declaration of the related
2227	subprogram.
2228	(Insert_After_Last_Declaration): Removed.
2229	(Insert_Before_First_Source_Declaration): New routine.
2230
22312014-02-06  Ed Schonberg  <schonberg@adacore.com>
2232
2233	* exp_util.adb, exp_util.ads (Within_Internal_Subprogram):
2234	Utility to determine whether current expansion is for the body
2235	of a predefined primitive operation.
2236	(Make_Predicate_Check): Use Within_Internal_Subpgram
2237	* checks.adb (Apply_Predicate_Check): Use
2238	Within_Internal_Subprogram
2239	* sem_ch13.adb (Freeze_Entity_Checks): Ditto.
2240
22412014-02-06  Pascal Obry  <obry@adacore.com>
2242
2243	* prj.ads, prj-util.adb: Minor reformatting.
2244
22452014-02-06  Ed Schonberg  <schonberg@adacore.com>
2246
2247	* exp_ch6.adb (Expand_Subprogram_Contract, Append_Enabled_Item):
2248	Take into account the Split_PPC flag to ensure that conjuncts
2249	in a composite postcondition aspect are tested in source order.
2250
22512014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2252
2253	* sem_ch6.adb (Analyze_Generic_Subprogram_Body): Flag illegal
2254	use of SPARK_Mode.
2255	* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Flag
2256	illegal use of SPARK_Mode.
2257	(Instantiate_Subprogram_Body): Flag illegal use of SPARK_Mode.
2258	* sem_prag.adb (Analyze_Pragma): Code reformatting.
2259	* sem_util.adb Add with and use clause for Aspects.
2260	(Check_SPARK_Mode_In_Generic): New routine.
2261	* sem_util.ads (Check_SPARK_Mode_In_Generic): New routine.
2262
22632014-02-06  Thomas Quinot  <quinot@adacore.com>
2264
2265	* a-calend.adb (Formatting_Operations.Split): Ensure that
2266	Time_Error is raised for invalid time values.
2267
22682014-02-06  Arnaud Charlet  <charlet@adacore.com>
2269
2270	* sem_prag.adb (Analyze_Pragma): Rewrite as a null statement
2271	in GNATprove_Mode.
2272
22732014-02-06  Robert Dewar  <dewar@adacore.com>
2274
2275	* einfo.ads, einfo.adb (Is_Discriminant_Check_Function): New flag.
2276	* exp_ch3.adb (Build_Dcheck_Function): Set
2277	Is_Discriminant_Check_Function.
2278
22792014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2280
2281	* exp_ch7.adb (Is_Subprogram_Call): Inspect
2282	the original tree in certain cases where a construct has been
2283	factored out and replaced by a reference to a temporary.
2284
22852014-02-06  Ed Schonberg  <schonberg@adacore.com>
2286
2287	* sem_ch3.adb (Process_Full_View): Fix typo in the order of
2288	parameters when propagating predicate function to full view.
2289	(Find_Type_Of_Object): Freeze base type of object type to catch
2290	premature use of discriminated private type without a full view.
2291
22922014-02-06  Robert Dewar  <dewar@adacore.com>
2293
2294	* sprint.adb: Minor reformatting.
2295
22962014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2297
2298	* exp_ch4.adb (Process_Transient_Object): Add local variable
2299	Temp_Ins. When the transient object is initialized by an
2300	aggregate, the hook must capture the object after the last
2301	component assignment takes place.
2302	* exp_ch7.adb (Detect_Subprogram_Call): Expose the subprogram to
2303	routine Is_Subprogram_Call.
2304	(Is_Subprogram_Call): Inspect an
2305	aggregate that has been heavily expanded for subprogram calls.
2306	(Process_Transient_Objects): Add local variables Expr, Ptr_Id
2307	and Temp_Ins.  Remove the nested declare block and adjust the
2308	indentation. When the transient object is initialized by an
2309	aggregate, the hook must capture the object after the last
2310	component assignment takes place.
2311
23122014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2313
2314	* sem_prag.adb (Analyze_Global_Item): Detect illegal uses of
2315	external states with enabled properties that do not match the
2316	global mode.
2317	(Property_Error): New routine.
2318	* sem_res.adb (Property_Error): New routine.
2319	(Resolve_Actuals): Detect illegal uses of external variables with
2320	enabled properties in procedure calls that do not match the mode of
2321	the corresponding formal parameter.
2322
23232014-02-06  Hristian Kirtchev  <kirtchev@adacore.com>
2324
2325	* sem_util.adb (Has_Enabled_Property): Rename
2326	formal parameter Prop_Nam to Property. Update the comment on usage
2327	and all occurrences in the body. Add local variable Prop_Nam. When
2328	inspecting a property with an expression, the property name
2329	appears as the first choice of the component association.
2330
23312014-02-04  Robert Dewar  <dewar@adacore.com>
2332
2333	* exp_ch5.adb, einfo.ads, freeze.adb, sem_ch8.adb: Minor reformatting.
2334
23352014-02-04  Gary Dismukes  <dismukes@adacore.com>
2336
2337	* sem_aggr.adb: Change "runtime" to "run time" in warning message,
2338	for consistency with other messages.
2339
23402014-02-04  Ed Schonberg  <schonberg@adacore.com>
2341
2342	* exp_ch5.adb  (Expand_Iterator_Loop):  For a container element
2343	iterator, indicate that the element is a constant if the container
2344	type does not have a variable indexing aspect.
2345	* sem_ch8.adb (Analyze_Object_Renaming): If the entity is already
2346	marked as constant, do not reset its Ekind, to ensure that
2347	container elements in an element loop are not modified if the
2348	container (e.g. a hashed set) only has a constant indexing aspect.
2349
23502014-02-04  Arnaud Charlet  <charlet@adacore.com>
2351
2352	* g-souinf.ads: Subprograms in this unit are actually not pure.
2353	* freeze.adb (Freeze_Subprogram): Do not reset Is_Pure for Intrinsics.
2354	* einfo.ads (Is_Pure): Update doc to match implementation.
2355
23562014-02-04  Gary Dismukes  <dismukes@adacore.com>
2357
2358	* exp_ch13.adb: Minor spelling fix.
2359
23602014-02-04  Robert Dewar  <dewar@adacore.com>
2361
2362	* opt.ads: Minor comment update.
2363
23642014-02-04  Robert Dewar  <dewar@adacore.com>
2365
2366	* exp_ch4.adb (Expand_N_Expression_With_Actions): Use Rewrite
2367	instead of Replace.
2368
23692014-02-04  Ed Schonberg  <schonberg@adacore.com>
2370
2371	* sem_aggr.adb (Resolve_Array_Aggregate): Suppress warnings
2372	on null expressions if component type is non-null, when the
2373	corresponding association covers an empty range of index values.
2374
23752014-02-04  Robert Dewar  <dewar@adacore.com>
2376
2377	* sinfo.ads: Further comments on N_Expression_With_Actions node.
2378
23792014-02-04  Hristian Kirtchev  <kirtchev@adacore.com>
2380
2381	* sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global
2382	variables Out_Items and Ref_Global. Remove local constant
2383	Body_Id along with dummy variables D1, D2, D3, D4, D5, D6, D7
2384	and D8. Remove the useless collection of global items as this
2385	was a leftover from an earlier version of the routine. Move
2386	several routines out to avoid deep nesting and indentation.
2387	(Inputs_Match): Add formal parameter Dep_Clause. Rename formal
2388	parameter Do_Checks to Post_Errors. Update the comment on usage.
2389	(Is_Matching_Input): Renamed to Input_Match. Add formal parameters
2390	Ref_Inputs and Do_Checks. Rename formal parameter Do_Checks
2391	to Post_Errors. Update the comment on usage. Account for the
2392	case where a self referential state may have a null input_list.
2393	(Is_Self_Referential): New routine.
2394
23952014-02-04  Ed Schonberg  <schonberg@adacore.com>
2396
2397	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the
2398	entity renames an expression, as in the case of an object of
2399	an unconstrained type initialized by a function call, defer the
2400	rewriting of the expression to the expander.
2401	* exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
2402	'Alignment): If the entity renames an expression, introduce
2403	temporary to capture value, and rewrite original declaration to
2404	use temporary.
2405
24062014-02-04  Gary Dismukes  <dismukes@adacore.com>
2407
2408	* g-comlin.adb: Minor typo fix.
2409
24102014-02-04  Ed Schonberg  <schonberg@adacore.com>
2411
2412	* freeze.adb (Freeze_All): Types derived from a formal
2413	access_to_classwide type do not have a finalization master.
2414
24152014-02-04  Robert Dewar  <dewar@adacore.com>
2416
2417	* sprint.adb: Minor reformatting.
2418
24192014-02-04  Robert Dewar  <dewar@adacore.com>
2420
2421	* exp_ch4.adb (Expand_N_Expression_With_Actions): Eliminate
2422	cases where Actions is a null list.
2423	* sinfo.ads (N_Expression_With_Actions): Actions can be
2424	temporarily empty during semantic analysis, but must be non-empty
2425	in the final expanded tree.
2426
24272014-01-31  Robert Dewar  <dewar@adacore.com>
2428
2429	* exp_ch9.adb: Minor reformatting.
2430
24312014-01-31  Emmanuel Briot  <briot@adacore.com>
2432
2433	* g-comlin.adb (Set_Command_Line): Take the switches
2434	configuration from the Command_Line_Config.
2435
24362014-01-31  Hristian Kirtchev  <kirtchev@adacore.com>
2437
2438	* sem_prag.adb (Analyze_Refinement_Clause): Guard against a malformed
2439	refinement clause.
2440
24412014-01-31  Vincent Celier  <celier@adacore.com>
2442
2443	* projects.texi: Add more documentation about others used as an
2444	index in indexed attributes.
2445
24462014-01-31  Robert Dewar  <dewar@adacore.com>
2447
2448	* gnat_ugn.texi: Minor update.
2449	* gnat_rm.texi: Add example to Restriction_Warnings documentation.
2450	* exp_util.adb: Minor reformatting.
2451
24522014-01-31  Ed Schonberg  <schonberg@adacore.com>
2453
2454	* exp_ch9.adb (Expand_Entry_Barrier): Warn if the barrier
2455	depends on data that is not private to the protected object,
2456	and potentially modifiable in unsynchronized fashion.
2457
24582014-01-31  Yannick Moy  <moy@adacore.com>
2459
2460	* erroutc.adb (Validate_Specific_Warnings): Remove special case for
2461	GNATprove_Mode.
2462
24632014-01-31  Robert Dewar  <dewar@adacore.com>
2464
2465	* prj-attr.ads (First_Attribute_Of): Returns Empty_Attribute
2466	for Unknown_Package.
2467	* sem_ch6.adb, sem_attr.adb: Minor comment addition.
2468
24692014-01-31  Hristian Kirtchev  <kirtchev@adacore.com>
2470
2471	* exp_util.adb (Build_Allocate_Deallocate_Proc): Rewrite
2472	the logic that generates a runtime check to determine the
2473	controlled status of the object about to be allocated or
2474	deallocated. Class-wide types now always use a runtime check
2475	even if they appear as generic actuals.
2476	(Find_Object): Detect
2477	a special case that involves interface class-wide types because
2478	the object appears as a complex expression.
2479
24802014-01-31  Ed Schonberg  <schonberg@adacore.com>
2481
2482	* sem_ch6.adb (Process_Formals): In Ada2012 mode, place
2483	subprogram with an incomplete untagged formals on the list of
2484	private dependents, to verify that the type is properly completed
2485	in the private part.
2486	* sem_attr.adb: Code clean up.
2487
24882014-01-31  Robert Dewar  <dewar@adacore.com>
2489
2490	* exp_ch6.adb: Minor reformatting.
2491
24922014-01-31  Vincent Celier  <celier@adacore.com>
2493
2494	* prj-attr.adb (First_Attribute_Of): Return Unknown_Attribute
2495	when Pkg is unknown.
2496
24972014-01-31  Hristian Kirtchev  <kirtchev@adacore.com>
2498
2499	* sem_res.adb (Resolve_Entity_Name): Comment
2500	reformatting. Allow volatile objects in various generated checks.
2501
25022014-01-31  Ed Schonberg  <schonberg@adacore.com>
2503
2504	* sem_attr.adb (Analyze_Attribute, case 'Update): For a record
2505	component association, set the etype of the identifier, for
2506	SPARK use.
2507
25082014-01-31  Ed Schonberg  <schonberg@adacore.com>
2509
2510	* exp_ch6.adb (Has_Visibility_Of_Subprogram): If type is not
2511	declared in a package, not checks can apply to the subprogram.
2512
25132014-01-31  Robert Dewar  <dewar@adacore.com>
2514
2515	* erroutc.adb (Validate_Specific_Warnings): Warnings are
2516	controlled -gnatw.W.
2517	* gnat_ugn.texi: Document new warnings controlled by -gnatw.w.
2518	* opt.ads (Warn_On_Warnings_Off): Now controls more cases.
2519
25202014-01-31  Arnaud Charlet  <charlet@adacore.com>
2521
2522	* exp_disp.adb: Update comments.
2523
25242014-01-31  Yannick Moy  <moy@adacore.com>
2525
2526	* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration,
2527	Save_Global_References): Guard access to expression in aspect.
2528
25292014-01-31  Yannick Moy  <moy@adacore.com>
2530
2531	* sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode):
2532	Issue an error when the pragma is applied to a generic unit,
2533	a generic declaration, or inside a generic.
2534
25352014-01-31  Yannick Moy  <moy@adacore.com>
2536
2537	* sem_ch8.adb (Analyze_Subprogram_Renaming): Set SPARK_Mode on renaming
2538	entity.
2539
25402014-01-31  Robert Dewar  <dewar@adacore.com>
2541
2542	* exp_ch9.adb, s-tassta.adb, s-tposen.adb, s-tposen.ads: Minor
2543	reformatting.
2544
25452014-01-31  Tristan Gingold  <gingold@adacore.com>
2546
2547	* exp_disp.adb: Add a historic note.
2548
25492014-01-31  Robert Dewar  <dewar@adacore.com>
2550
2551	* sem_warn.adb (Warn_On_Useless_Assignments): Add call to
2552	Process_Deferred_References.
2553
25542014-01-31  Yannick Moy  <moy@adacore.com>
2555
2556	* erroutc.adb (Validate_Specific_Warnings): Do not issue a message for
2557	ineffective pragma Warnings(Off) in GNATprove_Mode.
2558
25592014-01-31  Bob Duff  <duff@adacore.com>
2560
2561	* s-taskin.ads: Minor comment fix.
2562	* s-tassta.adb (Abort_Dependents): Don't abort all dependents;
2563	just direct dependents. If this is actually an abort, each task
2564	will take care of aborting its dependents, so all dependents will
2565	get aborted, as before. However, when this is called the second
2566	time from Vulnerable_Complete_Master "for convenience" (i.e. to
2567	kill off tasks waiting at terminate alternatives), aborting
2568	indirect dependents is wrong, because it causes some unrelated
2569	tasks to get aborted.
2570
25712014-01-31  Robert Dewar  <dewar@adacore.com>
2572
2573	* sem_ch4.adb: Minor reformatting.
2574
25752014-01-31  Robert Dewar  <dewar@adacore.com>
2576
2577	* exp_ch2.adb: New calling sequence for Is_LHS.
2578	* frontend.adb: Add call to Process_Deferred_References.
2579	* lib-xref.ads, lib-xref.adb (Process_Deferred_References): New.
2580	(Deferred_References): New table.
2581	* sem_ch8.adb (Find_Direct_Name): Make deferred reference table
2582	entries.
2583	(Find_Expanded_Name): Ditto.
2584	* sem_res.adb: New calling sequence for Is_LHS.
2585	* sem_util.ads, sem_util.adb (Is_LHS): New calling sequence.
2586	* sem_warn.adb: Call Process_Deferred_References before issuing
2587	warnings.
2588
25892014-01-31  Tristan Gingold  <gingold@adacore.com>
2590
2591	* exp_util.adb (Corresponding_Runtime_Package): Restrict the
2592	use of System_Tasking_Protected_Objects_Single_Entry.
2593	* exp_ch9.adb (Build_Simple_Entry_Call): Remove Mode parameter
2594	of Protected_Single_Entry_Call.
2595	(Expand_N_Timed_Entry_Call): Remove single_entry case.
2596	* exp_disp.adb (Make_Disp_Asynchronous_Select_Body): Remove
2597	single_entry case.
2598	(Make_Disp_Timed_Select_Body): Likewise.
2599	* rtsfind.ads (RE_Timed_Protected_Single_Entry_Call): Remove.
2600	* s-tposen.adb (Send_Program_Error, PO_Do_Or_Queue): Remove
2601	Self_Id parameter.
2602	(Wakeup_Entry_Caller): Remove Self_ID and New_State parameters.
2603	(Wait_For_Completion_With_Timeout): Remove.
2604	(Protected_Single_Entry_Call): Remove Mode parameter
2605	(always Simple_Call).
2606	(Service_Entry): Remove Self_Id constant (not used anymore).
2607	(Timed_Protected_Single_Entry_Call): Remove.
2608	* s-tposen.ads (Timed_Protected_Single_Entry_Call): Remove.
2609	(Protected_Single_Entry_Call): Remove Mode parameter.
2610
26112014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>
2612
2613	* einfo.adb (Get_Pragma): Handle the retrieval of pragma Refined_Post.
2614	* einfo.ads (Get_Pragma): Update the comment on special pragmas
2615	handled by this routine.
2616	* sem_prag.adb (Analyze_Pragma): Add a legal pragma Refined_Post
2617	to the contract of the related subprogram body.
2618	* sem_util.adb (Add_Contract_Item): Handle the insertion of
2619	pragma Refined_Post into the contract of a subprogram body.
2620	* sinfo.ads Update the documentation of node N_Contract.
2621	* sem_res.adb (Resolve_Entity_Name): Add a guard
2622	to detect abstract states and variables only when checking the
2623	SPARK 2014 rules concerning volatile object placement.
2624
26252014-01-29  Ed Schonberg  <schonberg@adacore.com>
2626
2627	* sem_ch4.adb (Find_Equality_Types, Try_One_Interp): within an instance,
2628	null is compatible with any access type.
2629
26302014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>
2631
2632	* sem_util.adb (Find_Placement_In_State_Space): Assume that the default
2633	placement is not in a package.
2634
26352014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>
2636
2637	* sem_util.adb (Has_Enabled_Property): Compare the character field of
2638	the sole property.
2639
26402014-01-29  Robert Dewar  <dewar@adacore.com>
2641
2642	* sem_intr.adb, a-ztexio.ads, sinfo.ads, sem_res.adb, gnatlink.adb,
2643	vms_conv.adb, a-except.ads, a-except-2005.ads, a-teioed.adb,
2644	sem_warn.ads, treepr.ads, erroutc.ads, a-excach.adb: Minor reformatting.
2645
26462014-01-29  Robert Dewar  <dewar@adacore.com>
2647
2648	* sem_util.ads, sem_util.adb (In_Pragma_Expression): New function.
2649	* sem_warn.adb (Check_References): Suppress warnings if inside
2650	Initial_Condition pragma.
2651
26522014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>
2653
2654	* sem_prag.adb (Check_Missing_Part_Of): List all values of
2655	State_Space_Kind for readability reasons. Do not emit an error on
2656	a private item when the enclosing package lacks aspect/pragma
2657	Abstract_State. Do not emit an error on a private package
2658	instantiation when the corresponding generic template lacks
2659	visible state.
2660	(Has_Visible_State): New routine.
2661	* sem_util.adb (Find_Placement_In_State_Space): The visible
2662	declarations of any kind of child units in general act as proper
2663	placement location.
2664
26652014-01-29  Robert Dewar  <dewar@adacore.com>
2666
2667	* a-except-2005.adb, a-except.adb, a-excpol-abort.adb, a-exstat.adb,
2668	ali.adb, a-numaux.ads, a-numaux-darwin.ads, a-numaux-libc-x86.ads,
2669	a-numaux-vms.ads, a-numaux-vxworks.ads, a-numaux-x86.ads, aspects.ads,
2670	a-taside.adb, a-teioed.adb, a-textio.adb, a-textio.ads, atree.adb,
2671	atree.ads, a-witeio.adb, a-witeio.ads, a-wtedit.adb, a-ztedit.adb,
2672	a-ztexio.adb, bcheck.adb, binde.adb, checks.adb, comperr.adb,
2673	cstand.adb, debug_a.adb, einfo.ads, errout.adb, erroutc.adb,
2674	eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb,
2675	exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb, exp_dbug.adb,
2676	exp_disp.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_util.adb,
2677	freeze.adb, frontend.adb, g-comlin.ads, g-mbdira.adb, gnat1drv.adb,
2678	gprep.adb, g-spipat.adb, i-cpp.ads, i-vxwork.ads, i-vxwork-x86.ads,
2679	krunch.ads, layout.adb, lib-load.adb, lib-writ.adb, lib-writ.ads,
2680	live.adb, namet.ads, osint.adb, osint-c.adb, output.ads, par.adb,
2681	par-ch10.adb, par-ch13.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
2682	par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-prag.adb,
2683	par-sync.adb, par-tchk.adb, par-util.adb, prj.adb, repinfo.adb,
2684	rtsfind.adb, s-arit64.adb, s-asthan-vms-alpha.adb,
2685	s-asthan-vms-ia64.adb, s-bignum.adb, scans.adb, scng.adb, s-dimmks.ads,
2686	sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb, sem_ch10.adb,
2687	sem_ch12.adb, sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch4.adb,
2688	sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_disp.adb, sem_elab.adb,
2689	sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_prag.adb, sem_res.adb,
2690	sem_type.adb, sem_util.adb, sem_warn.adb, set_targ.adb, s-fatgen.adb,
2691	s-fatgen.ads, s-fileio.adb, s-imgcha.adb, s-imgrea.adb, sinfo.ads,
2692	sinput-c.adb, snames.ads-tmpl, s-os_lib.adb, sprint.adb,
2693	s-regpat.adb, s-secsta.adb, s-stalib.ads,
2694	s-stchop.adb, s-stoele.ads, stand.ads, s-taprop-solaris.adb,
2695	s-tasdeb-vms.adb, s-tasini.adb, s-tassta.adb, s-valdec.adb,
2696	s-valuti.adb, s-wchjis.adb, s-wchwts.adb, system.ads, system-vms_64.ads,
2697	system-vms-ia64.ads, treepr.adb, types.ads, uintp.adb, uname.adb,
2698	urealp.adb, usage.adb, vxaddr2line.adb: Minor reformatting.
2699
27002014-01-29  Robert Dewar  <dewar@adacore.com>
2701
2702	* expander.adb: Minor reformatting.
2703
27042014-01-29  Javier Miranda  <miranda@adacore.com>
2705
2706	* exp_ch3.adb (Predefined_Primitive_Bodies): Adding documentation to
2707	previous patch.
2708
27092014-01-29  Javier Miranda  <miranda@adacore.com>
2710
2711	* exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code
2712	that checks if an interface types defines the predefined "="
2713	function because the compiler was erroneously not generating the
2714	predefined "=" primitive as soon as the name of some interface
2715	primitive is "=" (formals were not checked).
2716
27172014-01-29  Ed Schonberg  <schonberg@adacore.com>
2718
2719	* expander.adb (Expander): In GNATprove mode, do not process
2720	transient scopes: they are in general not created in this mode,
2721	and an attempt to examine them will lead to constraint errors when
2722	processing configuration pragmas that have analyzable expressions.
2723
27242014-01-29  Vincent Celier  <celier@adacore.com>
2725
2726	* clean.adb (Gnatclean): Fail if main project is an aggregate
2727	project or if there is an aggregate library project in the
2728	project tree.
2729	* gnatcmd.adb: Fail if the main project is an aggregate project
2730	or if there is an aggegate library project in the project tree.
2731	* make.adb (Initialize): : Fail if main project is an aggregate
2732	project or if there is an aggregate library project in the
2733	project tree.
2734	* makeutl.ads (Aggregate_Libraries_In): New Boolean function.
2735	* prj-makr.adb (Initialize): Fail if the main project is an
2736	aggregate project or an aggregate library project.
2737
27382014-01-29  Vincent Celier  <celier@adacore.com>
2739
2740	* prj-part.adb (Check_Import_Aggregate): New procedure
2741	to check if an imported project is an aggregate project.
2742	(Parse_Single_Project): Call Check_Import_Aggregate
2743	* projects.texi: Document that aggregate projects cannot be
2744	extended or imported.
2745
27462014-01-29  Robert Dewar  <dewar@adacore.com>
2747
2748	* exp_ch9.adb, sem_ch7.ads, s-regexp.adb, sem_ch13.adb: Minor
2749	reformatting and code clean up.
2750	* gnat_ugn.texi: Add documentation section on Atomic Variables
2751	and Optimization.
2752
27532014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>
2754
2755	* einfo.adb Flag264 is now unused.
2756	(Has_Body_References): Removed.
2757	(Set_Has_Body_References): Removed.
2758	(Write_Entity_Flags): Remove the output for flag Has_Body_References.
2759	* einfo.ads Update the comment on usage of attribute
2760	Body_References. Remove attribute Has_Body_References and its
2761	usage in nodes.
2762	(Has_Body_References): Removed along with pragma Inline.
2763	(Set_Has_Body_References): Removed along with pragma Inline.
2764	* sem_prag.adb (Analyze_Global_Item): Move the call to
2765	Record_Possible_Body_Reference in the state related checks
2766	section. Add a comment intended function.
2767	(Analyze_Input_Output): Move the call to Record_Possible_Body_Reference
2768	in the state related checks section. Add a comment intended function.
2769	(Analyze_Refinement_Clause): Cleanup the illegal body reference
2770	reporting. Add a comment on timing of error reporting.
2771	(Record_Possible_Body_Reference): Reimplement the routine.
2772
27732014-01-29  Vincent Celier  <celier@adacore.com>
2774
2775	* makeutl.adb (Mains.Find_File_Add_Extension): Only look for specs for
2776	unit-based languages.
2777	(Mains.Complete_Mains.Do_Complete): Use the source file project
2778	tree when calling Find_File_Add_Extension. Use the correct
2779	project name when reporting an error.
2780
27812014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>
2782
2783	* aspects.adb Add an entry for aspect Part_Of in table
2784	Canonical_Aspect.
2785	* aspects.ads Add an entry for aspect Part_Of in tables Aspect_Id,
2786	Aspect_Argument, Aspect_Names and Aspect_Delay.
2787	* atree.h Define Elist9.
2788	* atree.adb (Elist9): New routine.
2789	(Set_Elist9): New routine.
2790	* atree.ads (Elist9): New routine.
2791	(Set_Elist9): New routine.
2792	* einfo.adb Add Part_Of_Constituents and Encapsulating_State to
2793	the list of node usage.  Remove Refined_State from the list of
2794	node usage.
2795	(Encapsulating_State): New routine.
2796	(Get_Pragma):
2797	Handle pragma Part_Of; (Part_Of_Constituents): New routine.
2798	(Refined_State): Removed.
2799	(Set_Encapsulating_State): New routine.
2800	(Set_Part_Of_Constituents): New routine.
2801	(Set_Refined_State): Removed.
2802	(Write_Field9_Name): Add an entry
2803	for Part_Of_Constituents (Write_Field10_Name): Add an entry for
2804	Encapsulating_State. Remove the entry for Refined_State.
2805	* einfo.ads Add new attributes Encapsulating_State
2806	and Part_Of_Constituents alond with their usage in
2807	entities. Remove attribute Refined_State along with its
2808	usage in entities.
2809	(Encapsulating_State): New routine and
2810	pragma Inline.	(Get_Pragma): Update the comment on usage.
2811	(Part_Of_Constituents): New routine and pragma Inline.
2812	(Refined_State): Removed along with pragma Inline.
2813	(Set_Encapsulating_State): New routine and pragma Inline.
2814	(Set_Part_Of_Constituents): New routine and pragma Inline.
2815	(Set_Refined_State): Removed along with pragma Inline.
2816	* par-prag.adb Pragma Part_Of does not need any special processing
2817	by the parser.
2818	* sem_ch3.adb (Analyze_Declarations): Remove local variables
2819	Body_Id and Prag. Call separate routines to analyze the
2820	contract of a package [body].
2821	(Analyze_Object_Contract):
2822	Update the comment on usage. Remove local variables
2823	Items and Nam. Use Get_Pragma rather than traversing the
2824	classification list.  Verify whether the lack of indicator
2825	Part_Of agrees with the placement of the variable in state space.
2826	(Analyze_Object_Declaration): Initialize the encapsulating state
2827	of a variable.	(Requires_State_Refinement): Moved to sem_util.
2828	* sem_ch7.adb (Analyze_Package_Body_Contract): New routine.
2829	(Analyze_Package_Contract): New routine.
2830	* sem_ch7.ads (Analyze_Package_Body_Contract): New routine.
2831	(Analyze_Package_Contract): New routine.
2832	* sem_ch10.adb (Decorate_State): Initialize the encapsulating
2833	state and Part_Of constituents.
2834	* sem_ch13.adb (Analyze_Aspect_Specifications):
2835	Add processing for aspect Part_Of. Update all
2836	calls to Decorate_Delayed_Aspect_And_Pragma.
2837	(Check_Aspect_At_Freeze_Point): Aspect Part_Of does
2838	not need any special processing at freeze time.
2839	(Decorate_Delayed_Aspect_And_Pragma): Renamed to
2840	Decorate_Aspect_And_Pragma.  Add formal parameter Delayed and
2841	update the associated comment.
2842	* sem_prag.adb Add an entry for pragma Part_Of in table Sig_Flags.
2843	(Analyze_Abstract_State): Add new global variable State_Id. Remove
2844	local constants Errors and Loc. Remove local variables Is_Null
2845	and State_Nam. Create the entity of the abstract state on the
2846	spot, before all remaining checks are performed. Verify that a
2847	missing Part_Of option agrees with the placement of the abstract
2848	state within the state space.
2849	(Analyze_Depends_In_Decl_Part):
2850	Add new global variables Constits_Seen and States_Seen. Check
2851	that a state and a corresponding constituent do not appear
2852	in pragma [Refined_]Depends.
2853	(Analyze_Global_In_Decl_Part):
2854	Add new global variables Constits_Seen and States_Seen. Check
2855	that a state and a corresponding constituent do not appear
2856	in pragma [Refined_]Global.
2857	(Analyze_Global_Item):
2858	Remove the now obsolete code that deals with Part_Of.
2859	Add the entity of the global item to the list of processed
2860	items.	(Analyze_Initializes_In_Decl_Part): Add new global
2861	variables Constits_Seen and States_Seen. Check that a state
2862	and a corresponding constituent do not appear in pragma
2863	Initializes.
2864	(Analyze_Initialization_Item): Add the entity
2865	of the initialization item to the list of processed items.
2866	(Analyze_Input_Item): Add the entity of the initialization
2867	item to the list of processed items.
2868	(Analyze_Input_Output):
2869	Remove the now obsolete code that deals with Part_Of.  Add the
2870	entity of the input/output to the list of processed items.
2871	(Analyze_Part_Of): New routine.
2872	(Analyze_Part_Of_Option): Remove
2873	local constant Par_State. Add local constant Encaps and local
2874	variables Encaps_Id and Legal. Use Analyze_Part of to analyze
2875	the option. Turn the related state into a Part_Of constituent
2876	if the option is legal.
2877	(Analyze_Pragma): Add processing
2878	for pragma Part_Of.
2879	(Analyze_Refined_State_In_Decl_Part):
2880	Remove global constants Pack_Body and Spec_Id. Remove
2881	global variables Abstr_States and Hidden_States. Add new
2882	global variables Available_States, Body_Id, Body_States and
2883	Spec_Id. Add new local constant Body_Decl. Reimplement the
2884	logic that extracts the states available for refinement from
2885	the related package and the body hidden states of the said
2886	package.
2887	(Analyze_Refinement_Clause): Add local variable Part_Of_Constits.
2888	(Check_Applicable_Policy): Alphabetize body.
2889	(Check_Dependency_Clause): Replace Refined_State
2890	with Encapsulating_State.
2891	(Check_Matching_Constituent):
2892	Reimplement the logic that determines whether an item is a valid
2893	/ invalid constituent of the current refined state. Return when
2894	a construct does not denote a valid abstract state. Extract the
2895	list of Part_Of constituents for further analysis. Check that all
2896	Part_Of constituents of a state have been used in its refinement.
2897	(Check_Matching_State): Update the comment on usage. Operate
2898	on the list of available states.
2899	(Check_Missing_Part_Of): New routine.
2900	(Check_Refined_Global_Item): Replace Refined_State
2901	with Encapsulating_State.
2902	(Check_State_And_Constituent_Use): New routine.
2903	(Create_Abstract_State): New routine.
2904	(Is_Matching_Input): Replace Refined_State with Encapsulating_State.
2905	(Is_Part_Of): Removed.
2906	(Collect_Body_States): New routine.
2907	(Collect_Constituent): Replace Refined_State with Encapsulating_State.
2908	(Collect_Hidden_States): Removed.
2909	(Report_Unrefined_States): Change the profile of the procedure along
2910	with the comment on usage.
2911	(Report_Unused_Constituents): New routine.
2912	(Report_Unused_Hidden_States): Removed.
2913	(Report_Unused_States): New routine.
2914	* sem_prag.ads (Check_Missing_Part_Of): New routine.
2915	* sem_util.adb (Add_Contract_Item): Pragma Part_Of can now
2916	appear in the classification pragmas of a package instantiation
2917	or a variable.
2918	(Find_Placement_In_State_Space): New routine.
2919	(Is_Child): Removed.
2920	(Is_Child_Or_Sibling): Remove formal
2921	parameter Private_Child. Remove the private child checks.
2922	(Requires_State_Refinement): Moved from sem_ch3.
2923	* sem_util.ads Add new type State_Space_Kind along with
2924	comment on its usage and values.
2925	(Add_Contract_Item): Update the comment on usage.
2926	(Find_Body_Discriminal): Alphabetize spec.
2927	(Find_Placement_In_State_Space): New routine.
2928	(Is_Child_Or_Sibling): Remove formal parameter Private_Child
2929	and update the comment on usage.
2930	(Requires_State_Refinement): Moved from sem_ch3.
2931	* sinfo.ads: Update the documentation of N_Contract.
2932	* snames.ads-tmpl The predefined name for Part_Of is now used
2933	to denote a pragma. Add Pragma_Id for Part_Of.
2934
29352014-01-29  Emmanuel Briot  <briot@adacore.com>
2936
2937	* s-regexp.adb (Create_Secondary_Table): Automatically grow the state
2938	machine as needed.
2939	(Dump): New subprogram.
2940
29412014-01-29  Tristan Gingold  <gingold@adacore.com>
2942
2943	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Add
2944	Expand_Entry_Declaration to factorize code.
2945
29462014-01-29  Ed Schonberg  <schonberg@adacore.com>
2947
2948	* checks.adb: minor clarification.
2949	* sem_ch7.adb (Declare_Inherited_Private_Subprograms): Limit
2950	search for primitive operations to the entities that immediately
2951	follow the type declaration.
2952
29532014-01-29  Tristan Gingold  <gingold@adacore.com>
2954
2955	* exp_ch9.adb (Build_Protected_Entry): Do not call
2956	Complete_Entry_Body anymore.
2957	* rtsfind.ads (RE_Complete_Single_Entry_Body): Remove.
2958	* s-tposen.ads, s-tposen.adb (Complete_Single_Entry_Body): Remove.
2959
29602014-01-29  Pierre-Marie Derodat  <derodat@adacore.com>
2961
2962	* s-os_lib.adb, s-os_lib.ads (Normalize_Pathname): Return an empty
2963	string when the Name input bigger than allowed. Adapt the function
2964	specification.
2965
29662014-01-29  Ed Schonberg  <schonberg@adacore.com>
2967
2968	* checks.adb (Install_Null_Excluding_Check): Do not emit warning
2969	if expression is within a case_expression of if_expression.
2970
29712014-01-29  Robert Dewar  <dewar@adacore.com>
2972
2973	* exp_ch9.adb, inline.ads: Minor reformatting.
2974
29752014-01-29  Tristan Gingold  <gingold@adacore.com>
2976
2977	* exp_ch9.adb (Is_Exception_Safe): Return true if no exceptions.
2978
29792014-01-29  Yannick Moy  <moy@adacore.com>
2980
2981	* inline.ads (Pending_Body_Info): Add SPARK_Mode and
2982	SPARK_Mode_Pragma components to be able to analyze generic
2983	instance.
2984	* sem_ch12.adb (Analyze_Package_Instantiation,
2985	Inline_Instance_Body, Need_Subprogram_Instance_Body,
2986	Load_Parent_Of_Generic): Pass in SPARK_Mode from instantiation
2987	for future analysis of the instance.
2988	(Instantiate_Package_Body,
2989	Instantiate_Subprogram_Body, Set_Instance_Inv): Set SPARK_Mode
2990	from instantiation to analyze the instance.
2991
29922014-01-29  Robert Dewar  <dewar@adacore.com>
2993
2994	* sem_ch7.adb, sem_prag.adb, sem_ch4.adb, sem_ch6.adb: Minor code
2995	reorganization.
2996
29972014-01-29  Yannick Moy  <moy@adacore.com>
2998
2999	* gnat_rm.texi: Update description of SPARK_Mode pragma.
3000
30012014-01-29  Tristan Gingold  <gingold@adacore.com>
3002
3003	* exp_ch9.adb (Expand_N_Protected_Body): Remove Num_Entries.
3004
30052014-01-29  Thomas Quinot  <quinot@adacore.com>
3006
3007	* sem_ch4.adb (Find_Component_In_Instance): Update comment.
3008
30092014-01-29  Ed Schonberg  <schonberg@adacore.com>
3010
3011	* exp_util.adb (Build_Task_Image_Prefix): Indicate that the
3012	resulting string is an internal entity. and thus requires no
3013	initialization. This is relevant when Initialize_ Scalars is
3014	enabled, because the resultant spurious initialization may lead to
3015	secondary stack anomalies that produce a mangled name for a task.
3016
30172014-01-29  Yannick Moy  <moy@adacore.com>
3018
3019	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode
3020	not inherited from spec anymore. Check consistency
3021	rules after processing of declarations.
3022	* sem_ch7.adb (Analyze_Package_Body_Helper): SPARK_Mode not inherited
3023	from spec anymore. Check consistency rules after processing of
3024	declarations.
3025	(Analyze_Package_Declaration): Set SPARK_Mode only for non-generic
3026	packages.
3027	* sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): Implement new
3028	consistency rules.
3029
30302014-01-27  Robert Dewar  <dewar@adacore.com>
3031
3032	* sem_res.adb (Resolve_Comparison_Op): Add type name/location
3033	to unordered msg.
3034	(Resolve_Range): Add type name/location to unordered msg.
3035
30362014-01-27  Claire Dross  <dross@adacore.com>
3037
3038	* a-cofove.adb/s (Copy): Add precondition so that Copy (Source,
3039	Capacity) is only called with Capacity >= Length (Source) and
3040	Capacity in Capacity_Range.
3041	* a-cfdlli.adb/s, a-cfhase.adb/s, a-cfhama.adb/s, a-cforse.adb/s,
3042	a-cforma.adb/s (Copy): Add precondition so that Copy (Source, Capacity)
3043	is only called with Capacity >= Source.Capacity. Raise Capacity_Error
3044	in the code is this is not the case.
3045
30462014-01-27  Thomas Quinot  <quinot@adacore.com>
3047
3048	* sem_ch4.adb (Analyze_Selected_Component): Fix handling of
3049	selected component in an instance where the component of the
3050	actual is not visibile at instantiation.
3051
30522014-01-27  Ed Schonberg  <schonberg@adacore.com>
3053
3054	* sem_ch6.adb: sem_ch6.adb (Set_Actual_Subtypes): If the type
3055	has a dynamic predicate, generate freeze node for Actual_Subtype
3056	at once, because the declaration of the corresponding predicate
3057	function will make reference to it.
3058
30592014-01-27  Tristan Gingold  <gingold@adacore.com>
3060
3061	* exp_ch7.adb, exp_ch9.adb: Adjust comments.
3062
30632014-01-27  Robert Dewar  <dewar@adacore.com>
3064
3065	* exp_ch4.adb (Expand_N_Op_Expon): Remove unsigned type test
3066	for 2**X optimization.
3067
30682014-01-27  Ed Schonberg  <schonberg@adacore.com>
3069
3070	* a-suenst.adb: strings.utf_encoding.strings (Decode): Check
3071	explicitly whether value is in range of Character, because the
3072	library is typically compiled with range checks disabled, and
3073	we cannot rely on the implicit check on the argument of 'Val.
3074
30752014-01-27  Vincent Celier  <celier@adacore.com>
3076
3077	* a-ciorma.adb, a-cihama.adb (Assign): Copy the Source to the Target,
3078	not the Target to itself.
3079
30802014-01-27  Robert Dewar  <dewar@adacore.com>
3081
3082	* vms_conv.ads, ali.adb, sem_ch6.ads, opt.ads, vms_cmds.ads: Minor
3083	changes to avoid incorrect use of unordered enum types.
3084
30852014-01-27  Thomas Quinot  <quinot@adacore.com>
3086
3087	* sem_ch4.adb: Minor reformatting.
3088
30892014-01-27  Robert Dewar  <dewar@adacore.com>
3090
3091	* scn.adb (Check_End_Of_Line): Removed.
3092	(Error_Long_Line): Removed.
3093	(Determine_License): Use versions of above routines from Scanner.
3094	* scng.adb (Check_End_Of_Line): Moved to spec.
3095	(Error_Long_Line): Removed, no longer used.
3096	* scng.ads (Check_End_Of_Line): Moved here from body.
3097
30982014-01-27  Tristan Gingold  <gingold@adacore.com>
3099
3100	* exp_ch7.adb (Build_Cleanup_Statements): Call
3101	Build_Protected_Subprogram_Call_Cleanup to insert the cleanup
3102	for protected body.
3103	* exp_ch9.adb (Build_Protected_Subprogram_Body): Likewise.
3104	 Remove Service_Name variable.
3105	(Build_Protected_SUbprogam_Call_Cleanup): New procedure that
3106	factorize code from the above subprograms.
3107	* exp_ch9.ads (Build_Protected_Subprogram_Call_Cleanup): New procedure.
3108
31092014-01-27  Hristian Kirtchev  <kirtchev@adacore.com>
3110
3111	* einfo.adb (Has_Option): Reimplemented.
3112	* sem_prag.adb (Analyze_Refinement_Clause): Add global
3113	variables AR_Constit, AW_Constit, ER_Constit, EW_Constit,
3114	External_Constit_Seen and State. Add local variables Body_Ref,
3115	Body_Ref_Elmt and Extra_State. Reimplement part of the logic to
3116	avoid a cumbersome while pool. Verify the legality of an external
3117	state and relevant properties.
3118	(Check_External_Property): New routine.
3119	(Check_Matching_State): Remove parameter profile
3120	and update comment on usage.
3121	(Collect_Constituent): Store the
3122	relevant external property of a constituent.
3123	* sem_util.adb (Async_Readers_Enabled): Update the call to
3124	Has_Enabled_Property.
3125	(Async_Writers_Enabled): Update the call to Has_Enabled_Property.
3126	(Effective_Reads_Enabled): Update the call to Has_Enabled_Property.
3127	(Effective_Writes_Enabled): Update the call to Has_Enabled_Property.
3128	(Has_Enabled_Property): Rename formal parameter Extern to State_Id.
3129	Update comment on usage. Reimplement the logic to recognize the various
3130	formats of properties.
3131
31322014-01-27  Ed Schonberg  <schonberg@adacore.com>
3133
3134	* par-ch5.adb: Minor reformatting.
3135
31362014-01-27  Tristan Gingold  <gingold@adacore.com>
3137
3138	* s-tposen.ads: Harmonize style and comments.
3139
31402014-01-27  Vincent Celier  <celier@adacore.com>
3141
3142	* projects.texi: Document that shared library projects, by
3143	default, cannot import projects that are not shared library
3144	projects.
3145
31462014-01-27  Robert Dewar  <dewar@adacore.com>
3147
3148	* sem_ch8.adb (Find_Selected_Component): Use Replace instead
3149	of Rewrite.
3150
31512014-01-27  Ed Schonberg  <schonberg@adacore.com>
3152
3153	* a-suenco.adb, a-suenst.adb (Decode): Raise encoding error if
3154	any other exception is raised.
3155	(Convert): If both Input_Scheme and Output_Scheme are UTF_8 it is
3156	still necessary to perform a conversion in order to remove overlong
3157	encodings.
3158
31592014-01-27  Robert Dewar  <dewar@adacore.com>
3160
3161	* exp_smem.adb: Minor reformatting.
3162
31632014-01-27  Thomas Quinot  <quinot@adacore.com>
3164
3165	* a-calfor.ads: Fix incorrect reference to operator "-" in comment.
3166
31672014-01-27  Ed Schonberg  <schonberg@adacore.com>
3168
3169	* sem_res.adb (Make_Call_Into_Operator): In ASIS mode, relocate
3170	nodes for operands to the original node for the call, to preserve
3171	Original_Node pointers within the resolved operands, given that
3172	they may have been rewritten as well. Previous approach copied
3173	the operands into a new tree and lost those pointers.
3174
31752014-01-27  Claire Dross  <dross@adacore.com>
3176
3177
3178	* a-cofove.adb, a-cofove.ads: Add Strict_Equal function to the API.
3179
31802014-01-27  Ed Schonberg  <schonberg@adacore.com>
3181
3182	* sem_util.adb (Check_Internal_Protected_Use): A call through
3183	an anonymous access parameter of the current protected function
3184	is not a potential modification of the current object.
3185
31862014-01-27  Ed Schonberg  <schonberg@adacore.com>
3187
3188	* a-cobove.adb (Reserve_Capacity): Procedure raises
3189	Capacity_Error, not Constraint_Error, when request cannot be
3190	satisfied.
3191
31922014-01-27  Vincent Celier  <celier@adacore.com>
3193
3194	* a-coorma.adb, a-cohama.adb (Assign): Copy the Source to the Target,
3195	not the Target to itself.
3196
31972014-01-27  Ed Schonberg  <schonberg@adacore.com>
3198
3199	* exp_ch4.adb (Expand_Concatenate): If the target of the
3200	concatenation is a library-level entity, always use the off-line
3201	version of concatenation, regardless of optimization level. This
3202	is space-efficient, and prevents linking problems when some
3203	units are compiled with different optimization levels.
3204
32052014-01-27  Ed Schonberg  <schonberg@adacore.com>
3206
3207	* sem_ch5.adb: Code clean up.
3208
32092014-01-27  Ed Schonberg  <schonberg@adacore.com>
3210
3211	* par-ch5.adb (P_Iterator_Specification): Improve error recovery
3212	when an array or container iterator includes a subtype indication,
3213	which is only legal in an element iterator.
3214
32152014-01-27  Thomas Quinot  <quinot@adacore.com>
3216
3217	* exp_ch7.adb: Minor reformatting.
3218
32192014-01-27  Robert Dewar  <dewar@adacore.com>
3220
3221	* opt.adb (SPARK_Mode): Default for library units is None rather
3222	than Off.
3223	* opt.ads: Remove AUTO from SPARK_Mode_Type SPARK_Mode_Type is
3224	no longer ordered.
3225	* sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Remove AUTO
3226	possibility.
3227	* snames.ads-tmpl (Name_Auto): Removed, no longer used.
3228
32292014-01-27  Robert Dewar  <dewar@adacore.com>
3230
3231	* par-ch5.adb (P_Sequence_Of_Statements): Make entry in
3232	Suspicious_Labels table if we have identifier; followed by loop
3233	or block.
3234	* par-endh.adb (Evaluate_End_Entry): Search Suspicious_Labels table.
3235	* par.adb (Suspicious_Labels): New table.
3236
32372014-01-27  Robert Dewar  <dewar@adacore.com>
3238
3239	* exp_aggr.adb (Check_Bounds): Reason is range check, not
3240	length check.
3241
32422014-01-27  Yannick Moy  <moy@adacore.com>
3243
3244	* get_spark_xrefs.adb (Get_SPARK_Xrefs): Accept new type 'c' for
3245	reference.
3246	* lib-xref-spark_specific.adb (Is_Global_Constant): Remove useless
3247	function now.
3248	(Add_SPARK_Xrefs): Include references to constants.
3249	* spark_xrefs.ads Document new character 'c' for references to
3250	constants.
3251
32522014-01-27  Thomas Quinot  <quinot@adacore.com>
3253
3254	* exp_smem.adb (Add_Write_After): For a function call, insert write as
3255	an after action in a transient scope.
3256
32572014-01-27  Thomas Quinot  <quinot@adacore.com>
3258
3259	* exp_smem.adb (Expand_Shared_Passive_Variable): For a reference
3260	to a shared variable as an OUT formal in a call to an init proc,
3261	the 'Read call must be emitted after, not before, the call.
3262
32632014-01-27  Robert Dewar  <dewar@adacore.com>
3264
3265	* gnat_rm.texi: Remove mention of AUTO mode for SPARK_Mode pragma.
3266
32672014-01-27  Robert Dewar  <dewar@adacore.com>
3268
3269	* a-wichha.adb (Character_Set_Version): Change to output proper
3270	value.
3271
32722014-01-27  Hristian Kirtchev  <kirtchev@adacore.com>
3273
3274	* einfo.adb (Is_Input_Only_State): Removed.
3275	(Is_Non_Volatile_State): Removed.
3276	(Is_Output_State): Removed.
3277	* einfo.ads (Is_Input_Only_State): Remove attribute and
3278	subprogram. Update related entity.
3279	(Is_Non_Volatile_State):
3280	Remove attribute and subprogram. Update related entity.
3281	(Is_Output_State): Removed attribute and subprogram. Update
3282	related entity.
3283	* exp_ch6.adb (Expand_Subprogram_Contract): Update comment on
3284	generated code.
3285	* sem_ch3.adb (Analyze_Declarations): Analyze the contract of
3286	an object, not just variables.
3287	(Analyze_Object_Contract): New routine.
3288	(Analyze_Variable_Contract): Removed.
3289	(Process_Discriminants): Detect an illegal use of volatile
3290	discriminant in SPARK mode.
3291	* sem_ch5.adb (Analyze_Iterator_Specification):
3292	Detect an illegal use of volatile loop variable.
3293	(Analyze_Loop_Parameter_Specification): Detect an illegal use
3294	of volatile loop variable.
3295	* sem_ch6.adb (Process_Formals): Update the volatile object
3296	detection. Detect an illegal formal of mode IN OUT or OUT in
3297	SPARK mode. Enhance the error messages with references.
3298	* sem_ch12.adb (Instantiate_Object): Update the volatile object
3299	detection. Enhance the error messages with references.
3300	* sem_prag.adb (Analyze_Abstract_State): Enhance the error
3301	messages with references.
3302	(Analyze_Contract_Case): Enhance the error messages with references.
3303	(Analyze_External_Property): Call Check_Duplicate_Property to process
3304	an external property.
3305	(Analyze_External_Property_In_Decl_Part): New routine.
3306	(Analyze_External_State_In_Decl_Part): Removed.
3307	(Analyze_Global_Item): Detect an illegal
3308	use of a volatile constant. Detect an illegal use
3309	of a variable with enabled Effective_Reads. Enhance
3310	the error messages with references. Remove obsolete
3311	checks concerning Input_Only and Output_Only states.
3312	(Analyze_Initialization_Item): Enhance the error messages
3313	with references.
3314	(Analyze_Initializes_In_Decl_Part): Do not
3315	collect the states and variables when the initialization list
3316	is null.
3317	(Analyze_Input_Item): Enhance the error messages with references.
3318	(Analyze_Input_Output): Enhance the error messages with references.
3319	(Analyze_Pragma): Enhance the error messages with references.
3320	(Analyze_Refinement_Clause): Code reformatting.
3321	(Analyze_Refined_Depends_In_Decl_Part):
3322	Rename global variable Global to Reg_Global and update all
3323	occurrences. Add local variables D7 and D8. Update the error
3324	messages with references. Update the call to Collect_Global_Items.
3325	(Analyze_Refined_Global_In_Decl_Part): Add local variables
3326	Has_Proof_In_State, Proof_In_Constits and Proof_In_Items. Update
3327	the call to Collect_Global_Items.  Account for a Proof_In state
3328	in null / useless refinement checks. Verify the coverage of
3329	Proof_In states.
3330	(Check_Dependency_Clause): Remove local variable
3331	Out_Constits. Remove the retrieval and removal of constituents
3332	for an Output_Only state. Remove the reporting of unused
3333	Output_Only state constituents.
3334	(Check_Duplicate_Mode): Enhance
3335	the error message with a reference.
3336	(Check_Duplicate_Property): New routine.
3337	(Check_Duplicate_Option): Enhance the error message with a reference.
3338	(Check_External_Properties): Enhance the error message with a reference.
3339	(Check_Function_Return): Enhance the error message with a reference.
3340	(Check_In_Out_States): Update
3341	comment on usage. Add a specialized error message for Proof_In
3342	constituents. Enhance the error message with a reference.
3343	(Check_Input_States): Update comment on usage. Account for
3344	possible Proof_In constituents. Enhance the error message
3345	with a areference.
3346	(Check_Matching_Constituent): Enhance the error message with a
3347	reference.
3348	(Check_Matching_State): Enchance the error message with a reference.
3349	(Check_Mode): Add local variable From_Global. Update the call to
3350	Find_Mode.  Emit more precise error messages concerning extra items
3351	(Check_Mode_Restriction_In_Enclosing_Context): Consider
3352	pragma Refined_Global.	Enhance the error message with a
3353	reference.
3354	(Check_Mode_Restriction_In_Function): Enhance the error message with
3355	a reference.
3356	(Check_Output_States): Update comment on usage. Add local variable
3357	Posted.  Account for possible Proof_In constituents. Produce a detailed
3358	list of missing constituents.
3359	(Check_Proof_In_States): New routine.
3360	(Check_Refined_Global_Item): Handle Proof_In
3361	constituents. Enchance the error message with a reference.
3362	(Collect_Global_Items): Add formal parameters Proof_In_Items
3363	and Has_Proof_In_State. Update the comment on usage. Account
3364	for Proof_In items.
3365	(Create_Or_Modify_Clause): Enchance
3366	the error message with a reference.
3367	(Find_Mode): Add
3368	formal parameter From_Global. Update the comment on usage.
3369	Detect when the mode is governed by pragma [Refined_]Global.
3370	(Output_Constituents): Removed.
3371	(Report_Extra_Constituents):
3372	Report extra Proof_In constituents.
3373	(Report_Unused_Constituents): Removed.
3374	(Usage_Error): Code reformatting. Enhance the error
3375	messages with reference.
3376	* sem_prag.ads (Analyze_External_Property_In_Decl_Part): New routine.
3377	(Analyze_External_State_In_Decl_Part): Removed.
3378	* sem_res.adb (Resolve_Actuals): Update the volatile object
3379	detection. Enhance the error message with a reference.
3380	(Resolve_Entity_Name): Update the volatile object
3381	detection. Enhance the error message with a reference.
3382	* sem_util.adb (Is_Refined_State): Add a guard to avoid a crash.
3383	(Is_SPARK_Volatile_Object): New routine.
3384	(Has_Volatile_Component): New routine.
3385	* sem_util.ads (Is_Delegate): Alphabetized.
3386	(Is_SPARK_Volatile_Object): New routine.
3387	(Has_Volatile_Component): New routine.
3388	* snames.ads-tmpl: Remove names Name_Input_Only and Name_Output_Only.
3389
33902014-01-27  Ed Schonberg  <schonberg@adacore.com>
3391
3392	* sem_attr.adb: Resolve fully prefix of 'Update.
3393
33942014-01-27  Ben Brosgol  <brosgol@adacore.com>
3395
3396	* gnat_rm.texi: Minor clarifications.
3397
33982014-01-27  Robert Dewar  <dewar@adacore.com>
3399
3400	* sem_elab.adb (Check_Internal_Call_Continue): Avoid complaining
3401	about call that is generated as part of an Initial_Condition
3402	check.
3403	* sem_prag.adb: Minor spelling correction.
3404
34052014-01-27  Robert Dewar  <dewar@adacore.com>
3406
3407	* sem_prag.adb (Set_Convention_From_Pragma): Check that
3408	convention Ghost can only apply to functions.
3409	* einfo.ads, einfo.adb (Is_Ghost_Subprogram): Add clarifying comment.
3410
34112014-01-27  Robert Dewar  <dewar@adacore.com>
3412
3413	* gnat_ugn.texi: Add Short_Enums to documentation of
3414	-gnatet/-gnateT.
3415
34162014-01-27  Robert Dewar  <dewar@adacore.com>
3417
3418	* sem_prag.adb (Analyze_Input_Item): Correct check for input
3419	item in same package.
3420	* sem_util.ads, sem_util.adb (Within_Scope): New function.
3421
34222014-01-26  Arnaud Charlet  <charlet@adacore.com>
3423
3424	* a-intnam-lynxos.ads, mlib-tgt-specific-lynxos.adb,
3425	s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
3426	s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-tpopsp-lynxos.adb,
3427	system-lynxos-ppc.ads, system-lynxos-x86.ads: Removed, no longer
3428	maintained.
3429
34302014-01-25  Eric Botcazou  <ebotcazou@adacore.com>
3431
3432	* gcc-interface/Makefile.in: Fix oversight.
3433
34342014-01-25  Eric Botcazou  <ebotcazou@adacore.com>
3435
3436	* gcc-interface/utils.c (convert_to_fat_pointer): Un-obfuscate the
3437	conversion from a thin pointer with a shifted value.
3438	* gcc-interface/utils2.c (gnat_build_constructor): Propagate the
3439	read-only flag from the values onto the result.
3440	(gnat_invariant_expr): Accept read-only CONSTRUCTORs.
3441
34422014-01-25  Tristan Gingold  <gingold@adacore.com>
3443
3444	* gcc-interface/decl.c (gnat_to_gnu_entity): Always build a variable
3445	for E_Variable with a pragma Linker_Section.
3446
34472014-01-25  Robert Dewar  <dewar@adacore.com>
3448
3449	* gcc-interface/decl.c (gnat_to_gnu_param): Make sure an Out parameter
3450	with Default_Value aspect is passed in by copy.
3451
34522014-01-24  Eric Botcazou  <ebotcazou@adacore.com>
3453
3454	* set_targ.adb: Set Short_Enums.
3455	* gcc-interface/lang.opt (fshort-enums): New option.
3456	* gcc-interface/misc.c (gnat_handle_option): Handle it.
3457	(gnat_post_options): Do not modify the global settings.
3458
34592014-01-24  Robert Dewar  <dewar@adacore.com>
3460
3461	* g-rannum.ads, g-rannum.adb (Random_Ordinary_Fixed): New generic
3462	function.
3463	(Random_Decimal_Fixed): New generic function.
3464	* s-rannum.ads: Minor comment clarifications.
3465
34662014-01-24  Robert Dewar  <dewar@adacore.com>
3467
3468	* back_end.adb: Remove Short_Enums handling (handled in
3469	Ttypes/Get_Targ now) Minor added comments.
3470	* freeze.adb: Change name Short_Enums_On_Target to
3471	Target_Short_Enums.
3472	* get_targ.ads, get_targ.adb (Get_Short_Enums): New function.
3473	* opt.ads: Minor comment updates.
3474	* sem_ch13.adb: Change name Short_Enums_On_Target to
3475	Target_Short_Enums.
3476	* set_targ.adb: Set Short_Enums from gcc back end.
3477	* set_targ.ads (Short_Enums): New variable.
3478	* targparm.ads, targparm.adb: Remove Short_Enums entries (handled in
3479	Ttypes/Get_Targ now).
3480	* ttypes.ads (Target_Short_Enums): New constant boolean switch
3481
34822014-01-24  Pascal Obry  <obry@adacore.com>
3483
3484	* g-sercom-mingw.adb: Fix serial port name for port number > 10.
3485
34862014-01-24  Gary Dismukes  <dismukes@adacore.com>
3487
3488	* exp_disp.adb (Expand_Dispatching_Call): Call Unqualify on Param when
3489	comparing it with Ctrl_Arg, since Ctrl_Arg may have had qualification
3490	stripped off.
3491
34922014-01-24  Robert Dewar  <dewar@adacore.com>
3493
3494	* sinfo.ads, make.adb, prj-env.adb: Minor reformatting.
3495
34962014-01-24  Vincent Celier  <celier@adacore.com>
3497
3498	* prj.adb (Add_Aggregated_Project): Do not add a project in
3499	the list if it is already there.
3500
35012014-01-24  Yannick Moy  <moy@adacore.com>
3502
3503	* lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package):
3504	Correct the search for a subrogram declaration to which a pragma is
3505	attached.
3506
35072014-01-24  Bob Duff  <duff@adacore.com>
3508
3509	* gnat_ugn.texi: Document --decimal-grouping and
3510	--based-grouping switches in gnatpp.
3511
35122014-01-24  Ed Schonberg  <schonberg@adacore.com>
3513
3514	* sinfo.ads: Documentation update.
3515
35162014-01-24  Ed Schonberg  <schonberg@adacore.com>
3517
3518	* sem_ch3.adb (Constant_Redeclaration): New declaration is
3519	illegal if previous one has an initial expression that is an
3520	aggregate expanded into assignments.
3521
35222014-01-24  Ed Schonberg  <schonberg@adacore.com>
3523
3524	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Small
3525	code reorganization to remove spurious warning on a loop with
3526	an array element iterator that has a null range.
3527
35282014-01-24  Vincent Celier  <celier@adacore.com>
3529
3530	* make.adb (Binding_Phase): When setting the Ada paths, use
3531	the library ALI dir, not the object dir in libraries.
3532
35332014-01-24  Yannick Moy  <moy@adacore.com>
3534
3535	* sinfo.ads: Add documentation of check flag fields.
3536
35372014-01-24  Ed Schonberg  <schonberg@adacore.com>
3538
3539	* sem_res.adb (Resolve_Actuals): If an actual is a view
3540	conversion of a discriminated object, and the formal type is
3541	discriminated and constrained, apply a discriminant check to
3542	the object itself.
3543
35442014-01-24  Robert Dewar  <dewar@adacore.com>
3545
3546	* prj.adb, prj-env.adb, back_end.adb: Add comment, minor code clean ups.
3547
35482014-01-24  Ed Schonberg  <schonberg@adacore.com>
3549
3550	* sem_ch3.adb (Analyze_Declarations): At the end of an
3551	appropriate declarative part, call Freeze_All from the first
3552	declaration in the scope, not from the first unfrozen one. This
3553	is necessary to apply visibility checks to entities with delayed
3554	aspects. Otherwise, in the presence of instantiations and cleanups
3555	that they may generate, the delayed aspects may be analyzed too
3556	late and produce spurious visibility errors.
3557	* sem_attr.adb: Place etype on range.
3558	* sem_ch6.adb: Documentation expression functions.
3559
35602014-01-24  Robert Dewar  <dewar@adacore.com>
3561
3562	* exp_ch7.adb: Minor change of Indices to Indexes (preferred
3563	terminology in compiler).
3564
35652014-01-24  Robert Dewar  <dewar@adacore.com>
3566
3567	* scans.ads: Remove Tok_Raise from Sterm, Eterm, After_SM
3568	categories, now that Ada 95 supports raise expressions.
3569
35702014-01-24  Robert Dewar  <dewar@adacore.com>
3571
3572	* freeze.adb (Freeze_Enumeration_Type): Use new target parameter
3573	Short_Enums_On_Target.
3574	* sem_ch13.adb (Set_Enum_Esize): Take Short_Enums_On_Target
3575	into account.
3576	* targparm.ads, targparm.adb: Add new target parameter Short_Enums.
3577
35782014-01-24  Ed Schonberg  <schonberg@adacore.com>
3579
3580	* sem_ch5.adb (Analyze_Iterator_Specification): If subtype
3581	indication is given explicity, check that it matches the array
3582	component type or the container element type of the domain
3583	of iteration.
3584
35852014-01-24  Tristan Gingold  <gingold@adacore.com>
3586
3587	* back_end.adb (Scan_Compiler_Arguments): Set Short_Enums_On_Target.
3588	* gcc-interface/misc.c (flag_short_enums): Declare.
3589	(gnat_post_options): Set it.
3590
35912014-01-24  Vincent Celier  <celier@adacore.com>
3592
3593	* prj-env.adb (Ada_Objects_Path): Use Ada_Objects_Path_No_Libs
3594	to cache the result when Including_Libraries is False.
3595	* prj-env.ads (Ada_Objects_Path): Update documentation
3596	* prj.adb (Free (Project_Id)): Also free Ada_Objects_Path_No_Libs
3597	(Get_Object_Directory): Return the Library_Ali_Dir only when
3598	when Including_Libraries is True.
3599	* prj.ads (Get_Object_Directory): Fix and complete documentation
3600	(Project_Data): New component Ada_Objects_Path_No_Libs
3601
36022014-01-24  Robert Dewar  <dewar@adacore.com>
3603
3604	* checks.adb (Expr_Known_Valid): Result of fpt operator never
3605	considered valid.
3606
36072014-01-24  Eric Botcazou  <ebotcazou@adacore.com>
3608
3609	* back_end.adb: Minor fix in comment.
3610
36112014-01-24  Javier Miranda  <miranda@adacore.com>
3612
3613	* sem_ch3.adb (Check_Abstract_Overriding): Code reestructuration
3614	required to report the error in case of task types.
3615
36162014-01-24  Ed Schonberg  <schonberg@adacore.com>
3617
3618	* sem_attr.adb: Additional index checking.
3619
36202014-01-24  Ed Schonberg  <schonberg@adacore.com>
3621
3622	* sem_attr.adb (Analyze_Attribute, case 'Update): Analyze
3623	expressions in each component association, and for records note
3624	the entity in each association choice, for subsequent resolution.
3625	(Resolve_Attribute, case 'Update): Complete resolution of
3626	expressions in each component association.
3627
36282014-01-24  Robert Dewar  <dewar@adacore.com>
3629
3630	* sem.adb (Sem): Avoid premature reference to Current_Sem_Unit
3631	(this was causing Is_Main_Unit_Or_Main_Unit_Spec to be set wrong,
3632	leading to wrong handling of SPARK_Mode for library units).
3633
36342014-01-24  Robert Dewar  <dewar@adacore.com>
3635
3636	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set SPARK_Mode
3637	on generic instances (do not consider them to be internally
3638	generated)
3639
36402014-01-24  Doug Rupp  <rupp@adacore.com>
3641
3642	* s-osinte-android.ads (pthread_sigmask): Import sigprocmask
3643	vice pthread_sigmask.
3644
36452014-01-24  Vincent Celier  <celier@adacore.com>
3646
3647	* prj.adb (Debug_Output (Str, Str2)): Output if verbosity is
3648	not default.
3649
36502014-01-24  Vincent Celier  <celier@adacore.com>
3651
3652	* prj-ext.adb (Add): Do not output anything when Silent is True,
3653	whatever the verbosity. When Source is From_External_Attribute,
3654	set the corresponding environment variable if it is not already set.
3655	* prj-ext.ads (Add): New Boolean parameter Silent, defaulted
3656	to False
3657	* prj-proc.adb (Process_Expression_For_Associative_Array):
3658	For attribute External, call Prj.Ext.Add with Silent set to
3659	True for the child environment, to avoid useless output in non
3660	default verbosity.
3661
36622014-01-24  Ed Schonberg  <schonberg@adacore.com>
3663
3664	* sem_res.adb (Set_Slice_Subtype): Handle properly a discrete
3665	range given by a subtype indication, and force evaluation of
3666	the bounds, as for a simple range.
3667	* exp_util.adb (Evaluate_Slice_Bounds): Utility to force evaluation
3668	of bounds of slice for various kinds of discrete ranges.
3669	(Evaluate_Name, Evaluate_Subtype_From_Expr): use
3670	Evaluate_Slice_Bounds.
3671
36722014-01-24  Bob Duff  <duff@adacore.com>
3673
3674	* s-taskin.ads (Activator): Make this Atomic, because
3675	Activation_Is_Complete reads it, and that can be called
3676	from any task. Previously, this component was only
3677	modified by the activator before activation, and by
3678	Self after activation.
3679	* a-taside.ads, a-taside.adb (Environment_Task,
3680	Activation_Is_Complete): Implement these missing functions.
3681
36822014-01-24  Doug Rupp  <rupp@adacore.com>
3683
3684	* init.c: Add a handler section for Android.
3685
36862014-01-24  Arnaud Charlet  <charlet@adacore.com>
3687
3688	* i-cexten.ads (Unsigned_33..64, Unsigned_33..64): New types.
3689
36902014-01-24  Ed Schonberg  <schonberg@adacore.com>
3691
3692	* sem_ch4.adb (Operator_Check): If one operand is a
3693	Raise_Expression, set its type to that of the other operand.
3694	* sem_res.adb (Resolve_Raise_Expression): new procedure.
3695	(Resolve_Actuals): For an actual that is a Raise_Expression,
3696	set the type to that of the formal.
3697	* sem_type.adb (Find_Unique_Type): If one of the operands is a
3698	Raise_Expression, return type of the other operand.
3699
37002014-01-24  Ed Schonberg  <schonberg@adacore.com>
3701
3702	* sem_aggr.adb (Resolve_Record_Aggregate): If a scalar
3703	component of the record has a type with a default aspect, and
3704	the corresponding aggregate component is initiaized with a box,
3705	use the default value in the rewritten aggregate.
3706
37072014-01-24  Tristan Gingold  <gingold@adacore.com>
3708
3709	* s-interr.ads, s-interr.adb, s-interr-hwint.adb, s-interr-vms.adb,
3710	s-interr-sigaction.adb,
3711	s-interr-dummy.adb (Install_Restricted_Handlers): Add Prio parameter.
3712	* exp_ch9.adb (Make_Initialize_Protection): Add Prio parameter
3713	to the call to Install_Restricted_Handlers.
3714
37152014-01-24  Emmanuel Briot  <briot@adacore.com>
3716
3717	* prj-nmsc.adb (Check_File): Add protection when the source is
3718	not fully initialized.
3719
37202014-01-24  Ed Schonberg  <schonberg@adacore.com>
3721
3722	* sem_util.adb (Is_Post_State): In a postcondition, a selected
3723	component that denotes an implicit dereference is a reference
3724	to the post state of the subprogram.
3725
37262014-01-24  Robert Dewar  <dewar@adacore.com>
3727
3728	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode OFF
3729	for generated subprograms.
3730	(Analyze_Subprogram_Specification): Ditto.
3731
37322014-01-24  Vincent Celier  <celier@adacore.com>
3733
3734	* prj-dect.adb (Check_Attribute_Allowed): Detect more forbidden
3735	attributes in package Builder of aggregate and aggregate library
3736	projects.
3737	* prj-nmsc.adb (Process_Naming_Scheme.Check.Check_Aggregate):
3738	Remove procedure (Process_Naming_Scheme.Check.Check_Aggregated):
3739	Remove parameters.  Change error message from "... externally
3740	build library ..." to "... externally built project ...".
3741	(Process_Naming_Scheme.Check): Do not do any check in aggregate
3742	project, as attribute Library_Dir and Library_Name have already
3743	been detected as forbidden.
3744
37452014-01-24  Vincent Celier  <celier@adacore.com>
3746
3747	* prj-env.adb (Find_Project): If cached project path is not in
3748	project directory, look in current directory first and use cached
3749	project path only if project is not found in project directory.
3750
37512014-01-24  Robert Dewar  <dewar@adacore.com>
3752
3753	* sem_util.adb, lib-xref.adb: Correct false positive warnings.
3754
37552014-01-24  Vincent Celier  <celier@adacore.com>
3756
3757	* projects.texi: Document that aggregate projects are only
3758	supported by gprbuild, but not by gnatmake.  Document that the
3759	only attribute Switches in package Binder of aggregate projects
3760	will be ignored if its index is not others.  Document that
3761	attribute Global_Config_File is allowed in package Binder of
3762	aggregate projects.
3763
37642014-01-24  Robert Dewar  <dewar@adacore.com>
3765
3766	* sem_prag.adb: Minor code reorganization.
3767	* sem_util.adb: Minor fix of potential latent bug in Is_LHS.
3768
37692014-01-24  Pascal Obry  <obry@adacore.com>
3770
3771	* prj-attr.adb, projects.texi, snames.ads-tmpl: Add Excluded_Patterns
3772	attribute definition.
3773
37742014-01-24  Vincent Celier  <celier@adacore.com>
3775
3776	* makeutl.adb (Queue.Insert_No_Roots): In gprbuild, do not put
3777	in the Queue the same source (same path, same multi-source index)
3778	from the same project file, to avoid compiling several times
3779	the same source.
3780
37812014-01-24  Eric Botcazou  <ebotcazou@adacore.com>
3782
3783	* einfo.ads (First_Rep_Item): Remove obsolete stuff.
3784	(Has_Gigi_Rep_Item): Likewise.
3785	* sem_prag.adb (Analyze_Pragma) <Pragma_Linker_Section>: Do not set
3786	Has_Gigi_Rep_Item for objects.
3787	* gcc-interface/decl.c (prepend_one_attribute_to): Rename into...
3788	(prepend_one_attribute): ...this.
3789	(prepend_one_attribute_pragma): New function extracted from...
3790	(prepend_attributes): ...here.  Swap the parameters for consistency.
3791	(gnat_to_gnu_entity): Adjust calls to prepend_one_attribute_to and to
3792	prepend_attributes.
3793	<object>: Deal with a pragma Linker_Section on a constant
3794	or variable.  <E_Function>: Deal with a pragma Linker_Section
3795	on a subprogram.
3796	(get_minimal_subprog_decl): Adjust calls to prepend_one_attribute_to.
3797
37982014-01-24  Vincent Celier  <celier@adacore.com>
3799
3800	* opt.ads: Minor comment update.
3801
38022014-01-24  Robert Dewar  <dewar@adacore.com>
3803
3804	* sem_prag.adb (Analyze_Input_Output): Add missing error check
3805	for junk operand.
3806	* sem_util.adb (Is_Refined_State): Add defense against junk
3807	tree from error.
3808
38092014-01-24  Pascal Obry  <obry@adacore.com>
3810
3811	* projects.texi: Removes Build_Slaves attribute documentation.
3812
38132014-01-23  Robert Dewar  <dewar@adacore.com>
3814
3815	* opt.adb (Register_Opt_Config_Switches): Save SPARK_Mode_Pragma
3816	setting.
3817
38182014-01-23  Ed Schonberg  <schonberg@adacore.com>
3819
3820	* sem_util.adb (Is_Potentially_Unevaluated): Predicate only
3821	applies to expressions that come from source.
3822	* sem_attr.adb (Analyze_Attribute, case 'Old): Improve error
3823	message.
3824	(Analyze_Attribute, case 'Loop_Entry): Apply SPARK 2014 legality
3825	rule regarding potentially unevaluated expressions, to prefix
3826	of attribute.
3827
38282014-01-23  Ed Schonberg  <schonberg@adacore.com>
3829
3830	* exp_util.adb (Make_Invqriant_Call): If type of expression is
3831	a private extension, get invariant from base type.
3832
38332014-01-23  Robert Dewar  <dewar@adacore.com>
3834
3835	* sem_util.adb, sem_attr.adb: Minor reformatting.
3836
38372014-01-23  Robert Dewar  <dewar@adacore.com>
3838
3839	* opt.adb (Save_Opt_Config_Switches): Save SPARK_Mode_Pragma
3840	(Restore_Opt_Config_Switches): Restore SPARK_Mode_Pragma.
3841	* sem.adb (Semantics): Remove save/restore of
3842	SPARK_Mode[_Pragma]. Not needed since already done in
3843	Save/Restore_Opt_Config_Switches.
3844
38452014-01-23  Robert Dewar  <dewar@adacore.com>
3846
3847	* gnat_rm.texi, einfo.adb, einfo.ads, sem_prag.adb, gnat_ugn.texi,
3848	freeze.adb, repinfo.adb, aspects.adb, aspects.ads, sem_ch13.adb:
3849	Linker_Section enhancements.
3850
38512014-01-23  Tristan Gingold  <gingold@adacore.com>
3852
3853	* gnat_rm.texi: Minor editing.
3854
38552014-01-23  Robert Dewar  <dewar@adacore.com>
3856
3857	* opt.adb (Set_Opt_Config_Switches): Reset SPARK mode for
3858	with'ed internal units.
3859	* sem.adb (Semantics): Save and restore SPARK_Mode[_Pragma].
3860
38612014-01-23  Javier Miranda  <miranda@adacore.com>
3862
3863	* lib-xref.adb (Generate_Reference): As part of processing the
3864	"end-of-spec" reference generate an extra reference to the first
3865	private entity of the package.
3866	* xr_tabls.adb (Add_Reference): No action needed for the extra
3867	'E' reference associated; similar to the processing of the
3868	'e' reference.
3869
38702014-01-23  Bob Duff  <duff@adacore.com>
3871
3872	* gnat_ugn.texi: Change "--&pp off" to "--!pp off".
3873
38742014-01-23  Ed Schonberg  <schonberg@adacore.com>
3875
3876	* sem_util.ads, sem_util.adb (Is_Potentially_Unevaluated): new
3877	predicate to implement rule given in 6.1.1 (20/3).
3878	* sem_attr.adb (Analyze_Attribute, case 'Old): Reject prefix of
3879	'Old in a postcondition, if it is potentially unevaluated and
3880	it is not an entity name.
3881
38822014-01-23  Bob Duff  <duff@adacore.com>
3883
3884	* gnat_ugn.texi: Document the new "--&pp off" feature of gnatpp.
3885
38862014-01-23  Robert Dewar  <dewar@adacore.com>
3887
3888	* gnatlink.adb (Gnatlink): Fix problem of generating bad name
3889	msg on VMS.
3890
38912014-01-23  Bob Duff  <duff@adacore.com>
3892
3893	* g-dynhta.ads: Minor comment fix.
3894
38952014-01-23  Yannick Moy  <moy@adacore.com>
3896
3897	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Inherit SPARK_Mode
3898	from spec on body only when not already inherited on spec. Set
3899	SPARK_Mode from context on body without previous spec.	*
3900	* sem_prag.adb (Analyze_Pragma): Check placement of pragma on
3901	library-level entities.  Correct retrieval of entity from
3902	declaration, for cases where the declaration is not a unit.
3903	* sem_ch12.adb (Instantiate_Object): Avoid
3904	calling Is_Volatile_Object on an empty node.
3905
39062014-01-23  Robert Dewar  <dewar@adacore.com>
3907
3908	* gnatlink.adb (Gnatlink): Check for suspicious executable file
3909	names on windows.
3910
39112014-01-23  Robert Dewar  <dewar@adacore.com>
3912
3913	* a-ngelfu.ads: Remove bad uses of AND which should be AND THEN.
3914	* sem_res.adb (Check_No_Direct_Boolean_Operators): Don't give
3915	style errors in instances.
3916	* g-dynhta.ads (Static_HTable): Comment updates.
3917
39182014-01-23  Vincent Celier  <celier@adacore.com>
3919
3920	* prj-conf.adb (Get_Or_Create_Configuration_File): Do not attempt
3921	to find a configuration project file when Config_File_Name is
3922	No_Configuration_File.
3923	* prj-conf.ads (No_Configuration_File): New constant String.
3924	* prj-pars.adb (Parse): Call Get_Or_Create_Configuration_File
3925	with Config_File_Name set to No_Configuration_File, so that
3926	no existing configuration project file will be used, and the
3927	configuration project will be only created in memory when
3928	Add_Default_GNAT_Naming_Scheme is called.
3929	* projects.texi: Minor reformatting.
3930
39312014-01-23  Vincent Celier  <celier@adacore.com>
3932
3933	* prj-conf.adb (Get_Or_Create_Configuration_File): Never parse
3934	a config project file if On_Load_Config is not null.
3935	* prj-pars.adb: Minor comment changes.
3936
39372014-01-23  Ed Schonberg  <schonberg@adacore.com>
3938
3939	* lib-xref.adb (Output_References): Output progenitors of
3940	synchronized tagged types, for source navigation.
3941
39422014-01-23  Robert Dewar  <dewar@adacore.com>
3943
3944	* exp_util.adb, sinfo.adb, sinfo.ads, sem.adb, sem_res.adb,
3945	expander.adb, exp_ch11.adb, exp_ch11.ads, sem_ch11.adb, sem_ch11.ads,
3946	sprint.adb, sprint.ads: Remove unused node N_Subprogram_Info.
3947
39482014-01-23  Emmanuel Briot  <briot@adacore.com>
3949
3950	* prj-conf.adb (Get_Or_Create_Configuration_File): call
3951	On_Load_Config later.
3952
39532014-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
3954
3955	* sem_ch3.adb (Analyze_Declarations): Do not
3956	generate the spec of the late primitive in ASIS mode. Add two
3957	comments to explain the special cases when the expansion is
3958	not performed.
3959
39602014-01-23  Robert Dewar  <dewar@adacore.com>
3961
3962	* sem_util.adb (Note_Possible_Modification): Fix error of
3963	misbehaving for implicit dereference cases in -gnatc mode.
3964
39652014-01-23  Emmanuel Briot  <briot@adacore.com>
3966
3967	* prj-pars.adb: Minor reformatting.
3968
39692014-01-22  Ed Schonberg  <schonberg@adacore.com>
3970
3971	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): A subprogram
3972	body generated for an expression function within a protected body
3973	needs a set of renaming declarations if the expression function
3974	comes from source.
3975
39762014-01-22  Ed Schonberg  <schonberg@adacore.com>
3977
3978	* lib-xref.adb (Get_Type_Reference): In semantics-only mode,
3979	list interface progenitor of a tagged concurrent type, for better
3980	source navigation.
3981
39822014-01-22  Robert Dewar  <dewar@adacore.com>
3983
3984	* lib.adb (In_Extended_Main_Code_Unit): Return False for
3985	Standard_Location.
3986	(In_Extended_Main_Source_Unit): Return False for Standard_Location.
3987	* lib.ads (In_Extended_Main_Code_Unit): Add documentation on
3988	treatment of Slocs No_Location and Standard_Location.
3989	* restrict.adb (Check_Restriction_No_Dependence): Explicitly
3990	check for entity with Standard_Location Sloc, rather than relying
3991	on Lib routines to do that.
3992	* sem_res.adb (Resolve_Call): Implement SPARK_05 restriction
3993	that a call cannot occur before a later occuring body within
3994	the same unit.
3995
39962014-01-22  Thomas Quinot  <quinot@adacore.com>
3997
3998	* rtsfind.adb: Update comment.
3999
40002014-01-22  Hristian Kirtchev  <kirtchev@adacore.com>
4001
4002	* sem_aux.ads, sem_aux.adb (Is_Body): New routine.
4003	* sem_ch3.adb (Analyze_Declarations): Add local variable
4004	Body_Seen. Generate the spec of a late controlled
4005	primitive body that is about to freeze its related type.
4006	(Handle_Late_Controlled_Primitive): New routine.
4007
40082014-01-22  Robert Dewar  <dewar@adacore.com>
4009
4010	* a-stream.adb: Minor reformatting.
4011
40122014-01-22  Ed Schonberg  <schonberg@adacore.com>
4013
4014	* sem_ch8.adb (From_Actual_Package): Introduce a recursive
4015	sub-procedure Declared_In_Actual to handle properly the visibility
4016	of actuals in actual packages, that are themselves actuals to a
4017	actual package of the current instance. This mimics properly the
4018	visibility of formals of formal packages declared with a box,
4019	within the corresponding generic unit.
4020
40212014-01-22  Robert Dewar  <dewar@adacore.com>
4022
4023	* checks.adb: Do not assume that a volatile variable is valid.
4024
40252014-01-22  Thomas Quinot  <quinot@adacore.com>
4026
4027	* g-catiio.ads (Image, Value): Clarify that these functions
4028	operate in the local time zone.  Minor documentation update.
4029
40302014-01-22  Thomas Quinot  <quinot@adacore.com>
4031
4032	* csets.adb, csets.ads, opt.ads: Minor documentation fixes.
4033
40342014-01-22  Robert Dewar  <dewar@adacore.com>
4035
4036	* sem_aux.adb, sem_aux.ads, sem_ch3.adb (Has_Unconstrained_Elements):
4037	Moved to sem_aux.adb.
4038
40392014-01-22  Robert Dewar  <dewar@adacore.com>
4040
4041	* vms_data.ads: Minor reformatting.
4042
40432014-01-22  Robert Dewar  <dewar@adacore.com>
4044
4045	* debug.adb: Document messages affected by -gnatd.E including
4046	the new ones that relate to late definition of equality.
4047	* sem_ch6.adb (Check_Untagged_Equality): In Ada 2012 mode, if
4048	debug flag -gnatd.E is set, then generate warnings rather than
4049	errors.
4050	(Check_Untagged_Equality): In earlier versions of Ada,
4051	generate warnings if Warn_On_Ada_2012_Incompatibility flag is set.
4052
40532014-01-22  Robert Dewar  <dewar@adacore.com>
4054
4055	* sem_prag.adb (Usage_Error): Output additional messages for
4056	unconstrained OUT parameters lacking an input dependency.
4057
40582014-01-22  Robert Dewar  <dewar@adacore.com>
4059
4060	* sem_ch4.adb: Minor reformatting.
4061
40622014-01-22  Robert Dewar  <dewar@adacore.com>
4063
4064	* restrict.ads: Minor reformatting.
4065	* sem_res.adb (Resolve_Call): Check for SPARK_05 restriction that
4066	forbids a call from within a subprogram to the same subprogram.
4067
40682014-01-22  Thomas Quinot  <quinot@adacore.com>
4069
4070	* a-stream.ads (Read_SEA, Write_SEA): New subprograms, optimized
4071	stream attributes for Stream_Element_Array.
4072	* a-stream.adb (Read_SEA, Write_SEA): Bodies for the above.
4073	* rtsfind.adb (Check_CRT): Do not reject a reference to an entity
4074	defined in the current scope.
4075
40762014-01-22  Robert Dewar  <dewar@adacore.com>
4077
4078	* debug.adb, exp_ch4.adb, erroutc.adb: Minor reformatting.
4079
40802014-01-22  Thomas Quinot  <quinot@adacore.com>
4081
4082	* sem_ch7.adb, sem_ch8.adb, exp_ch3.adb: Minor reformatting.
4083
40842014-01-22  Thomas Quinot  <quinot@adacore.com>
4085
4086	* sem_ch3.adb (Analyze_Object_Declaration): For a constant
4087	declaration initialized with a function call, whose type
4088	has variable size, need to remove side effects so that the
4089	initialization expression becomes a dereference of a temporary
4090	reference to the function result.
4091
40922014-01-22  Yannick Moy  <moy@adacore.com>
4093
4094	* errout.adb (Initialize): Remove trick to add dummy entry
4095	in Warnings table.
4096	* erroutc.adb (Set_Warnings_Mode_Off,
4097	Set_Warnings_Mode_On): Do nothing if warnings are suppressed by
4098	command line switch.
4099	* opt.ads (Warning_Mode): Document behavior
4100	wrt pragma Warnings, in normal mode and in GNATprove_Mode.
4101
41022014-01-22  Robert Dewar  <dewar@adacore.com>
4103
4104	* sem_ch3.adb, errout.adb, erroutc.adb: Minor reformatting.
4105
41062014-01-22  Robert Dewar  <dewar@adacore.com>
4107
4108	* sem_ch13.adb (Check_Pool_Size_Clash): New procedure
4109	(Analyze_Attribute_Definition_Clause, case Storage_Pool): call
4110	Check_Pool_Size_Clash (Analyze_Attribute_Definition_Clause,
4111	case Storage_Size): call Check_Pool_Size_Clash.
4112
41132014-01-22  Robert Dewar  <dewar@adacore.com>
4114
4115	* sem_ch3.adb, exp_util.adb, sem_dim.adb, sem_elab.adb, sem_ch8.adb,
4116	sem_eval.ads: Minor reformatting.
4117
41182014-01-22  Thomas Quinot  <quinot@adacore.com>
4119
4120	* sem_eval.adb (Compile_Time_Known_Bounds): Return False for
4121	Any_Composite to prevent cascaded errors.
4122
41232014-01-22  Yannick Moy  <moy@adacore.com>
4124
4125	* errout.adb (Initialize): Do not insert special entry in Warnings
4126	table in GNATprove_Mode.
4127	* erroutc.adb (Set_Warnings_Mode_On): Add info in Warnings table in
4128	GNATprove_Mode.
4129	* gnat1drv.adb (Adjust_Global_Switches): Do not suppress frontend
4130	warnings anymore.
4131
41322014-01-22  Robert Dewar  <dewar@adacore.com>
4133
4134	* sem_prag.adb (Analyze_Initializes_In_Decl_Part): Handle null
4135	initializes case.
4136
41372014-01-22  Robert Dewar  <dewar@adacore.com>
4138
4139	* snames.ads-tmpl: Update header.
4140
41412014-01-22  Thomas Quinot  <quinot@adacore.com>
4142
4143	* exp_util.adb (Insert_Actions): When inserting actions on a
4144	short circuit operator that has already been analyzed, do not park
4145	actions in node; instead introduce an N_Expression_With_Actions
4146	and insert actions immediately.
4147	Add guard for unexpected case of climbing up through statement
4148	in Actions list of an N_Expression_With_Actions.
4149	* sem_elab.adb (Insert_Elab_Check): Remove complex
4150	specialized circuitry for the case where the context is already
4151	analyzed, as it is not needed and introduces irregularities in
4152	finalization. Instead rely on the above change to Insert_Actions
4153	to ensure that late insertion on short circuit operators works
4154	as expected.
4155
41562014-01-22  Ed Schonberg  <schonberg@adacore.com>
4157
4158	* sem_ch4.adb (Operator_Check): Improve error message when an
4159	operand of concatenation is an access type.
4160
41612014-01-22  Thomas Quinot  <quinot@adacore.com>
4162
4163	* sem_dim.adb (Analyze_Dimension_Identifier): Add guard against
4164	cascaded error.
4165
41662014-01-22  Ed Schonberg  <schonberg@adacore.com>
4167
4168	* sem_ch8.adb (Find_Selected_Component): Handle properly the case
4169	of an expanded name in a proper body, whose prefix is a package
4170	in the context of the proper body, when there is a homonym of
4171	the package declared in the parent unit.
4172
41732014-01-22  Robert Dewar  <dewar@adacore.com>
4174
4175	* sem_warn.adb (Check_Use_Clause): Don't give no entities used
4176	msg if errors found.
4177	(Check_One_Unit): Same change.
4178
41792014-01-22  Robert Dewar  <dewar@adacore.com>
4180
4181	* ug_words: Add missing/wrong entries for VMS warning switches.
4182	* sem_prag.adb (Check_Duplicate_Pragma): Avoid flagging parent type.
4183
41842014-01-22  Jerome Guitton  <guitton@adacore.com>
4185
4186	* mlib-tgt-specific-vxworks.adb (Get_Target_Suffix): Replace xscale by
4187	arm.
4188
41892014-01-22  Robert Dewar  <dewar@adacore.com>
4190
4191	* gnat_rm.texi, gnat_ugn.texi: Document passive task optimization
4192
41932014-01-22  Eric Botcazou  <ebotcazou@adacore.com>
4194
4195	* gcc-interface/Makefile.in: Minor fixes.
4196
41972014-01-21  Robert Dewar  <dewar@adacore.com>
4198
4199	* par-ch4.adb (P_If_Expression): Rewritten to improve error recovery.
4200	* par-ch5.adb (P_Condition): New version with expression prescanned.
4201	* par.adb (P_Condition): New version with expression prescanned.
4202
42032014-01-21  Robert Dewar  <dewar@adacore.com>
4204
4205	* gnat_rm.texi: Document that Allow_Integer_Address is ignored
4206	if Address is not a private type.
4207	* sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
4208	Ignore pragma if System.Address is not a private type.
4209
42102014-01-21  Arnaud Charlet  <charlet@adacore.com>
4211
4212	* namet.ads (Name_Len): Initialize to 0 to avoid accessing an
4213	uninitialized value.
4214
42152014-01-21  Thomas Quinot  <quinot@adacore.com>
4216
4217	* gnat_rm.texi (Scalar_Storage_Order): Update documentation.
4218
42192014-01-21  Ed Schonberg  <schonberg@adacore.com>
4220
4221	* sem_ch12.adb (Set_Instance_Env): In Ada 2012 mode, preserve
4222	the value of Assertions_Enabled flag when compiling an instance of
4223	an internal unit. This facilitates the use of pre/postconditions
4224	in generic internal units, such as the new elementary function
4225	libraries.
4226
42272014-01-21  Robert Dewar  <dewar@adacore.com>
4228
4229	* exp_aggr.adb: Minor reformatting.
4230	* sem_attr.adb: Minor reformatting.
4231	* sem_res.adb: Minor comment addition.
4232	* einfo.adb: Minor comment updates.
4233	* freeze.adb: Minor reformatting and code reorganization.
4234
42352014-01-21  Ed Schonberg  <schonberg@adacore.com>
4236
4237	* par-ch4.adb (P_If_Expression): Handle more gracefully an
4238	elsif clause that does not have an else part.
4239
42402014-01-21  Robert Dewar  <dewar@adacore.com>
4241
4242	* checks.adb, sem_util.ads, sem_ch4.adb: Minor reformatting.
4243	* gcc-interface/Makefile.in: clean up target pairs.
4244
42452014-01-21  Pascal Obry  <obry@adacore.com>
4246
4247	* projects.texi: Minor typo fix.
4248
42492014-01-21  Thomas Quinot  <quinot@adacore.com>
4250
4251	* freeze.adb (Check_Component_Storage_Order): If a record type
4252	has an explicit Scalar_Storage_Order attribute definition clause,
4253	reject any component that itself is of a composite type and does
4254	not have one.
4255
42562014-01-21  Ed Schonberg  <schonberg@adacore.com>
4257
4258	* sem_ch10.adb (Generate_Parent_Reference): Make public so it
4259	can be used to generate proper cross-reference information for
4260	the parent units of proper bodies.
4261
42622014-01-21  Thomas Quinot  <quinot@adacore.com>
4263
4264	* exp_pakd.adb (Expand_Packed_Element_Set,
4265	Expand_Packed_Element_Reference): No byte swapping required in
4266	the front-end for the case of a reverse storage order array,
4267	as this is now handled uniformly in the back-end.  However we
4268	still need to swap back an extracted element if it is itself a
4269	nested composite with reverse storage order.
4270
42712014-01-21  Hristian Kirtchev  <kirtchev@adacore.com>
4272
4273	* sem_prag.adb (Analyze_External_Property): Add processing for "others".
4274	(Analyze_Pragma): Update the grammar of pragma Abstract_State to
4275	include "others".
4276
42772014-01-21  Arnaud Charlet  <charlet@adacore.com>
4278
4279	* gnat_ugn.texi: Minor updates.
4280
42812014-01-21  Thomas Quinot  <quinot@adacore.com>
4282
4283	* exp_pakd.adb: Update comment, minor reformatting.
4284
42852014-01-21  Hristian Kirtchev  <kirtchev@adacore.com>
4286
4287	* sem_ch3.adb (Analyze_Variable_Contract): Trigger the volatile
4288	object check when SPARK_Mode is on.
4289	* sem_ch6.adb (Process_Formals): Trigger the volatile object
4290	check when SPARK_Mode is on.
4291	* sem_ch12.adb (Instantiate_Object): Trigger the volatile object
4292	check when SPARK_Mode is on.
4293	* sem_ch13.adb (Analyze_Aspect_Specifications): Insert the
4294	corresponding pragma of aspect SPARK_Mode in the visible
4295	declarations of a package declaration.
4296	* sem_prag.adb (Analyze_Pragma): Trigger the volatile object
4297	check when SPARK_Mode is on.
4298	* sem_res.adb (Resolve_Actuals): Trigger the volatile object
4299	check when SPARK_Mode is on.
4300	(Resolve_Entity_Name): Trigger
4301	the volatile object check when SPARK_Mode is on.
4302
43032014-01-21  Robert Dewar  <dewar@adacore.com>
4304
4305	* sem_ch3.adb, sem_prag.adb, sem_prag.ads, sem_ch12.adb, sem_res.adb,
4306	sem_ch6.adb, a-except-2005.adb: Minor reformatting.
4307
43082014-01-21  Ed Schonberg  <schonberg@adacore.com>
4309
4310	* exp_ch3.adb (Expand_N_Object_Declaration): When a class-wide
4311	object is declared, it is rewritten as a renaming of an dynamic
4312	expression that wraps the initial value.  The renaming declaration
4313	is first given an internal name, to prevent collisions with the
4314	entity already declared, and then the name is modified to reflect
4315	the original one. the modification of the name must preserve
4316	the source location of the original, to prevent spurious errors
4317	when compiling with style checks if the declaration involves
4318	more than one entity.
4319
43202014-01-21  Hristian Kirtchev  <kirtchev@adacore.com>
4321
4322	* aspects.adb Add entries for Async_Readers, Async_Writers,
4323	Effective_Reads and Effective_Writes in table Canonical_Aspect.
4324	* aspects.ads Add entries for Async_Readers, Async_Writers,
4325	Effective_Reads and Effective_Writes in tables Aspect_Id,
4326	Aspect_Names, Aspect_Delay and Implementation_Defined_Aspect.
4327	* atree.adb (Ekind_In): New version with 8 parameters.
4328	(Node34): New routine.
4329	(Set_Node34): New routine.
4330	* atree.ads (Ekind_In): New version with 8 parameters.
4331	(Node34): New routine.
4332	(Set_Node34): New routine.
4333	* einfo.adb Contract is now Node34.
4334	(Contract): Update the assertion and node usage.
4335	(Get_Pragma): Include pragmas Async_Readers, Async_Writers,
4336	Effective_Reads and Effective_Writes.
4337	(Set_Contract): Update the assertion and node usage.
4338	(Write_Field24_Name): Remove the output for a contract.
4339	(Write_Field34_Name): Add output for a contract.
4340	* einfo.ads Contract is now Node34. Update the comment on
4341	attribute usage and related node structures.
4342	(Get_Pragma): Update the comment on usage.
4343	* par-prag.adb (Prag): Pragmas Async_Readers, Async_Writers,
4344	Effective_Reads and Effective_Writes do not require special
4345	processing by the parser.
4346	* sem_ch3.adb (Analyze_Variable_Contract): New routine.
4347	(Analyze_Declarations): Analyze the contract of a variable at
4348	the end of the declarative region.
4349	(Analyze_Object_Declaration): Create a contract for a variable.
4350	* sem_ch6.adb (Analyze_Subprogram_Contract): Update the retrieval
4351	of classification pragmas.
4352	(Process_Formals): Detect an illegal
4353	use of a volatile object as a formal in a function.
4354	* sem_ch12.adb (Instantiate_Object): Detect an illegal use of
4355	a volatile object as an actual in generic instantiation.
4356	* sem_prag.adb Add entries for Async_Readers, Async_Writers,
4357	Effective_Reads and Effective_Writes in table Sig_Flags.
4358	(Analyze_External_State_In_Decl_Part): New routine.
4359	(Analyze_Global_Item): Detect an illegal use of a volatile object
4360	as a global item of a function.
4361	(Analyze_Pragma): Reimplement
4362	pragma Abstract_State. Add support for pragmas Async_Readers,
4363	Async_Writers, Effective_Reads and Effective_Writes.
4364	(Check_External_Properties): New routine.
4365	* sem_prag.ads (Analyze_External_State_In_Decl_Part): New routine.
4366	(Check_External_Properties): New routine.
4367	* sem_res.adb (Resolve_Actuals): Detect an illegal use of a
4368	volatile object as an actual in a call.
4369	(Resolve_Entity_Name):
4370	Add local variables Par, Prev and Usage_OK. Detect illegal
4371	contexts of volatile objects.
4372	* sem_util.adb (Add_Contract_Item): Add support for
4373	pragmas associated with the contract of a variable.
4374	(Async_Readers_Enabled): New routine.
4375	(Async_Writers_Enabled): New routine.
4376	(Effective_Reads_Enabled): New routine.
4377	(Effective_Writes_Enabled): New routine.
4378	(Has_Enabled_Property):
4379	New routine.
4380	(Is_Unchecked_Conversion_Instance): New routine.
4381	(Is_Volatile_Object): Add support for entities that may denote
4382	a volatile object.
4383	* sem_util.ads (Add_Contract_Item): Update the
4384	comment on usage.
4385	(Async_Readers_Enabled): New routine.
4386	(Async_Writers_Enabled): New routine.
4387	(Effective_Reads_Enabled): New routine.
4388	(Effective_Writes_Enabled): New routine.
4389	(Is_Unchecked_Conversion_Instance): New routine.
4390	* sinfo.ads Update the comment on the structure of N_Contract.
4391	* snames.ads-tmpl Add predefined names for Async_Readers,
4392	Async_Writers, Effective_Reads and Effective_Writes. Add
4393	pragma ids for Async_Readers, Async_Writers, Effective_Reads
4394	and Effective_Writes.
4395
43962014-01-21  Robert Dewar  <dewar@adacore.com>
4397
4398	* exp_ch4.adb (Eval_Op_Expon): Use CRT_Safe_Compile_Time_Known_Value
4399	* sem_eval.adb (Compile_Time_Known_Value): Remove special
4400	handling of CRT mode (CRT_Safe_Compile_Time_Known_Value): New
4401	function (Eval_Op_Expon): Add CRT_Safe in call to Test_Foldable
4402	(Test_Foldable): Add CRT_Safe parameter
4403	* sem_eval.ads (Compile_Time_Known_Value): Remove special
4404	handling of CRT mode.
4405	(CRT_Safe_Compile_Time_Known_Value): New function.
4406
44072014-01-21  Robert Dewar  <dewar@adacore.com>
4408
4409	* sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Fix problem
4410	with pragma or aspect that applies to package spec or subprogram
4411	spec.
4412
44132014-01-21  Robert Dewar  <dewar@adacore.com>
4414
4415	* exp_aggr.adb: Minor reformatting.
4416
44172014-01-21  Johannes Kanig  <kanig@adacore.com>
4418
4419	* gnat1drv.adb (Gnat1drv) remove obsolete reference to -gnatd.H.
4420
44212014-01-21  Bob Duff  <duff@adacore.com>
4422
4423	* gnat_ugn.texi: Document the "checks" attribute in gnat2xml.
4424
44252014-01-21  Steve Baird  <baird@adacore.com>
4426
4427	* gnat_rm.texi: Improve description of SPARK_Mode pragma.
4428
44292014-01-21  Vincent Celier  <celier@adacore.com>
4430
4431	* prj-part.adb (Parse_Single_Project): Accept to extend a project
4432	if it has only be imported by an project being extended. When a
4433	project that has only been imported by a project being extended
4434	is imported by another project that is not being extended,
4435	reset the previous indication, so that it will be an error if
4436	this project is extended later.
4437	* prj-tree.adb (Create_Project): Include component From_Extended
4438	in table Projects_HT
4439	* prj-tree.ads (Project_Name_And_Node): New Boolean component
4440	From_Extended
4441
44422014-01-21  Robert Dewar  <dewar@adacore.com>
4443
4444	* atree.ads, atree.adb: Add Node33 and Set_Node33.
4445	* einfo.ads, einfo.adb (SPARK_Pragma): New field (SPARK_Aux_Pragma):
4446	New field (SPARK_Pragma_Inherited): New flag
4447	(SPARK_Aux_Pragma_Inherited): New flag (SPARK_Mode_Pragmas):
4448	Removed.
4449	* lib.ads, lib.adb: Remove SPARK_Mode_Pragma, no longer used.
4450	* opt.ads (SPARK_Mode_Pragma): New global variable.
4451	* sem.ads: Add Save_SPARK_Mode_Pragma field to Scope_Stack_Entry.
4452	* sem_ch3.adb: Use new SPARK_Mode data structures.
4453	* sem_ch6.adb: Set SPARK_Mode fields in subprogram specs and bodies.
4454	* sem_ch7.adb: Set SPARK_Mode fields in package spec and body entities.
4455	* sem_ch8.adb (Push_Scope): Save SPARK_Mode_Pragma.
4456	(Pop_Scope): Restore SPARK_Mode_Pragma.
4457	* sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Rewrite for
4458	new data structures.
4459
44602014-01-21  Arnaud Charlet  <charlet@adacore.com>
4461
4462	* back_end.adb: Undo previous change, not needed. Minor reformatting.
4463
44642014-01-21  Thomas Quinot  <quinot@adacore.com>
4465
4466	* exp_ch5.adb: Fix comment.
4467	* switch-c.adb: Minor comment update.
4468	* exp_ch3.adb: Minor reformatting.
4469
44702014-01-21  Arnaud Charlet  <charlet@adacore.com>
4471
4472	* back_end.adb (Scan_Compiler_Arguments): Do not store object
4473	filename in gnatprove mode.
4474
44752014-01-21  Thomas Quinot  <quinot@adacore.com>
4476
4477	* sinfo.ads (No_Ctrl_Actions): Clarify documentation (flag also
4478	suppresses usage of primitive _assign for tagged types).
4479	* exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Set
4480	No_Ctrl_Actions for a tagged type that does not require
4481	finalization, as we want to disable usage of _assign (which
4482	may cause undesirable discriminant checks on an uninitialized,
4483	invalid target).
4484
44852014-01-21  Ed Schonberg  <schonberg@adacore.com>
4486
4487	* sem_prag.adb: Reject invariant'class on completion.
4488
44892014-01-21  Javier Miranda  <miranda@adacore.com>
4490
4491	* exp_ch3.adb (Build_Init_Procedure): For
4492	derivations of interfaces, do not move the the initialization
4493	of the _parent field since such assignment is not generated.
4494
44952014-01-21  Ed Schonberg  <schonberg@adacore.com>
4496
4497	* sem_res.adb (Rewrite_Renamed_Operator): Do not replace entity
4498	with the operator it renames if we are within an expression of
4499	a pre/postcondition, because the expression will be reanalyzed
4500	at a later point, and the analysis of the renaming may affect
4501	the visibility of the operator when in an instance.
4502
45032014-01-21  Robert Dewar  <dewar@adacore.com>
4504
4505	* sinfo.ads, sinfo.adb: Change Do_Discriminant_Check to use new Flag1.
4506	Add this flag to type conversion nodes and assignment nodes.
4507	* treepr.adb: Deal properly with Flag 1,2,3.
4508	* treeprs.adt: Minor comment update.
4509
45102014-01-21  Robert Dewar  <dewar@adacore.com>
4511
4512	* sem_eval.adb (Compile_Time_Known_Value): Add Ignore_CRT
4513	parameter.
4514	* sem_eval.ads (Compile_Time_Known_Value): Add Ignore_CRT
4515	parameter, completely rewrite spec.
4516
45172014-01-21  Ed Schonberg  <schonberg@adacore.com>
4518
4519	* sem_ch10.adb (Install_Withed_Unit): If the unit is a subprogram
4520	instance that is inlined, it may have been rewritten as a wrapper
4521	package. In that case the unit that must be made visible is the
4522	related instance of the package.
4523
45242014-01-21  Arnaud Charlet  <charlet@adacore.com>
4525
4526	* exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Refine
4527	previous change in codepeer mode.
4528
45292014-01-21  Arnaud Charlet  <charlet@adacore.com>
4530
4531	* exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Always add
4532	call to Abort_Undefer, as expected by the runtime.
4533	* s-tasren.adb (Local_Complete_Rendezvous): Replace
4534	Defer_Abort_Nestable by Defer_Abort, since we do not expect abort to be
4535	deferred at this point. Update comments.
4536
45372014-01-21  Thomas Quinot  <quinot@adacore.com>
4538
4539	* exp_ch4.adb, exp_ch5.adb, checks.adb: Minor reformatting.
4540
45412014-01-21  Arnaud Charlet  <charlet@adacore.com>
4542
4543	* switch-c.adb, usage.adb, gnat_ugn.texi: Mark -gnates as internal,
4544	remove from doc.
4545
45462014-01-21  Robert Dewar  <dewar@adacore.com>
4547
4548	* switch-c.adb, usage.adb, atree.adb, atree.ads: Minor reformatting.
4549
45502014-01-21  Thomas Quinot  <quinot@adacore.com>
4551
4552	* atree.adb, atree.ads (Num_Extension_Nodes): Switch to Node_Id, since
4553	this is value is used in Node_Id arithmetic operations.
4554	(Copy_Node, Exchange_Entities): Use loops indexed by Num_Extension_Nodes
4555	instead of hard-coded unrolled code.
4556
45572014-01-21  Yannick Moy  <moy@adacore.com>
4558
4559	* gnat1drv.adb: Minor code cleanup, removing useless code.
4560
45612014-01-21  Arnaud Charlet  <charlet@adacore.com>
4562
4563	* opt.ads (SPARK_Switches_File_Name): New.
4564	* switch-c.adb (Scan_Front_End_Switches): Add handling of -gnates=xxx *
4565	* usage.adb (Usage): Document -gnates, in gnatprove mode only.
4566	* gnat_ugn.texi: Document -gnates.
4567
45682014-01-21  Yannick Moy  <moy@adacore.com>
4569
4570	* errout.adb (Special_Msg_Delete): Update comment. Remove
4571	special case for GNATprove which should not ignore mismatch
4572	in sizes for representation clauses.
4573	* sem_prag.adb (Analyze_Pragma): Remove special case for GNATprove
4574	which should not ignore pragma Pack.
4575
45762014-01-21  Ed Schonberg  <schonberg@adacore.com>
4577
4578	* sem_ch4.adb: Code clean up.
4579
45802014-01-21  Steve Baird  <baird@adacore.com>
4581
4582	* gnat_rm.texi: Improve GNAT RM description of SPARK_Mode pragma.
4583
45842014-01-21  Robert Dewar  <dewar@adacore.com>
4585
4586	* gcc-interface/gigi.h: Get Flags array address.
4587	* gcc-interface/trans.c: Acquire Flags array address.
4588	* atree.adb: Add support for Flags array and Flag0,1,2,3.
4589	* atree.ads: Add support for Flags array and Flag0,1,2,3.
4590	* atree.h: Add support for Flags array and Flag0,1,2,3.
4591	* back_end.adb: Pass Flags array address to gigi.
4592
45932014-01-21  Ed Schonberg  <schonberg@adacore.com>
4594
4595	* sem_ch8.adb (Attribute_Renaming): Transfer original attribute
4596	reference to generated body so that legality checks on stream
4597	attributes are properly applied. If type is tagged and already
4598	frozen, insert generated body at the point of the renaming
4599	declaration.
4600
46012014-01-21  Ed Schonberg  <schonberg@adacore.com>
4602
4603	* sem_ch12.adb: Code clean up.
4604	* sem_ch8.adb: Minor reformatting
4605
46062014-01-20  Robert Dewar  <dewar@adacore.com>
4607
4608	* checks.adb: Check SPARK_Mode instead of GNATProve_Mode for
4609	converting warnings on inevitable exceptions to errors.
4610	* exp_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for
4611	converting warnings on inevitable exceptions to errors.
4612	* opt.adb (SPARK_Mode_Config): Handled like other config flags
4613	* opt.ads (SPARK_Mode_Type): Moved here from types (renamed from
4614	SPARK_Mode_Id) (SPARK_Mode_Type): Add pragma Ordered, remove
4615	SPARK_ from names (SPARK_Mode): New flag (SPARK_Mode_Config):
4616	New flag (Config_Switches_Type): Add SPARK_Mode field
4617	* sem.adb: Minor code reorganization (remove unnecessary with)
4618	* sem.ads (Scope_Stack_Entry): Add Save_SPARK_Mode field
4619	* sem_aggr.adb: Check SPARK_Mode instead of GNATProve_Mode for
4620	converting warnings on inevitable exceptions to errors.
4621	* sem_attr.adb: Check SPARK_Mode instead of GNATProve_Mode for
4622	converting warnings on inevitable exceptions to errors.
4623	* sem_ch3.adb: Check SPARK_Mode instead of GNATProve_Mode for
4624	converting warnings on inevitable exceptions to errors.
4625	* sem_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for
4626	converting warnings on inevitable exceptions to errors.
4627	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Reset SPARK_Mode
4628	from spec if needed
4629	* sem_ch7.adb (Analyze_Package_Body_Helper): Reset SPARK_Mode
4630	from spec if needed
4631	* sem_ch8.adb (Push_Scope): Save SPARK_Mode (Pop_Scope):
4632	Restore SPARK_Mode
4633	* sem_elab.adb: Check SPARK_Mode instead of GNATProve_Mode for
4634	converting warnings on inevitable exceptions to errors.
4635	* sem_prag.adb (Get_SPARK_Mode_From_Pragma): New function
4636	(Get_SPARK_Mode_Id): Removed (Get_SPARK_Mode_Type): New name
4637	of Get_SPARK_Mode_Id
4638	* sem_prag.ads (Get_SPARK_Mode_From_Pragma): New function
4639	* sem_res.adb: Check SPARK_Mode instead of GNATProve_Mode for
4640	converting warnings on inevitable exceptions to errors.
4641	* sem_util.adb: Check SPARK_Mode instead of GNATProve_Mode for
4642	converting warnings on inevitable exceptions to errors.
4643	* types.ads (SPARK_Mode_Id): Moved to opt.ads and renamed
4644	SPARK_Mode_Type
4645
46462014-01-20  Ed Schonberg  <schonberg@adacore.com>
4647
4648	* sem_ch13.adb: Add semantic information to rewritten type
4649	reference.
4650
46512014-01-20  Ed Schonberg  <schonberg@adacore.com>
4652
4653	* exp_ch5.adb (Expand_N_Assignment_Statement): If both sides
4654	are of a type with unknown discriminants, convert both to the
4655	underlying view of the type, so that the proper constraint check
4656	can be applied to the right-hand side.
4657
46582014-01-20  Robert Dewar  <dewar@adacore.com>
4659
4660	* atree.adb (Copy_Node): Fix failure to copy last component
4661	(Exchange_Entities): Fix failure to exchange last entity
4662
46632014-01-20  Ed Schonberg  <schonberg@adacore.com>
4664
4665	* sem_ch12.adb: Code clean up.
4666
46672014-01-20  Robert Dewar  <dewar@adacore.com>
4668
4669	* gnat_rm.texi, sem_ch4.adb: Minor reformatting.
4670
46712014-01-20  Ed Schonberg  <schonberg@adacore.com>
4672
4673	* sem_ch4.adb (Analyze_Quantified_Expression): If after
4674	pre-analysis  the loop parameter specification has been
4675	rewritten as a iterator specification, propagate the change to
4676	the quantified expression, for ASIS navigtion needs.
4677
46782014-01-20  Vincent Celier  <celier@adacore.com>
4679
4680	* par-ch10.adb: Minor error message change: escape [ and ].
4681
46822014-01-20  Robert Dewar  <dewar@adacore.com>
4683
4684	* checks.adb: Make warnings on exceptions into errors in GNATprove mode.
4685	* errout.adb: Implement [ and ] insertion characters.
4686	* errout.ads: Document new [ and ] insertion characters.
4687	* sem_ch12.adb, restrict.adb, frontend.adb, exp_ch7.adb: Minor
4688	addition of ??? comment.
4689	* lib-xref.adb, exp_util.adb, gnat1drv.adb: Minor reformatting
4690	* exp_ch4.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_elab.adb,
4691	sem_eval.adb, sem_res.adb, sem_util.adb, sem_attr.adb, sem_aggr.adb:
4692	Make warnings on exceptions into errors in GNATprove mode.
4693	* sem_dim.adb: Minor reformatting throughout Quote [ and ]
4694	in error messages.
4695
46962014-01-20  Ed Schonberg  <schonberg@adacore.com>
4697
4698	* sem_ch13.adb: Code clean up.
4699
47002014-01-20  Robert Dewar  <dewar@adacore.com>
4701
4702	* errout.ads, errout.adb: Implement >? >x? >X? sequences in error
4703	messages.
4704	* sem_ch6.adb (Check_Statement_Sequence): Missing return is an
4705	error in GNATprove mode.
4706
47072014-01-20  Ed Schonberg  <schonberg@adacore.com>
4708
4709	* par-ch4.adb (Is_Parameterless_Attribute): The Ada2012 attribute
4710	reference 'Old takes no parameters, and thus can appear as a
4711	prefix of a slice.
4712
47132014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
4714
4715	* exp_aggr.adb: Fix minor typos.
4716
47172014-01-20  Ed Schonberg  <schonberg@adacore.com>
4718
4719	* sem_attr.adb (Analyze_Attribute, case 'Constrained): In an
4720	instance the attribute is legal, and its value is determined
4721	statically if the type has no discriminants. This choice is
4722	more useful than rechecking the legality rule in the instance,
4723	is consistent with older usage, and is also consistent with all
4724	existing tests.
4725
47262014-01-20  Arnaud Charlet  <charlet@adacore.com>
4727
4728	* sem_cat.adb (Validate_Static_Object_Name): Change error into
4729	warning in Relaxed_Semantic_Mode.
4730
47312014-01-20  Ed Schonberg  <schonberg@adacore.com>
4732
4733	* sem_attr.adb: Code and comments cleanup.
4734
47352014-01-20  Yannick Moy  <moy@adacore.com>
4736
4737	* debug.adb Free debug flags -gnatd.D, -gnatd.G and -gnatd.V *
4738	* errout.adb (Compilation_Errors): Remove special handling in
4739	GNATprove mode.
4740	* gnat1drv.adb (Adjust_Global_Switches): Remove handling of the
4741	removed debug flags.
4742	* gnat_rm.texi: Initial documentation for Abstract_State, Depends,
4743	Global, Initial_Condition, Initializes and Refined_State pragmas and
4744	aspects.
4745	* opt.ads (Frame_Condition_Mode, Formal_Extensions,
4746	SPARK_Strict_Mode): Remove global flags.
4747	* sem_ch3.adb (Analyze_Object_Declaration): Check of no hidden state
4748	always performed now, on packages declaring a null state.
4749	(Signed_Integer_Type_Declaration): Remove ill-designed attempt
4750	at providing pedantic mode for bounds of integer types.
4751	* sem_ch4.adb (Analyze_Quantified_Expression): Warning on suspicious
4752	"some" quantified expression now issued under control of -gnatw.t,
4753	like the other warning on unused bound variable.
4754	* sem_prag.adb (Check_Precondition_Postcondition): Remove useless test
4755	on removed flag.
4756	(Analyze_Pragma): Remove tests for SPARK 2014
4757	pragmas, not officially allowed by GNAT.
4758
47592014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
4760
4761	* sem_prag.adb (Analyze_Pragma): Ensure that
4762	the sole argument of pragmas Abstract_State, Contract_Cases,
4763	Depends, Global and Initializes in in aggregate form.
4764	(Analyze_Refined_Pragma): Ensure that the sole argument of
4765	pragmas Refined_Depends, Refined_Global and Refined_State is in
4766	aggregate form.
4767	(Ensure_Aggregate_Form): New routine.
4768
47692014-01-20  Doug Rupp  <rupp@adacore.com>
4770
4771	* sem_attr.adb (Analyze_Attribute): case
4772	Attribute_Constrained => treat all prefixes as legal for Declib
4773	compatibility.
4774
47752014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
4776
4777	* sem_prag.adb (Check_Mode): Reimplement the routine.
4778	(Find_Mode): New routine.
4779
47802014-01-20  Robert Dewar  <dewar@adacore.com>
4781
4782	* sem_ch4.adb (Operator_Check): Handle additional
4783	Allow_Integer_Address cases.
4784
47852014-01-20  Robert Dewar  <dewar@adacore.com>
4786
4787	* gnat_rm.texi (Allow_Integer_Address): Remove note about not
4788	allowed if address is non-private, no longer true.
4789	* sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
4790	Remove check for address being private, causes difficulty when
4791	pragma used in gnat.adc file and is not needed, since we guard
4792	this in Address_Integer_Convert_OK.
4793	* exp_ch7.adb: Minor reformatting.
4794	* sem_ch4.adb: Handle operator operands in Allow_Integer_Address mode.
4795
47962014-01-20  Robert Dewar  <dewar@adacore.com>
4797
4798	* checks.adb (Apply_Range_Check): Remove gnatprove special
4799	casing of exponentiation.
4800	* sem_res.adb (Resolve_Op_Expon): Apply range check to right
4801	operand for integer case to check range against Natural.
4802
48032014-01-20  Robert Dewar  <dewar@adacore.com>
4804
4805	* s-tataat.adb: Minor reformatting.
4806
48072014-01-20  Robert Dewar  <dewar@adacore.com>
4808
4809	* einfo.adb (Is_Descendent_Of_Address): Now applies to all
4810	entities, and also fix documentation to remove mention of visible
4811	integer type, since this is not what the implementation does.
4812	* einfo.ads (Is_Descendent_Of_Address): Now applies to all
4813	entities, and also fix documentation to remove mention of visible
4814	integer type, since this is not what the implementation does.
4815	* gnat_rm.texi: Minor clarification of Allow_Integer_Address
4816	function.
4817	* sem_ch4.adb (Analyze_One_Call): Handle Allow_Integer_Address
4818	case for parameter type check.
4819	* sem_res.adb (Resolve): Use new function
4820	Address_Integer_Convert_OK.
4821	* sem_type.adb: Minor code reorganization (use Ekind_In) Minor
4822	reformatting throughout.
4823	* sem_util.adb (Address_Integer_Convert_OK): New function.
4824	* sem_util.ads: Minor reformatting (put specs in alpha order)
4825	(Address_Integer_Convert_OK): New function.
4826
48272014-01-20  Thomas Quinot  <quinot@adacore.com>
4828
4829	* exp_ch7.adb (Wrap_Transient_Expression):
4830	Insertion extra conditional expression only if
4831	Opt.Suppress_Control_Flow_Optimizations is set.
4832
48332014-01-20  Arnaud Charlet  <charlet@adacore.com>
4834
4835	* s-tataat.adb (Initialize_Attributes): Abort might already be
4836	deferred in Create_Task.
4837
48382014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
4839
4840	* checks.adb (Apply_Scalar_Range_Check): Flag
4841	the exponent as requiring a range check when the expression is
4842	an exponentiation.
4843
48442014-01-20  Fedor Rybin  <frybin@adacore.com>
4845
4846	* gnat_ugn.texi: Documenting --passed-tests option for gnattest.
4847
48482014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
4849
4850	* sem_util.adb (Default_Initialization): New routine.
4851	* sem_util.ads: Add new type Default_Initialization_Kind.
4852	(Default_Initialization): New routine.
4853
48542014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
4855
4856	* sem_prag.adb (Check_Mode): Correct all error
4857	message logic dealing with in/in out parameters that may appear
4858	as inputs or have a self reference.
4859
48602014-01-20  Robert Dewar  <dewar@adacore.com>
4861
4862	* exp_ch9.adb, checks.adb, exp_intr.adb: Minor reformatting.
4863	* sem_res.adb (Resolve): Fix error causing infinite loop for
4864	integer used as address. Allow addresses as integers.
4865
48662014-01-20  Arnaud Charlet  <charlet@adacore.com>
4867
4868	* s-osinte-linux.ads (struct_sigaction): Fix rep clause.
4869
48702014-01-20  Bob Duff  <duff@adacore.com>
4871
4872	* par-ch8.adb (P_Use_Type_Clause): Detect syntax
4873	error when "use all" is not followed by "type".
4874
48752014-01-20  Bob Duff  <duff@adacore.com>
4876
4877	* exp_intr.adb (Expand_Unc_Deallocation): Remove warning on abort
4878	followed by free.
4879
48802014-01-20  Ed Schonberg  <schonberg@adacore.com>
4881
4882	* checks.adb (Apply_Address_Clause_Check): If there is an
4883	alignment check on the expression in an address clause, and there
4884	is no local exception propagation, add an additional explanatory
4885	message to clarify the cause of previous warning.
4886
48872014-01-20  Robert Dewar  <dewar@adacore.com>
4888
4889	* exp_ch7.adb: Minor reformatting.
4890	* opt.ads: Minor comment updates.
4891	* sem.adb: Minor name change Is_Main_Unit =>
4892	Is_Main_Unit_Or_Main_Unit_Spec.
4893	* sem_ch6.adb: Minor reformatting and code reorganization.
4894
48952014-01-20  Bob Duff  <duff@adacore.com>
4896
4897	* gnat_ugn.texi: Update gnatpp switches.
4898
48992014-01-20  Thomas Quinot  <quinot@adacore.com>
4900
4901	* exp_ch9.adb: Minor comment edit.
4902
49032014-01-20  Robert Dewar  <dewar@adacore.com>
4904
4905	* gnat_rm.texi: Document that Allow_Integer_Address is permitted
4906	only if System.Address is a private type.
4907	* opt.ads (Allow_Integer_Address): No longer set by -gnates.
4908	* sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
4909	Allowed only if type System.Address is private, since otherwise
4910	it makes no sense.
4911	* sem_res.adb: Fix failure to properly Analyze unchecked
4912	conversions that were introduced by Allow_Integer_Address.
4913	* switch-c.adb: Remove -gnates switch.
4914	* usage.adb: Remove -gnates switch.
4915	* gnat_ugn.texi: Remove documentation of -gnates flag.
4916
49172014-01-20  Ed Schonberg  <schonberg@adacore.com>
4918
4919	* sem_ch6.adb (Analyze_Expression_Function): Pre-analyze and
4920	resolve expression to perform proper name capture.
4921
49222014-01-20  Ed Schonberg  <schonberg@adacore.com>
4923
4924	* sem.adb (Semantics): When saving/restoring configuration
4925	switches, the spec of a pre- defined unit that is the main unit
4926	must be treated as a predefined unit as well.
4927
49282014-01-20  Thomas Quinot  <quinot@adacore.com>
4929
4930	* exp_ch7.adb (Wrap_Transient_Expression): For a Boolean
4931	expression, insert an extra conditional expression when saving
4932	the value of the expression, for the benefit of control flow
4933	graph based coverage analysis.
4934	* exp_ch3.adb: Minor reformatting.
4935
49362014-01-20  Robert Dewar  <dewar@adacore.com>
4937
4938	* gnat1drv.adb: Set Allow_Integer_Address in relaxed semantics mode.
4939	* gnat_rm.texi: Document pragma Allow_Integer_Address.
4940	* gnat_ugn.texi: Document pragma Allow_Integer_Address, -gnates.
4941	* opt.ads: New flag Allow_Integer_Address.
4942	* par-prag.adb: Dummy entry for pragma Allow_Integer_Address.
4943	* sem_ch5.adb: Minor reformatting.
4944	* sem_prag.adb: Implement pragma Allow_Integer_Address.
4945	* sem_res.adb (Resolve): Allow integer address value if
4946	switch set.
4947	* sem_util.adb: Minor reformatting.
4948	* snames.ads-tmpl: Add entry for pragma Allow_Integer_Address.
4949	* switch-c.adb: Recognize flag -gnates.
4950	* usage.adb: Document flag -gnates.
4951
49522014-01-20  Thomas Quinot  <quinot@adacore.com>
4953
4954	* s-tadeca.adb: Fix minor typos in comment.
4955
49562014-01-20  Pascal Obry  <obry@adacore.com>
4957
4958	* s-win32.ads (FreeLibrary): New import.
4959
49602014-01-20  Robert Dewar  <dewar@adacore.com>
4961
4962	* sem_res.adb, sem_cat.adb: Minor reformatting.
4963	* sem_ch11.adb (Analyze_Raise_Statement): Only give warning about
4964	assigning to OUT parameters for the current subprogram scope.
4965	* exp_ch4.adb: Minor reformatting.
4966
49672014-01-20  Ed Schonberg  <schonberg@adacore.com>
4968
4969	* exp_ch4.adb (Process_Transient_Object,
4970	Find_Enclosing_Contexts): If the top-level if-expression that
4971	generated the transient object is an actual in a call, the proper
4972	Hook_Context is a construct enclosing the call.
4973	* einfo.ads: Indicate that Related_Expression is used to link a
4974	loop variable to the container expression over which the loop
4975	takes place.
4976	(Analyze_Iterator_Specification): Set the Related_Expression of
4977	the loop variable in a container element iterator.
4978	(Note_Possible_Modification): If the variable is the loop
4979	variable in a container element iterator, indicate that the
4980	enclosing container is also modified.
4981
49822014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
4983
4984	* aspects.adb (Move_Or_Merge_Aspects): Reimplemented.
4985
49862014-01-20  Robert Dewar  <dewar@adacore.com>
4987
4988	* s-taasde.ads, gnat_ugn.texi, s-tadeca.adb, sem_res.adb, s-tadeca.ads:
4989	Minor reformatting and code clean up.
4990
49912014-01-20  Arnaud Charlet  <charlet@adacore.com>
4992
4993	* sem_cat.adb (Validate_Object_Declaration): Relax semantics
4994	of objects of private type if Relaxed_RM_Semantics.
4995
49962014-01-20  Claire Dross  <dross@adacore.com>
4997
4998	* a-cofove.ads (Vector): Capacity discriminant
4999	should be in range of the index.
5000
50012014-01-20  Thomas Quinot  <quinot@adacore.com>
5002
5003	* a-caldel.ads(To_Duration), s-taasde.ads(Time_Enqueue):
5004	Clarify specs s-tadeca.adb(Enqueue_Calendar): Compensate for
5005	possible difference between epoch of Ada.Calendar clock and Ada
5006	real-time/tasking clock.
5007	* s-taprop-posix.adb: Minor comment fix.
5008
50092014-01-20  Doug Rupp  <rupp@adacore.com>
5010
5011	* sysdep.c [vxworks]: Remove Vxworks version noise for RTP.
5012
50132014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
5014
5015	* exp_attr.adb (Expand_N_Attribute_Reference): Generate validity
5016	checks on the prefix of attribute 'Old.
5017	* sem_ch3.adb (Process_Range_Expr_In_Decl): Suppress the
5018	generation of validity checks on a range that belongs to the
5019	iteration scheme of a quantified expression.
5020	* sem_ch5.adb (One_Bound): Suppress the generation of validity
5021	checks on a bound that belongs to the iteration scheme of a
5022	quantified expression, generate the check in all other cases.
5023
50242014-01-20  Bob Duff  <duff@adacore.com>
5025
5026	* gnat_ugn.texi: Enable --pp-new by default. Minor reorganization.
5027
50282014-01-20  Ed Schonberg  <schonberg@adacore.com>
5029
5030	* sem_res.adb (Resolve): When compiling a predefined unit, ignore
5031	interpretations that do not come from other predefined units,
5032	to prevent spurious ambiguities in the presence of user-defined
5033	operators in the context of (an instance of) a predefined unit.
5034
50352014-01-20  Robert Dewar  <dewar@adacore.com>
5036
5037	* gnat_rm.texi: Document that Loop_Variant is included in
5038	Statement_Assertions.
5039	* sem_prag.adb (Check_Kind): Add Loop_Variant to
5040	Statement_Assertions (Check_Applicable_Policy): Add Loop_Variant
5041	to Statement_Assertions.
5042
50432014-01-20  Doug Rupp  <rupp@adacore.com>
5044
5045	* sysdep.c (__gnat_is_file_not_found_error) [vxworks6]: Add case
5046	for errno ENOENT from RTP on NFS mounted file system.
5047
50482014-01-20  Ed Schonberg  <schonberg@adacore.com>
5049
5050	* sem_util.adb (Check_Function_Writable_Actuals): 1) Do not
5051	examine code that does not come from source. The check does not
5052	apply to code generated for constraint checks, and such code may
5053	generate spurious error messages when compiled with expansion
5054	disabled (as in a generic unit) because side effects may not
5055	have been removed.
5056	2) Make error messages more explicit: indicate the component
5057	of the	construct whose value is indeterminate because of a
5058	call to a function with in-out parameter in another component,
5059	when there is no mandated order of execution between the two
5060	components (actuals, aggregate components, alternatives).
5061
50622014-01-20  Robert Dewar  <dewar@adacore.com>
5063
5064	* gnat_rm.texi: Minor cleanup.
5065
50662014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
5067
5068	* sem_attr.adb (Analyze_Attribute): Attributes 'Old and 'Result
5069	can now apply to a refined postcondition.
5070	* sem_ch6.adb (Analyze_Subprogram_Contract): Remove local
5071	variable Result_Seen. Add variables Case_Prag, Post_Prag,
5072	Seen_In_Case and Seen_In_Post. Update the mechanism that detects
5073	whether postconditions and/or constract-cases mention attribute
5074	'Result and introduce a post-state when applied to functions.
5075	(Check_Result_And_Post_State): Removed.
5076	* sem_prag.adb (Analyze_Pragma): Add local variable
5077	Result_Seen. Verify that the expression of pragma Refined_Post
5078	mentions attribute 'Result and introduces a post-state.
5079	* sem_util.ads, sem_util.adb (Check_Result_And_Post_State): New routine.
5080
50812014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
5082
5083	* exp_ch7.adb (Is_Subprogram_Call): New routine.
5084	(Process_Transient_Objects): Make variable Must_Hook global with
5085	respect to all locally declared subprograms. Search the context
5086	for at least one subprogram call.
5087	(Requires_Hooking): Removed.
5088
50892014-01-20  Claire Dross  <dross@adacore.com>
5090
5091	* a-cfdlli.ads a-cfhama.ads a-cfhase.ads a-cforma.ads
5092	* a-cforse.ads a-cofove.ads: Add pragma Annotate (GNATprove,
5093	External_Axiomatization);
5094
50952014-01-20  Robert Dewar  <dewar@adacore.com>
5096
5097	* sem_attr.adb (Analyze_Attribute, case Loop_Entry): Allow
5098	Loop_Entry in Assert, Assert_And_Cut, and Assume pragmas.
5099	* sem_prag.adb (Analyze_Pragma, case Assert[_And_Cut], Assume):
5100	Allow Loop_Entry to be used in these pragmas if they appear in
5101	an appropriate context.
5102	(Placement_Error): Specialize error
5103	message for pragma Assert[_And_Cut] or pragma Assume containing
5104	Loop_Entry attribute.
5105	* a-exexpr-gcc.adb, sinput.adb: Minor reformatting.
5106	* s-excmac-arm.ads, s-except.ads, s-excmac-gcc.ads: Minor reformatting
5107	and code clean ups.
5108
51092014-01-20  Robert Dewar  <dewar@adacore.com>
5110
5111	* gnat1drv.adb: Minor comment update.
5112
51132014-01-20  Tristan Gingold  <gingold@adacore.com>
5114
5115	* raise-gcc.c (PERSONALITY_FUNCTION/arm): Remove unused
5116	variables, comment out unused code.
5117	* a-exexpr-gcc.adb: Move declarations to s-excmac-gcc.ads
5118	* s-excmac-gcc.ads: New file, extracted from a-exexpr-gcc.adb
5119	* s-excmac-arm.ads: New file.
5120
51212014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
5122
5123	* exp_ch4.adb (Expand_N_Slice): Remove constant D and variables
5124	Drange and Index_Typ. Remove the circuitry which creates a
5125	range check to compare the index type of the array against the
5126	discrete_range.
5127	* sem_res.adb (Resolve_Slice): Add local variable Dexpr. Update
5128	the circuitry which creates a range check to handle a
5129	discrete_range denoted by a subtype indication.
5130
51312014-01-20  Pierre-Marie Derodat  <derodat@adacore.com>
5132
5133	* sinput.adb, sinput.ads (Sloc_Range): Traverse the tree of original
5134	nodes to get the original sloc range.
5135
51362014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
5137
5138	* sem_prag.adb (Analyze_Pragma): Use Defining_Entity to obtain the
5139	entity of a [library level] package.
5140
51412014-01-20  Tristan Gingold  <gingold@adacore.com>
5142
5143	* raise-gcc.c (exception_class_eq): New function.
5144	(is_handled_by): Use it to compare exception classes.
5145	(PERSONALITY_STORAGE): Define.	(continue_unwind): New function to
5146	be called to return URC_CONTINUE_UNWIND.
5147	(personality_body): New function, extracted from PERSONALITY_ROUTINE.
5148	(PERSONALITY_ROUTINE): Add an implementation for the ARM unwinder.
5149
51502014-01-20  Robert Dewar  <dewar@adacore.com>
5151
5152	* opt.ads: Minor comment update.
5153
51542014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
5155
5156	* exp_ch4.adb (Expand_N_Slice): Relocate some variables and
5157	constants to the "Local variables" area. Add new constant D. Add
5158	new variables Drange and Index_Typ.  Rename Pfx to Rep and Ptp
5159	to Pref_Typ and update all occurrences. Add circuitry to extract
5160	the discrete_range and the index type and build a range check.
5161
51622014-01-20  Arnaud Charlet  <charlet@adacore.com>
5163
5164	* gnat1drv.adb (Adjust_Global_Switches): Enable
5165	Treat_Categorization_Errors_As_Warnings when Relaxed_RM_Semantics
5166	is set.
5167
51682014-01-20  Thomas Quinot  <quinot@adacore.com>
5169
5170	* sem_ch5.adb, sem_ch4.adb: Minor reformatting.
5171
51722014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
5173
5174	* sem_ch13.adb (Analyze_Aspect_Specifications):
5175	When aspect SPARK_Mode appears on a package body, insert the
5176	generated pragma at the top of the body declarations.
5177
51782014-01-20  Robert Dewar  <dewar@adacore.com>
5179
5180	* sem_aggr.adb, exp_prag.adb, sem_aux.adb, sinfo.ads, sem_ch10.adb,
5181	checks.adb, sem_prag.adb, sem_ch12.adb, freeze.adb, g-arrspl.adb,
5182	expander.adb, gnat1drv.adb, exp_ch4.adb, sem_ch6.adb,
5183	sem_ch8.adb, exp_dist.adb: Minor reformatting.
5184
51852014-01-20  Yannick Moy  <moy@adacore.com>
5186
5187	* gnat1drv.adb (Gnat1drv): Call Write_ALI with Object=True in GNATprove
5188	mode.
5189
51902014-01-20  Pascal Obry  <obry@adacore.com>
5191
5192	* g-arrspl.ads (Slice_Set): New definition (will use a copy on
5193	write scheme).
5194	* g-arrspl.adb: Adapt all routine to this new implementation.
5195	(Set): Copy the Slice_Set definition before reusing it.
5196
51972014-01-20  Arnaud Charlet  <charlet@adacore.com>
5198
5199	* sem_prag.adb (Process_Import_Or_Interface): In
5200	Relaxed_RM_Semantics, support old Ada 83 style of pragma Import.
5201	(Analyze_Pragma): Ditto for pragma Export.
5202	* exp_prag.adb (Expand_Pragma_Import_Or_Interface): Handle old pragma
5203	Import style.
5204
52052014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
5206
5207	* einfo.ads: E_Abstract_State is now part of the entities that
5208	can be overloaded. Update type Overloadable_Kind to reflect the
5209	inclusion of abstract states.
5210	* sem_ch6.adb (New_Overloaded_Entity): A function can now
5211	overload an abstract state.
5212	* sem_prag.adb (Analyze_Constituent): Handle the overloading
5213	of states by functions. Use Entity_Of to obtain the entity of
5214	a constituent.	(Analyze_Global_Item): Handle the overloading of
5215	states by functions.
5216	(Analyze_Initialization_Item): Handle the
5217	overloading of states by functions.  Use Entity_Of to obtain the
5218	entity of an item.
5219	(Analyze_Input_Item): Handle the overloading
5220	of states by functions. Use Entity_Of to obtain the entity of an item.
5221	(Analyze_Input_Output): Handle the overloading of states by functions.
5222	(Analyze_Refinement_Clause): Handle the overloading
5223	of states by functions.  Use Entity_Of to obtain the entity of an item.
5224	(Appears_In): Use Entity_Of to obtain the entity of an element.
5225	(Check_Usage): Use Entity_Of to obtain the entity of
5226	an item. Add a guard to prevent a crash due to a previous error.
5227	(Resolve_State): New routine.
5228
52292014-01-20  Yannick Moy  <moy@adacore.com>
5230
5231	* spark_xrefs.ads, debug.adb, gnat1drv.adb, errout.adb, errout.ads,
5232	opt.ads: Minor comments updates.
5233
52342014-01-20  Hristian Kirtchev  <kirtchev@adacore.com>
5235
5236	* einfo.adb (Non_Limited_View): Applies to abstract states.
5237	(Set_From_Limited_With): Applies to abstract states.
5238	(Set_Non_Limited_View): Applies to abstract states.
5239	(Write_Field17): Output the non-limited view of an abstract state.
5240	* einfo.ads: Update the comment on usage and occurrences in
5241	nodes for attributes From_Limited_With and Non_Limited_View.
5242	* sem_aux.adb (Available_View): This routine can now handle
5243	abstract states.
5244	* sem_aux.ads (Available_View): This routine can now handle
5245	abstract states. Update the comment on usage.
5246	* sem_ch8.adb (Find_Expanded_Name): Handle abstract views
5247	of states and variables.
5248	(In_Pragmas_Depends_Or_Global): New routine.
5249	* sem_ch10.adb (Build_Limited_Views): Implement
5250	abstract (limited) views of variables and states.
5251	(Build_Shadow_Entity): This routine is now a procedure. Add
5252	formal parameter Shadow. Update the comment on usage. Add
5253	context-specific decoration for states and variables.
5254	(Decorate_State): New routine.	(Decorate_Variable): New routine.
5255	(Find_And_Process_States): New routine.
5256	(Process_Declarations): Renamed to Process_Declarations_And_States.
5257	(Process_Declarations_And_States): Add formal parameters
5258	Pack and Create_Abstract_Views. Update the comment on usage.
5259	(Process_States): New routine.
5260	* sem_prag.adb (Check_Dependency_Clause): Handle abstract
5261	views of states and variables. Match the abstract view of a state
5262	against its corresponding non-abstract view.
5263	(Is_Matching_Input):
5264	Handle abstract views of states and variables. Match the abstract
5265	view of a state against its corresponding non-abstract view.
5266	(Process_Global_Item): Handle abstract views of states and
5267	variables.
5268
52692014-01-20  Bob Duff  <duff@adacore.com>
5270
5271	* sem_ch10.adb (Expand_With_Clause): Don't
5272	recurse on the prefix if the current with-ed name refers to a
5273	package that renames its own parent, eg "package P.Q renames P;".
5274
52752014-01-20  Yannick Moy  <moy@adacore.com>
5276
5277	* exp_spark.adb (Expand_SPARK_Call): Remove procedure.
5278	* opt.adb, opt.ads (Full_Expander_Active): Remove function.
5279	* checks.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb, sem_aggr.adb,
5280	* sem_ch10.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb,
5281	* sem_disp.adb, sem_res.adb Replace Full_Expander_Active by
5282	Expander_Active.
5283
52842014-01-20  Yannick Moy  <moy@adacore.com>
5285
5286	* sinfo.ads Update documentation of GNATprove mode.
5287
52882014-01-20  Yannick Moy  <moy@adacore.com>
5289
5290	* adabkend.adb, ali-util.adb, errout.adb, exp_ch7.adb,
5291	* exp_dbug.adb, freeze.adb, lib-xref.adb, restrict.adb,
5292	* sem_attr.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb,
5293	* sem_prag.adb, sem_res.adb, sem_util.adb Rename SPARK_Mode into
5294	GNATprove_Mode.
5295	* sem_ch13.adb: Remove blank.
5296	* exp_spark.adb, exp_spark.ads (Expand_SPARK_Call): Only replace
5297	subprograms by alias for renamings, not for inherited primitive
5298	operations.
5299	* exp_util.adb (Expand_Subtype_From_Expr): Apply the expansion
5300	in GNATprove mode.
5301	(Remove_Side_Effects): Apply the removal in
5302	GNATprove mode, for the full analysis of expressions.
5303	* expander.adb (Expand): Call the light SPARK expansion in GNATprove
5304	mode.
5305	(Expander_Mode_Restore, Expander_Mode_Save_And_Set): Ignore
5306	save/restore actions for Expander_Active flag in GNATprove mode,
5307	similar to what is done in ASIS mode.
5308	* frontend.adb (Frontend): Generic bodies are instantiated in
5309	GNATprove mode.
5310	* gnat1drv.adb (Adjust_Global_Switches): Set operating
5311	mode to Check_Semantics in GNATprove mode, although a light
5312	expansion is still performed.
5313	(Gnat1drv): Set Back_End_Mode to
5314	Declarations_Only in GNATprove mode, and later on special case
5315	the GNATprove mode to continue analysis anyway.
5316	* lib-writ.adb (Write_ALI): Always generate ALI files in
5317	GNATprove mode.
5318	* opt.adb, opt.ads (Full_Expander_Active): Make it equivalent to
5319	Expander_Active.
5320	(SPARK_Mode): Renamed as GNATprove_Mode.
5321	* sem_aggr.adb (Aggregate_Constraint_Checks): Add checks in the
5322	tree in GNATprove_Mode.
5323	* sem_ch12.adb (Analyze_Package_Instantiation): Always instantiate
5324	body in GNATprove mode.
5325	(Need_Subprogram_Instance_Body): Always instantiate body in GNATprove
5326	mode.
5327	* sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl):
5328	Make sure side effects are removed in GNATprove mode.
5329
53302014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
5331
5332	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Robustify tests
5333	for aliased objects with an unconstrained nominal subtype.
5334	* gcc-interface/trans.c (Call_to_gnu): Likewise.
5335	(gnat_to_gnu) <case N_Op_Not>: Robustify test for private type.
5336	<case N_Op_Minus>: Remove useless code.
5337	(Exception_Handler_to_gnu_zcx): Minor tweaks.
5338
53392014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
5340
5341	* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Record_Subtype>:
5342	Tidy up.  For a subtype with discriminants and variant part, if a
5343	variant is statically selected and the fields all have a constant
5344	position, put them in order of increasing position.  Likewise if
5345	no variant part but representation clause is present.
5346	* gcc-interface/utils.c (make_packable_type): Robustify.
5347	(maybe_pad_type): Use local variable and tidy up condition.  If no
5348	alignment is specified, use the original one.
5349	(create_type_stub_decl): Minor tweak.
5350	(convert) <case VECTOR_CST>: Fix typo.
5351	<case CONSTRUCTOR>: Deal with padding types around the same type.
5352	Do not punt on missing fields.
5353	(unchecked_convert): Call finish_record_type to lay out the special
5354	record types made for conversions from/to problematic integer types.
5355	Bump the alignment of CONSTRUCTORs before converting them to a more
5356	aligned type.
5357
53582014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
5359
5360	* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Component>: Remove
5361	obsolete code for type_annotate_only mode, simplify code and slightly
5362	improve wording of comments.
5363
53642014-01-12  Eric Botcazou  <ebotcazou@adacore.com>
5365
5366	PR ada/59772
5367	* gcc-interface/cuintp.c (build_cst_from_int): Use 32-bit integer type
5368	as intermediate type.
5369	(UI_To_gnu): Likewise.
5370
53712014-01-03  Eric Botcazou  <ebotcazou@adacore.com>
5372
5373	* gnatvsn.ads (Current_Year): Bump to 2014.
5374
53752014-01-02  Tobias Burnus  <burnus@net-b.de>
5376
5377	* gnat_ugn.texi: Bump @copying's copyright year.
5378
5379Copyright (C) 2014 Free Software Foundation, Inc.
5380
5381Copying and distribution of this file, with or without modification,
5382are permitted in any medium without royalty provided the copyright
5383notice and this notice are preserved.
5384