]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
[multiple changes]
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
4c51ff88
AC
12014-02-25 Robert Dewar <dewar@adacore.com>
2
3 * einfo.ads, einfo.adb (Has_Shift_Operator): New flag.
4 * gnat_rm.texi: Document pragma Provide_Shift_Operators.
5 * interfac.ads: Minor code reorganization (add pragma
6 Compiler_Unit_Warning).
7 * par-prag.adb: Add dummy entry for Provide_Shift_Operators.
8 * sem_ch3.adb (Build_Derived_Numeric_Type): Copy
9 Has_Shift_Operator flag.
10 * sem_intr.adb (Check_Intrinsic_Subprogram): Make sure
11 Check_Shift is always called (Check_Shift): Set Has_Shift_Operator.
12 * sem_prag.adb: Implement pragma Provide_Shift_Operators.
13 * snames.ads-tmpl: Add entries for pragma Provide_Shift_Operators
14 Add entry for Name_Amount.
15 * checks.adb (Selected_Range_Checks): When checking for a null
16 range, make sure we use the base type, and not the subtype for
17 deciding a range is null.
18 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check
19 for suspicious loop bound which is outside the range of the
20 loop subtype.
21 * gnat_ugn.texi: Add documentation section "Determining the
22 Chosen Elaboration Order"
23 * sem_ch13.adb (UC_Entry): Add field Act_Unit
24 (Validate_Unchecked_Conversion): Store Act_Unit
25 (Validate_Unchecked_Conversions): Test Warnings_Off in Act_Unit
26 * treepr.adb: Minor reformatting.
27
282014-02-25 Arnaud Charlet <charlet@adacore.com>
29
30 * usage.adb: Minor: fix typo.
31
0355e3eb
AC
322014-02-25 Robert Dewar <dewar@adacore.com>
33
34 * lib.ads, s-bitops.adb, s-bitops.ads, s-conca5.adb, gnat_rm.texi,
35 s-conca5.ads, s-conca7.adb, s-conca7.ads, s-crc32.adb, s-crc32.ads,
36 s-conca9.adb, s-conca9.ads, g-dyntab.adb, s-crtl.ads, g-dyntab.ads,
37 s-excdeb.adb, s-addope.adb, s-addope.ads, s-carun8.adb, s-carun8.ads,
38 g-htable.adb, g-htable.ads, g-hesora.adb, g-hesora.ads, s-conca2.adb,
39 s-conca2.ads, a-comlin.adb, a-chlat1.ads, a-comlin.ads, errout.ads,
40 a-except.adb, s-conca4.adb, a-except.ads, s-conca4.ads, s-conca6.adb,
41 s-conca6.ads, g-spchge.adb, g-spchge.ads, g-u3spch.adb, g-u3spch.ads,
42 a-strhas.ads, restrict.adb, aspects.adb, aspects.ads, s-conca8.adb,
43 s-conca8.ads, back_end.adb, par-prag.adb, g-byorma.adb, g-byorma.ads,
44 a-elchha.adb, a-elchha.ads, g-speche.adb, g-speche.ads, s-casuti.adb,
45 s-assert.adb, s-casuti.ads, s-assert.ads, a-clrefi.adb, a-clrefi.ads,
46 s-conca3.adb, s-conca3.ads, a-ioexce.ads: Implement pragma
47 Compiler_Unit_Warning, change Compiler_Unit everywhere to
48 Compiler_Unit_Warning.
49
502014-02-25 Sergey Rybin <rybin@adacore.com frybin>
51
52 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Do not normalize
53 in ASIS mode aggregates that are used as aspect definitions.
54
e917e3b8
AC
552014-02-25 Robert Dewar <dewar@adacore.com>
56
57 * exp_ch7.adb, sem_util.adb, sem_util.ads, exp_ch6.adb: Minor
58 reformatting.
59
602014-02-25 Ed Schonberg <schonberg@adacore.com>
61
62 * freeze.adb (Freeze_Entity): If the return type of a function
63 is a limited view, and the non-limited view has not been seen yet,
64 defer freezing to some later point.
65
662014-02-25 Robert Dewar <dewar@adacore.com>
67
68 * sem_ch3.adb: Minor reformatting.
69
702014-02-25 Robert Dewar <dewar@adacore.com>
71
72 * s-excdeb.ads, s-except.ads, s-exctab.adb, s-exctab.ads, s-finmas.ads,
73 s-htable.adb, s-htable.ads, s-imenne.adb, s-imenne.ads, s-imgenu.adb,
74 s-imgenu.ads, s-mastop.adb, s-mastop.ads, s-memory-vms_64.adb,
75 s-memory-vms_64.ads, s-memory.adb, s-memory.ads, s-os_lib.adb,
76 s-os_lib.ads, s-parame.adb, s-parame.ads, s-purexc.ads, s-restri.adb,
77 s-restri.ads, s-rident.ads, s-secsta.adb, s-secsta.ads, s-soflin.adb,
78 s-soflin.ads, s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
79 s-sopco5.adb, s-sopco5.ads, s-spsufi.ads, s-stache.adb, s-stache.ads,
80 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads, s-strcom.adb,
81 s-strcom.ads, s-strhas.adb, s-string.adb, s-string.ads, s-strops.adb,
82 s-strops.ads, s-ststop.adb, s-ststop.ads, s-traceb.adb, s-traceb.ads,
83 s-traent.adb, s-traent.ads, s-unstyp.ads, s-utf_32.adb, s-utf_32.ads,
84 s-wchcnv.adb, s-wchcnv.ads, s-wchcon.adb, s-wchcon.ads, s-wchjis.adb,
85 s-wchjis.ads, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_prag.adb,
86 snames.ads-tmpl: Change Compiler_Unit everywhere to
87 Compiler_Unit_Warning.
88
5f24a82a
HK
892014-02-25 Hristian Kirtchev <kirtchev@adacore.com>
90
91 * exp_ch6.adb (Add_Or_Save_Precondition): New routine.
92 (Collect_Body_Postconditions_In_Decls): New routine.
93 (Collect_Body_Postconditions_Of_Kind): Factor out code. Handle
94 postcondition aspects or pragmas that appear on a subprogram
95 body stub.
96 (Collect_Spec_Preconditions): Factor out code. Handle
97 precondition aspects or pragmas that appear on a subprogram
98 body stub.
99 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The analysis of
100 aspects that apply to a subprogram body stub is no longer delayed,
101 the aspects are analyzed on the spot.
102 (SPARK_Aspect_Error):
103 Aspects that apply to a subprogram declaration cannot appear in
104 a subunit.
105 * sem_ch10.adb Remove with and use clause for Sem_Ch13.
106 (Analyze_Proper_Body): Add local variable Comp_Unit. Unum
107 is now a local variable. Code cleanup. Analysis related to
108 the aspects of a subprogram body stub is now carried out by
109 Analyze_Subprogram_Body_Helper. Do not propagate the aspects
110 and/or pragmas of a subprogram body stub to the proper body
111 as this is no longer needed. Do not analyze the aspects of a
112 subprogram stub when the corresponding source unit is missing.
113 (Analyze_Protected_Body_Stub): Flag the illegal use of aspects
114 on a stub.
115 (Analyze_Task_Body_Stub): Flag the illegal use of
116 aspects on a stub.
117 (Optional_Subunit): Add local variable Unum.
118 * sem_ch13.adb (Insert_Delayed_Pragma): Do not analyze a generated
119 pragma when it applies to a subprogram body stub.
120 * sem_prag.adb (Analyze_Pragma): Pragmas Contract_Cases,
121 Depends and Global can now apply to a subprogram body stub as
122 long as it acts as its own spec.
123 (Analyze_Refined_Pragma):
124 Code reformatting. Refinement pragmas cannot apply to a subunit.
125
7edfb4c6
HK
1262014-02-25 Hristian Kirtchev <kirtchev@adacore.com>
127
128 * einfo.ads Update the usage of flag
129 Uses_Sec_Stack. Uses_Sec_Stack now applies to E_Loop entities.
130 * exp_ch5.adb (Expand_Iterator_Loop): The temporary for a cursor
131 now starts with the letter 'C'. This makes reading expanded
132 code easier.
133 * exp_ch7.adb (Establish_Transient_Scope): Add local variable
134 Iter_Loop. Signal that an Ada 2012 iterator loop requires
135 secondary stack management when creating a transient scope for
136 an element reference.
137 * exp_util.adb (Process_Statements_For_Controlled_Objects):
138 When wrapping the statements of a loop, pass the E_Loop entity
139 to the wrapping machinery.
140 (Wrap_Statements_In_Block): Add
141 formal parameter Scop along with comment on usage. Add local
142 variables Block_Id, Block_Nod and Iter_Loop. Mark the generated
143 block as requiring secondary stack management when the block is
144 created inside an Ada 2012 iterator loop. This ensures that any
145 reference objects are reclaimed on each iteration of the loop.
146 * sem_ch5.adb (Analyze_Loop_Statement): Mark the generated block
147 tasked with the handling of container iterators as requiring
148 secondary stack management. This ensures that iterators are
149 reclaimed when the loop terminates or is exited in any fashion.
150 * sem_util.adb (Add_Block_Identifier): New routine.
151 (Find_Enclosing_Iterator_Loop): New routine.
152 * sem_util.ads (Add_Block_Identifier): New routine.
153 (Find_Enclosing_Iterator_Loop): New routine.
154
bbe9779c
AC
1552014-02-25 Robert Dewar <dewar@adacore.com>
156
157 * sinfo.ads: Minor reformatting.
158
1592014-02-25 Tristan Gingold <gingold@adacore.com>
160
161 * s-expllu.ads, s-expuns.ads, s-expmod.ads: Minor comment fix.
162
1632014-02-25 Pascal Obry <obry@adacore.com>
164
165 * sinput-l.adb, osint.adb, osint.ads: Add Prep_Suffix to factorize code.
166
1ae8beef
AC
1672014-02-25 Tristan Gingold <gingold@adacore.com>
168
169 * sem_ch10.adb: Minor comment fix.
170
1712014-02-25 Bob Duff <duff@adacore.com>
172
173 * s-tasdeb.adb: Misc cleanup of this package,
174 including printing addresses in hexadecimal.
175 (Write): Fix minor bug when taking 'Address of an empty string.
176
1772014-02-25 Ed Schonberg <schonberg@adacore.com>
178
179 * sem_prag.adb (Analyze_Part_Of): Reject state refinement in a
180 public child unit when it does not refer to the abstract state
181 of a public ancestor.
182
ca11219d
AC
1832014-02-25 Yannick Moy <moy@adacore.com>
184
185 * sem_prag.adb (Analyze_Pragma/Pragma_Validity_Checks): Ignore pragma
186 Validity_Checks in GNATprove and CodePeer modes.
187
1882014-02-25 Pascal Obry <obry@adacore.com>
189
190 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add package Install's
191 Artifacts attribute.
192
6e32b1ab
AC
1932014-02-25 Yannick Moy <moy@adacore.com>
194
195 * sem_prag.adb: Minor reformatting to get consistent messages.
196
1972014-02-25 Robert Dewar <dewar@adacore.com>
198
199 * checks.adb: Minor reformatting.
200 * sinfo.ads (Do_Range_Check): Document that this flag is never
201 passed to the back end.
202
f9966234
AC
2032014-02-25 Yannick Moy <moy@adacore.com>
204
205 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem_attr.adb,
206 sem_ch6.adb: Remove useless references to SPARK RM in error messages.
207
2082014-02-25 Hristian Kirtchev <kirtchev@adacore.com>
209
210 * sem_res.adb (Appears_In_Check): New routine.
211 (Resolve_Entity_Name): Remove local variables Prev and
212 Usage_OK. Par is now a constant. Remove the parent chain traversal
213 as the placement of a volatile object with enabled property
214 Async_Writers and/or Effective_Reads must appear immediately
215 within a legal construct.
216
2172014-02-25 Hristian Kirtchev <kirtchev@adacore.com>
218
219 * checks.adb (Apply_Selected_Range_Checks):
220 Alphabetize local constants and variables. Add comments.
221 Always insert a range check that requires runtime evaluation into
222 the tree.
223
a6abfd78
AC
2242014-02-25 Robert Dewar <dewar@adacore.com>
225
226 * sem_attr.adb, sem_ch6.adb, par-ch3.adb: Minor reformatting.
227
2282014-02-25 Bob Duff <duff@adacore.com>
229
230 * s-tassta.adb (Finalize_Global_Tasks): Limit the number of loop
231 iterations while waiting for independent tasks to terminate;
232 if an independent task does not terminate, we do not want to
233 hang here. In that case, the thread will be terminated when the
234 process exits.
235 * s-taprop-linux.adb (Abort_Task): Fix Assert to allow for ESRCH.
236
2372014-02-25 Ed Schonberg <schonberg@adacore.com>
238
239 * sem_prag.adb (Check_SPARK_Aspect_For_ASIS): New subprogram,
240 used to perform pre-analysis of the expression for SPARK
241 aspects that have a non-standard syntax, such as GLobal and
242 Initializes. The procedure applies to the original expression
243 in an aspect specification, prior to the analysis of the
244 corresponding pragma, in order to provide semantic information
245 for ASIS navigation purposes.
246 (Analyze_Global_In_Decl_List, Analyze_Initializes_In_Decl_Part):
247 Call new subprogram.
248
64e86d00
AC
2492014-02-25 Yannick Moy <moy@adacore.com>
250
251 * sem_prag.adb: Remove obsolete reference to SPARK RM in error message.
252
2532014-02-25 Doug Rupp <rupp@adacore.com>
254
255 * init.c (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Enable for ARM.
256 (__gnat_adjust_context_for_raise): Bump the PC by 2.
257
2582014-02-25 Ed Schonberg <schonberg@adacore.com>
259
260 * par-ch3.adb (P_Basic_Declarative_Items): In the case of a
261 misplaced IS, add a statement sequence to improper body only if
262 one has not been parsed already.
263
2642014-02-25 Ed Schonberg <schonberg@adacore.com>
265
266 * sem_attr.adb (Analyze_Attribute, case 'Update): Check for
267 mismatch when multidimensional array is updated with a single
268 index.
269
3684d1fc
YM
2702014-02-25 Yannick Moy <moy@adacore.com>
271
272 * sem_ch3.adb, sem_ch5.adb, sem_prag.adb, sem_attr.adb, errout.ads,
273 sem_ch6.adb: Mark most references to SPARK RM in error messages
274 for removal.
275
b2afe274
AC
2762014-02-24 Ed Schonberg <schonberg@adacore.com>
277
278 * par-ch3.adb (P_Basic_Declarative_Items): If an improper body
279 appears in a list of basic declarations, complete the tree with
280 an empty statement list, to prevent cascaded errors and crashes
281 if semantic analysis is attempted.
282
b5eccd0c
AC
2832014-02-24 Thomas Quinot <quinot@adacore.com>
284
285 * g-sercom-mingw.adb (Open): Fix incorrect test for error return
286 value.
287 * erroutc.adb: Minor reformatting.
288
2892014-02-24 Hristian Kirtchev <kirtchev@adacore.com>
290
291 * sem_prag.adb (Check_Clause_Syntax): Account
292 for a solitary input item in a dependency list.
293
2942014-02-24 Yannick Moy <moy@adacore.com>
295
296 * gnat1drv.adb (Adjust_Global_Switches): Do not
297 use validity checks at all in GNATprove_Mode.
298
f34b5d88
RD
2992014-02-24 Robert Dewar <dewar@adacore.com>
300
301 * g-sercom-mingw.adb, g-sercom-linux.adb, sem_prag.adb, freeze.adb,
302 atree.adb, atree.ads: Minor reformatting.
303
2dade097
HK
3042014-02-24 Hristian Kirtchev <kirtchev@adacore.com>
305
306 * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not enforce
307 global and dependence refinement when SPARK_Mode is off.
308 * sem_ch7.adb (Analyze_Package_Body_Contract): Do not enforce
309 state refinement when SPARK_Mode is off.
310 * sem_ch13.adb (Analyze_Aspect_Specifications): Add local
311 variable Decl. Insert the generated pragma for Refined_State
312 after a potential pragma SPARK_Mode.
313 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add local
314 constant Deps. Remove local variable Expr. Check the syntax
315 of pragma Depends when SPARK_Mode is off. Factor out the
316 processing for extra parenthesis around individual clauses.
317 (Analyze_Global_In_Decl_List): Items is now a constant. Check
318 the syntax of pragma Global when SPARK_Mode is off.
319 (Analyze_Initializes_In_Decl_Part): Check the syntax of pragma
320 Initializes when SPARK_Mode is off.
321 (Analyze_Part_Of): Check
322 the syntax of the encapsulating state when SPARK_Mode is off.
323 (Analyze_Pragma): Check the syntax of pragma Abstract_State when
324 SPARK_Mode is off. Move the declaration order check with respect
325 to pragma Initializes to the end of the processing. Do not verify
326 the declaration order for pragma Initial_Condition when SPARK_Mode
327 is off. Do not complain about a useless package refinement when
328 SPARK_Mode is off.
329 (Analyze_Refined_Depends_In_Decl_Part): Refs
330 is now a constant. Check the syntax of pragma Refined_Depends
331 when SPARK_Mode is off.
332 (Analyze_Refined_Global_In_Decl_Part):
333 Check the syntax of pragma Refined_Global when SPARK_Mode is off.
334 (Analyze_Refined_State_In_Decl_Part): Check the syntax of pragma
335 Refined_State when SPARK_Mode is off.
336 (Check_Dependence_List_Syntax): New routine.
337 (Check_Global_List_Syntax): New routine.
338 (Check_Initialization_List_Syntax): New routine.
339 (Check_Item_Syntax): New routine.
340 (Check_State_Declaration_Syntax): New routine.
341 (Check_Refinement_List_Syntax): New routine.
342 (Has_Extra_Parentheses): Moved to the top level of Sem_Prag.
343
158d55fa
AC
3442014-02-24 Robert Dewar <dewar@adacore.com>
345
346 * a-tags.adb, s-os_lib.adb: Minor reformatting.
347
3482014-02-24 Thomas Quinot <quinot@adacore.com>
349
350 * g-sercom-mingw.adb, g-sercom-linux.adb (Raise_Error): Include
351 strerror message, not just numeric errno value.
352
3532014-02-24 Doug Rupp <rupp@adacore.com>
354
355 * raise-gcc.c (exception_class_eq): Make endian neutral.
356
3572014-02-24 Ed Schonberg <schonberg@adacore.com>
358
359 * atree.ads, atree,adb (Copy_Separate_Tree): Remove Syntax_Only
360 flag, and reset Etype and Analyzed attributes unconditionally
361 when copying a tree that may be partly analyzed.
362 * freeze.adb: Change calls to Copy_Separate_Tree accordingly.
363 * sem_ch6.adb (Check_Inline_Pragma): If the Inline pragma appears
364 within a subprogram body and applies to it, remove it from the
365 body before making a copy of it, to prevent spurious errors when
366 analyzing the copied body.
367
f1a3590e
AC
3682014-02-24 Thomas Quinot <quinot@adacore.com>
369
370 * s-os_lib.adb (Errno_Message): Do not depend on Integer'Image.
371 * s-oscons-tmplt.c: On VxWorks, include adaint.h only after
372 vxWorks.h has been included. Also ensure that file attributes
373 related definitions are output even in cases where socket support
374 is not enabled.
375 * a-tags.adb: Code clean up.
376 * Make-generated.in (OSCONS_CPP, OSCONS_EXTRACT): Use -iquote
377 instead of -I to add the main ada source directory to the header
378 search path, in order to avoid conflict between our own "types.h"
379 and VxWork's <types.h>.
380
3812014-02-24 Robert Dewar <dewar@adacore.com>
382
383 * atree.ads, atree.adb (Copy_Separate_Tree): Add Syntax_Only parameter.
384 * debug.adb: Remove documentation of -gnatd.X, no longer used.
385 * freeze.adb (Wrap_Imported_Subprogram): Fixed and activated.
386
3872014-02-24 Bob Duff <duff@adacore.com>
388
389 * gnat_ugn.texi: Improve documentation of gnatpp.
390
47752af2
TQ
3912014-02-24 Thomas Quinot <quinot@adacore.com>
392
393 * g-stheme.adb, g-socthi-vms.adb, g-socthi-vms.ads,
394 g-socthi-vxworks.adb, g-socthi-vxworks.ads, g-stseme.adb,
395 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb,
396 g-socthi.ads, g-socket.adb (Host_Error_Message): Return a string, not
397 a chars_ptr, because on Windows this is a renaming of
398 Socket_Error_Message.
399
1b31321b
AC
4002014-02-24 Robert Dewar <dewar@adacore.com>
401
402 * a-direct.adb, sem_ch5.adb, a-cfdlli.adb, a-cfhase.adb, a-tags.adb,
403 s-filatt.ads, a-cforma.adb, sem_ch6.adb, g-socthi-mingw.adb,
404 a-cfhama.adb, a-cforse.adb, a-cofove.adb: Minor reformatting and code
405 reorganization.
406
4072014-02-24 Thomas Quinot <quinot@adacore.com>
408
409 * Make-generated.in (OSCONS_CPP, OSCONS_EXTRACT): Make sure
410 that the source directory containing s-oscons-tmplt.c is on the
411 include path, so that all internal header files are available.
412
28108618
ES
4132014-02-24 Ed Schonberg <schonberg@adacore.com>
414
415 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the
416 domain of iteration is an attribute reference 'Old, this is an
417 Ada 2012 iterator and the loop must be rewritten as such.
418
3e5b1f32
TQ
4192014-02-24 Thomas Quinot <quinot@adacore.com>
420
421 * s-fileio.adb (Errno_Message): Remove, use shared version from
422 s-os_lib instead.
423 * s-crtrun.ads, Makefile.rtl: Remove now unused unit.
424 * g-stseme (Socket_Error_Message): Reimplement in terms of new
425 s-os_lib function.
426 * g-socthi.ads, g-socthi.adb: Change profile of
427 Socket_Error_Message to return String to allow the above.
428 * g-socket.adb, g-socthi-mingw.adb, g-socthi-mingw.ads,
429 * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
430 * g-socthi-vxworks.ads: Update to account for the above profile
431 change.
432 * a-tags.adb: Use strlen builtin binding provided by s-crtl.
433 * s-crtl.ads (strncpy): New procedure.
434 * s-os_lib.adb (Copy_Attributes): Import just once (strncpy):
435 Use import from s-crtl.
436 * a-envvar.adb, osint.adb: Use imports of C runtime functions
437 from s-crtl instead of re-importing locally.
438
c6d2191a
AC
4392014-02-24 Hristian Kirtchev <kirtchev@adacore.com>
440
441 * sem_prag.adb (Analyze_Global_Item): Emit the
442 variable related checks concerning volatile objects only when
443 SPARK_Mode is on.
444
4452014-02-24 Robert Dewar <dewar@adacore.com>
446
447 * sem_ch5.adb (Analyze_Iterator_Specification): use
448 Error_Msg_Ada_2012_Feature.
449
4502014-02-24 Jose Ruiz <ruiz@adacore.com>
451
452 * s-rident.ads (Profile_Info): For Ravenscar, the restrictions
453 No_Local_Timing_Events and No_Specific_Termination_Handlers
454 must be set, according to the Ravenscar profile definition
455 in D.13(6/3).
456
4572014-02-24 Ed Schonberg <schonberg@adacore.com>
458
459 * sem_ch6.adb (Analyze_Expression_Function): If this is a
460 completion, freeze return type and its designated type if needed.
461
4622014-02-24 Thomas Quinot <quinot@adacore.com>
463
464 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
465 'Address): When moving initialization statements to a freeze
466 entity, keep them under a single node (i.e. do not unwrap
467 expressions with actions), and set the Initialization_Statements
468 attribute again so that processing of a later pragma Import can
469 still remove them.
470
4712014-02-24 Claire Dross <dross@adacore.com>
472
473 * a-cfdlli.adb, a-cfdlli.ads, a-cfhama.adb, a-cfhama.ads,
474 a-cfhase.adb, a-cfhase.ads, a-cforma.adb, a-cforma.ads,
475 a-cforse.adb, a-cforse.ads, a-cofove.adb, a-cofove.ads: Rename
476 Left/Right to First_To_Previous/Current_To_Last.
477
4782014-02-24 Thomas Quinot <quinot@adacore.com>
479
480 * adaint.h (struct file_attributes): New component "error"
481 (__gnat_error_attributes): Accessor for the above.
482 * adaint.c (__gnat_error_attributes): New subprogram
483 (__gnat_stat): Fix returned value (expect errno value)
484 (__gnat_stat_to_attr): Add management of error component (set to
485 stat errno value, except for missing files where it is set to 0,
486 and exists is set to 0).
487 * osint.ads (File_Attributes_Size): Update per change above,
488 also clarify documentation.
489 * s-filatt.ads: New file, binding to file attributes related
490 functions.
491 * Makefile.rtl (s-filatt): New runtime unit.
492 * s-crtl.ads (strlen): Expose binding to GCC builtin (falls back
493 to library function if not available on target).
494 * s-os_lib.ads, s-os_lib.adb (Errno_Message): New subprogram.
495 * s-oscons-tmplt.c (SIZEOF_struct_file_attributes,
496 SIZEOF_struct_dirent_alloc): New constants.
497 * Make-generated.in (s-oscons.ads): Now requires adaint.h.
498 * a-direct.adb (Fetch_Next_Entry): Fix incorrect buffer sizes.
499 Perform appropriate error checking if stat fails (do not just
500 ignore existing files if stat fails)
501 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Update
502 dependencies.
503
ec77b144
HK
5042014-02-24 Hristian Kirtchev <kirtchev@adacore.com>
505
506 * sem_prag.adb (Analyze_Global_Item): Move the check concerning
507 the use of volatile objects as global items in a function to
508 the variable related checks section.
509 * sem_util.adb (Async_Readers_Enabled): Directly call
510 Has_Enabled_Property.
511 (Async_Writers_Enabled): Directly call Has_Enabled_Property.
512 (Effective_Reads_Enabled): Directly call Has_Enabled_Property.
513 (Effective_Writes_Enabled): Directly call Has_Enabled_Property.
514 (Has_Enabled_Property): Rename formal parameter State_Id to Item_Id.
515 Update the comment on usage. State_Has_Enabled_Property how handles
516 the original logic of the routine. Add processing for variables.
517 (State_Has_Enabled_Property): New routine.
518 (Variable_Has_Enabled_Property): New routine.
519
32bba3c9
AC
5202014-02-24 Robert Dewar <dewar@adacore.com>
521
522 * sinfo.ads, sem_ch12.adb, sem_res.adb, sem_ch4.adb, par-ch12.adb:
523 Minor reformatting.
524 * atree.ads, atree.adb (Node35): New function.
525 (Set_Node35): New procedure.
526 * debug.adb: Define new debug flag -gnatd.X.
527 * einfo.ads, einfo.adb (Import_Pragma): New field.
528 * freeze.adb (Wrap_Imported_Procedure): New procedure (not
529 really active yet, has to be activated with -gnatd.X.
530 * sem_prag.adb (Set_Imported): Set new Import_Pragma
531 field (Set_Imported): Don't set Is_Public (see
532 Freeze.Wrap_Imported_Subprogram)
533 * par-ch3.adb (P_Component_List): Handle unexpected null component.
534
5352014-02-24 Yannick Moy <moy@adacore.com>
536
537 * sem_ch3.adb: Correct reference to SPARK RM in error messages.
538 * gnat_rm.texi: Correct documentation of attribute Update.
539
5402014-02-24 Ed Schonberg <schonberg@adacore.com>
541
542 * sem_ch5.adb (Analyze_Iterator_Specification): Reject container
543 iterator in older versions of Ada.
544
97027f64
GD
5452014-02-24 Gary Dismukes <dismukes@adacore.com>
546
547 * sem_ch5.adb, sem_aux.ads, sem_ch12.adb, gnat_ugn.texi, par.adb,
548 par-ch12.adb: Change spelling 'parametrization' to 'parameterization'.
549
5f50020a
ES
5502014-02-24 Ed Schonberg <schonberg@adacore.com>
551
552 * sinfo.ads, sinfo.adb: New attribute Generalized_Indexing, for
553 indexed_components that are instances of Ada 2012 container
554 indexing operations. Analysis and resolution of such nodes
555 is performed on the attribute, and the original source is
556 preserved for ASIS operations. If expansion is enabled, the
557 indexed component is replaced by the value of this attribute,
558 which is in a call to an Indexing aspect, in most case wrapped
559 in a dereference operation.
560 * sem_ch4.adb (Analyze_Indexed_Component): Create
561 Generalized_Indexing attribute when appropriate.
562 (Analyze_Call): If prefix is not overloadable and has an indexing
563 aspect, transform into an indexed component so it can be analyzed
564 as a potential container indexing.
565 (Analyze_Expression): If node is an indexed component with a
566 Generalized_ Indexing, do not re-analyze.
567 * sem_res.adb (Resolve_Generalized_Indexing): Complete resolution
568 of an indexed_component that has been transformed into a container
569 indexing operation.
570 (Resolve_Indexed_Component): Call the above when required.
571 (Resolve): Do not insert an explicit dereference operation on
572 an indexed_component whose type has an implicit dereference:
573 the operation is inserted when resolving the related
574 Generalized_Indexing.
575
ec4e8e9a
AC
5762014-02-24 Olivier Ramonat <ramonat@adacore.com>
577
578 * gnat_rm.texi, gnat_ugn.texi: Replace Ada Compiler by Ada Development
579 Environment.
580
5812014-02-24 Hristian Kirtchev <kirtchev@adacore.com>
582
583 * sem_prag.adb (Check_Constituent_Usage): Remove leading spaces in
584 error messages.
585 (Inconsistent_Mode_Error): Remove leading spaces in error messages.
586 Merge the expected and available mode errors.
587 (Report_Unused_Constituents): Remove leading spaces in error messages.
588 (Report_Unused_States): Remove leading spaces in error messages.
589
e19137bc
AC
5902014-02-24 Thomas Quinot <quinot@adacore.com>
591
592 * par_sco.adb (Traverse_One): Refine categorization of statement
593 SCOs.
594
5952014-02-24 Robert Dewar <dewar@adacore.com>
596
597 * aspects.ads, aspects.adb: Remove aspects Ada_2005 and Ada_2012,
598 Pure_05, Pure_12 and Preelaborate_05.
599 * gnat_rm.texi: Update accordingly.
600 * sem_prag.adb: Document one argument form of Ada_05/Ada_2005
601 pragmas Document one argument form of Ada_12/Ada_2012 pragmas
602 Recognize one argument form of these pragmas only in GNAT mode
603 (-gnatg).
604
1037b0f4
AC
6052014-02-24 Ed Schonberg <schonberg@adacore.com>
606
607 * s-dimmks.ads: Replace symbol for temperature, previously the
608 Greek letter Theta, by the ASCII @ sign.
609 * s-diflio.ads: ditto.
610
6112014-02-24 Robert Dewar <dewar@adacore.com>
612
613 * exp_ch4.adb: Minor code reorganization (use OR for boolean
614 variables).
615 * sem_ch3.adb, sem_prag.adb, freeze.adb: Minor reformatting.
616
6172014-02-24 Ben Brosgol <brosgol@adacore.com>
618
619 * gnat_ugn.texi, projects.texi: Added the necessary conditionalization
620 so that references to gnatmem and ASIS tools do not appear in the FSF
621 edition of the GNAT User's Guide.
622
ebb6b0bd
AC
6232014-02-24 Yannick Moy <moy@adacore.com>
624
625 * freeze.adb (Freeze_Entity): Do not issue warning
626 for pre/post being ignored on imported subprogram in GNATprove
627 mode.
628
6292014-02-24 Robert Dewar <dewar@adacore.com>
630
631 * exp_ch5.adb, sem_ch5.adb, sem_type.adb, sem_res.adb, sem_attr.adb,
632 stand.ads, sem_eval.adb: Minor reformatting.
633
6342014-02-24 Yannick Moy <moy@adacore.com>
635
636 * sem_prag.adb: Minor rewording in error message.
637
6382014-02-24 Johannes Kanig <kanig@adacore.com>
639
640 * exp_util.adb (Expand_Subtype_From_Expr): Do not expand subtypes in
641 GNATprove_mode, gnat2why doesn't need nor use these types.
642
6432014-02-24 Gary Dismukes <dismukes@adacore.com>
644
645 * exp_ch4.adb (Expand_N_Op_Expon): On the AAMP
646 target, in the case of signed integer exponentiation that uses a
647 run-time routine, always select the Exp_* versions, since overflow
648 checking is automatically done by AAMP arithmetic instructions.
649
6502014-02-24 Hristian Kirtchev <kirtchev@adacore.com>
651
652 * sem_ch13.adb (Analyze_Aspect_Specifications):
653 When the related context is a package instace, insert pragma
654 Abstract_State after all internally-generated renamings related
655 to the instance "header".
656
6572014-02-24 Ed Schonberg <schonberg@adacore.com>
658
659 * sem_ch3.adb (Analyze_Declarations): Analyze Contract of abstract
660 subprograms.
661 * sem_disp.adb (Check_Dispatching_Context): A non-dispatching
662 call to an abstract subprogram is legal if it appears in a
663 pre/postcondition of another abstract operation.
664
c97d7285
AC
6652014-02-24 Sergey Rybin <rybin@adacore.com frybin>
666
667 * gnat_ugn.texi: Misc updates.
668
6692014-02-24 Hristian Kirtchev <kirtchev@adacore.com>
670
671 * exp_prag.adb (Expand_Old): Set the type of the generated temporary.
672
6732014-02-24 Gary Dismukes <dismukes@adacore.com>
674
675 * layout.adb (Layout_Variant_Record): Instantiate
676 Generic_Check_Choices and call Check_Choices before calling
677 Build_Discr_Checking_Funcs, since we need Others_Discrete_Choices
678 set to prevent generating incorrect discriminant-checking
679 functions for 'others' variants (functions that unconditionally
680 return True rather than accounting for the values covered by the
681 'others' choice).
682 * sem_eval.ads (Subtypes_Statically_Compatible): Add formal
683 Formal_Derived_Matching.
684 (Subtypes_Statically_Match): Add formal Formal_Derived_Matching.
685 * sem_eval.adb (Subtypes_Statically_Compatible): Pass new
686 Formal_Derived_Matching formal to Subtypes_Statically_Match.
687 (Subtypes_Statically_Match): Suppress the Object_Size matching
688 test in the case where Formal_Derived_Matching is True.
689 * sem_ch12.adb (Validate_Derived_Type_Instance): Pass
690 True for Formal_Derived_Matching_Formal on the call to
691 Subtypes_Statically_Compatible.
692
9fbb94f2
EB
6932014-02-23 Eric Botcazou <ebotcazou@adacore.com>
694
695 * gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS): Robustify.
696
086de490
EB
6972014-02-23 Eric Botcazou <ebotcazou@adacore.com>
698
699 * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting.
700 Look through a conversion between original and packable version to get
701 the base object.
702 (build_component_ref): Rework comment and fix formatting.
703
350b83cc
AC
7042014-02-20 Sergey Rybin <rybin@adacore.com frybin>
705
706 * gnat_ugn.texi, vms_data.ads (gnatelim): Add description of
707 project-specific options.
708
7092014-02-20 Ed Schonberg <schonberg@adacore.com>
710
711 * a-cbdlli.adb (Insert): When capacity exceeded, raise Capacity_Error,
712 not Constraint_Error.
713 * a-cbmutr.adb (Append_Child, Insert_Child, Prepend_Child): Ditto.
714 * sem_ch5.adb: Code clean up.
715
8880426d
AC
7162014-02-20 Hristian Kirtchev <kirtchev@adacore.com>
717
718 * sem_prag.adb (Usage_Error): Remove local
719 constant Typ. Remove the specialized diagnostics for unconstrained
720 or tagged items as those are not part of the explicit input set
721 of the related subprogram and should not be flagged.
722
7232014-02-20 Ed Schonberg <schonberg@adacore.com>
724
725 * sem_attr.adb: Add guard to preserve all errors.
726
7272014-02-20 Vincent Celier <celier@adacore.com>
728
729 * switch-m.adb (Normalize_Compiler_Switches): Take into account
730 switches that are recorded in ALI files: -gnateA, -gnateE,
731 -gnateF, -gnateinn, -gnateu, -gnateV and -gnateY.
732
7332014-02-20 Ed Schonberg <schonberg@adacore.com>
734
735 * sem_ch5.adb (Analyze_Iterator_Specification): Check legality
736 of an element iterator form over a formal container with an
737 Iterable aspect.
738 * exp_ch5.adb (Build_Formal_Container_Iteration): Utility
739 to create declaration and loop statements for both forms of
740 container iterators.
741 (Expand_Formal_Container_Element_Iterator): New procedure
742 to handle loops of the form "for E of C" when C is a formal
743 container.
744 (Expand_Formal_Container_Iterator): Code cleanup.
745
46de64ca
AC
7462014-02-20 Hristian Kirtchev <kirtchev@adacore.com>
747
748 * sem_prag.adb (Add_Item_To_Name_Buffer): New routine.
749 (Analyze_Contract_Case): Remove the use of
750 "may". Replace "aspect Contract_Cases" to avoid categorization
751 of aspect vs pragma.
752 (Analyze_External_Property_In_Decl_Part): Remove the use of "formal".
753 (Analyze_Global_Item): Remove
754 the use of "formal", specify the subprogram. Split the
755 error message about a state with visible refinement into
756 two. Remove the use of "global" from "volatile global item".
757 (Analyze_Initialization_Item): Ensure that the SPARK RM reference
758 is on one line.
759 (Analyze_Input_Output): Update the call to
760 Check_Mode. Specify the duplicated item. Reword the error
761 message concerning an input of a null output list. Use "\"
762 for error message continuation.
763 (Analyze_Part_Of): Remove
764 the use of "may". Use "\" for error message continuation.
765 (Analyze_Refined_Depends_In_Decl_Part): Update the error
766 message concerning a useless refinement to match the format
767 of Refined_Global.
768 (Analyze_Refined_Global_In_Decl_Part): Reword the error message
769 concerning a useless refinement.
770 (Analyze_Refinement_Clause): Use "\" for error message continuation.
771 (Check_Constituent_Usage): Use "\" for error message continuation.
772 (Check_Dependency_Clause): Use "\" for error message continuation.
773 (Check_Matching_Constituent): Use "\" for error message continuation.
774 (Check_Missing_Part_Of): Use "\" for error message continuation.
775 (Check_Mode): Renamed to
776 Check_Role. Update the comment on usage. Redo the error reporting
777 to use Role_Error.
778 (Check_Mode_Restriction_In_Enclosing_Context): Use "\" for error
779 message continuation.
780 (Find_Mode): Renamed to Find_Role. Update the parameter profile along
781 with comment on usage. Update all occurrences of Is_Input and Is_Output.
782 (Inconsistent_Mode_Error): Use "\" for error message continuation.
783 (Input_Match): Use "\" for error message continuation.
784 (Role_Error): New routine.
785 (Set_Convention_From_Pragma): Use "\" for error message continuation.
786 (Usage_Error): Add local variable Error_Msg. Build specialized error
787 message showcasing the offending item kind. Redo the diagnostics for
788 unconstrained types.
789
7902014-02-20 Ed Schonberg <schonberg@adacore.com>
791
792 * exp_util.adb (Is_Iterated_Container): Use high-level primitives
793 to determine whether a type is a container type, rather than
794 examining only its type declaration, so that subtypes and derived
795 types are handled properly.
796
7972014-02-20 Sergey Rybin <rybin@adacore.com frybin>
798
799 * gnat_ugn.texi: gnatmetric: add description of project-specific
800 options.
801
8022014-02-20 Ed Schonberg <schonberg@adacore.com>
803
804 * sem_attr.adb (Analyze_Attribute, case 'Update): Verify that
805 all choices in an association for a record type have the same
806 type, as is done for record aggregates.
807
3e586e10
AC
8082014-02-20 Robert Dewar <dewar@adacore.com>
809
810 * a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb: Use pragma
811 Unmodified rather than Warnings (Off). Make comments
812 uniform in the four affected units.
813
8142014-02-20 Robert Dewar <dewar@adacore.com>
815
816 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
817 Object_Size): For non-scalar types allow any value that is a
818 multiple of 8.
819 * gnat_rm.texi: Document Object_Size for composites more clearly.
820
8212014-02-20 Yannick Moy <moy@adacore.com>
822
823 * sem_util.ads, sem_util.adb (Default_Initialization): Remove function.
824
8252014-02-20 Ed Schonberg <schonberg@adacore.com>
826
827 * stand.ads: Raise_Type: new predefined entity, used as the type
828 of a Raise_Expression prior to resolution.
829 * cstand.adb: Build entity for Raise_Type.
830 * sem_ch11.adb (Analyze_Raise_Expression): use Raise_Type as the
831 initial type of the node.
832 * sem_type.adb (Covers): Raise_Type is compatible with all
833 other types.
834 * sem_res.adb (Resolve): Remove special handling of Any_Type on
835 Raise_Expression nodes.
836 (Resolve_Raise_Expression): Signal ambiguity if the type of the
837 context is still Raise_Type.
838
7f568bfa
AC
8392014-02-20 Robert Dewar <dewar@adacore.com>
840
841 * sem_ch12.adb (Validate_Access_Type_Instance): Add message if
842 mismatching predicates.
843 * sem_ch6.adb (Check_Conformance): Give better messages on
844 predicate mismatch.
845 * sem_eval.adb (Predicates_Match): Move to spec.
846 * sem_eval.ads (Predicates_Match): Moved here from body.
847
8482014-02-20 Ed Schonberg <schonberg@adacore.com>
849
850 * a-cbmutr.adb: Use default value in Insert_Child.
851
308aab0b
AC
8522014-02-20 Vincent Celier <celier@adacore.com>
853
854 * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb: Call
855 Stringt.Initialize in all project aware tools.
856
8572014-02-20 Doug Rupp <rupp@adacore.com>
858
859 * gnat_ugn.texi: Document gnatbind -X option.
860 * vms_data.ads: Minor warnings documentation reformatting.
861
8622014-02-20 Ed Schonberg <schonberg@adacore.com>
863
864 * exp_ch3.adb (Expand_Freeze_Array_Type): Only create invariant
865 procedure for a base type.
866
8672014-02-20 Robert Dewar <dewar@adacore.com>
868
869 * sem_ch4.adb (Analyze_Case_Expression): Get type from first
870 expression with type info.
871 * sem_ch13.adb: Minor reformatting.
872 * sem_eval.adb (Subtypes_Statically_Match): Make sure we return
873 False if predicates do not match on the two types.
874
8752014-02-20 Arnaud Charlet <charlet@adacore.com>
876
877 * sem_prag.adb (Analyze_Pragma [pragma Attach_Handler]):
878 In Relaxed_RM_Semantics mode, allow any static integer value,
879 for compatibility with other compilers.
880
0f361206
AC
8812014-02-20 Vincent Celier <celier@adacore.com>
882
883 * errutil.adb (Initialize): Properly initialize entry in table
884 Warnings when warnings are suppressed.
885
8862014-02-20 Robert Dewar <dewar@adacore.com>
887
888 * s-os_lib.ads: Add warning about non-portability of Rename_File.
889 * sem_util.ads, sem_util.adb (Is_Junk_Name): New function.
890 * sem_warn.adb: Use Is_Junk_Name to suppress some warnings.
891 * gnat_ugn.texi: Document no warnings on junk variable names.
892 * layout.adb: Minor code reorganization (use Ekind_In).
893 * stringt.adb: Move initialization of Null_String_Id to Initialize
894 routine.
895
8962014-02-20 Ed Schonberg <schonberg@adacore.com>
897
898 * sem_ch13.adb: Initialize optional Element_Id.
899
c0cdbd39
AC
9002014-02-20 Robert Dewar <dewar@adacore.com>
901
902 * s-os_lib.ads (Rename_File): Minor commment addition.
903
9042014-02-20 Thomas Quinot <quinot@adacore.com>
905
906 * einfo.ads: Minor reformatting.
907
9082014-02-20 Hristian Kirtchev <kirtchev@adacore.com>
909
910 * aspects.adb (Exchange_Aspects): New routine.
911 * aspects.ads (Exchange_Aspects): New routine.
912 * atree.adb (Rewrite): Do not check whether the save node has
913 aspects as it never will, instead check the node about to be clobbered.
914 * einfo.adb (Write_Field25_Name): Abstract_States can appear in
915 entities of generic packages.
916 * sem_ch6.adb (Analyze_Expression_Function): Fix the parent
917 pointer of an aspect specification list after rewriting takes place.
918 * sem_ch7.adb (Analyze_Package_Body_Helper): Swap the aspect
919 specifications of the generic template and the copy used for analysis.
920 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Swap
921 the aspect specifications of the generic template and the
922 copy used for analysis.
923 (Analyze_Package_Instantiation): Propagate the aspect specifications
924 from the generic template to the instantiation.
925 (Build_Instance_Compilation_Unit_Nodes): Propagate the aspect
926 specifications from the generic template to the instantiation.
927 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle aspects
928 Abstract_State, Initializes and Initial_Condition when they
929 apply to a package instantiation.
930
9312014-02-20 Robert Dewar <dewar@adacore.com>
932
933 * stringt.adb: Add call to Initialize in package initialization.
934
fe4552f4
AC
9352014-02-20 Robert Dewar <dewar@adacore.com>
936
937 * a-crbtgk.adb, a-cihama.adb, a-coinve.adb, a-ciorse.adb, a-crbtgo.adb,
938 a-cidlli.adb, a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb,
939 a-chtgke.adb, a-chtgop.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb,
940 a-convec.adb, a-cohase.adb, a-chtgbk.adb, a-chtgbo.adb: Minor
941 reformatting.
942
9432014-02-20 Bob Duff <duff@adacore.com>
944
945 * s-os_lib.ads: Minor: Remove incorrect comment.
946
9472014-02-20 Robert Dewar <dewar@adacore.com>
948
949 * sem_elab.adb (Check_Elab_Assign): Clearer warning message.
950
9512014-02-20 Ed Schonberg <schonberg@adacore.com>
952
953 * a-cborma.adb (Assign): When creating a node without a specified
954 element, insert an uninitialized element in the map, because
955 the instance may provide an element type with a default
956 initialization, e.g a scalar with a Default_Value aspect.
957 * a-cbhama.adb (Assign_Key): Remove useless Allocate procedure.
958 (Insert): In the version without explicit element, provide an
959 uninitialized element, as above.
960 * a-cbdlli.adb (Append): In the version without explicit element,
961 provide an uninitalized element, as above.
962 (Allocate): Remove unused version.
963
3730c4a0
AC
9642014-02-20 Robert Dewar <dewar@adacore.com>
965
966 * sem_elab.adb: Minor code reorganization (use Nkind_In).
967 * stringt.adb: Remove temporary pragma Warnings (Off).
968 * stringt.ads: Add pragma Elaborate_Body to ensure initialization
969 of Null_String_Id.
970
9712014-02-20 Matthew Heaney <heaney@adacore.com>
972
973 * a-chtgbk.adb (Replace): Use correct offset when calculating bucket
974 index.
975
0c7e0c32
AC
9762014-02-20 Ed Schonberg <schonberg@adacore.com>
977
978 * sem_ch5.adb (Analyze_Iterator_Specification): Initialize
979 properly the cursor type for subsequent volatile testing in SPARK
980 mode, when domain is a formal container with an Iterabe aspect.
981
9822014-02-20 Robert Dewar <dewar@adacore.com>
983
984 * errout.adb (Set_Warnings_Mode_Off): Add Reason argument.
985 (Set_Specific_Warning_Off): Add Reason argument.
986 * errout.ads (Set_Warnings_Mode_Off): Add Reason argument.
987 (Set_Specific_Warning_Off): Add Reason argument.
988 * erroutc.adb (Warnings_Entry): Add Reason field
989 (Specific_Warning_Entry): Add Reason field.
990 (Warnings_Suppressed): return String_Id for Reason.
991 (Warning_Specifically_Suppressed): return String_Id for Reason.
992 * erroutc.ads (Warnings_Entry): Add Reason field.
993 (Specific_Warning_Entry): Add Reason field.
994 (Set_Specific_Warning_Off): Add Reason argument.
995 (Set_Warnings_Mode_Off): Add Reason argument.
996 (Warnings_Suppressed): return String_Id for Reason.
997 (Warning_Specifically_Suppressed): return String_Id for Reason.
998 * errutil.adb (Warnings_Suppressed): returns String_Id for Reason
999 (Warning_Specifically_Suppressed): returns String_Id for Reason
1000 * gnat_rm.texi: Document that Warning parameter is string literal
1001 or a concatenation of string literals.
1002 * par-prag.adb: New handling for Reason argument.
1003 * sem_prag.adb (Analyze_Pragma, case Warning): New handling
1004 for Reason argument.
1005 * sem_util.ads, sem_util.adb (Get_Reason_String): New procedure.
1006 * sem_warn.ads (Warnings_Off_Entry): Add reason field.
1007 * stringt.adb: Set Null_String_Id.
1008 * stringt.ads (Null_String_Id): New constant.
1009
e4494292
RD
10102014-02-20 Robert Dewar <dewar@adacore.com>
1011
1012 * einfo.ads: Minor comment addition: Etype of package is
1013 Standard_Void_Type.
1014 * checks.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch13.adb,
1015 exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb,
1016 exp_ch7.adb, exp_ch9.adb, exp_dbug.adb, exp_disp.adb, exp_imgv.adb,
1017 exp_intr.adb, exp_prag.adb, exp_sel.adb, exp_strm.adb, exp_util.adb,
1018 freeze.adb, rtsfind.adb, sem_aggr.adb, sem_attr.adb, sem_ch10.adb,
1019 sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
1020 sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb, sem_res.adb,
1021 sem_util.adb, tbuild.adb, tbuild.ads: Remove New_Reference_To.
1022 Replace all calls with calls to New_Occurrence_Of.
1023
10242014-02-20 Robert Dewar <dewar@adacore.com>
1025
1026 * par-util.adb (Ignore, case of right paren): Make this a
1027 serious error.
1028
d7cb47b4
AC
10292014-02-19 Robert Dewar <dewar@adacore.com>
1030
1031 * sem_ch5.adb, sem_prag.adb, sem_attr.adb: Minor reformatting.
1032 * debug.adb: Remove -gnatd.X switch, no longer used.
1033 * styleg.adb (Check_Then): Remove check of -gnatd.X, check is
1034 now always made.
1035
10362014-02-19 Bob Duff <duff@adacore.com>
1037
1038 * g-socket.ads: Minor: Correct some comments.
1039
53f697ee
AC
10402014-02-19 Ed Schonberg <schonberg@adacore.com>
1041
1042 * sem_ch5.adb: Inhibit iterator rewriting in ASIS mode.
1043
10442014-02-19 Arnaud Charlet <charlet@adacore.com>
1045
1046 * sem_ch13.adb (Analyze_Aspect_Specifications): Do not generate
1047 an error on out of range priorities if Relaxed_RM_Semantics.
1048 * sem_prag.adb (Analyze_Pragma): Ditto.
1049
10502014-02-19 Bob Duff <duff@adacore.com>
1051
1052 * sem_attr.adb (Resolve_Attribute): Detect the case of F'Access
1053 where F denotes the renaming of an enumeration literal, and
1054 issue a specialized error message.
1055
47fb6ca8
AC
10562014-02-19 Matthew Heaney <heaney@adacore.com>
1057
1058 * a-chtgop.ads (Checked_Index): New operation.
1059 (Next): Changed mode of hash table.
1060 * a-chtgop.adb (Adjust, Delete_Node_Sans_Free): Detect tampering
1061 (Generic_Read, Reserve_Capacity): Ditto.
1062 (Generic_Equal): Detect tampering.
1063 (Next): Changed mode of hash table, detect tampering.
1064 * a-chtgke.ads (Checked_Index, Checked_Equivalent_Keys): New
1065 operation.
1066 (Find): Changed mode of hash table.
1067 * a-chtgke.adb (Checked_Equivalent_Keys): New operation
1068 (Delete_Key_Sans_Free, Generic_Conditional_Insert): Detect
1069 tampering.
1070 (Find): Changed mode of hash table, check for tampering.
1071 (Generic_Replace_Element): Check for tampering.
1072 * a-chtgbk.ads (Checked_Index, Checked_Equivalent_Keys): New operation.
1073 * a-chtgbk.adb (Checked_Index, Checked_Equivalent_Keys): New
1074 operation (Delete_Key_Sans_Free, Generic_Conditional_Insert):
1075 Detect tampering.
1076 (Find, Generic_Replace_Element): Check for tampering.
1077 * a-chtgbo.ads (Checked_Index): New operation.
1078 * a-chtgbo.adb (Checked_Index): New operation
1079 (Delete_Node_Sans_Free, Generic_Equal): Detect tampering.
1080 (Generic_Read, Next): Ditto.
1081 * a-cohase.adb, a-cihase.adb (Is_In): Changed mode of hash
1082 table (Difference, Intersection): Use variable view of
1083 source, detect tampering (Find, Is_Subset, Overlap): Use
1084 variable view of container (Symmetric_Difference, Union):
1085 Detect tampering (Vet): Use Checked_Index to detect tampering
1086 (Constant_Reference, Element, Find): Use variable view of
1087 container.
1088 (Update_Element_Preserving_Key): Detect tampering.
1089 * a-cbhase.adb (Difference, Find, Is_In): Use variable view
1090 of container.
1091 (Is_Subset): Ditto.
1092 (Equivalent_Sets, Overlap): Use Node's Next component.
1093 (Vet): Use Checked_Index to detect tampering.
1094 (Constant_Reference, Element, Find): Use variable view of container.
1095 (Update_Element_Preserving_Key): Detect tampering.
1096 * a-cohama.adb, a-cihama.adb, a-cbhama.adb (Constant_Reference,
1097 Element, Find): Use variable view of container.
1098 (Reference): Rename hash table component.
1099 (Vet): Use Checked_Index to detect tampering.
1100
11012014-02-19 Arnaud Charlet <charlet@adacore.com>
1102
1103 * adabkend.adb (Scan_Compiler_Arguments): Add missing handling
1104 of -nostdinc.
1105
11062014-02-19 Thomas Quinot <quinot@adacore.com>
1107
1108 * tbuild.adb (New_Occurrence_Of, New_Rerefence_To): Guard
1109 against calls without Def_Id.
1110
11112014-02-19 Claire Dross <dross@adacore.com>
1112
1113 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
1114 a-cofove.ads: Add global annotations to subprograms.
1115
11162014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1117
1118 * sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): Remove
1119 constants Errors, Pack_Id and Pack_Init. Remove variable Vars.
1120 Initial_Condition no longer requires the presence of pragma
1121 Initialized. Do not try to diagnose whether all variables mentioned in
1122 pragma Initializes also appear in Initial_Condition.
1123 (Collect_Variables): Removed.
1124 (Match_Variable): Removed.
1125 (Match_Variables): Removed.
1126 (Report_Unused_Variables): Removed.
1127
11282014-02-19 Thomas Quinot <quinot@adacore.com>
1129
1130 * gnat_rm.texi (pragma Stream_Convert): Minor rewording.
1131
13f39091
AC
11322014-02-19 Robert Dewar <dewar@adacore.com>
1133
1134 * sem_util.adb, sem_util.ads, prj-conf.adb, s-os_lib.adb: Minor
1135 reformatting.
1136
11372014-02-19 Vincent Celier <celier@adacore.com>
1138
1139 * prj-part.adb (Parse_Single_Project): Use the fully resolved
1140 project path, with all symbolic links resolved, to check if the
1141 same project is imported with a different unresolved path.
1142 * prj-tree.ads (Project_Name_And_Node): Component Canonical_Path
1143 changed to Resolved_Path to reflect that all symbolic links
1144 are resolved.
1145
110e2969
AC
11462014-02-19 Ed Schonberg <schonberg@adacore.com>
1147
1148 * sem_util.ads, sem_util.adb (Get_Cursor_Type): Moved to sem_util
1149 from sem_ch13, for use elsewhere.
1150 * sem_ch13.adb (Get_Cursor_Type): Moved to sem_util.
1151 * sem_ch5.adb (Analyze_Iterator_Specification): Set properly the
1152 cursor type on the loop variable when the iteration is over o
1153 formal container.
1154
11552014-02-19 Vincent Celier <celier@adacore.com>
1156
1157 * prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Add declaration
1158 for an empty Target (Check_Target): Never fail when an empty
1159 target is declared in the configuration project.
1160
11612014-02-19 Ed Schonberg <schonberg@adacore.com>
1162
1163 * sem_prag.adb (Check_Arg_Is_Local_Name): Argument is local if
1164 the pragma comes fron a predicate aspect and the context is a
1165 record declaration within the scope that declares the type.
1166
11672014-02-19 Robert Dewar <dewar@adacore.com>
1168
1169 * gnat_rm.texi: Minor clarifications.
1170 * expander.adb, sem_aggr.adb: Add comments.
1171
ffdeb702
AC
11722014-02-19 Ed Schonberg <schonberg@adacore.com>
1173
1174 * sem_prag.adb (Check_Arg_Is_Local_Name): For an aspect that
1175 applies to a subprogram body, the name is the current scope,
1176 rather than being declared in the current scope.
1177 (Analyze_Pragma, case No_Return): Handle properly a No_Return
1178 aspect applied to a subprogram body.
1179
11802014-02-19 Ed Schonberg <schonberg@adacore.com>
1181
1182 * sem_ch13.adb (Resolve_Iterable_Operation): Improve resolution
1183 of overloaded subprograms, and fix bug in handling of primitive
1184 operation Element.
1185
11862014-02-19 Pascal Obry <obry@adacore.com>
1187
1188 * s-os_lib.adb: Minor reformatting.
1189
11902014-02-19 Yannick Moy <moy@adacore.com>
1191
1192 * expander.adb (Expand): Do nothing inside generics.
1193 * sem_aggr.adb (Aggregate_Constraint_Checks): Do nothing inside
1194 generics.
1195
11962014-02-19 Yannick Moy <moy@adacore.com>
1197
1198 * exp_ch2.adb: Remove useless 'with' of unit Uintp.
1199
edbd98c4
AC
12002014-02-19 Robert Dewar <dewar@adacore.com>
1201
1202 * sem_ch3.adb, style.adb, sem_prag.adb, sem_ch13.adb: Minor reformatting
1203 * a-sequio.adb: Remove useless pragma Extensions_Allowed (no
1204 longer needed).
1205
12062014-02-19 Claire Dross <dross@adacore.com>
1207
1208 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
1209 a-cforse.ads, a-cofove.ads: Add Iterable aspect to formal containers.
1210
476b301a
AC
12112014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1212
1213 * sem_ch3.adb (Analyze_Declarations): Analyze
1214 a package contract at the end of the private declarations (if
1215 applicable), otherwise analyze it and the end of the visible
1216 declarations.
1217
12182014-02-19 Ed Schonberg <schonberg@adacore.com>
1219
1220 * style.adb (Missing_Overriding): If subprogram is an
1221 instantiation, place warning on the instance node itself,
1222 without mention of the original generic. Do not emit message
1223 if explicit Ada version is older than the introduction of the
1224 overriding indicator.
1225
a6ce7e76
AC
12262014-02-19 Yannick Moy <moy@adacore.com>
1227
1228 * gnat_rm.texi: Doc clarifications.
1229
12302014-02-19 Yannick Moy <moy@adacore.com>
1231
1232 * exp_util.adb (Remove_Side_Effects): Do not remove side-effects
1233 inside a generic.
1234
12352014-02-19 Ed Schonberg <schonberg@adacore.com>
1236
1237 * sem_ch13.adb (Get_Cursor_Type): Obtain cursor type from
1238 specified First primitive, rather than by name.
1239 (Validate_Iterable_Aspect, Resolve_Iterable_Operation): Use it,
1240 and extend error checking for missing primitives and incorrect
1241 signatures.
1242
12432014-02-19 Ed Schonberg <schonberg@adacore.com>
1244
1245 * sem_ch3.adb (Check_Pragma_Implemented): Detect additional
1246 errors when a Synchronization aspect on an overriding protected
1247 operation does not match the given aspect on the overridden
1248 operation of an ancestor interface.
1249
12502014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1251
1252 * sem_prag.adb (Check_Loop_Pragma_Grouping): New routine.
1253 (Check_Loop_Pragma_Placement): Update
1254 comment on usage. Remove local variables Orig_Stmt and
1255 Within_Same_Sequence. Check that the current Loop_Invariant or
1256 Loop_Variant pragma is grouped together with other such pragmas.
1257 (Is_Loop_Pragma): New routine.
1258 (Prev_In_Loop): Removed.
1259
0b7f0f0e
AC
12602014-02-19 Robert Dewar <dewar@adacore.com>
1261
1262 * par-ch6.adb (P_Return): For extended return, end column lines
1263 up with RETURN.
1264 * par.adb: Minor documentation clarification.
1265
12662014-02-19 Yannick Moy <moy@adacore.com>
1267
1268 * sem_prag.adb (Check_Loop_Pragma_Placement): Add check
1269 that Loop_Invariant and Loop_Variant appear consecutively.
1270 * gnat_rm.texi Update documentation of Loop_Invariant and
1271 Loop_Variant pragmas.
1272
12732014-02-19 Robert Dewar <dewar@adacore.com>
1274
1275 * debug.adb: Document -gnatd.X.
1276 * par-ch5.adb (P_If_Statement): Always check THEN, even if not
1277 first token
1278 (Check_Then_Column): Ditto.
1279 * styleg.adb (Check_Then): Allow THEN on line after IF.
1280 (Check_Then): Check THEN placement under control of -gnatd.X
1281 * styleg.ads (Check_Then): Now called even if THEN is not first
1282 token on line.
1283 * stylesw.ads (Style_Check_If_Then_Layout): Document new
1284 relaxed rules.
1285 * gnat_ugn.texi: For -gnatyi, THEN can now be on line after IF.
1286
12872014-02-19 Robert Dewar <dewar@adacore.com>
1288
1289 * a-cfhama.adb, a-cfhase.adb, a-cforse.adb, a-cofove.adb, a-ngcefu.adb,
1290 a-teioed.adb, a-wtedit.adb, a-ztedit.adb, exp_ch5.adb, inline.adb,
1291 prj-pp.adb, prj-tree.adb, sem_ch12.adb, sem_ch8.adb,
1292 vms_conv.adb: Fix bad layout of IF statements
1293
e7cff5af
RD
12942014-02-19 Robert Dewar <dewar@adacore.com>
1295
1296 * exp_util.adb (Side_Effect_Free): Scalar if expressions can be SEF.
1297
a767d69b
AC
12982014-02-19 Robert Dewar <dewar@adacore.com>
1299
1300 * exp_util.adb: Update comments.
1301
13022014-02-19 Doug Rupp <rupp@adacore.com>
1303
1304 * bindgen.adb (Gen_Adainit) [VMS] New global Float_Format.
1305 * init.c (__gl_float_format): [VMS] New global.
1306 (__gnat_set_features): Call FP_CONTROL to set FPSR for the float
1307 representation in effect.
1308
13092014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1310
1311 * exp_ch6.adb Add with and use clause for Exp_Prag.
1312 (Expand_Contract_Cases): Relocated to Exp_Prag.
1313 * exp_ch6.ads (Expand_Contract_Cases): Relocated to Exp_Prag.
1314 * exp_prag.adb Add with and use clauses for Checks and Validsw.
1315 (Expand_Contract_Cases): Relocated from Exp_Ch6. Update the
1316 structure of the expanded code to showcase the evaluation of
1317 attribute 'Old prefixes. Add local variable Old_Evals. Expand
1318 any attribute 'Old references found within a consequence. Add
1319 circuitry to evaluate the prefixes of attribute 'Old that
1320 belong to a selected consequence.
1321 (Expand_Old_In_Consequence): New routine.
1322 * exp_prag.ads (Expand_Contract_Cases): Relocated from Exp_Ch6.
1323 * sem_attr.adb (Check_Use_In_Contract_Cases): Warn that a
1324 potentially unevaluated prefix is always evaluated.
1325
adb252d8
AC
13262014-02-19 Robert Dewar <dewar@adacore.com>
1327
1328 * exp_attr.adb (Expand_Min_Max_Attribute): Use Insert_Declaration
1329 (Expand_Min_Max_Attribute): Use Matching_Standard_Type.
1330 * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove special
1331 handling for the case of Modify_Tree_For_C, this approach did
1332 not work.
1333 * exp_util.adb (Matching_Standard_Type): New function
1334 (Side_Effect_Free): New top level functions (from
1335 Remove_Side_Effects).
1336 * exp_util.ads (Side_Effect_Free): New top level functions
1337 (moved from body).
1338 * sinfo.ads: Minor comment updates.
1339
13402014-02-19 Ed Schonberg <schonberg@adacore.com>
1341
1342 * exp_ch6.adb (Expand_Simple_Function_Return): If return
1343 type is unconstrained and uses the secondary stack, mark the
1344 enclosing function accordingly, to ensure that the value is not
1345 prematurely removed.
1346
13472014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1348
1349 * par.adb Alphabetize the routines in Par.Sync.
1350 (Resync_Past_Malformed_Aspect): New routine.
1351 * par-ch13.adb (Get_Aspect_Specifications): Alphabetize local
1352 variables. Code and comment reformatting. Detect missing
1353 parentheses on aspects [Refined_]Global and [Refined_]Depends
1354 with a non-null definition.
1355 * par-sync.adb: Alphabetize all routines in this separate unit.
1356 (Resync_Past_Malformed_Aspect): New routine.
1357
a0367005
RD
13582014-02-19 Robert Dewar <dewar@adacore.com>
1359
1360 * sem_eval.ads, sem_eval.adb (Subtypes_Statically_Match): Return False
1361 if Esize values do not match.
1362
e03f7ccf
AC
13632014-02-19 Yannick Moy <moy@adacore.com>
1364
1365 * sinfo.ads: Minor comment update.
1366
13672014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1368
1369 * atree.ads: Minor reformatting (change Entity_Info to Einfo).
1370
13712014-02-19 Thomas Quinot <quinot@adacore.com>
1372
1373 * exp_ch7.adb (Find_Node_To_Be_Wrapped): An assignment statement
1374 that has the No_Ctrl_Actions flag is a suitable node to be
1375 wrapped if the assigned expression has no finalization actions.
1376 * sem_eval.adb (Eval_Entity_Name): For a compile time known
1377 boolean value, mark the corresponding condition SCO as constant.
1378
13792014-02-19 Robert Dewar <dewar@adacore.com>
1380
1381 * exp_util.adb: Minor reformatting.
1382 * exp_util.ads (Matching_Standard_Type): New function.
1383 * exp_ch7.adb: Minor reformatting.
1384
13852014-02-19 Ed Schonberg <schonberg@adacore.com>
1386
1387 * sem_ch13.adb (Get_Cursor_Type): Use scope of iterable type
1388 to find declaration for Cursor, to handle properly the case of
1389 a discriminated iterable type.
1390
13912014-02-19 Vincent Celier <celier@adacore.com>
1392
1393 * gnatcmd.adb (GNATCmd): Always replace the object dirs of
1394 imported library projects with the library ALI dirs, when setting
1395 the object paths.
1396 * prj-env.ads (Ada_Objects_Path): Correct comments about
1397 argument Including_Libraries.
1398
4877d85f
AC
13992014-02-19 Gary Dismukes <dismukes@adacore.com>
1400
1401 * gnat_rm.texi: Minor spelling fixes.
1402
14032014-02-19 Doug Rupp <rupp@adacore.com>
1404
1405 * init.c: Remove unneeded code.
1406 * fe.h (Float_Format): New macro
1407 * gcc-interface/trans.c (gigi): On VMS, set vms_float_format.
1408
f660fba6
AC
14092014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1410
1411 * sem_prag.adb (Check_Refined_Global_Item):
1412 A state or variable acts as a constituent only it is part of an
1413 encapsulating state and the state has visible refinement.
1414
14152014-02-19 Ed Schonberg <schonberg@adacore.com>
1416
1417 * sem_ch6.adb (Analyze_Subprogram_Contract): Do not warn on a
1418 postcondition for a function when the expression does not mention
1419 'Result but the function has in-out parameters.
1420
14212014-02-19 Robert Dewar <dewar@adacore.com>
1422
1423 * gnat_rm.texi: Add documentation on Value_Size forcing biased
1424 representation.
1425
b4f149c2
AC
14262014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1427
1428 * lib-xref.ads Remove the small table of letter and symbol usage as we
1429 already have one.
1430
14312014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1432
1433 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Emit specific error
1434 messages depending on the offending misplaced aspect specifications.
1435 (Diagnose_Misplaced_Aspect_Specifications): New routine.
1436
14372014-02-19 Ed Schonberg <schonberg@adacore.com>
1438
1439 * sem_ch13.adb (Get_Cursor): Utility to retrieve cursor type
1440 for iterable aspect primitives.
1441 (Resolve_Iterable_Operation): Use expected signature of iterable
1442 aspect to resolve primitive when overloading is present.
1443 (Validate_Iterable_Aspect, Analyze_Aspects_At_Freeze_Point): use it.
1444 (Check_Signature): Removed.
1445
ddd2bec5
AC
14462014-02-19 Yannick Moy <moy@adacore.com>
1447
1448 * sem_ch10.adb (Analyze_Proper_Body): Issue error on missing
1449 subunit in GNATprove_Mode.
1450 * sinfo.ads (GNATprove_Mode): Document error issued in GNATprove_Mode.
1451
14522014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1453
1454 * lib-xref.ads Alphabetize the contents of table
1455 Xref_Entity_Letters. Add an entry in table Xref_Entity_Letters
1456 for E_Abstract_State. List all letters and symbols in use.
1457 * sem_prag.adb (Analyze_Abstract_State): Update all calls
1458 to Create_Abstract_State to reflect the new signature.
1459 (Create_Abstract_State): Change subprogram profile and update
1460 the comment on usage. Use the proper location of the state
1461 declaration when creating a new abstract state entity. Do not
1462 generate an external name, but simply reuse the name coming from
1463 the state declaration.
1464
3a845e07
RD
14652014-02-19 Robert Dewar <dewar@adacore.com>
1466
1467 * exp_ch4.adb (Expand_N_Expression_With_Actions): Make sure
1468 declarations get properly inserted in Modify_Tree_For_C mode.
1469 * sinfo.ads: Minor comment addition.
1470
82d4f390
RD
14712014-02-19 Robert Dewar <dewar@adacore.com>
1472
1473 * par-ch9.adb, exp_ch5.adb, sem_ch5.adb, exp_attr.adb, sem_util.adb,
1474 sem_util.ads, sem_ch13.adb, sem_ch13.ads: Minor reformatting.
1475
dd2bf554
ES
14762014-02-19 Ed Schonberg <schonberg@adacore.com>
1477
1478 * style.adb (Missing_Overriding): Warning does not apply in
1479 language versions prior to Ada 2005.
1480 * snames.ads-tmpl: Add Name_Iterable and Attribute_Iterable.
1481 * sem_attr.adb: Add Attribute_Iterable where needed.
1482 * exp_attr.adb: ditto.
1483 * exp_ch5.adb (Expand_Formal_Container_Loop): New procedure to
1484 handle loops and quantified expressions over types that have an
1485 iterable aspect. Called from Expand_Iterator_Loop.
1486 * sem_ch5.adb (Analyze_Iterator_Specification): Recognize types
1487 with Iterable aspect.
1488 * sem_ch13.adb (Validate_Iterable_Aspect): Verify that the
1489 subprograms specified in the Iterable aspect have the proper
1490 signature involving container and cursor.
1491 (Check_Aspect_At_Freeze_Point): Analyze value of iterable aspect.
1492 * sem_ch13.ads (Validate_Iterable_Aspect): New subprogram.
1493 * sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive):
1494 New procedure to retrieve one of the primitives First, Last,
1495 or Has_Element, from the value of the iterable aspect of a
1496 formal container.
1497 (Is_Container_Element): Predicate to recognize expressions
1498 that denote an element of one of the predefined containers,
1499 for possible optimization. This subprogram is not currently
1500 used, pending ARG discussions on the legality of the proposed
1501 optimization. Worth preserving for eventual use.
1502 (Is_Iterator): Recognize formal container types.
1503 * aspects.ads, aspects.adb: Add Aspect_Iterable where needed.
1504
e0f63680
AC
15052014-02-19 Robert Dewar <dewar@adacore.com>
1506
1507 * exp_attr.adb (Expand_Min_Max_Attribute): New procedure
1508 (Expand_N_Attribute_Reference): Use this procedure for Min and Max.
1509 * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove object
1510 declarations from list of actions.
1511 * output.ads, output.adb (Delete_Last_Char): New procedure.
1512 * sinfo.ads: Document handling of Mod and expression with actions
1513 in Modify_Tree_For_C mode.
1514
15152014-02-19 Ed Schonberg <schonberg@adacore.com>
1516
1517 * par-ch9.adb (P_Task): Add a null statement to produce a
1518 well-formed task body when due to a previous syntax error the
1519 statement list is empty.
1520
15212014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
1522
1523 * sem_prag.adb (Check_Dependency_Clause): Account
1524 for the case where a state with a non-null refinement matches a
1525 null output list. Comment reformatting.
1526 (Inputs_Match): Copy a solitary input to avoid an assertion failure
1527 when trying to match the same input in multiple clauses.
1528
15292014-02-19 Gary Dismukes <dismukes@adacore.com>
1530
1531 * sem_attr.adb: Minor typo fix.
1532
2c9f8c0a
AC
15332014-02-18 Robert Dewar <dewar@adacore.com>
1534
1535 * cstand.adb (Build_Signed_Integer_Type): Minor change of formal
1536 from Int to Nat (Build_Unsigned_Integer_Type): New procedure
1537 (Create_Standard): Create new unsigned types.
1538 * exp_ch4.adb (Expand_N_Op_Mod): Expand mod in Modify_Tree_For_C
1539 mode (Expand_N_Reference): Removed, problematic and not needed
1540 for now.
1541 * exp_ch4.ads (Expand_N_Reference): Removed, problematic and
1542 not needed for now.
1543 * exp_util.ads, exp_util.adb (Power_Of_Two): New function.
1544 * expander.adb: Remove call to Expand_N_Reference (problematic,
1545 and not needed now).
1546 * sem_aux.ads, sem_aux.adb (Corresponding_Unsigned_Type): New function.
1547 * stand.adb: Read and write unsigned type entities.
1548 * stand.ads: Add new unsigned types.
1549
15502014-02-18 Hristian Kirtchev <kirtchev@adacore.com>
1551
1552 * sem_ch4.adb (Analyze_Call): Do not mark a function call
1553 as being inside an assertion expression as the flag is now removed.
1554 (Check_Ghost_Subprogram_Call): Do not query the
1555 In_Assertion_Expression flag as it is now removed, instead use
1556 a predicate function.
1557 * sem_elab.adb (Check_Internal_Call_Continue): Do not query the
1558 In_Assertion_Expression flag as it is now removed, instead use
1559 a predicate function.
1560 * sem_prag.ads: Add new table Assertion_Expression_Pragma.
1561 * sem_util.adb Add with and use clause for Sem_Prag.
1562 (In_Assertion_Expression_Pragma): New routine.
1563 * sem_util.ads (In_Assertion_Expression_Pragma): New routine.
1564 * sinfo.adb (In_Assertion_Expression): Removed.
1565 (Set_In_Assertion_Expression): Removed.
1566 * sinfo.ads Remove flag In_Assertion_Expression along with its
1567 use in nodes.
1568 (In_Assertion_Expression): Removed along with
1569 pragma Inline. (Set_In_Assertion_Expression): Removed along
1570 with pragma Inline.
1571
15722014-02-18 Sergey Rybin <rybin@adacore.com frybin>
1573
1574 * gnat_ugn.texi: gnatpp section: add note that '-j' cannot be
1575 used together with '-r', '-rf' or '-rnb' options.
1576
15772014-02-18 Hristian Kirtchev <kirtchev@adacore.com>
1578
1579 * sem_attr.adb (Analyze_Attribute): Comment
1580 and code reformatting. Use separate routines to check the
1581 legality of attribute 'Old in certain pragmas. Verify
1582 the use of 'Old, 'Result and locally declared entities
1583 within the prefix of 'Old.
1584 (Check_References_In_Prefix): New routine.
1585 (Check_Use_In_Contract_Cases): New routine.
1586 (Check_Use_In_Test_Case): New routine.
1587
3b821fe9
VC
15882014-02-18 Vincent Celier <celier@adacore.com>
1589
1590 * sem_aux.adb (Is_By_Reference_Type): For each components of
1591 a record type, check also if the component is volatile as it
1592 may have an aspect that makes it volatile. If it is, then the
1593 record type is a by reference type.
1594
365c8496
RD
15952014-02-18 Robert Dewar <dewar@adacore.com>
1596
1597 * exp_attr.adb: Minor reformatting.
1598 * exp_ch4.ads, exp_ch4.adb (Expand_N_Reference): New procedure.
1599 * exp_util.adb (Remove_Side_Effects): Add conditional expressions
1600 as another case where we don't generate N_Reference nodes for
1601 primitive types.
1602 * expander.adb (Expand): Add call to Expand_N_Reference.
1603
aa9b151a
AC
16042014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1605
1606 * sem_prag.adb (Analyze_Refined_Pragma): Remove
1607 local variable Pack_Spec. Refinement pragmas may now apply to
1608 bodies of both visible and private subprograms.
1609
16102014-02-06 Robert Dewar <dewar@adacore.com>
1611
1612 * exp_attr.adb (Expand_Loop_Entry_Attribute):
1613 Minor change (Attr => N) (Expand_Pred_Succ): New name
1614 Expand_Pred_Succ_Attribute (Expand_N_Attribute_Reference, case
1615 Max): Expand into if expression if Modify_Tree_For_C mode.
1616 (Expand_N_Attribute_Reference, case Min): ditto
1617 * sinfo.ads: Modify_Tree_For_C takes care of expanding Min and
1618 Max attributes.
1619
16202014-02-06 Ed Schonberg <schonberg@adacore.com>
1621
1622 * sem_ch3.adb (Analyze_Object_Declaration): Do not generate
1623 predicate check if this is an internal declaration with
1624 No_Initialization set, as for an expanded aggregate component.
1625
16262014-02-06 Doug Rupp <rupp@adacore.com>
1627
1628 * init.c (__gnat_default_resignal_p) [VMS]: Test for and resignal
1629 conditions with severity of "SUCCESS" or "INFORMATIONAL".
1630
85d6bf87
AC
16312014-02-06 Yannick Moy <moy@adacore.com>
1632
1633 * sem_prag.adb (Analyze_Pragma): Analyze pragma
1634 Debug rewritten node before rewriting it as a null statement in
1635 GNATprove mode.
1636
16372014-02-06 Robert Dewar <dewar@adacore.com>
1638
1639 * sem_attr.adb (Min_Max): New procedure.
1640 (Max_Alignment_For_Allocation_Max_Size_In_Storage_Elements): New
1641 procedure.
1642
c3b266d6
AC
16432014-02-06 Sergey Rybin <rybin@adacore.com frybin>
1644
1645 * gnat_ugn.texi, vms_data.ads: Add documentation of '-t' option for
1646 gnatmetric/gnatpp.
1647
16482014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1649
1650 * sem_prag.adb (Analyze_Abstract_State): Update
1651 all calls to Create_Abstract_State to pass the proper state
1652 "declaration".
1653 (Create_Abstract_State): Add new formal parameter
1654 State_Decl along with comment on usage. Establish a link between
1655 the abstract state entity and the state declaration.
1656
428684fd
RD
16572014-02-06 Robert Dewar <dewar@adacore.com>
1658
1659 * sem_attr.adb (Analyze_Attribute, case Max): Check for improper
1660 comparison of unordered enumeration type.
1661 (Analyze_Attribute, case Max): Check for improper comparison of
1662 unordered enumeration type.
1663 * sem_res.adb (Bad_Unordered_Enumeration_Reference): Moved to
1664 sem_util.adb.
1665 * sem_util.ads, sem_util.adb (Bad_Unordered_Enumeration_Reference):
1666 Moved here from Sem_Res.
1667
8c35b40a
AC
16682014-02-06 Robert Dewar <dewar@adacore.com>
1669
1670 * sem_ch3.adb, sem_prag.adb, sem_res.adb, lib-xref.adb: Minor
1671 reformatting.
1672
16732014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1674
1675 * sem_ch6.adb (Process_Formals): Error message reformatting.
1676
79b49b87
HK
16772014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1678
1679 * sem_ch3.adb (Handle_Late_Controlled_Primitive): Add local
1680 variable Spec. Do not inherit the null indicator from the
1681 subprogram body when generating the spec.
1682
4446a13f
AC
16832014-02-06 Robert Dewar <dewar@adacore.com>
1684
1685 * casing.adb (Determine_Casing): Consider SPARK_Mode to be
1686 mixed case.
1687
16882014-02-06 Ed Schonberg <schonberg@adacore.com>
1689
1690 * exp_ch6.adb (Is_Build_In_Place_Function): Predicate is false
1691 when the function has a foreign convention, but not if only the
1692 limited return type has such a convention.
1693
16942014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1695
1696 * sem_ch3.adb (Handle_Late_Controlled_Primitive): Remove local
1697 variable Spec. Comment reformatting. Use Copy_Separate_Tree
1698 rather than New_Copy_Tree when building the corresponding
1699 subprogram declaration.
1700
17012014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1702
1703 * sem_prag.adb (Analyze_Global_Item): Remove
1704 the mode-related checks on abstract states with enabled external
1705 properties.
1706 (Property_Error): Removed.
1707
17082014-02-06 Javier Miranda <miranda@adacore.com>
1709
1710 * lib-xref.adb (Generate_Reference): When
1711 generating the reference to the first private entity take care
1712 of handling swapped entities.
1713
e09a5598
AC
17142014-02-06 Sergey Rybin <rybin@adacore.com frybin>
1715
1716 * gnat_ugn.texi, vms_data.ads: Add documentation of -j option for
1717 gnatmetric.
1718
17192014-02-06 Robert Dewar <dewar@adacore.com>
1720
1721 * exp_ch4.adb (Expand_N_Shift_Left): Handle shift counts greater
1722 than the word size when operating in Modify_Tree_For_C mode.
1723 * sinfo.ads: Add documentation section on Modify_Tree_For_C mode.
1724
17252014-02-06 Robert Dewar <dewar@adacore.com>
1726
1727 * erroutc.adb (Warning_Specifically_Suppressed.Matches):
1728 compare is case insensitive.
1729 * gnat_rm.texi: Document that string compare for Warnings Off
1730 is now case insensitive.
1731
5216b599
AC
17322014-02-06 Eric Botcazou <ebotcazou@adacore.com>
1733
1734 * gnat_rm.texi: Small wording tweak.
1735
17362014-02-06 Pascal Obry <obry@adacore.com>
1737
1738 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Included_Patterns
1739 and Included_Artifact_Patterns attribute definitions.
1740
17412014-02-06 Yannick Moy <moy@adacore.com>
1742
1743 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set
1744 SPARK_Mode pragma component for all subprograms, including stubs.
1745
17462014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1747
1748 * sem_ch10.adb (Analyze_Package_Body_Stub): Maintain
1749 the configuration options of the enclosing context in a
1750 stack-like fasion.
1751 (Analyze_Subprogram_Body_Stub): Maintain the
1752 configuration options of the enclosing context in a stack-like
1753 fashion.
1754
17552014-02-06 Robert Dewar <dewar@adacore.com>
1756
1757 * debug.adb: -gnatd.u sets Modify_Tree_For C
1758 * exp_ch4.adb (Expand_N_Op_Rotate_Left): Expand out
1759 if Modify_Tree_For_C (Expand_N_Op_Rotate_Right): ditto.
1760 (Expand_N_Op_Arithmetic_Right_Shift): ditto.
1761 * exp_intr.adb (Expand_Shift): Call expander so we do
1762 Modify_Tree_For_C expansions.
1763 * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C
1764 if -gnatd.u set.
1765
17662014-02-06 Fedor Rybin <frybin@adacore.com>
1767
1768 * prj-proc.ads (Tree_Loaded_Callback): new type Callback used
1769 after the phase 1 of the processing of each aggregated project
1770 to get access to project trees of aggregated projects.
1771 (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded
1772 If specified, On_New_Tree_Loaded is called after each aggregated
1773 project has been processed succesfully.
1774 (Process): new parameter On_New_Tree_Loaded.
1775 * prj-proc.adb (Process_Aggregated_Projects): On_New_Tree_Loaded
1776 callback added after processing of each aggregated project.
1777 (Recursive_Process): new parameter On_New_Tree_Loaded.
1778 (Process): new parameter On_New_Tree_Loaded.
1779 (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded.
1780 * prj-conf.ads (Parse_Project_And_Apply_Config): new parameter
1781 On_New_Tree_Loaded.
1782 * prj-conf.adb (Parse_Project_And_Apply_Config): new parameter
1783 On_New_Tree_Loaded.
1784
17852014-02-06 Bob Duff <duff@adacore.com>
1786
1787 * gnat_ugn.texi: Implement --insert-blank-lines and
1788 --preserve-blank-lines switches.
1789
8c7ff9a0
AC
17902014-02-06 Sergey Rybin <rybin@adacore.com frybin>
1791
1792 * gnat_ugn.texi, vms_data.ads: Add documentation of -j option for
1793 gnatelim.
1794
17952014-02-06 Eric Botcazou <ebotcazou@adacore.com>
1796
1797 * gnat_rm.texi (Pragma Optimize_Alignment): Document the effect
1798 of the pragma on individual objects.
1799
18002014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1801
1802 * einfo.adb Node29 is now used as BIP_Initialization_Call.
1803 (BIP_Initialization_Call): New routine.
1804 (Set_BIP_Initialization_Call): New routine.
1805 (Write_Field29_Name): Add an entry for constants and variables.
1806 * einfo.ads Add new attribute BIP_Initialization_Call and update
1807 its usage in nodes.
1808 (BIP_Initialization_Call): New routine along with pragma Inline.
1809 (Set_BIP_Initialization_Call): New routine along with pragma Inline.
1810 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
1811 Add local declaration Res_Decl. Capture the build-in-place
1812 initialization call when the related object declaration has
1813 created a transient block.
1814 * exp_ch7.adb (Process_Transient_Objects): Add local variable
1815 Fin_Insrt. Recognize a scenario where an object declaration acts
1816 as a transient context and is initialized by a build-in-place
1817 function call.
1818
a0367a97
AC
18192014-02-06 Pascal Obry <obry@adacore.com>
1820
1821 * prj-util.adb (For_Interface_Sources): Fix handling of required
1822 bodies for aggregate libs.
1823
18242014-02-06 Robert Dewar <dewar@adacore.com>
1825
1826 * nlists.ads: Minor comment clarifications.
1827
18282014-02-06 Robert Dewar <dewar@adacore.com>
1829
1830 * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C
1831 if gnatd.V set.
1832 * opt.ads (Modify_Tree_For_C): New flag.
1833 * output.ads, output.adb (Last_Char): New function.
1834
18352014-02-06 Pascal Obry <obry@adacore.com>
1836
1837 * projects.texi, prj-env.adb (Initialize_Default_Project_Path): Add
1838 share/gpr for cross-builds.
1839
155b4fcc
RD
18402014-02-06 Robert Dewar <dewar@adacore.com>
1841
1842 * exp_util.ads, checks.adb, sem_prag.adb, prj-util.adb, sem_ch13.adb:
1843 Minor reformatting and code clean ups.
1844
49d8d177
PO
18452014-02-06 Pascal Obry <obry@adacore.com>
1846
1847 * prj-util.adb (For_Interface_Sources): Skip non compilable languages.
1848 * prj.ads: Minor typo fix in comment.
1849
8e1e62e3
AC
18502014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1851
1852 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add
1853 local variable Expr. Flag clauses with extra parenthesis as this
1854 is not allowed by the syntax of the pragma. Code reformatting.
1855
18562014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1857
1858 * exp_attr.adb (Expand_N_Attribute_Reference): Alphabetize
1859 variables. Rename variabme Tnn to Temp. Do not create a temporary
1860 if assertions are disabled. Find enclosing routine _Postconditions
1861 and insert the temporary that captures the value of the prefix
1862 before the routine.
1863 * exp_ch6.adb (Build_Postconditions_Procedure):
1864 Insert the generated _Postconditions routine
1865 before the first source declaration of the related
1866 subprogram.
1867 (Insert_After_Last_Declaration): Removed.
1868 (Insert_Before_First_Source_Declaration): New routine.
1869
18702014-02-06 Ed Schonberg <schonberg@adacore.com>
1871
1872 * exp_util.adb, exp_util.ads (Within_Internal_Subprogram):
1873 Utility to determine whether current expansion is for the body
1874 of a predefined primitive operation.
1875 (Make_Predicate_Check): Use Within_Internal_Subpgram
1876 * checks.adb (Apply_Predicate_Check): Use
1877 Within_Internal_Subprogram
1878 * sem_ch13.adb (Freeze_Entity_Checks): Ditto.
1879
18802014-02-06 Pascal Obry <obry@adacore.com>
1881
1882 * prj.ads, prj-util.adb: Minor reformatting.
1883
cbee4f74
AC
18842014-02-06 Ed Schonberg <schonberg@adacore.com>
1885
1886 * exp_ch6.adb (Expand_Subprogram_Contract, Append_Enabled_Item):
1887 Take into account the Split_PPC flag to ensure that conjuncts
1888 in a composite postcondition aspect are tested in source order.
1889
18902014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1891
1892 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Flag illegal
1893 use of SPARK_Mode.
1894 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Flag
1895 illegal use of SPARK_Mode.
1896 (Instantiate_Subprogram_Body): Flag illegal use of SPARK_Mode.
1897 * sem_prag.adb (Analyze_Pragma): Code reformatting.
1898 * sem_util.adb Add with and use clause for Aspects.
1899 (Check_SPARK_Mode_In_Generic): New routine.
1900 * sem_util.ads (Check_SPARK_Mode_In_Generic): New routine.
1901
19022014-02-06 Thomas Quinot <quinot@adacore.com>
1903
1904 * a-calend.adb (Formatting_Operations.Split): Ensure that
1905 Time_Error is raised for invalid time values.
1906
e2ef0ff6
AC
19072014-02-06 Arnaud Charlet <charlet@adacore.com>
1908
1909 * sem_prag.adb (Analyze_Pragma): Rewrite as a null statement
1910 in GNATprove_Mode.
1911
19122014-02-06 Robert Dewar <dewar@adacore.com>
1913
1914 * einfo.ads, einfo.adb (Is_Discriminant_Check_Function): New flag.
1915 * exp_ch3.adb (Build_Dcheck_Function): Set
1916 Is_Discriminant_Check_Function.
1917
19182014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1919
1920 * exp_ch7.adb (Is_Subprogram_Call): Inspect
1921 the original tree in certain cases where a construct has been
1922 factored out and replaced by a reference to a temporary.
1923
19242014-02-06 Ed Schonberg <schonberg@adacore.com>
1925
1926 * sem_ch3.adb (Process_Full_View): Fix typo in the order of
1927 parameters when propagating predicate function to full view.
1928 (Find_Type_Of_Object): Freeze base type of object type to catch
1929 premature use of discriminated private type without a full view.
1930
97779c34
AC
19312014-02-06 Robert Dewar <dewar@adacore.com>
1932
1933 * sprint.adb: Minor reformatting.
1934
19352014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1936
1937 * exp_ch4.adb (Process_Transient_Object): Add local variable
1938 Temp_Ins. When the transient object is initialized by an
1939 aggregate, the hook must capture the object after the last
1940 component assignment takes place.
1941 * exp_ch7.adb (Detect_Subprogram_Call): Expose the subprogram to
1942 routine Is_Subprogram_Call.
1943 (Is_Subprogram_Call): Inspect an
1944 aggregate that has been heavily expanded for subprogram calls.
1945 (Process_Transient_Objects): Add local variables Expr, Ptr_Id
1946 and Temp_Ins. Remove the nested declare block and adjust the
1947 indentation. When the transient object is initialized by an
1948 aggregate, the hook must capture the object after the last
1949 component assignment takes place.
1950
19512014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1952
1953 * sem_prag.adb (Analyze_Global_Item): Detect illegal uses of
1954 external states with enabled properties that do not match the
1955 global mode.
1956 (Property_Error): New routine.
1957 * sem_res.adb (Property_Error): New routine.
1958 (Resolve_Actuals): Detect illegal uses of external variables with
1959 enabled properties in procedure calls that do not match the mode of
1960 the corresponding formal parameter.
1961
19622014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1963
1964 * sem_util.adb (Has_Enabled_Property): Rename
1965 formal parameter Prop_Nam to Property. Update the comment on usage
1966 and all occurrences in the body. Add local variable Prop_Nam. When
1967 inspecting a property with an expression, the property name
1968 appears as the first choice of the component association.
1969
3e247e58
RD
19702014-02-04 Robert Dewar <dewar@adacore.com>
1971
1972 * exp_ch5.adb, einfo.ads, freeze.adb, sem_ch8.adb: Minor reformatting.
1973
2db5b47e
AC
19742014-02-04 Gary Dismukes <dismukes@adacore.com>
1975
1976 * sem_aggr.adb: Change "runtime" to "run time" in warning message,
1977 for consistency with other messages.
1978
19792014-02-04 Ed Schonberg <schonberg@adacore.com>
1980
1981 * exp_ch5.adb (Expand_Iterator_Loop): For a container element
1982 iterator, indicate that the element is a constant if the container
1983 type does not have a variable indexing aspect.
1984 * sem_ch8.adb (Analyze_Object_Renaming): If the entity is already
1985 marked as constant, do not reset its Ekind, to ensure that
1986 container elements in an element loop are not modified if the
1987 container (e.g. a hashed set) only has a constant indexing aspect.
1988
19892014-02-04 Arnaud Charlet <charlet@adacore.com>
1990
1991 * g-souinf.ads: Subprograms in this unit are actually not pure.
1992 * freeze.adb (Freeze_Subprogram): Do not reset Is_Pure for Intrinsics.
1993 * einfo.ads (Is_Pure): Update doc to match implementation.
1994
5a521b8a
AC
19952014-02-04 Gary Dismukes <dismukes@adacore.com>
1996
1997 * exp_ch13.adb: Minor spelling fix.
1998
19992014-02-04 Robert Dewar <dewar@adacore.com>
2000
2001 * opt.ads: Minor comment update.
2002
20032014-02-04 Robert Dewar <dewar@adacore.com>
2004
2005 * exp_ch4.adb (Expand_N_Expression_With_Actions): Use Rewrite
2006 instead of Replace.
2007
20082014-02-04 Ed Schonberg <schonberg@adacore.com>
2009
2010 * sem_aggr.adb (Resolve_Array_Aggregate): Suppress warnings
2011 on null expressions if component type is non-null, when the
2012 corresponding association covers an empty range of index values.
2013
81bd8c90
AC
20142014-02-04 Robert Dewar <dewar@adacore.com>
2015
2016 * sinfo.ads: Further comments on N_Expression_With_Actions node.
2017
20182014-02-04 Hristian Kirtchev <kirtchev@adacore.com>
2019
2020 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global
2021 variables Out_Items and Ref_Global. Remove local constant
2022 Body_Id along with dummy variables D1, D2, D3, D4, D5, D6, D7
2023 and D8. Remove the useless collection of global items as this
2024 was a leftover from an earlier version of the routine. Move
2025 several routines out to avoid deep nesting and indentation.
2026 (Inputs_Match): Add formal parameter Dep_Clause. Rename formal
2027 parameter Do_Checks to Post_Errors. Update the comment on usage.
2028 (Is_Matching_Input): Renamed to Input_Match. Add formal parameters
2029 Ref_Inputs and Do_Checks. Rename formal parameter Do_Checks
2030 to Post_Errors. Update the comment on usage. Account for the
2031 case where a self referential state may have a null input_list.
2032 (Is_Self_Referential): New routine.
2033
20342014-02-04 Ed Schonberg <schonberg@adacore.com>
2035
2036 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the
2037 entity renames an expression, as in the case of an object of
2038 an unconstrained type initialized by a function call, defer the
2039 rewriting of the expression to the expander.
2040 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
2041 'Alignment): If the entity renames an expression, introduce
2042 temporary to capture value, and rewrite original declaration to
2043 use temporary.
2044
ebdaa81b
AC
20452014-02-04 Gary Dismukes <dismukes@adacore.com>
2046
2047 * g-comlin.adb: Minor typo fix.
2048
20492014-02-04 Ed Schonberg <schonberg@adacore.com>
2050
2051 * freeze.adb (Freeze_All): Types derived from a formal
2052 access_to_classwide type do not have a finalization master.
2053
20542014-02-04 Robert Dewar <dewar@adacore.com>
2055
2056 * sprint.adb: Minor reformatting.
2057
20582014-02-04 Robert Dewar <dewar@adacore.com>
2059
2060 * exp_ch4.adb (Expand_N_Expression_With_Actions): Eliminate
2061 cases where Actions is a null list.
2062 * sinfo.ads (N_Expression_With_Actions): Actions can be
2063 temporarily empty during semantic analysis, but must be non-empty
2064 in the final expanded tree.
2065
d66f9f0b
AC
20662014-01-31 Robert Dewar <dewar@adacore.com>
2067
2068 * exp_ch9.adb: Minor reformatting.
2069
20702014-01-31 Emmanuel Briot <briot@adacore.com>
2071
2072 * g-comlin.adb (Set_Command_Line): Take the switches
2073 configuration from the Command_Line_Config.
2074
20752014-01-31 Hristian Kirtchev <kirtchev@adacore.com>
2076
2077 * sem_prag.adb (Analyze_Refinement_Clause): Guard against a malformed
2078 refinement clause.
2079
20802014-01-31 Vincent Celier <celier@adacore.com>
2081
2082 * projects.texi: Add more documentation about others used as an
2083 index in indexed attributes.
2084
f3920a13
AC
20852014-01-31 Robert Dewar <dewar@adacore.com>
2086
2087 * gnat_ugn.texi: Minor update.
2088 * gnat_rm.texi: Add example to Restriction_Warnings documentation.
2089 * exp_util.adb: Minor reformatting.
2090
20912014-01-31 Ed Schonberg <schonberg@adacore.com>
2092
2093 * exp_ch9.adb (Expand_Entry_Barrier): Warn if the barrier
2094 depends on data that is not private to the protected object,
2095 and potentially modifiable in unsynchronized fashion.
2096
31d922e3
AC
20972014-01-31 Yannick Moy <moy@adacore.com>
2098
2099 * erroutc.adb (Validate_Specific_Warnings): Remove special case for
2100 GNATprove_Mode.
2101
21022014-01-31 Robert Dewar <dewar@adacore.com>
2103
2104 * prj-attr.ads (First_Attribute_Of): Returns Empty_Attribute
2105 for Unknown_Package.
2106 * sem_ch6.adb, sem_attr.adb: Minor comment addition.
2107
21082014-01-31 Hristian Kirtchev <kirtchev@adacore.com>
2109
2110 * exp_util.adb (Build_Allocate_Deallocate_Proc): Rewrite
2111 the logic that generates a runtime check to determine the
2112 controlled status of the object about to be allocated or
2113 deallocated. Class-wide types now always use a runtime check
2114 even if they appear as generic actuals.
2115 (Find_Object): Detect
2116 a special case that involves interface class-wide types because
2117 the object appears as a complex expression.
2118
5b6f12c7
AC
21192014-01-31 Ed Schonberg <schonberg@adacore.com>
2120
2121 * sem_ch6.adb (Process_Formals): In Ada2012 mode, place
2122 subprogram with an incomplete untagged formals on the list of
2123 private dependents, to verify that the type is properly completed
2124 in the private part.
2125 * sem_attr.adb: Code clean up.
2126
21272014-01-31 Robert Dewar <dewar@adacore.com>
2128
2129 * exp_ch6.adb: Minor reformatting.
2130
21312014-01-31 Vincent Celier <celier@adacore.com>
2132
2133 * prj-attr.adb (First_Attribute_Of): Return Unknown_Attribute
2134 when Pkg is unknown.
2135
d950f051
AC
21362014-01-31 Hristian Kirtchev <kirtchev@adacore.com>
2137
2138 * sem_res.adb (Resolve_Entity_Name): Comment
2139 reformatting. Allow volatile objects in various generated checks.
2140
21412014-01-31 Ed Schonberg <schonberg@adacore.com>
2142
2143 * sem_attr.adb (Analyze_Attribute, case 'Update): For a record
2144 component association, set the etype of the identifier, for
2145 SPARK use.
2146
21472014-01-31 Ed Schonberg <schonberg@adacore.com>
2148
2149 * exp_ch6.adb (Has_Visibility_Of_Subprogram): If type is not
2150 declared in a package, not checks can apply to the subprogram.
2151
74c10109
AC
21522014-01-31 Robert Dewar <dewar@adacore.com>
2153
2154 * erroutc.adb (Validate_Specific_Warnings): Warnings are
2155 controlled -gnatw.W.
2156 * gnat_ugn.texi: Document new warnings controlled by -gnatw.w.
2157 * opt.ads (Warn_On_Warnings_Off): Now controls more cases.
2158
21592014-01-31 Arnaud Charlet <charlet@adacore.com>
2160
2161 * exp_disp.adb: Update comments.
2162
21632014-01-31 Yannick Moy <moy@adacore.com>
2164
2165 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration,
2166 Save_Global_References): Guard access to expression in aspect.
2167
21682014-01-31 Yannick Moy <moy@adacore.com>
2169
2170 * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode):
2171 Issue an error when the pragma is applied to a generic unit,
2172 a generic declaration, or inside a generic.
2173
21742014-01-31 Yannick Moy <moy@adacore.com>
2175
2176 * sem_ch8.adb (Analyze_Subprogram_Renaming): Set SPARK_Mode on renaming
2177 entity.
2178
bdfb8ec4
AC
21792014-01-31 Robert Dewar <dewar@adacore.com>
2180
2181 * exp_ch9.adb, s-tassta.adb, s-tposen.adb, s-tposen.ads: Minor
2182 reformatting.
2183
21842014-01-31 Tristan Gingold <gingold@adacore.com>
2185
2186 * exp_disp.adb: Add a historic note.
2187
21882014-01-31 Robert Dewar <dewar@adacore.com>
2189
2190 * sem_warn.adb (Warn_On_Useless_Assignments): Add call to
2191 Process_Deferred_References.
2192
21932014-01-31 Yannick Moy <moy@adacore.com>
2194
2195 * erroutc.adb (Validate_Specific_Warnings): Do not issue a message for
2196 ineffective pragma Warnings(Off) in GNATprove_Mode.
2197
5b0e6852
BD
21982014-01-31 Bob Duff <duff@adacore.com>
2199
2200 * s-taskin.ads: Minor comment fix.
2201 * s-tassta.adb (Abort_Dependents): Don't abort all dependents;
2202 just direct dependents. If this is actually an abort, each task
2203 will take care of aborting its dependents, so all dependents will
2204 get aborted, as before. However, when this is called the second
2205 time from Vulnerable_Complete_Master "for convenience" (i.e. to
2206 kill off tasks waiting at terminate alternatives), aborting
2207 indirect dependents is wrong, because it causes some unrelated
2208 tasks to get aborted.
2209
a54ffd6c
AC
22102014-01-31 Robert Dewar <dewar@adacore.com>
2211
2212 * sem_ch4.adb: Minor reformatting.
2213
22142014-01-31 Robert Dewar <dewar@adacore.com>
2215
2216 * exp_ch2.adb: New calling sequence for Is_LHS.
2217 * frontend.adb: Add call to Process_Deferred_References.
2218 * lib-xref.ads, lib-xref.adb (Process_Deferred_References): New.
2219 (Deferred_References): New table.
2220 * sem_ch8.adb (Find_Direct_Name): Make deferred reference table
2221 entries.
2222 (Find_Expanded_Name): Ditto.
2223 * sem_res.adb: New calling sequence for Is_LHS.
2224 * sem_util.ads, sem_util.adb (Is_LHS): New calling sequence.
2225 * sem_warn.adb: Call Process_Deferred_References before issuing
2226 warnings.
2227
22282014-01-31 Tristan Gingold <gingold@adacore.com>
2229
2230 * exp_util.adb (Corresponding_Runtime_Package): Restrict the
2231 use of System_Tasking_Protected_Objects_Single_Entry.
2232 * exp_ch9.adb (Build_Simple_Entry_Call): Remove Mode parameter
2233 of Protected_Single_Entry_Call.
2234 (Expand_N_Timed_Entry_Call): Remove single_entry case.
2235 * exp_disp.adb (Make_Disp_Asynchronous_Select_Body): Remove
2236 single_entry case.
2237 (Make_Disp_Timed_Select_Body): Likewise.
2238 * rtsfind.ads (RE_Timed_Protected_Single_Entry_Call): Remove.
2239 * s-tposen.adb (Send_Program_Error, PO_Do_Or_Queue): Remove
2240 Self_Id parameter.
2241 (Wakeup_Entry_Caller): Remove Self_ID and New_State parameters.
2242 (Wait_For_Completion_With_Timeout): Remove.
2243 (Protected_Single_Entry_Call): Remove Mode parameter
2244 (always Simple_Call).
2245 (Service_Entry): Remove Self_Id constant (not used anymore).
2246 (Timed_Protected_Single_Entry_Call): Remove.
2247 * s-tposen.ads (Timed_Protected_Single_Entry_Call): Remove.
2248 (Protected_Single_Entry_Call): Remove Mode parameter.
2249
4f7c83ca
AC
22502014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
2251
2252 * einfo.adb (Get_Pragma): Handle the retrieval of pragma Refined_Post.
2253 * einfo.ads (Get_Pragma): Update the comment on special pragmas
2254 handled by this routine.
2255 * sem_prag.adb (Analyze_Pragma): Add a legal pragma Refined_Post
2256 to the contract of the related subprogram body.
2257 * sem_util.adb (Add_Contract_Item): Handle the insertion of
2258 pragma Refined_Post into the contract of a subprogram body.
2259 * sinfo.ads Update the documentation of node N_Contract.
2260 * sem_res.adb (Resolve_Entity_Name): Add a guard
2261 to detect abstract states and variables only when checking the
2262 SPARK 2014 rules concerning volatile object placement.
2263
22642014-01-29 Ed Schonberg <schonberg@adacore.com>
2265
2266 * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): within an instance,
2267 null is compatible with any access type.
2268
385e1a99
HK
22692014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
2270
2271 * sem_util.adb (Find_Placement_In_State_Space): Assume that the default
2272 placement is not in a package.
2273
159a5104
AC
22742014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
2275
2276 * sem_util.adb (Has_Enabled_Property): Compare the character field of
2277 the sole property.
2278
22792014-01-29 Robert Dewar <dewar@adacore.com>
2280
2281 * sem_intr.adb, a-ztexio.ads, sinfo.ads, sem_res.adb, gnatlink.adb,
2282 vms_conv.adb, a-except.ads, a-except-2005.ads, a-teioed.adb,
2283 sem_warn.ads, treepr.ads, erroutc.ads, a-excach.adb: Minor reformatting.
2284
87e9b935
RD
22852014-01-29 Robert Dewar <dewar@adacore.com>
2286
2287 * sem_util.ads, sem_util.adb (In_Pragma_Expression): New function.
2288 * sem_warn.adb (Check_References): Suppress warnings if inside
2289 Initial_Condition pragma.
2290
98b5d298
HK
22912014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
2292
2293 * sem_prag.adb (Check_Missing_Part_Of): List all values of
2294 State_Space_Kind for readability reasons. Do not emit an error on
2295 a private item when the enclosing package lacks aspect/pragma
2296 Abstract_State. Do not emit an error on a private package
2297 instantiation when the corresponding generic template lacks
2298 visible state.
2299 (Has_Visible_State): New routine.
2300 * sem_util.adb (Find_Placement_In_State_Space): The visible
2301 declarations of any kind of child units in general act as proper
2302 placement location.
2303
a90bd866
RD
23042014-01-29 Robert Dewar <dewar@adacore.com>
2305
2306 * a-except-2005.adb, a-except.adb, a-excpol-abort.adb, a-exstat.adb,
2307 ali.adb, a-numaux.ads, a-numaux-darwin.ads, a-numaux-libc-x86.ads,
2308 a-numaux-vms.ads, a-numaux-vxworks.ads, a-numaux-x86.ads, aspects.ads,
2309 a-taside.adb, a-teioed.adb, a-textio.adb, a-textio.ads, atree.adb,
2310 atree.ads, a-witeio.adb, a-witeio.ads, a-wtedit.adb, a-ztedit.adb,
2311 a-ztexio.adb, bcheck.adb, binde.adb, checks.adb, comperr.adb,
2312 cstand.adb, debug_a.adb, einfo.ads, errout.adb, erroutc.adb,
2313 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb,
2314 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb, exp_dbug.adb,
2315 exp_disp.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_util.adb,
2316 freeze.adb, frontend.adb, g-comlin.ads, g-mbdira.adb, gnat1drv.adb,
2317 gprep.adb, g-spipat.adb, i-cpp.ads, i-vxwork.ads, i-vxwork-x86.ads,
2318 krunch.ads, layout.adb, lib-load.adb, lib-writ.adb, lib-writ.ads,
2319 live.adb, namet.ads, osint.adb, osint-c.adb, output.ads, par.adb,
2320 par-ch10.adb, par-ch13.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
2321 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-prag.adb,
2322 par-sync.adb, par-tchk.adb, par-util.adb, prj.adb, repinfo.adb,
2323 rtsfind.adb, s-arit64.adb, s-asthan-vms-alpha.adb,
2324 s-asthan-vms-ia64.adb, s-bignum.adb, scans.adb, scng.adb, s-dimmks.ads,
2325 sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb, sem_ch10.adb,
2326 sem_ch12.adb, sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch4.adb,
2327 sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_disp.adb, sem_elab.adb,
2328 sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_prag.adb, sem_res.adb,
2329 sem_type.adb, sem_util.adb, sem_warn.adb, set_targ.adb, s-fatgen.adb,
2330 s-fatgen.ads, s-fileio.adb, s-imgcha.adb, s-imgrea.adb, sinfo.ads,
2331 sinput-c.adb, snames.ads-tmpl, s-os_lib.adb, sprint.adb,
2332 s-regpat.adb, s-secsta.adb, s-stalib.ads,
2333 s-stchop.adb, s-stoele.ads, stand.ads, s-taprop-solaris.adb,
2334 s-tasdeb-vms.adb, s-tasini.adb, s-tassta.adb, s-valdec.adb,
2335 s-valuti.adb, s-wchjis.adb, s-wchwts.adb, system.ads, system-vms_64.ads,
2336 system-vms-ia64.ads, treepr.adb, types.ads, uintp.adb, uname.adb,
2337 urealp.adb, usage.adb, vxaddr2line.adb: Minor reformatting.
2338
0d66cee5
AC
23392014-01-29 Robert Dewar <dewar@adacore.com>
2340
2341 * expander.adb: Minor reformatting.
2342
23432014-01-29 Javier Miranda <miranda@adacore.com>
2344
2345 * exp_ch3.adb (Predefined_Primitive_Bodies): Adding documentation to
2346 previous patch.
2347
b7cb4a61
AC
23482014-01-29 Javier Miranda <miranda@adacore.com>
2349
2350 * exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code
2351 that checks if an interface types defines the predefined "="
2352 function because the compiler was erroneously not generating the
2353 predefined "=" primitive as soon as the name of some interface
2354 primitive is "=" (formals were not checked).
2355
23562014-01-29 Ed Schonberg <schonberg@adacore.com>
2357
2358 * expander.adb (Expander): In GNATprove mode, do not process
2359 transient scopes: they are in general not created in this mode,
2360 and an attempt to examine them will lead to constraint errors when
2361 processing configuration pragmas that have analyzable expressions.
2362
35d4d899
VC
23632014-01-29 Vincent Celier <celier@adacore.com>
2364
2365 * clean.adb (Gnatclean): Fail if main project is an aggregate
2366 project or if there is an aggregate library project in the
2367 project tree.
2368 * gnatcmd.adb: Fail if the main project is an aggregate project
2369 or if there is an aggegate library project in the project tree.
2370 * make.adb (Initialize): : Fail if main project is an aggregate
2371 project or if there is an aggregate library project in the
2372 project tree.
2373 * makeutl.ads (Aggregate_Libraries_In): New Boolean function.
2374 * prj-makr.adb (Initialize): Fail if the main project is an
2375 aggregate project or an aggregate library project.
2376
88de755d
VC
23772014-01-29 Vincent Celier <celier@adacore.com>
2378
2379 * prj-part.adb (Check_Import_Aggregate): New procedure
2380 to check if an imported project is an aggregate project.
2381 (Parse_Single_Project): Call Check_Import_Aggregate
2382 * projects.texi: Document that aggregate projects cannot be
2383 extended or imported.
2384
d0e69402
RD
23852014-01-29 Robert Dewar <dewar@adacore.com>
2386
2387 * exp_ch9.adb, sem_ch7.ads, s-regexp.adb, sem_ch13.adb: Minor
2388 reformatting and code clean up.
2389 * gnat_ugn.texi: Add documentation section on Atomic Variables
2390 and Optimization.
2391
5627964c
AC
23922014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
2393
2394 * einfo.adb Flag264 is now unused.
2395 (Has_Body_References): Removed.
2396 (Set_Has_Body_References): Removed.
2397 (Write_Entity_Flags): Remove the output for flag Has_Body_References.
2398 * einfo.ads Update the comment on usage of attribute
2399 Body_References. Remove attribute Has_Body_References and its
2400 usage in nodes.
2401 (Has_Body_References): Removed along with pragma Inline.
2402 (Set_Has_Body_References): Removed along with pragma Inline.
2403 * sem_prag.adb (Analyze_Global_Item): Move the call to
2404 Record_Possible_Body_Reference in the state related checks
2405 section. Add a comment intended function.
2406 (Analyze_Input_Output): Move the call to Record_Possible_Body_Reference
2407 in the state related checks section. Add a comment intended function.
2408 (Analyze_Refinement_Clause): Cleanup the illegal body reference
2409 reporting. Add a comment on timing of error reporting.
2410 (Record_Possible_Body_Reference): Reimplement the routine.
2411
24122014-01-29 Vincent Celier <celier@adacore.com>
2413
2414 * makeutl.adb (Mains.Find_File_Add_Extension): Only look for specs for
2415 unit-based languages.
2416 (Mains.Complete_Mains.Do_Complete): Use the source file project
2417 tree when calling Find_File_Add_Extension. Use the correct
2418 project name when reporting an error.
2419
d7af5ea5
HK
24202014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
2421
2422 * aspects.adb Add an entry for aspect Part_Of in table
2423 Canonical_Aspect.
2424 * aspects.ads Add an entry for aspect Part_Of in tables Aspect_Id,
2425 Aspect_Argument, Aspect_Names and Aspect_Delay.
2426 * atree.h Define Elist9.
2427 * atree.adb (Elist9): New routine.
2428 (Set_Elist9): New routine.
2429 * atree.ads (Elist9): New routine.
2430 (Set_Elist9): New routine.
2431 * einfo.adb Add Part_Of_Constituents and Encapsulating_State to
2432 the list of node usage. Remove Refined_State from the list of
2433 node usage.
2434 (Encapsulating_State): New routine.
2435 (Get_Pragma):
2436 Handle pragma Part_Of; (Part_Of_Constituents): New routine.
2437 (Refined_State): Removed.
2438 (Set_Encapsulating_State): New routine.
2439 (Set_Part_Of_Constituents): New routine.
2440 (Set_Refined_State): Removed.
2441 (Write_Field9_Name): Add an entry
2442 for Part_Of_Constituents (Write_Field10_Name): Add an entry for
2443 Encapsulating_State. Remove the entry for Refined_State.
2444 * einfo.ads Add new attributes Encapsulating_State
2445 and Part_Of_Constituents alond with their usage in
2446 entities. Remove attribute Refined_State along with its
2447 usage in entities.
2448 (Encapsulating_State): New routine and
2449 pragma Inline. (Get_Pragma): Update the comment on usage.
2450 (Part_Of_Constituents): New routine and pragma Inline.
2451 (Refined_State): Removed along with pragma Inline.
2452 (Set_Encapsulating_State): New routine and pragma Inline.
2453 (Set_Part_Of_Constituents): New routine and pragma Inline.
2454 (Set_Refined_State): Removed along with pragma Inline.
2455 * par-prag.adb Pragma Part_Of does not need any special processing
2456 by the parser.
2457 * sem_ch3.adb (Analyze_Declarations): Remove local variables
2458 Body_Id and Prag. Call separate routines to analyze the
2459 contract of a package [body].
2460 (Analyze_Object_Contract):
2461 Update the comment on usage. Remove local variables
2462 Items and Nam. Use Get_Pragma rather than traversing the
2463 classification list. Verify whether the lack of indicator
2464 Part_Of agrees with the placement of the variable in state space.
2465 (Analyze_Object_Declaration): Initialize the encapsulating state
2466 of a variable. (Requires_State_Refinement): Moved to sem_util.
2467 * sem_ch7.adb (Analyze_Package_Body_Contract): New routine.
2468 (Analyze_Package_Contract): New routine.
2469 * sem_ch7.ads (Analyze_Package_Body_Contract): New routine.
2470 (Analyze_Package_Contract): New routine.
2471 * sem_ch10.adb (Decorate_State): Initialize the encapsulating
2472 state and Part_Of constituents.
2473 * sem_ch13.adb (Analyze_Aspect_Specifications):
2474 Add processing for aspect Part_Of. Update all
2475 calls to Decorate_Delayed_Aspect_And_Pragma.
2476 (Check_Aspect_At_Freeze_Point): Aspect Part_Of does
2477 not need any special processing at freeze time.
2478 (Decorate_Delayed_Aspect_And_Pragma): Renamed to
2479 Decorate_Aspect_And_Pragma. Add formal parameter Delayed and
2480 update the associated comment.
2481 * sem_prag.adb Add an entry for pragma Part_Of in table Sig_Flags.
2482 (Analyze_Abstract_State): Add new global variable State_Id. Remove
2483 local constants Errors and Loc. Remove local variables Is_Null
2484 and State_Nam. Create the entity of the abstract state on the
2485 spot, before all remaining checks are performed. Verify that a
2486 missing Part_Of option agrees with the placement of the abstract
2487 state within the state space.
2488 (Analyze_Depends_In_Decl_Part):
2489 Add new global variables Constits_Seen and States_Seen. Check
2490 that a state and a corresponding constituent do not appear
2491 in pragma [Refined_]Depends.
2492 (Analyze_Global_In_Decl_Part):
2493 Add new global variables Constits_Seen and States_Seen. Check
2494 that a state and a corresponding constituent do not appear
2495 in pragma [Refined_]Global.
2496 (Analyze_Global_Item):
2497 Remove the now obsolete code that deals with Part_Of.
2498 Add the entity of the global item to the list of processed
2499 items. (Analyze_Initializes_In_Decl_Part): Add new global
2500 variables Constits_Seen and States_Seen. Check that a state
2501 and a corresponding constituent do not appear in pragma
2502 Initializes.
2503 (Analyze_Initialization_Item): Add the entity
2504 of the initialization item to the list of processed items.
2505 (Analyze_Input_Item): Add the entity of the initialization
2506 item to the list of processed items.
2507 (Analyze_Input_Output):
2508 Remove the now obsolete code that deals with Part_Of. Add the
2509 entity of the input/output to the list of processed items.
2510 (Analyze_Part_Of): New routine.
2511 (Analyze_Part_Of_Option): Remove
2512 local constant Par_State. Add local constant Encaps and local
2513 variables Encaps_Id and Legal. Use Analyze_Part of to analyze
2514 the option. Turn the related state into a Part_Of constituent
2515 if the option is legal.
2516 (Analyze_Pragma): Add processing
2517 for pragma Part_Of.
2518 (Analyze_Refined_State_In_Decl_Part):
2519 Remove global constants Pack_Body and Spec_Id. Remove
2520 global variables Abstr_States and Hidden_States. Add new
2521 global variables Available_States, Body_Id, Body_States and
2522 Spec_Id. Add new local constant Body_Decl. Reimplement the
2523 logic that extracts the states available for refinement from
2524 the related package and the body hidden states of the said
2525 package.
2526 (Analyze_Refinement_Clause): Add local variable Part_Of_Constits.
2527 (Check_Applicable_Policy): Alphabetize body.
2528 (Check_Dependency_Clause): Replace Refined_State
2529 with Encapsulating_State.
2530 (Check_Matching_Constituent):
2531 Reimplement the logic that determines whether an item is a valid
2532 / invalid constituent of the current refined state. Return when
2533 a construct does not denote a valid abstract state. Extract the
2534 list of Part_Of constituents for further analysis. Check that all
2535 Part_Of constituents of a state have been used in its refinement.
2536 (Check_Matching_State): Update the comment on usage. Operate
2537 on the list of available states.
2538 (Check_Missing_Part_Of): New routine.
2539 (Check_Refined_Global_Item): Replace Refined_State
2540 with Encapsulating_State.
2541 (Check_State_And_Constituent_Use): New routine.
2542 (Create_Abstract_State): New routine.
2543 (Is_Matching_Input): Replace Refined_State with Encapsulating_State.
2544 (Is_Part_Of): Removed.
2545 (Collect_Body_States): New routine.
2546 (Collect_Constituent): Replace Refined_State with Encapsulating_State.
2547 (Collect_Hidden_States): Removed.
2548 (Report_Unrefined_States): Change the profile of the procedure along
2549 with the comment on usage.
2550 (Report_Unused_Constituents): New routine.
2551 (Report_Unused_Hidden_States): Removed.
2552 (Report_Unused_States): New routine.
2553 * sem_prag.ads (Check_Missing_Part_Of): New routine.
2554 * sem_util.adb (Add_Contract_Item): Pragma Part_Of can now
2555 appear in the classification pragmas of a package instantiation
2556 or a variable.
2557 (Find_Placement_In_State_Space): New routine.
2558 (Is_Child): Removed.
2559 (Is_Child_Or_Sibling): Remove formal
2560 parameter Private_Child. Remove the private child checks.
2561 (Requires_State_Refinement): Moved from sem_ch3.
2562 * sem_util.ads Add new type State_Space_Kind along with
2563 comment on its usage and values.
2564 (Add_Contract_Item): Update the comment on usage.
2565 (Find_Body_Discriminal): Alphabetize spec.
2566 (Find_Placement_In_State_Space): New routine.
2567 (Is_Child_Or_Sibling): Remove formal parameter Private_Child
2568 and update the comment on usage.
2569 (Requires_State_Refinement): Moved from sem_ch3.
2570 * sinfo.ads: Update the documentation of N_Contract.
2571 * snames.ads-tmpl The predefined name for Part_Of is now used
2572 to denote a pragma. Add Pragma_Id for Part_Of.
2573
0830210c
AC
25742014-01-29 Emmanuel Briot <briot@adacore.com>
2575
2576 * s-regexp.adb (Create_Secondary_Table): Automatically grow the state
2577 machine as needed.
2578 (Dump): New subprogram.
2579
25802014-01-29 Tristan Gingold <gingold@adacore.com>
2581
2582 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Add
2583 Expand_Entry_Declaration to factorize code.
2584
1ae70618
ES
25852014-01-29 Ed Schonberg <schonberg@adacore.com>
2586
2587 * checks.adb: minor clarification.
2588 * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Limit
2589 search for primitive operations to the entities that immediately
2590 follow the type declaration.
2591
cca7f107
AC
25922014-01-29 Tristan Gingold <gingold@adacore.com>
2593
2594 * exp_ch9.adb (Build_Protected_Entry): Do not call
2595 Complete_Entry_Body anymore.
2596 * rtsfind.ads (RE_Complete_Single_Entry_Body): Remove.
2597 * s-tposen.ads, s-tposen.adb (Complete_Single_Entry_Body): Remove.
2598
25992014-01-29 Pierre-Marie Derodat <derodat@adacore.com>
2600
2601 * s-os_lib.adb, s-os_lib.ads (Normalize_Pathname): Return an empty
2602 string when the Name input bigger than allowed. Adapt the function
2603 specification.
2604
26052014-01-29 Ed Schonberg <schonberg@adacore.com>
2606
2607 * checks.adb (Install_Null_Excluding_Check): Do not emit warning
2608 if expression is within a case_expression of if_expression.
2609
443dd772
RD
26102014-01-29 Robert Dewar <dewar@adacore.com>
2611
2612 * exp_ch9.adb, inline.ads: Minor reformatting.
2613
4043fd0b
AC
26142014-01-29 Tristan Gingold <gingold@adacore.com>
2615
2616 * exp_ch9.adb (Is_Exception_Safe): Return true if no exceptions.
2617
26182014-01-29 Yannick Moy <moy@adacore.com>
2619
2620 * inline.ads (Pending_Body_Info): Add SPARK_Mode and
2621 SPARK_Mode_Pragma components to be able to analyze generic
2622 instance.
2623 * sem_ch12.adb (Analyze_Package_Instantiation,
2624 Inline_Instance_Body, Need_Subprogram_Instance_Body,
2625 Load_Parent_Of_Generic): Pass in SPARK_Mode from instantiation
2626 for future analysis of the instance.
2627 (Instantiate_Package_Body,
2628 Instantiate_Subprogram_Body, Set_Instance_Inv): Set SPARK_Mode
2629 from instantiation to analyze the instance.
2630
cf3e6845
AC
26312014-01-29 Robert Dewar <dewar@adacore.com>
2632
2633 * sem_ch7.adb, sem_prag.adb, sem_ch4.adb, sem_ch6.adb: Minor code
2634 reorganization.
2635
26362014-01-29 Yannick Moy <moy@adacore.com>
2637
2638 * gnat_rm.texi: Update description of SPARK_Mode pragma.
2639
26402014-01-29 Tristan Gingold <gingold@adacore.com>
2641
2642 * exp_ch9.adb (Expand_N_Protected_Body): Remove Num_Entries.
2643
f90d14ac
AC
26442014-01-29 Thomas Quinot <quinot@adacore.com>
2645
2646 * sem_ch4.adb (Find_Component_In_Instance): Update comment.
2647
26482014-01-29 Ed Schonberg <schonberg@adacore.com>
2649
2650 * exp_util.adb (Build_Task_Image_Prefix): Indicate that the
2651 resulting string is an internal entity. and thus requires no
2652 initialization. This is relevant when Initialize_ Scalars is
2653 enabled, because the resultant spurious initialization may lead to
2654 secondary stack anomalies that produce a mangled name for a task.
2655
26562014-01-29 Yannick Moy <moy@adacore.com>
2657
2658 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode
2659 not inherited from spec anymore. Check consistency
2660 rules after processing of declarations.
2661 * sem_ch7.adb (Analyze_Package_Body_Helper): SPARK_Mode not inherited
2662 from spec anymore. Check consistency rules after processing of
2663 declarations.
2664 (Analyze_Package_Declaration): Set SPARK_Mode only for non-generic
2665 packages.
2666 * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): Implement new
2667 consistency rules.
2668
b1d12996
AC
26692014-01-27 Robert Dewar <dewar@adacore.com>
2670
2671 * sem_res.adb (Resolve_Comparison_Op): Add type name/location
2672 to unordered msg.
2673 (Resolve_Range): Add type name/location to unordered msg.
2674
26752014-01-27 Claire Dross <dross@adacore.com>
2676
2677 * a-cofove.adb/s (Copy): Add precondition so that Copy (Source,
2678 Capacity) is only called with Capacity >= Length (Source) and
2679 Capacity in Capacity_Range.
2680 * a-cfdlli.adb/s, a-cfhase.adb/s, a-cfhama.adb/s, a-cforse.adb/s,
2681 a-cforma.adb/s (Copy): Add precondition so that Copy (Source, Capacity)
2682 is only called with Capacity >= Source.Capacity. Raise Capacity_Error
2683 in the code is this is not the case.
2684
26852014-01-27 Thomas Quinot <quinot@adacore.com>
2686
2687 * sem_ch4.adb (Analyze_Selected_Component): Fix handling of
2688 selected component in an instance where the component of the
2689 actual is not visibile at instantiation.
2690
fcadacf7
ES
26912014-01-27 Ed Schonberg <schonberg@adacore.com>
2692
2693 * sem_ch6.adb: sem_ch6.adb (Set_Actual_Subtypes): If the type
2694 has a dynamic predicate, generate freeze node for Actual_Subtype
2695 at once, because the declaration of the corresponding predicate
2696 function will make reference to it.
2697
8b4230c8
AC
26982014-01-27 Tristan Gingold <gingold@adacore.com>
2699
2700 * exp_ch7.adb, exp_ch9.adb: Adjust comments.
2701
27022014-01-27 Robert Dewar <dewar@adacore.com>
2703
2704 * exp_ch4.adb (Expand_N_Op_Expon): Remove unsigned type test
2705 for 2**X optimization.
2706
27072014-01-27 Ed Schonberg <schonberg@adacore.com>
2708
2709 * a-suenst.adb: strings.utf_encoding.strings (Decode): Check
2710 explicitly whether value is in range of Character, because the
2711 library is typically compiled with range checks disabled, and
2712 we cannot rely on the implicit check on the argument of 'Val.
2713
27142014-01-27 Vincent Celier <celier@adacore.com>
2715
2716 * a-ciorma.adb, a-cihama.adb (Assign): Copy the Source to the Target,
2717 not the Target to itself.
2718
27192014-01-27 Robert Dewar <dewar@adacore.com>
2720
2721 * vms_conv.ads, ali.adb, sem_ch6.ads, opt.ads, vms_cmds.ads: Minor
2722 changes to avoid incorrect use of unordered enum types.
2723
27242014-01-27 Thomas Quinot <quinot@adacore.com>
2725
2726 * sem_ch4.adb: Minor reformatting.
2727
29077c18
AC
27282014-01-27 Robert Dewar <dewar@adacore.com>
2729
2730 * scn.adb (Check_End_Of_Line): Removed.
2731 (Error_Long_Line): Removed.
2732 (Determine_License): Use versions of above routines from Scanner.
2733 * scng.adb (Check_End_Of_Line): Moved to spec.
2734 (Error_Long_Line): Removed, no longer used.
2735 * scng.ads (Check_End_Of_Line): Moved here from body.
2736
27372014-01-27 Tristan Gingold <gingold@adacore.com>
2738
2739 * exp_ch7.adb (Build_Cleanup_Statements): Call
2740 Build_Protected_Subprogram_Call_Cleanup to insert the cleanup
2741 for protected body.
2742 * exp_ch9.adb (Build_Protected_Subprogram_Body): Likewise.
2743 Remove Service_Name variable.
2744 (Build_Protected_SUbprogam_Call_Cleanup): New procedure that
2745 factorize code from the above subprograms.
2746 * exp_ch9.ads (Build_Protected_Subprogram_Call_Cleanup): New procedure.
2747
2757c5bf
AC
27482014-01-27 Hristian Kirtchev <kirtchev@adacore.com>
2749
2750 * einfo.adb (Has_Option): Reimplemented.
2751 * sem_prag.adb (Analyze_Refinement_Clause): Add global
2752 variables AR_Constit, AW_Constit, ER_Constit, EW_Constit,
2753 External_Constit_Seen and State. Add local variables Body_Ref,
2754 Body_Ref_Elmt and Extra_State. Reimplement part of the logic to
2755 avoid a cumbersome while pool. Verify the legality of an external
2756 state and relevant properties.
2757 (Check_External_Property): New routine.
2758 (Check_Matching_State): Remove parameter profile
2759 and update comment on usage.
2760 (Collect_Constituent): Store the
2761 relevant external property of a constituent.
2762 * sem_util.adb (Async_Readers_Enabled): Update the call to
2763 Has_Enabled_Property.
2764 (Async_Writers_Enabled): Update the call to Has_Enabled_Property.
2765 (Effective_Reads_Enabled): Update the call to Has_Enabled_Property.
2766 (Effective_Writes_Enabled): Update the call to Has_Enabled_Property.
2767 (Has_Enabled_Property): Rename formal parameter Extern to State_Id.
2768 Update comment on usage. Reimplement the logic to recognize the various
2769 formats of properties.
2770
27712014-01-27 Ed Schonberg <schonberg@adacore.com>
2772
2773 * par-ch5.adb: Minor reformatting.
2774
27752014-01-27 Tristan Gingold <gingold@adacore.com>
2776
2777 * s-tposen.ads: Harmonize style and comments.
2778
27792014-01-27 Vincent Celier <celier@adacore.com>
2780
2781 * projects.texi: Document that shared library projects, by
2782 default, cannot import projects that are not shared library
2783 projects.
2784
27852014-01-27 Robert Dewar <dewar@adacore.com>
2786
2787 * sem_ch8.adb (Find_Selected_Component): Use Replace instead
2788 of Rewrite.
2789
27902014-01-27 Ed Schonberg <schonberg@adacore.com>
2791
2792 * a-suenco.adb, a-suenst.adb (Decode): Raise encoding error if
2793 any other exception is raised.
2794 (Convert): If both Input_Scheme and Output_Scheme are UTF_8 it is
2795 still necessary to perform a conversion in order to remove overlong
2796 encodings.
2797
00ba7be8
AC
27982014-01-27 Robert Dewar <dewar@adacore.com>
2799
2800 * exp_smem.adb: Minor reformatting.
2801
28022014-01-27 Thomas Quinot <quinot@adacore.com>
2803
2804 * a-calfor.ads: Fix incorrect reference to operator "-" in comment.
2805
28062014-01-27 Ed Schonberg <schonberg@adacore.com>
2807
2808 * sem_res.adb (Make_Call_Into_Operator): In ASIS mode, relocate
2809 nodes for operands to the original node for the call, to preserve
2810 Original_Node pointers within the resolved operands, given that
2811 they may have been rewritten as well. Previous approach copied
2812 the operands into a new tree and lost those pointers.
2813
28142014-01-27 Claire Dross <dross@adacore.com>
2815
2816
2817 * a-cofove.adb, a-cofove.ads: Add Strict_Equal function to the API.
2818
28192014-01-27 Ed Schonberg <schonberg@adacore.com>
2820
2821 * sem_util.adb (Check_Internal_Protected_Use): A call through
2822 an anonymous access parameter of the current protected function
2823 is not a potential modification of the current object.
2824
28252014-01-27 Ed Schonberg <schonberg@adacore.com>
2826
2827 * a-cobove.adb (Reserve_Capacity): Procedure raises
2828 Capacity_Error, not Constraint_Error, when request cannot be
2829 satisfied.
2830
28312014-01-27 Vincent Celier <celier@adacore.com>
2832
2833 * a-coorma.adb, a-cohama.adb (Assign): Copy the Source to the Target,
2834 not the Target to itself.
2835
28362014-01-27 Ed Schonberg <schonberg@adacore.com>
2837
2838 * exp_ch4.adb (Expand_Concatenate): If the target of the
2839 concatenation is a library-level entity, always use the off-line
2840 version of concatenation, regardless of optimization level. This
2841 is space-efficient, and prevents linking problems when some
2842 units are compiled with different optimization levels.
2843
28442014-01-27 Ed Schonberg <schonberg@adacore.com>
2845
2846 * sem_ch5.adb: Code clean up.
2847
28482014-01-27 Ed Schonberg <schonberg@adacore.com>
2849
2850 * par-ch5.adb (P_Iterator_Specification): Improve error recovery
2851 when an array or container iterator includes a subtype indication,
2852 which is only legal in an element iterator.
2853
8fdafe44
AC
28542014-01-27 Thomas Quinot <quinot@adacore.com>
2855
2856 * exp_ch7.adb: Minor reformatting.
2857
28582014-01-27 Robert Dewar <dewar@adacore.com>
2859
2860 * opt.adb (SPARK_Mode): Default for library units is None rather
2861 than Off.
2862 * opt.ads: Remove AUTO from SPARK_Mode_Type SPARK_Mode_Type is
2863 no longer ordered.
2864 * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Remove AUTO
2865 possibility.
2866 * snames.ads-tmpl (Name_Auto): Removed, no longer used.
2867
28682014-01-27 Robert Dewar <dewar@adacore.com>
2869
2870 * par-ch5.adb (P_Sequence_Of_Statements): Make entry in
2871 Suspicious_Labels table if we have identifier; followed by loop
2872 or block.
2873 * par-endh.adb (Evaluate_End_Entry): Search Suspicious_Labels table.
2874 * par.adb (Suspicious_Labels): New table.
2875
28762014-01-27 Robert Dewar <dewar@adacore.com>
2877
2878 * exp_aggr.adb (Check_Bounds): Reason is range check, not
2879 length check.
2880
28812014-01-27 Yannick Moy <moy@adacore.com>
2882
2883 * get_spark_xrefs.adb (Get_SPARK_Xrefs): Accept new type 'c' for
2884 reference.
2885 * lib-xref-spark_specific.adb (Is_Global_Constant): Remove useless
2886 function now.
2887 (Add_SPARK_Xrefs): Include references to constants.
2888 * spark_xrefs.ads Document new character 'c' for references to
2889 constants.
2890
28912014-01-27 Thomas Quinot <quinot@adacore.com>
2892
2893 * exp_smem.adb (Add_Write_After): For a function call, insert write as
2894 an after action in a transient scope.
2895
b3a69993
AC
28962014-01-27 Thomas Quinot <quinot@adacore.com>
2897
2898 * exp_smem.adb (Expand_Shared_Passive_Variable): For a reference
2899 to a shared variable as an OUT formal in a call to an init proc,
2900 the 'Read call must be emitted after, not before, the call.
2901
29022014-01-27 Robert Dewar <dewar@adacore.com>
2903
2904 * gnat_rm.texi: Remove mention of AUTO mode for SPARK_Mode pragma.
2905
f1bd0415
AC
29062014-01-27 Robert Dewar <dewar@adacore.com>
2907
2908 * a-wichha.adb (Character_Set_Version): Change to output proper
2909 value.
2910
29112014-01-27 Hristian Kirtchev <kirtchev@adacore.com>
2912
2913 * einfo.adb (Is_Input_Only_State): Removed.
2914 (Is_Non_Volatile_State): Removed.
2915 (Is_Output_State): Removed.
2916 * einfo.ads (Is_Input_Only_State): Remove attribute and
2917 subprogram. Update related entity.
2918 (Is_Non_Volatile_State):
2919 Remove attribute and subprogram. Update related entity.
2920 (Is_Output_State): Removed attribute and subprogram. Update
2921 related entity.
2922 * exp_ch6.adb (Expand_Subprogram_Contract): Update comment on
2923 generated code.
2924 * sem_ch3.adb (Analyze_Declarations): Analyze the contract of
2925 an object, not just variables.
2926 (Analyze_Object_Contract): New routine.
2927 (Analyze_Variable_Contract): Removed.
2928 (Process_Discriminants): Detect an illegal use of volatile
2929 discriminant in SPARK mode.
2930 * sem_ch5.adb (Analyze_Iterator_Specification):
2931 Detect an illegal use of volatile loop variable.
2932 (Analyze_Loop_Parameter_Specification): Detect an illegal use
2933 of volatile loop variable.
2934 * sem_ch6.adb (Process_Formals): Update the volatile object
2935 detection. Detect an illegal formal of mode IN OUT or OUT in
2936 SPARK mode. Enhance the error messages with references.
2937 * sem_ch12.adb (Instantiate_Object): Update the volatile object
2938 detection. Enhance the error messages with references.
2939 * sem_prag.adb (Analyze_Abstract_State): Enhance the error
2940 messages with references.
2941 (Analyze_Contract_Case): Enhance the error messages with references.
2942 (Analyze_External_Property): Call Check_Duplicate_Property to process
2943 an external property.
2944 (Analyze_External_Property_In_Decl_Part): New routine.
2945 (Analyze_External_State_In_Decl_Part): Removed.
2946 (Analyze_Global_Item): Detect an illegal
2947 use of a volatile constant. Detect an illegal use
2948 of a variable with enabled Effective_Reads. Enhance
2949 the error messages with references. Remove obsolete
2950 checks concerning Input_Only and Output_Only states.
2951 (Analyze_Initialization_Item): Enhance the error messages
2952 with references.
2953 (Analyze_Initializes_In_Decl_Part): Do not
2954 collect the states and variables when the initialization list
2955 is null.
2956 (Analyze_Input_Item): Enhance the error messages with references.
2957 (Analyze_Input_Output): Enhance the error messages with references.
2958 (Analyze_Pragma): Enhance the error messages with references.
2959 (Analyze_Refinement_Clause): Code reformatting.
2960 (Analyze_Refined_Depends_In_Decl_Part):
2961 Rename global variable Global to Reg_Global and update all
2962 occurrences. Add local variables D7 and D8. Update the error
2963 messages with references. Update the call to Collect_Global_Items.
2964 (Analyze_Refined_Global_In_Decl_Part): Add local variables
2965 Has_Proof_In_State, Proof_In_Constits and Proof_In_Items. Update
2966 the call to Collect_Global_Items. Account for a Proof_In state
2967 in null / useless refinement checks. Verify the coverage of
2968 Proof_In states.
2969 (Check_Dependency_Clause): Remove local variable
2970 Out_Constits. Remove the retrieval and removal of constituents
2971 for an Output_Only state. Remove the reporting of unused
2972 Output_Only state constituents.
2973 (Check_Duplicate_Mode): Enhance
2974 the error message with a reference.
2975 (Check_Duplicate_Property): New routine.
2976 (Check_Duplicate_Option): Enhance the error message with a reference.
2977 (Check_External_Properties): Enhance the error message with a reference.
2978 (Check_Function_Return): Enhance the error message with a reference.
2979 (Check_In_Out_States): Update
2980 comment on usage. Add a specialized error message for Proof_In
2981 constituents. Enhance the error message with a reference.
2982 (Check_Input_States): Update comment on usage. Account for
2983 possible Proof_In constituents. Enhance the error message
2984 with a areference.
2985 (Check_Matching_Constituent): Enhance the error message with a
2986 reference.
2987 (Check_Matching_State): Enchance the error message with a reference.
2988 (Check_Mode): Add local variable From_Global. Update the call to
2989 Find_Mode. Emit more precise error messages concerning extra items
2990 (Check_Mode_Restriction_In_Enclosing_Context): Consider
2991 pragma Refined_Global. Enhance the error message with a
2992 reference.
2993 (Check_Mode_Restriction_In_Function): Enhance the error message with
2994 a reference.
2995 (Check_Output_States): Update comment on usage. Add local variable
2996 Posted. Account for possible Proof_In constituents. Produce a detailed
2997 list of missing constituents.
2998 (Check_Proof_In_States): New routine.
2999 (Check_Refined_Global_Item): Handle Proof_In
3000 constituents. Enchance the error message with a reference.
3001 (Collect_Global_Items): Add formal parameters Proof_In_Items
3002 and Has_Proof_In_State. Update the comment on usage. Account
3003 for Proof_In items.
3004 (Create_Or_Modify_Clause): Enchance
3005 the error message with a reference.
3006 (Find_Mode): Add
3007 formal parameter From_Global. Update the comment on usage.
3008 Detect when the mode is governed by pragma [Refined_]Global.
3009 (Output_Constituents): Removed.
3010 (Report_Extra_Constituents):
3011 Report extra Proof_In constituents.
3012 (Report_Unused_Constituents): Removed.
3013 (Usage_Error): Code reformatting. Enhance the error
3014 messages with reference.
3015 * sem_prag.ads (Analyze_External_Property_In_Decl_Part): New routine.
3016 (Analyze_External_State_In_Decl_Part): Removed.
3017 * sem_res.adb (Resolve_Actuals): Update the volatile object
3018 detection. Enhance the error message with a reference.
3019 (Resolve_Entity_Name): Update the volatile object
3020 detection. Enhance the error message with a reference.
3021 * sem_util.adb (Is_Refined_State): Add a guard to avoid a crash.
3022 (Is_SPARK_Volatile_Object): New routine.
3023 (Has_Volatile_Component): New routine.
3024 * sem_util.ads (Is_Delegate): Alphabetized.
3025 (Is_SPARK_Volatile_Object): New routine.
3026 (Has_Volatile_Component): New routine.
3027 * snames.ads-tmpl: Remove names Name_Input_Only and Name_Output_Only.
3028
30292014-01-27 Ed Schonberg <schonberg@adacore.com>
3030
3031 * sem_attr.adb: Resolve fully prefix of 'Update.
3032
48b08b18
AC
30332014-01-27 Ben Brosgol <brosgol@adacore.com>
3034
3035 * gnat_rm.texi: Minor clarifications.
3036
30372014-01-27 Robert Dewar <dewar@adacore.com>
3038
3039 * sem_elab.adb (Check_Internal_Call_Continue): Avoid complaining
3040 about call that is generated as part of an Initial_Condition
3041 check.
3042 * sem_prag.adb: Minor spelling correction.
3043
1b8b4638
RD
30442014-01-27 Robert Dewar <dewar@adacore.com>
3045
3046 * sem_prag.adb (Set_Convention_From_Pragma): Check that
3047 convention Ghost can only apply to functions.
3048 * einfo.ads, einfo.adb (Is_Ghost_Subprogram): Add clarifying comment.
3049
42959b0c
RD
30502014-01-27 Robert Dewar <dewar@adacore.com>
3051
3052 * gnat_ugn.texi: Add Short_Enums to documentation of
3053 -gnatet/-gnateT.
3054
30552014-01-27 Robert Dewar <dewar@adacore.com>
3056
3057 * sem_prag.adb (Analyze_Input_Item): Correct check for input
3058 item in same package.
3059 * sem_util.ads, sem_util.adb (Within_Scope): New function.
3060
87e9c2a2
AC
30612014-01-26 Arnaud Charlet <charlet@adacore.com>
3062
3063 * a-intnam-lynxos.ads, mlib-tgt-specific-lynxos.adb,
3064 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
3065 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-tpopsp-lynxos.adb,
3066 system-lynxos-ppc.ads, system-lynxos-x86.ads: Removed, no longer
3067 maintained.
3068
54dce195
EB
30692014-01-25 Eric Botcazou <ebotcazou@adacore.com>
3070
3071 * gcc-interface/Makefile.in: Fix oversight.
3072
88293f03
EB
30732014-01-25 Eric Botcazou <ebotcazou@adacore.com>
3074
3075 * gcc-interface/utils.c (convert_to_fat_pointer): Un-obfuscate the
3076 conversion from a thin pointer with a shifted value.
3077 * gcc-interface/utils2.c (gnat_build_constructor): Propagate the
3078 read-only flag from the values onto the result.
3079 (gnat_invariant_expr): Accept read-only CONSTRUCTORs.
3080
ae56e442
TG
30812014-01-25 Tristan Gingold <gingold@adacore.com>
3082
3083 * gcc-interface/decl.c (gnat_to_gnu_entity): Always build a variable
3084 for E_Variable with a pragma Linker_Section.
3085
3a70ba74
RD
30862014-01-25 Robert Dewar <dewar@adacore.com>
3087
3088 * gcc-interface/decl.c (gnat_to_gnu_param): Make sure an Out parameter
3089 with Default_Value aspect is passed in by copy.
3090
c51f5910
AC
30912014-01-24 Eric Botcazou <ebotcazou@adacore.com>
3092
3093 * set_targ.adb: Set Short_Enums.
3094 * gcc-interface/lang.opt (fshort-enums): New option.
3095 * gcc-interface/misc.c (gnat_handle_option): Handle it.
3096 (gnat_post_options): Do not modify the global settings.
3097
30982014-01-24 Robert Dewar <dewar@adacore.com>
3099
3100 * g-rannum.ads, g-rannum.adb (Random_Ordinary_Fixed): New generic
3101 function.
3102 (Random_Decimal_Fixed): New generic function.
3103 * s-rannum.ads: Minor comment clarifications.
3104
f27ad2b2
RD
31052014-01-24 Robert Dewar <dewar@adacore.com>
3106
3107 * back_end.adb: Remove Short_Enums handling (handled in
3108 Ttypes/Get_Targ now) Minor added comments.
3109 * freeze.adb: Change name Short_Enums_On_Target to
3110 Target_Short_Enums.
3111 * get_targ.ads, get_targ.adb (Get_Short_Enums): New function.
3112 * opt.ads: Minor comment updates.
3113 * sem_ch13.adb: Change name Short_Enums_On_Target to
3114 Target_Short_Enums.
3115 * set_targ.adb: Set Short_Enums from gcc back end.
3116 * set_targ.ads (Short_Enums): New variable.
3117 * targparm.ads, targparm.adb: Remove Short_Enums entries (handled in
3118 Ttypes/Get_Targ now).
3119 * ttypes.ads (Target_Short_Enums): New constant boolean switch
3120
dd6ab508
PO
31212014-01-24 Pascal Obry <obry@adacore.com>
3122
3123 * g-sercom-mingw.adb: Fix serial port name for port number > 10.
3124
e6d5d940
GD
31252014-01-24 Gary Dismukes <dismukes@adacore.com>
3126
3127 * exp_disp.adb (Expand_Dispatching_Call): Call Unqualify on Param when
3128 comparing it with Ctrl_Arg, since Ctrl_Arg may have had qualification
3129 stripped off.
3130
ab986406
AC
31312014-01-24 Robert Dewar <dewar@adacore.com>
3132
3133 * sinfo.ads, make.adb, prj-env.adb: Minor reformatting.
3134
31352014-01-24 Vincent Celier <celier@adacore.com>
3136
3137 * prj.adb (Add_Aggregated_Project): Do not add a project in
3138 the list if it is already there.
3139
31402014-01-24 Yannick Moy <moy@adacore.com>
3141
3142 * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package):
3143 Correct the search for a subrogram declaration to which a pragma is
3144 attached.
3145
31462014-01-24 Bob Duff <duff@adacore.com>
3147
3148 * gnat_ugn.texi: Document --decimal-grouping and
3149 --based-grouping switches in gnatpp.
3150
979b94ea
AC
31512014-01-24 Ed Schonberg <schonberg@adacore.com>
3152
3153 * sinfo.ads: Documentation update.
3154
31552014-01-24 Ed Schonberg <schonberg@adacore.com>
3156
3157 * sem_ch3.adb (Constant_Redeclaration): New declaration is
3158 illegal if previous one has an initial expression that is an
3159 aggregate expanded into assignments.
3160
31612014-01-24 Ed Schonberg <schonberg@adacore.com>
3162
3163 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Small
3164 code reorganization to remove spurious warning on a loop with
3165 an array element iterator that has a null range.
3166
31672014-01-24 Vincent Celier <celier@adacore.com>
3168
3169 * make.adb (Binding_Phase): When setting the Ada paths, use
3170 the library ALI dir, not the object dir in libraries.
3171
31722014-01-24 Yannick Moy <moy@adacore.com>
3173
3174 * sinfo.ads: Add documentation of check flag fields.
3175
31762014-01-24 Ed Schonberg <schonberg@adacore.com>
3177
3178 * sem_res.adb (Resolve_Actuals): If an actual is a view
3179 conversion of a discriminated object, and the formal type is
3180 discriminated and constrained, apply a discriminant check to
3181 the object itself.
3182
8edc33fa
RD
31832014-01-24 Robert Dewar <dewar@adacore.com>
3184
3185 * prj.adb, prj-env.adb, back_end.adb: Add comment, minor code clean ups.
3186
ad4e3362
ES
31872014-01-24 Ed Schonberg <schonberg@adacore.com>
3188
3189 * sem_ch3.adb (Analyze_Declarations): At the end of an
3190 appropriate declarative part, call Freeze_All from the first
3191 declaration in the scope, not from the first unfrozen one. This
3192 is necessary to apply visibility checks to entities with delayed
3193 aspects. Otherwise, in the presence of instantiations and cleanups
3194 that they may generate, the delayed aspects may be analyzed too
3195 late and produce spurious visibility errors.
3196 * sem_attr.adb: Place etype on range.
3197 * sem_ch6.adb: Documentation expression functions.
3198
d0ef7921
AC
31992014-01-24 Robert Dewar <dewar@adacore.com>
3200
3201 * exp_ch7.adb: Minor change of Indices to Indexes (preferred
3202 terminology in compiler).
3203
32042014-01-24 Robert Dewar <dewar@adacore.com>
3205
3206 * scans.ads: Remove Tok_Raise from Sterm, Eterm, After_SM
3207 categories, now that Ada 95 supports raise expressions.
3208
32092014-01-24 Robert Dewar <dewar@adacore.com>
3210
3211 * freeze.adb (Freeze_Enumeration_Type): Use new target parameter
3212 Short_Enums_On_Target.
3213 * sem_ch13.adb (Set_Enum_Esize): Take Short_Enums_On_Target
3214 into account.
3215 * targparm.ads, targparm.adb: Add new target parameter Short_Enums.
3216
32172014-01-24 Ed Schonberg <schonberg@adacore.com>
3218
3219 * sem_ch5.adb (Analyze_Iterator_Specification): If subtype
3220 indication is given explicity, check that it matches the array
3221 component type or the container element type of the domain
3222 of iteration.
3223
32242014-01-24 Tristan Gingold <gingold@adacore.com>
3225
3226 * back_end.adb (Scan_Compiler_Arguments): Set Short_Enums_On_Target.
bff2d234
TG
3227 * gcc-interface/misc.c (flag_short_enums): Declare.
3228 (gnat_post_options): Set it.
d0ef7921
AC
3229
32302014-01-24 Vincent Celier <celier@adacore.com>
3231
3232 * prj-env.adb (Ada_Objects_Path): Use Ada_Objects_Path_No_Libs
3233 to cache the result when Including_Libraries is False.
3234 * prj-env.ads (Ada_Objects_Path): Update documentation
3235 * prj.adb (Free (Project_Id)): Also free Ada_Objects_Path_No_Libs
3236 (Get_Object_Directory): Return the Library_Ali_Dir only when
3237 when Including_Libraries is True.
3238 * prj.ads (Get_Object_Directory): Fix and complete documentation
3239 (Project_Data): New component Ada_Objects_Path_No_Libs
3240
162c21d9
AC
32412014-01-24 Robert Dewar <dewar@adacore.com>
3242
3243 * checks.adb (Expr_Known_Valid): Result of fpt operator never
3244 considered valid.
3245
32462014-01-24 Eric Botcazou <ebotcazou@adacore.com>
3247
3248 * back_end.adb: Minor fix in comment.
3249
32502014-01-24 Javier Miranda <miranda@adacore.com>
3251
3252 * sem_ch3.adb (Check_Abstract_Overriding): Code reestructuration
3253 required to report the error in case of task types.
3254
32552014-01-24 Ed Schonberg <schonberg@adacore.com>
3256
3257 * sem_attr.adb: Additional index checking.
3258
08cd7c2f
AC
32592014-01-24 Ed Schonberg <schonberg@adacore.com>
3260
3261 * sem_attr.adb (Analyze_Attribute, case 'Update): Analyze
3262 expressions in each component association, and for records note
3263 the entity in each association choice, for subsequent resolution.
3264 (Resolve_Attribute, case 'Update): Complete resolution of
3265 expressions in each component association.
3266
32672014-01-24 Robert Dewar <dewar@adacore.com>
3268
3269 * sem.adb (Sem): Avoid premature reference to Current_Sem_Unit
3270 (this was causing Is_Main_Unit_Or_Main_Unit_Spec to be set wrong,
3271 leading to wrong handling of SPARK_Mode for library units).
3272
32732014-01-24 Robert Dewar <dewar@adacore.com>
3274
3275 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set SPARK_Mode
3276 on generic instances (do not consider them to be internally
3277 generated)
3278
32792014-01-24 Doug Rupp <rupp@adacore.com>
3280
3281 * s-osinte-android.ads (pthread_sigmask): Import sigprocmask
3282 vice pthread_sigmask.
3283
32842014-01-24 Vincent Celier <celier@adacore.com>
3285
3286 * prj.adb (Debug_Output (Str, Str2)): Output if verbosity is
3287 not default.
3288
32892014-01-24 Vincent Celier <celier@adacore.com>
3290
3291 * prj-ext.adb (Add): Do not output anything when Silent is True,
3292 whatever the verbosity. When Source is From_External_Attribute,
3293 set the corresponding environment variable if it is not already set.
3294 * prj-ext.ads (Add): New Boolean parameter Silent, defaulted
3295 to False
3296 * prj-proc.adb (Process_Expression_For_Associative_Array):
3297 For attribute External, call Prj.Ext.Add with Silent set to
3298 True for the child environment, to avoid useless output in non
3299 default verbosity.
3300
33012014-01-24 Ed Schonberg <schonberg@adacore.com>
3302
3303 * sem_res.adb (Set_Slice_Subtype): Handle properly a discrete
3304 range given by a subtype indication, and force evaluation of
3305 the bounds, as for a simple range.
3306 * exp_util.adb (Evaluate_Slice_Bounds): Utility to force evaluation
3307 of bounds of slice for various kinds of discrete ranges.
3308 (Evaluate_Name, Evaluate_Subtype_From_Expr): use
3309 Evaluate_Slice_Bounds.
3310
33112014-01-24 Bob Duff <duff@adacore.com>
3312
3313 * s-taskin.ads (Activator): Make this Atomic, because
3314 Activation_Is_Complete reads it, and that can be called
3315 from any task. Previously, this component was only
3316 modified by the activator before activation, and by
3317 Self after activation.
3318 * a-taside.ads, a-taside.adb (Environment_Task,
3319 Activation_Is_Complete): Implement these missing functions.
3320
7610fee8
AC
33212014-01-24 Doug Rupp <rupp@adacore.com>
3322
3323 * init.c: Add a handler section for Android.
3324
33252014-01-24 Arnaud Charlet <charlet@adacore.com>
3326
3327 * i-cexten.ads (Unsigned_33..64, Unsigned_33..64): New types.
3328
33292014-01-24 Ed Schonberg <schonberg@adacore.com>
3330
3331 * sem_ch4.adb (Operator_Check): If one operand is a
3332 Raise_Expression, set its type to that of the other operand.
3333 * sem_res.adb (Resolve_Raise_Expression): new procedure.
3334 (Resolve_Actuals): For an actual that is a Raise_Expression,
3335 set the type to that of the formal.
3336 * sem_type.adb (Find_Unique_Type): If one of the operands is a
3337 Raise_Expression, return type of the other operand.
3338
33392014-01-24 Ed Schonberg <schonberg@adacore.com>
3340
3341 * sem_aggr.adb (Resolve_Record_Aggregate): If a scalar
3342 component of the record has a type with a default aspect, and
3343 the corresponding aggregate component is initiaized with a box,
3344 use the default value in the rewritten aggregate.
3345
33462014-01-24 Tristan Gingold <gingold@adacore.com>
3347
3348 * s-interr.ads, s-interr.adb, s-interr-hwint.adb, s-interr-vms.adb,
3349 s-interr-sigaction.adb,
3350 s-interr-dummy.adb (Install_Restricted_Handlers): Add Prio parameter.
3351 * exp_ch9.adb (Make_Initialize_Protection): Add Prio parameter
3352 to the call to Install_Restricted_Handlers.
3353
33542014-01-24 Emmanuel Briot <briot@adacore.com>
3355
3356 * prj-nmsc.adb (Check_File): Add protection when the source is
3357 not fully initialized.
3358
4a854847
AC
33592014-01-24 Ed Schonberg <schonberg@adacore.com>
3360
3361 * sem_util.adb (Is_Post_State): In a postcondition, a selected
3362 component that denotes an implicit dereference is a reference
3363 to the post state of the subprogram.
3364
33652014-01-24 Robert Dewar <dewar@adacore.com>
3366
3367 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode OFF
3368 for generated subprograms.
3369 (Analyze_Subprogram_Specification): Ditto.
3370
33712014-01-24 Vincent Celier <celier@adacore.com>
3372
3373 * prj-dect.adb (Check_Attribute_Allowed): Detect more forbidden
3374 attributes in package Builder of aggregate and aggregate library
3375 projects.
3376 * prj-nmsc.adb (Process_Naming_Scheme.Check.Check_Aggregate):
3377 Remove procedure (Process_Naming_Scheme.Check.Check_Aggregated):
3378 Remove parameters. Change error message from "... externally
3379 build library ..." to "... externally built project ...".
3380 (Process_Naming_Scheme.Check): Do not do any check in aggregate
3381 project, as attribute Library_Dir and Library_Name have already
3382 been detected as forbidden.
3383
33842014-01-24 Vincent Celier <celier@adacore.com>
3385
3386 * prj-env.adb (Find_Project): If cached project path is not in
3387 project directory, look in current directory first and use cached
3388 project path only if project is not found in project directory.
3389
a6ae518f
RD
33902014-01-24 Robert Dewar <dewar@adacore.com>
3391
3392 * sem_util.adb, lib-xref.adb: Correct false positive warnings.
3393
0bd38d94
AC
33942014-01-24 Vincent Celier <celier@adacore.com>
3395
3396 * projects.texi: Document that aggregate projects are only
3397 supported by gprbuild, but not by gnatmake. Document that the
3398 only attribute Switches in package Binder of aggregate projects
3399 will be ignored if its index is not others. Document that
3400 attribute Global_Config_File is allowed in package Binder of
3401 aggregate projects.
3402
34032014-01-24 Robert Dewar <dewar@adacore.com>
3404
3405 * sem_prag.adb: Minor code reorganization.
3406 * sem_util.adb: Minor fix of potential latent bug in Is_LHS.
3407
0567ae8d
AC
34082014-01-24 Pascal Obry <obry@adacore.com>
3409
3410 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Excluded_Patterns
3411 attribute definition.
3412
34132014-01-24 Vincent Celier <celier@adacore.com>
3414
3415 * makeutl.adb (Queue.Insert_No_Roots): In gprbuild, do not put
3416 in the Queue the same source (same path, same multi-source index)
3417 from the same project file, to avoid compiling several times
3418 the same source.
3419
34202014-01-24 Eric Botcazou <ebotcazou@adacore.com>
3421
3422 * einfo.ads (First_Rep_Item): Remove obsolete stuff.
3423 (Has_Gigi_Rep_Item): Likewise.
3424 * sem_prag.adb (Analyze_Pragma) <Pragma_Linker_Section>: Do not set
3425 Has_Gigi_Rep_Item for objects.
3426 * gcc-interface/decl.c (prepend_one_attribute_to): Rename into...
3427 (prepend_one_attribute): ...this.
3428 (prepend_one_attribute_pragma): New function extracted from...
3429 (prepend_attributes): ...here. Swap the parameters for consistency.
3430 (gnat_to_gnu_entity): Adjust calls to prepend_one_attribute_to and to
3431 prepend_attributes.
3432 <object>: Deal with a pragma Linker_Section on a constant
3433 or variable. <E_Function>: Deal with a pragma Linker_Section
3434 on a subprogram.
3435 (get_minimal_subprog_decl): Adjust calls to prepend_one_attribute_to.
3436
34372014-01-24 Vincent Celier <celier@adacore.com>
3438
3439 * opt.ads: Minor comment update.
3440
4437ea95
AC
34412014-01-24 Robert Dewar <dewar@adacore.com>
3442
3443 * sem_prag.adb (Analyze_Input_Output): Add missing error check
3444 for junk operand.
3445 * sem_util.adb (Is_Refined_State): Add defense against junk
3446 tree from error.
3447
34482014-01-24 Pascal Obry <obry@adacore.com>
3449
3450 * projects.texi: Removes Build_Slaves attribute documentation.
3451
ea0f1fc8
AC
34522014-01-23 Robert Dewar <dewar@adacore.com>
3453
3454 * opt.adb (Register_Opt_Config_Switches): Save SPARK_Mode_Pragma
3455 setting.
3456
34572014-01-23 Ed Schonberg <schonberg@adacore.com>
3458
3459 * sem_util.adb (Is_Potentially_Unevaluated): Predicate only
3460 applies to expressions that come from source.
3461 * sem_attr.adb (Analyze_Attribute, case 'Old): Improve error
3462 message.
3463 (Analyze_Attribute, case 'Loop_Entry): Apply SPARK 2014 legality
3464 rule regarding potentially unevaluated expressions, to prefix
3465 of attribute.
3466
19992053
AC
34672014-01-23 Ed Schonberg <schonberg@adacore.com>
3468
3469 * exp_util.adb (Make_Invqriant_Call): If type of expression is
3470 a private extension, get invariant from base type.
3471
34722014-01-23 Robert Dewar <dewar@adacore.com>
3473
3474 * sem_util.adb, sem_attr.adb: Minor reformatting.
3475
34762014-01-23 Robert Dewar <dewar@adacore.com>
3477
3478 * opt.adb (Save_Opt_Config_Switches): Save SPARK_Mode_Pragma
3479 (Restore_Opt_Config_Switches): Restore SPARK_Mode_Pragma.
3480 * sem.adb (Semantics): Remove save/restore of
3481 SPARK_Mode[_Pragma]. Not needed since already done in
3482 Save/Restore_Opt_Config_Switches.
3483
34842014-01-23 Robert Dewar <dewar@adacore.com>
3485
3486 * gnat_rm.texi, einfo.adb, einfo.ads, sem_prag.adb, gnat_ugn.texi,
3487 freeze.adb, repinfo.adb, aspects.adb, aspects.ads, sem_ch13.adb:
3488 Linker_Section enhancements.
3489
c733429f
AC
34902014-01-23 Tristan Gingold <gingold@adacore.com>
3491
3492 * gnat_rm.texi: Minor editing.
3493
34942014-01-23 Robert Dewar <dewar@adacore.com>
3495
3496 * opt.adb (Set_Opt_Config_Switches): Reset SPARK mode for
3497 with'ed internal units.
3498 * sem.adb (Semantics): Save and restore SPARK_Mode[_Pragma].
3499
35002014-01-23 Javier Miranda <miranda@adacore.com>
3501
3502 * lib-xref.adb (Generate_Reference): As part of processing the
3503 "end-of-spec" reference generate an extra reference to the first
3504 private entity of the package.
3505 * xr_tabls.adb (Add_Reference): No action needed for the extra
3506 'E' reference associated; similar to the processing of the
3507 'e' reference.
3508
35092014-01-23 Bob Duff <duff@adacore.com>
3510
3511 * gnat_ugn.texi: Change "--&pp off" to "--!pp off".
3512
35132014-01-23 Ed Schonberg <schonberg@adacore.com>
3514
3515 * sem_util.ads, sem_util.adb (Is_Potentially_Unevaluated): new
3516 predicate to implement rule given in 6.1.1 (20/3).
3517 * sem_attr.adb (Analyze_Attribute, case 'Old): Reject prefix of
3518 'Old in a postcondition, if it is potentially unevaluated and
3519 it is not an entity name.
3520
8bdc02c2
BD
35212014-01-23 Bob Duff <duff@adacore.com>
3522
3523 * gnat_ugn.texi: Document the new "--&pp off" feature of gnatpp.
3524
e949ee22
AC
35252014-01-23 Robert Dewar <dewar@adacore.com>
3526
3527 * gnatlink.adb (Gnatlink): Fix problem of generating bad name
3528 msg on VMS.
3529
35302014-01-23 Bob Duff <duff@adacore.com>
3531
3532 * g-dynhta.ads: Minor comment fix.
3533
35342014-01-23 Yannick Moy <moy@adacore.com>
3535
3536 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Inherit SPARK_Mode
3537 from spec on body only when not already inherited on spec. Set
3538 SPARK_Mode from context on body without previous spec. *
3539 * sem_prag.adb (Analyze_Pragma): Check placement of pragma on
3540 library-level entities. Correct retrieval of entity from
3541 declaration, for cases where the declaration is not a unit.
3542 * sem_ch12.adb (Instantiate_Object): Avoid
3543 calling Is_Volatile_Object on an empty node.
3544
545d3e65
RD
35452014-01-23 Robert Dewar <dewar@adacore.com>
3546
3547 * gnatlink.adb (Gnatlink): Check for suspicious executable file
3548 names on windows.
3549
35502014-01-23 Robert Dewar <dewar@adacore.com>
3551
3552 * a-ngelfu.ads: Remove bad uses of AND which should be AND THEN.
3553 * sem_res.adb (Check_No_Direct_Boolean_Operators): Don't give
3554 style errors in instances.
3555 * g-dynhta.ads (Static_HTable): Comment updates.
3556
cc55f9be
VC
35572014-01-23 Vincent Celier <celier@adacore.com>
3558
3559 * prj-conf.adb (Get_Or_Create_Configuration_File): Do not attempt
3560 to find a configuration project file when Config_File_Name is
3561 No_Configuration_File.
3562 * prj-conf.ads (No_Configuration_File): New constant String.
3563 * prj-pars.adb (Parse): Call Get_Or_Create_Configuration_File
3564 with Config_File_Name set to No_Configuration_File, so that
3565 no existing configuration project file will be used, and the
3566 configuration project will be only created in memory when
3567 Add_Default_GNAT_Naming_Scheme is called.
3568 * projects.texi: Minor reformatting.
3569
225a0c5c
VC
35702014-01-23 Vincent Celier <celier@adacore.com>
3571
3572 * prj-conf.adb (Get_Or_Create_Configuration_File): Never parse
3573 a config project file if On_Load_Config is not null.
3574 * prj-pars.adb: Minor comment changes.
3575
89253742
ES
35762014-01-23 Ed Schonberg <schonberg@adacore.com>
3577
3578 * lib-xref.adb (Output_References): Output progenitors of
3579 synchronized tagged types, for source navigation.
3580
53c53f6d
AC
35812014-01-23 Robert Dewar <dewar@adacore.com>
3582
3583 * exp_util.adb, sinfo.adb, sinfo.ads, sem.adb, sem_res.adb,
3584 expander.adb, exp_ch11.adb, exp_ch11.ads, sem_ch11.adb, sem_ch11.ads,
3585 sprint.adb, sprint.ads: Remove unused node N_Subprogram_Info.
3586
35872014-01-23 Emmanuel Briot <briot@adacore.com>
3588
3589 * prj-conf.adb (Get_Or_Create_Configuration_File): call
3590 On_Load_Config later.
3591
35922014-01-23 Hristian Kirtchev <kirtchev@adacore.com>
3593
3594 * sem_ch3.adb (Analyze_Declarations): Do not
3595 generate the spec of the late primitive in ASIS mode. Add two
3596 comments to explain the special cases when the expansion is
3597 not performed.
3598
35992014-01-23 Robert Dewar <dewar@adacore.com>
3600
3601 * sem_util.adb (Note_Possible_Modification): Fix error of
3602 misbehaving for implicit dereference cases in -gnatc mode.
3603
36042014-01-23 Emmanuel Briot <briot@adacore.com>
3605
3606 * prj-pars.adb: Minor reformatting.
3607
3b8056a5
AC
36082014-01-22 Ed Schonberg <schonberg@adacore.com>
3609
3610 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): A subprogram
3611 body generated for an expression function within a protected body
3612 needs a set of renaming declarations if the expression function
3613 comes from source.
3614
36152014-01-22 Ed Schonberg <schonberg@adacore.com>
3616
3617 * lib-xref.adb (Get_Type_Reference): In semantics-only mode,
3618 list interface progenitor of a tagged concurrent type, for better
3619 source navigation.
3620
36212014-01-22 Robert Dewar <dewar@adacore.com>
3622
3623 * lib.adb (In_Extended_Main_Code_Unit): Return False for
3624 Standard_Location.
3625 (In_Extended_Main_Source_Unit): Return False for Standard_Location.
3626 * lib.ads (In_Extended_Main_Code_Unit): Add documentation on
3627 treatment of Slocs No_Location and Standard_Location.
3628 * restrict.adb (Check_Restriction_No_Dependence): Explicitly
3629 check for entity with Standard_Location Sloc, rather than relying
3630 on Lib routines to do that.
3631 * sem_res.adb (Resolve_Call): Implement SPARK_05 restriction
3632 that a call cannot occur before a later occuring body within
3633 the same unit.
3634
fba9ebfc
AC
36352014-01-22 Thomas Quinot <quinot@adacore.com>
3636
3637 * rtsfind.adb: Update comment.
3638
36392014-01-22 Hristian Kirtchev <kirtchev@adacore.com>
3640
3641 * sem_aux.ads, sem_aux.adb (Is_Body): New routine.
3642 * sem_ch3.adb (Analyze_Declarations): Add local variable
3643 Body_Seen. Generate the spec of a late controlled
3644 primitive body that is about to freeze its related type.
3645 (Handle_Late_Controlled_Primitive): New routine.
3646
36472014-01-22 Robert Dewar <dewar@adacore.com>
3648
3649 * a-stream.adb: Minor reformatting.
3650
36512014-01-22 Ed Schonberg <schonberg@adacore.com>
3652
3653 * sem_ch8.adb (From_Actual_Package): Introduce a recursive
3654 sub-procedure Declared_In_Actual to handle properly the visibility
3655 of actuals in actual packages, that are themselves actuals to a
3656 actual package of the current instance. This mimics properly the
3657 visibility of formals of formal packages declared with a box,
3658 within the corresponding generic unit.
3659
36602014-01-22 Robert Dewar <dewar@adacore.com>
3661
3662 * checks.adb: Do not assume that a volatile variable is valid.
3663
36642014-01-22 Thomas Quinot <quinot@adacore.com>
3665
3666 * g-catiio.ads (Image, Value): Clarify that these functions
3667 operate in the local time zone. Minor documentation update.
3668
36692014-01-22 Thomas Quinot <quinot@adacore.com>
3670
3671 * csets.adb, csets.ads, opt.ads: Minor documentation fixes.
3672
b2834fbd
AC
36732014-01-22 Robert Dewar <dewar@adacore.com>
3674
3675 * sem_aux.adb, sem_aux.ads, sem_ch3.adb (Has_Unconstrained_Elements):
3676 Moved to sem_aux.adb.
3677
36782014-01-22 Robert Dewar <dewar@adacore.com>
3679
3680 * vms_data.ads: Minor reformatting.
3681
36822014-01-22 Robert Dewar <dewar@adacore.com>
3683
3684 * debug.adb: Document messages affected by -gnatd.E including
3685 the new ones that relate to late definition of equality.
3686 * sem_ch6.adb (Check_Untagged_Equality): In Ada 2012 mode, if
3687 debug flag -gnatd.E is set, then generate warnings rather than
3688 errors.
3689 (Check_Untagged_Equality): In earlier versions of Ada,
3690 generate warnings if Warn_On_Ada_2012_Incompatibility flag is set.
3691
36922014-01-22 Robert Dewar <dewar@adacore.com>
3693
3694 * sem_prag.adb (Usage_Error): Output additional messages for
3695 unconstrained OUT parameters lacking an input dependency.
3696
36972014-01-22 Robert Dewar <dewar@adacore.com>
3698
3699 * sem_ch4.adb: Minor reformatting.
3700
37012014-01-22 Robert Dewar <dewar@adacore.com>
3702
3703 * restrict.ads: Minor reformatting.
3704 * sem_res.adb (Resolve_Call): Check for SPARK_05 restriction that
3705 forbids a call from within a subprogram to the same subprogram.
3706
37072014-01-22 Thomas Quinot <quinot@adacore.com>
3708
3709 * a-stream.ads (Read_SEA, Write_SEA): New subprograms, optimized
3710 stream attributes for Stream_Element_Array.
3711 * a-stream.adb (Read_SEA, Write_SEA): Bodies for the above.
3712 * rtsfind.adb (Check_CRT): Do not reject a reference to an entity
3713 defined in the current scope.
3714
d4129bfa
AC
37152014-01-22 Robert Dewar <dewar@adacore.com>
3716
3717 * debug.adb, exp_ch4.adb, erroutc.adb: Minor reformatting.
3718
37192014-01-22 Thomas Quinot <quinot@adacore.com>
3720
3721 * sem_ch7.adb, sem_ch8.adb, exp_ch3.adb: Minor reformatting.
3722
37232014-01-22 Thomas Quinot <quinot@adacore.com>
3724
3725 * sem_ch3.adb (Analyze_Object_Declaration): For a constant
3726 declaration initialized with a function call, whose type
3727 has variable size, need to remove side effects so that the
3728 initialization expression becomes a dereference of a temporary
3729 reference to the function result.
3730
b6f36bf8
YM
37312014-01-22 Yannick Moy <moy@adacore.com>
3732
3733 * errout.adb (Initialize): Remove trick to add dummy entry
3734 in Warnings table.
3735 * erroutc.adb (Set_Warnings_Mode_Off,
3736 Set_Warnings_Mode_On): Do nothing if warnings are suppressed by
3737 command line switch.
3738 * opt.ads (Warning_Mode): Document behavior
3739 wrt pragma Warnings, in normal mode and in GNATprove_Mode.
3740
113a62d9
RD
37412014-01-22 Robert Dewar <dewar@adacore.com>
3742
3743 * sem_ch3.adb, errout.adb, erroutc.adb: Minor reformatting.
3744
37452014-01-22 Robert Dewar <dewar@adacore.com>
3746
3747 * sem_ch13.adb (Check_Pool_Size_Clash): New procedure
3748 (Analyze_Attribute_Definition_Clause, case Storage_Pool): call
3749 Check_Pool_Size_Clash (Analyze_Attribute_Definition_Clause,
3750 case Storage_Size): call Check_Pool_Size_Clash.
3751
f5f6d8d7
AC
37522014-01-22 Robert Dewar <dewar@adacore.com>
3753
3754 * sem_ch3.adb, exp_util.adb, sem_dim.adb, sem_elab.adb, sem_ch8.adb,
3755 sem_eval.ads: Minor reformatting.
3756
37572014-01-22 Thomas Quinot <quinot@adacore.com>
3758
3759 * sem_eval.adb (Compile_Time_Known_Bounds): Return False for
3760 Any_Composite to prevent cascaded errors.
3761
37622014-01-22 Yannick Moy <moy@adacore.com>
3763
3764 * errout.adb (Initialize): Do not insert special entry in Warnings
3765 table in GNATprove_Mode.
3766 * erroutc.adb (Set_Warnings_Mode_On): Add info in Warnings table in
3767 GNATprove_Mode.
3768 * gnat1drv.adb (Adjust_Global_Switches): Do not suppress frontend
3769 warnings anymore.
3770
2e70d415
AC
37712014-01-22 Robert Dewar <dewar@adacore.com>
3772
3773 * sem_prag.adb (Analyze_Initializes_In_Decl_Part): Handle null
3774 initializes case.
3775
37762014-01-22 Robert Dewar <dewar@adacore.com>
3777
3778 * snames.ads-tmpl: Update header.
3779
37802014-01-22 Thomas Quinot <quinot@adacore.com>
3781
3782 * exp_util.adb (Insert_Actions): When inserting actions on a
3783 short circuit operator that has already been analyzed, do not park
3784 actions in node; instead introduce an N_Expression_With_Actions
3785 and insert actions immediately.
3786 Add guard for unexpected case of climbing up through statement
3787 in Actions list of an N_Expression_With_Actions.
3788 * sem_elab.adb (Insert_Elab_Check): Remove complex
3789 specialized circuitry for the case where the context is already
3790 analyzed, as it is not needed and introduces irregularities in
3791 finalization. Instead rely on the above change to Insert_Actions
3792 to ensure that late insertion on short circuit operators works
3793 as expected.
3794
37952014-01-22 Ed Schonberg <schonberg@adacore.com>
3796
3797 * sem_ch4.adb (Operator_Check): Improve error message when an
3798 operand of concatenation is an access type.
3799
38002014-01-22 Thomas Quinot <quinot@adacore.com>
3801
3802 * sem_dim.adb (Analyze_Dimension_Identifier): Add guard against
3803 cascaded error.
3804
38052014-01-22 Ed Schonberg <schonberg@adacore.com>
3806
3807 * sem_ch8.adb (Find_Selected_Component): Handle properly the case
3808 of an expanded name in a proper body, whose prefix is a package
3809 in the context of the proper body, when there is a homonym of
3810 the package declared in the parent unit.
3811
1250f802
RD
38122014-01-22 Robert Dewar <dewar@adacore.com>
3813
3814 * sem_warn.adb (Check_Use_Clause): Don't give no entities used
3815 msg if errors found.
3816 (Check_One_Unit): Same change.
3817
38182014-01-22 Robert Dewar <dewar@adacore.com>
3819
3820 * ug_words: Add missing/wrong entries for VMS warning switches.
3821 * sem_prag.adb (Check_Duplicate_Pragma): Avoid flagging parent type.
3822
54533a0b
AC
38232014-01-22 Jerome Guitton <guitton@adacore.com>
3824
3825 * mlib-tgt-specific-vxworks.adb (Get_Target_Suffix): Replace xscale by
3826 arm.
3827
38282014-01-22 Robert Dewar <dewar@adacore.com>
3829
3830 * gnat_rm.texi, gnat_ugn.texi: Document passive task optimization
3831
3044bbe4
EB
38322014-01-22 Eric Botcazou <ebotcazou@adacore.com>
3833
3834 * gcc-interface/Makefile.in: Minor fixes.
3835
71affc54
AC
38362014-01-21 Robert Dewar <dewar@adacore.com>
3837
3838 * par-ch4.adb (P_If_Expression): Rewritten to improve error recovery.
3839 * par-ch5.adb (P_Condition): New version with expression prescanned.
3840 * par.adb (P_Condition): New version with expression prescanned.
3841
38422014-01-21 Robert Dewar <dewar@adacore.com>
3843
3844 * gnat_rm.texi: Document that Allow_Integer_Address is ignored
3845 if Address is not a private type.
3846 * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
3847 Ignore pragma if System.Address is not a private type.
3848
38492014-01-21 Arnaud Charlet <charlet@adacore.com>
3850
3851 * namet.ads (Name_Len): Initialize to 0 to avoid accessing an
3852 uninitialized value.
3853
ef1c0511
AC
38542014-01-21 Thomas Quinot <quinot@adacore.com>
3855
3856 * gnat_rm.texi (Scalar_Storage_Order): Update documentation.
3857
38582014-01-21 Ed Schonberg <schonberg@adacore.com>
3859
3860 * sem_ch12.adb (Set_Instance_Env): In Ada 2012 mode, preserve
3861 the value of Assertions_Enabled flag when compiling an instance of
3862 an internal unit. This facilitates the use of pre/postconditions
3863 in generic internal units, such as the new elementary function
3864 libraries.
3865
38662014-01-21 Robert Dewar <dewar@adacore.com>
3867
3868 * exp_aggr.adb: Minor reformatting.
3869 * sem_attr.adb: Minor reformatting.
3870 * sem_res.adb: Minor comment addition.
3871 * einfo.adb: Minor comment updates.
3872 * freeze.adb: Minor reformatting and code reorganization.
3873
38742014-01-21 Ed Schonberg <schonberg@adacore.com>
3875
3876 * par-ch4.adb (P_If_Expression): Handle more gracefully an
3877 elsif clause that does not have an else part.
3878
637a41a5
AC
38792014-01-21 Robert Dewar <dewar@adacore.com>
3880
3881 * checks.adb, sem_util.ads, sem_ch4.adb: Minor reformatting.
3882 * gcc-interface/Makefile.in: clean up target pairs.
3883
38842014-01-21 Pascal Obry <obry@adacore.com>
3885
3886 * projects.texi: Minor typo fix.
3887
38882014-01-21 Thomas Quinot <quinot@adacore.com>
3889
3890 * freeze.adb (Check_Component_Storage_Order): If a record type
3891 has an explicit Scalar_Storage_Order attribute definition clause,
3892 reject any component that itself is of a composite type and does
3893 not have one.
3894
38952014-01-21 Ed Schonberg <schonberg@adacore.com>
3896
3897 * sem_ch10.adb (Generate_Parent_Reference): Make public so it
3898 can be used to generate proper cross-reference information for
3899 the parent units of proper bodies.
3900
39012014-01-21 Thomas Quinot <quinot@adacore.com>
3902
3903 * exp_pakd.adb (Expand_Packed_Element_Set,
3904 Expand_Packed_Element_Reference): No byte swapping required in
3905 the front-end for the case of a reverse storage order array,
3906 as this is now handled uniformly in the back-end. However we
3907 still need to swap back an extracted element if it is itself a
3908 nested composite with reverse storage order.
3909
497716fe
AC
39102014-01-21 Hristian Kirtchev <kirtchev@adacore.com>
3911
3912 * sem_prag.adb (Analyze_External_Property): Add processing for "others".
3913 (Analyze_Pragma): Update the grammar of pragma Abstract_State to
3914 include "others".
3915
39162014-01-21 Arnaud Charlet <charlet@adacore.com>
3917
3918 * gnat_ugn.texi: Minor updates.
3919
fb1fdf7d
AC
39202014-01-21 Thomas Quinot <quinot@adacore.com>
3921
3922 * exp_pakd.adb: Update comment, minor reformatting.
3923
39242014-01-21 Hristian Kirtchev <kirtchev@adacore.com>
3925
3926 * sem_ch3.adb (Analyze_Variable_Contract): Trigger the volatile
3927 object check when SPARK_Mode is on.
3928 * sem_ch6.adb (Process_Formals): Trigger the volatile object
3929 check when SPARK_Mode is on.
3930 * sem_ch12.adb (Instantiate_Object): Trigger the volatile object
3931 check when SPARK_Mode is on.
3932 * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the
3933 corresponding pragma of aspect SPARK_Mode in the visible
3934 declarations of a package declaration.
3935 * sem_prag.adb (Analyze_Pragma): Trigger the volatile object
3936 check when SPARK_Mode is on.
3937 * sem_res.adb (Resolve_Actuals): Trigger the volatile object
3938 check when SPARK_Mode is on.
3939 (Resolve_Entity_Name): Trigger
3940 the volatile object check when SPARK_Mode is on.
3941
84f80f5b
AC
39422014-01-21 Robert Dewar <dewar@adacore.com>
3943
3944 * sem_ch3.adb, sem_prag.adb, sem_prag.ads, sem_ch12.adb, sem_res.adb,
3945 sem_ch6.adb, a-except-2005.adb: Minor reformatting.
3946
39472014-01-21 Ed Schonberg <schonberg@adacore.com>
3948
3949 * exp_ch3.adb (Expand_N_Object_Declaration): When a class-wide
3950 object is declared, it is rewritten as a renaming of an dynamic
3951 expression that wraps the initial value. The renaming declaration
3952 is first given an internal name, to prevent collisions with the
3953 entity already declared, and then the name is modified to reflect
3954 the original one. the modification of the name must preserve
3955 the source location of the original, to prevent spurious errors
3956 when compiling with style checks if the declaration involves
3957 more than one entity.
3958
6c3c671e
AC
39592014-01-21 Hristian Kirtchev <kirtchev@adacore.com>
3960
3961 * aspects.adb Add entries for Async_Readers, Async_Writers,
3962 Effective_Reads and Effective_Writes in table Canonical_Aspect.
3963 * aspects.ads Add entries for Async_Readers, Async_Writers,
3964 Effective_Reads and Effective_Writes in tables Aspect_Id,
3965 Aspect_Names, Aspect_Delay and Implementation_Defined_Aspect.
3966 * atree.adb (Ekind_In): New version with 8 parameters.
3967 (Node34): New routine.
3968 (Set_Node34): New routine.
3969 * atree.ads (Ekind_In): New version with 8 parameters.
3970 (Node34): New routine.
3971 (Set_Node34): New routine.
3972 * einfo.adb Contract is now Node34.
3973 (Contract): Update the assertion and node usage.
3974 (Get_Pragma): Include pragmas Async_Readers, Async_Writers,
3975 Effective_Reads and Effective_Writes.
3976 (Set_Contract): Update the assertion and node usage.
3977 (Write_Field24_Name): Remove the output for a contract.
3978 (Write_Field34_Name): Add output for a contract.
3979 * einfo.ads Contract is now Node34. Update the comment on
3980 attribute usage and related node structures.
3981 (Get_Pragma): Update the comment on usage.
3982 * par-prag.adb (Prag): Pragmas Async_Readers, Async_Writers,
3983 Effective_Reads and Effective_Writes do not require special
3984 processing by the parser.
3985 * sem_ch3.adb (Analyze_Variable_Contract): New routine.
3986 (Analyze_Declarations): Analyze the contract of a variable at
3987 the end of the declarative region.
3988 (Analyze_Object_Declaration): Create a contract for a variable.
3989 * sem_ch6.adb (Analyze_Subprogram_Contract): Update the retrieval
3990 of classification pragmas.
3991 (Process_Formals): Detect an illegal
3992 use of a volatile object as a formal in a function.
3993 * sem_ch12.adb (Instantiate_Object): Detect an illegal use of
3994 a volatile object as an actual in generic instantiation.
3995 * sem_prag.adb Add entries for Async_Readers, Async_Writers,
3996 Effective_Reads and Effective_Writes in table Sig_Flags.
3997 (Analyze_External_State_In_Decl_Part): New routine.
3998 (Analyze_Global_Item): Detect an illegal use of a volatile object
3999 as a global item of a function.
4000 (Analyze_Pragma): Reimplement
4001 pragma Abstract_State. Add support for pragmas Async_Readers,
4002 Async_Writers, Effective_Reads and Effective_Writes.
4003 (Check_External_Properties): New routine.
4004 * sem_prag.ads (Analyze_External_State_In_Decl_Part): New routine.
4005 (Check_External_Properties): New routine.
4006 * sem_res.adb (Resolve_Actuals): Detect an illegal use of a
4007 volatile object as an actual in a call.
4008 (Resolve_Entity_Name):
4009 Add local variables Par, Prev and Usage_OK. Detect illegal
4010 contexts of volatile objects.
4011 * sem_util.adb (Add_Contract_Item): Add support for
4012 pragmas associated with the contract of a variable.
4013 (Async_Readers_Enabled): New routine.
4014 (Async_Writers_Enabled): New routine.
4015 (Effective_Reads_Enabled): New routine.
4016 (Effective_Writes_Enabled): New routine.
4017 (Has_Enabled_Property):
4018 New routine.
4019 (Is_Unchecked_Conversion_Instance): New routine.
4020 (Is_Volatile_Object): Add support for entities that may denote
4021 a volatile object.
4022 * sem_util.ads (Add_Contract_Item): Update the
4023 comment on usage.
4024 (Async_Readers_Enabled): New routine.
4025 (Async_Writers_Enabled): New routine.
4026 (Effective_Reads_Enabled): New routine.
4027 (Effective_Writes_Enabled): New routine.
4028 (Is_Unchecked_Conversion_Instance): New routine.
4029 * sinfo.ads Update the comment on the structure of N_Contract.
4030 * snames.ads-tmpl Add predefined names for Async_Readers,
4031 Async_Writers, Effective_Reads and Effective_Writes. Add
4032 pragma ids for Async_Readers, Async_Writers, Effective_Reads
4033 and Effective_Writes.
4034
40352014-01-21 Robert Dewar <dewar@adacore.com>
4036
4037 * exp_ch4.adb (Eval_Op_Expon): Use CRT_Safe_Compile_Time_Known_Value
4038 * sem_eval.adb (Compile_Time_Known_Value): Remove special
4039 handling of CRT mode (CRT_Safe_Compile_Time_Known_Value): New
4040 function (Eval_Op_Expon): Add CRT_Safe in call to Test_Foldable
4041 (Test_Foldable): Add CRT_Safe parameter
4042 * sem_eval.ads (Compile_Time_Known_Value): Remove special
4043 handling of CRT mode.
4044 (CRT_Safe_Compile_Time_Known_Value): New function.
4045
084c2203
RD
40462014-01-21 Robert Dewar <dewar@adacore.com>
4047
4048 * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Fix problem
4049 with pragma or aspect that applies to package spec or subprogram
4050 spec.
4051
579847c2
AC
40522014-01-21 Robert Dewar <dewar@adacore.com>
4053
4054 * exp_aggr.adb: Minor reformatting.
4055
40562014-01-21 Johannes Kanig <kanig@adacore.com>
4057
4058 * gnat1drv.adb (Gnat1drv) remove obsolete reference to -gnatd.H.
4059
40602014-01-21 Bob Duff <duff@adacore.com>
4061
4062 * gnat_ugn.texi: Document the "checks" attribute in gnat2xml.
4063
40642014-01-21 Steve Baird <baird@adacore.com>
4065
4066 * gnat_rm.texi: Improve description of SPARK_Mode pragma.
4067
40682014-01-21 Vincent Celier <celier@adacore.com>
4069
4070 * prj-part.adb (Parse_Single_Project): Accept to extend a project
4071 if it has only be imported by an project being extended. When a
4072 project that has only been imported by a project being extended
4073 is imported by another project that is not being extended,
4074 reset the previous indication, so that it will be an error if
4075 this project is extended later.
4076 * prj-tree.adb (Create_Project): Include component From_Extended
4077 in table Projects_HT
4078 * prj-tree.ads (Project_Name_And_Node): New Boolean component
4079 From_Extended
4080
40812014-01-21 Robert Dewar <dewar@adacore.com>
4082
4083 * atree.ads, atree.adb: Add Node33 and Set_Node33.
4084 * einfo.ads, einfo.adb (SPARK_Pragma): New field (SPARK_Aux_Pragma):
4085 New field (SPARK_Pragma_Inherited): New flag
4086 (SPARK_Aux_Pragma_Inherited): New flag (SPARK_Mode_Pragmas):
4087 Removed.
4088 * lib.ads, lib.adb: Remove SPARK_Mode_Pragma, no longer used.
4089 * opt.ads (SPARK_Mode_Pragma): New global variable.
4090 * sem.ads: Add Save_SPARK_Mode_Pragma field to Scope_Stack_Entry.
4091 * sem_ch3.adb: Use new SPARK_Mode data structures.
4092 * sem_ch6.adb: Set SPARK_Mode fields in subprogram specs and bodies.
4093 * sem_ch7.adb: Set SPARK_Mode fields in package spec and body entities.
4094 * sem_ch8.adb (Push_Scope): Save SPARK_Mode_Pragma.
4095 (Pop_Scope): Restore SPARK_Mode_Pragma.
4096 * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Rewrite for
4097 new data structures.
4098
40992014-01-21 Arnaud Charlet <charlet@adacore.com>
4100
4101 * back_end.adb: Undo previous change, not needed. Minor reformatting.
4102
376e7d14
AC
41032014-01-21 Thomas Quinot <quinot@adacore.com>
4104
4105 * exp_ch5.adb: Fix comment.
4106 * switch-c.adb: Minor comment update.
4107 * exp_ch3.adb: Minor reformatting.
4108
41092014-01-21 Arnaud Charlet <charlet@adacore.com>
4110
4111 * back_end.adb (Scan_Compiler_Arguments): Do not store object
4112 filename in gnatprove mode.
4113
41142014-01-21 Thomas Quinot <quinot@adacore.com>
4115
4116 * sinfo.ads (No_Ctrl_Actions): Clarify documentation (flag also
4117 suppresses usage of primitive _assign for tagged types).
4118 * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Set
4119 No_Ctrl_Actions for a tagged type that does not require
4120 finalization, as we want to disable usage of _assign (which
4121 may cause undesirable discriminant checks on an uninitialized,
4122 invalid target).
4123
41242014-01-21 Ed Schonberg <schonberg@adacore.com>
4125
4126 * sem_prag.adb: Reject invariant'class on completion.
4127
8d81fb4e
AC
41282014-01-21 Javier Miranda <miranda@adacore.com>
4129
4130 * exp_ch3.adb (Build_Init_Procedure): For
4131 derivations of interfaces, do not move the the initialization
4132 of the _parent field since such assignment is not generated.
4133
41342014-01-21 Ed Schonberg <schonberg@adacore.com>
4135
4136 * sem_res.adb (Rewrite_Renamed_Operator): Do not replace entity
4137 with the operator it renames if we are within an expression of
4138 a pre/postcondition, because the expression will be reanalyzed
4139 at a later point, and the analysis of the renaming may affect
4140 the visibility of the operator when in an instance.
4141
41422014-01-21 Robert Dewar <dewar@adacore.com>
4143
4144 * sinfo.ads, sinfo.adb: Change Do_Discriminant_Check to use new Flag1.
4145 Add this flag to type conversion nodes and assignment nodes.
4146 * treepr.adb: Deal properly with Flag 1,2,3.
4147 * treeprs.adt: Minor comment update.
4148
41492014-01-21 Robert Dewar <dewar@adacore.com>
4150
4151 * sem_eval.adb (Compile_Time_Known_Value): Add Ignore_CRT
4152 parameter.
4153 * sem_eval.ads (Compile_Time_Known_Value): Add Ignore_CRT
4154 parameter, completely rewrite spec.
4155
41562014-01-21 Ed Schonberg <schonberg@adacore.com>
4157
4158 * sem_ch10.adb (Install_Withed_Unit): If the unit is a subprogram
4159 instance that is inlined, it may have been rewritten as a wrapper
4160 package. In that case the unit that must be made visible is the
4161 related instance of the package.
4162
41632014-01-21 Arnaud Charlet <charlet@adacore.com>
4164
4165 * exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Refine
4166 previous change in codepeer mode.
4167
6b6041ec
AC
41682014-01-21 Arnaud Charlet <charlet@adacore.com>
4169
4170 * exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Always add
4171 call to Abort_Undefer, as expected by the runtime.
4172 * s-tasren.adb (Local_Complete_Rendezvous): Replace
4173 Defer_Abort_Nestable by Defer_Abort, since we do not expect abort to be
4174 deferred at this point. Update comments.
4175
41762014-01-21 Thomas Quinot <quinot@adacore.com>
4177
4178 * exp_ch4.adb, exp_ch5.adb, checks.adb: Minor reformatting.
4179
41802014-01-21 Arnaud Charlet <charlet@adacore.com>
4181
4182 * switch-c.adb, usage.adb, gnat_ugn.texi: Mark -gnates as internal,
4183 remove from doc.
4184
77a2f3df
RD
41852014-01-21 Robert Dewar <dewar@adacore.com>
4186
4187 * switch-c.adb, usage.adb, atree.adb, atree.ads: Minor reformatting.
4188
5f0c4d67
AC
41892014-01-21 Thomas Quinot <quinot@adacore.com>
4190
4191 * atree.adb, atree.ads (Num_Extension_Nodes): Switch to Node_Id, since
4192 this is value is used in Node_Id arithmetic operations.
4193 (Copy_Node, Exchange_Entities): Use loops indexed by Num_Extension_Nodes
4194 instead of hard-coded unrolled code.
4195
41962014-01-21 Yannick Moy <moy@adacore.com>
4197
4198 * gnat1drv.adb: Minor code cleanup, removing useless code.
4199
42002014-01-21 Arnaud Charlet <charlet@adacore.com>
4201
4202 * opt.ads (SPARK_Switches_File_Name): New.
4203 * switch-c.adb (Scan_Front_End_Switches): Add handling of -gnates=xxx *
4204 * usage.adb (Usage): Document -gnates, in gnatprove mode only.
4205 * gnat_ugn.texi: Document -gnates.
4206
42072014-01-21 Yannick Moy <moy@adacore.com>
4208
4209 * errout.adb (Special_Msg_Delete): Update comment. Remove
4210 special case for GNATprove which should not ignore mismatch
4211 in sizes for representation clauses.
4212 * sem_prag.adb (Analyze_Pragma): Remove special case for GNATprove
4213 which should not ignore pragma Pack.
4214
42152014-01-21 Ed Schonberg <schonberg@adacore.com>
4216
4217 * sem_ch4.adb: Code clean up.
4218
42192014-01-21 Steve Baird <baird@adacore.com>
4220
4221 * gnat_rm.texi: Improve GNAT RM description of SPARK_Mode pragma.
4222
4bcf6815
AC
42232014-01-21 Robert Dewar <dewar@adacore.com>
4224
4225 * gcc-interface/gigi.h: Get Flags array address.
4226 * gcc-interface/trans.c: Acquire Flags array address.
4227 * atree.adb: Add support for Flags array and Flag0,1,2,3.
4228 * atree.ads: Add support for Flags array and Flag0,1,2,3.
4229 * atree.h: Add support for Flags array and Flag0,1,2,3.
4230 * back_end.adb: Pass Flags array address to gigi.
4231
42322014-01-21 Ed Schonberg <schonberg@adacore.com>
4233
4234 * sem_ch8.adb (Attribute_Renaming): Transfer original attribute
4235 reference to generated body so that legality checks on stream
4236 attributes are properly applied. If type is tagged and already
4237 frozen, insert generated body at the point of the renaming
4238 declaration.
4239
42402014-01-21 Ed Schonberg <schonberg@adacore.com>
4241
4242 * sem_ch12.adb: Code clean up.
4243 * sem_ch8.adb: Minor reformatting
4244
43417b90
AC
42452014-01-20 Robert Dewar <dewar@adacore.com>
4246
4247 * checks.adb: Check SPARK_Mode instead of GNATProve_Mode for
4248 converting warnings on inevitable exceptions to errors.
4249 * exp_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for
4250 converting warnings on inevitable exceptions to errors.
4251 * opt.adb (SPARK_Mode_Config): Handled like other config flags
4252 * opt.ads (SPARK_Mode_Type): Moved here from types (renamed from
4253 SPARK_Mode_Id) (SPARK_Mode_Type): Add pragma Ordered, remove
4254 SPARK_ from names (SPARK_Mode): New flag (SPARK_Mode_Config):
4255 New flag (Config_Switches_Type): Add SPARK_Mode field
4256 * sem.adb: Minor code reorganization (remove unnecessary with)
4257 * sem.ads (Scope_Stack_Entry): Add Save_SPARK_Mode field
4258 * sem_aggr.adb: Check SPARK_Mode instead of GNATProve_Mode for
4259 converting warnings on inevitable exceptions to errors.
4260 * sem_attr.adb: Check SPARK_Mode instead of GNATProve_Mode for
4261 converting warnings on inevitable exceptions to errors.
4262 * sem_ch3.adb: Check SPARK_Mode instead of GNATProve_Mode for
4263 converting warnings on inevitable exceptions to errors.
4264 * sem_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for
4265 converting warnings on inevitable exceptions to errors.
4266 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Reset SPARK_Mode
4267 from spec if needed
4268 * sem_ch7.adb (Analyze_Package_Body_Helper): Reset SPARK_Mode
4269 from spec if needed
4270 * sem_ch8.adb (Push_Scope): Save SPARK_Mode (Pop_Scope):
4271 Restore SPARK_Mode
4272 * sem_elab.adb: Check SPARK_Mode instead of GNATProve_Mode for
4273 converting warnings on inevitable exceptions to errors.
4274 * sem_prag.adb (Get_SPARK_Mode_From_Pragma): New function
4275 (Get_SPARK_Mode_Id): Removed (Get_SPARK_Mode_Type): New name
4276 of Get_SPARK_Mode_Id
4277 * sem_prag.ads (Get_SPARK_Mode_From_Pragma): New function
4278 * sem_res.adb: Check SPARK_Mode instead of GNATProve_Mode for
4279 converting warnings on inevitable exceptions to errors.
4280 * sem_util.adb: Check SPARK_Mode instead of GNATProve_Mode for
4281 converting warnings on inevitable exceptions to errors.
4282 * types.ads (SPARK_Mode_Id): Moved to opt.ads and renamed
4283 SPARK_Mode_Type
4284
42852014-01-20 Ed Schonberg <schonberg@adacore.com>
4286
4287 * sem_ch13.adb: Add semantic information to rewritten type
4288 reference.
4289
42902014-01-20 Ed Schonberg <schonberg@adacore.com>
4291
4292 * exp_ch5.adb (Expand_N_Assignment_Statement): If both sides
4293 are of a type with unknown discriminants, convert both to the
4294 underlying view of the type, so that the proper constraint check
4295 can be applied to the right-hand side.
4296
42972014-01-20 Robert Dewar <dewar@adacore.com>
4298
4299 * atree.adb (Copy_Node): Fix failure to copy last component
4300 (Exchange_Entities): Fix failure to exchange last entity
4301
43022014-01-20 Ed Schonberg <schonberg@adacore.com>
4303
4304 * sem_ch12.adb: Code clean up.
4305
e4deba8e
RD
43062014-01-20 Robert Dewar <dewar@adacore.com>
4307
4308 * gnat_rm.texi, sem_ch4.adb: Minor reformatting.
4309
a736f6e6
AC
43102014-01-20 Ed Schonberg <schonberg@adacore.com>
4311
4312 * sem_ch4.adb (Analyze_Quantified_Expression): If after
4313 pre-analysis the loop parameter specification has been
4314 rewritten as a iterator specification, propagate the change to
4315 the quantified expression, for ASIS navigtion needs.
4316
43172014-01-20 Vincent Celier <celier@adacore.com>
4318
4319 * par-ch10.adb: Minor error message change: escape [ and ].
4320
4a28b181
AC
43212014-01-20 Robert Dewar <dewar@adacore.com>
4322
4323 * checks.adb: Make warnings on exceptions into errors in GNATprove mode.
4324 * errout.adb: Implement [ and ] insertion characters.
4325 * errout.ads: Document new [ and ] insertion characters.
4326 * sem_ch12.adb, restrict.adb, frontend.adb, exp_ch7.adb: Minor
4327 addition of ??? comment.
4328 * lib-xref.adb, exp_util.adb, gnat1drv.adb: Minor reformatting
4329 * exp_ch4.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_elab.adb,
4330 sem_eval.adb, sem_res.adb, sem_util.adb, sem_attr.adb, sem_aggr.adb:
4331 Make warnings on exceptions into errors in GNATprove mode.
4332 * sem_dim.adb: Minor reformatting throughout Quote [ and ]
4333 in error messages.
4334
43352014-01-20 Ed Schonberg <schonberg@adacore.com>
4336
4337 * sem_ch13.adb: Code clean up.
4338
b465ef6f
AC
43392014-01-20 Robert Dewar <dewar@adacore.com>
4340
4341 * errout.ads, errout.adb: Implement >? >x? >X? sequences in error
4342 messages.
4343 * sem_ch6.adb (Check_Statement_Sequence): Missing return is an
4344 error in GNATprove mode.
4345
43462014-01-20 Ed Schonberg <schonberg@adacore.com>
4347
4348 * par-ch4.adb (Is_Parameterless_Attribute): The Ada2012 attribute
4349 reference 'Old takes no parameters, and thus can appear as a
4350 prefix of a slice.
4351
43522014-01-20 Eric Botcazou <ebotcazou@adacore.com>
4353
4354 * exp_aggr.adb: Fix minor typos.
4355
a6152428
AC
43562014-01-20 Ed Schonberg <schonberg@adacore.com>
4357
4358 * sem_attr.adb (Analyze_Attribute, case 'Constrained): In an
4359 instance the attribute is legal, and its value is determined
4360 statically if the type has no discriminants. This choice is
4361 more useful than rechecking the legality rule in the instance,
4362 is consistent with older usage, and is also consistent with all
4363 existing tests.
4364
43652014-01-20 Arnaud Charlet <charlet@adacore.com>
4366
4367 * sem_cat.adb (Validate_Static_Object_Name): Change error into
4368 warning in Relaxed_Semantic_Mode.
4369
e19fd0bd
AC
43702014-01-20 Ed Schonberg <schonberg@adacore.com>
4371
4372 * sem_attr.adb: Code and comments cleanup.
4373
43742014-01-20 Yannick Moy <moy@adacore.com>
4375
4376 * debug.adb Free debug flags -gnatd.D, -gnatd.G and -gnatd.V *
4377 * errout.adb (Compilation_Errors): Remove special handling in
4378 GNATprove mode.
4379 * gnat1drv.adb (Adjust_Global_Switches): Remove handling of the
4380 removed debug flags.
4381 * gnat_rm.texi: Initial documentation for Abstract_State, Depends,
4382 Global, Initial_Condition, Initializes and Refined_State pragmas and
4383 aspects.
4384 * opt.ads (Frame_Condition_Mode, Formal_Extensions,
4385 SPARK_Strict_Mode): Remove global flags.
4386 * sem_ch3.adb (Analyze_Object_Declaration): Check of no hidden state
4387 always performed now, on packages declaring a null state.
4388 (Signed_Integer_Type_Declaration): Remove ill-designed attempt
4389 at providing pedantic mode for bounds of integer types.
4390 * sem_ch4.adb (Analyze_Quantified_Expression): Warning on suspicious
4391 "some" quantified expression now issued under control of -gnatw.t,
4392 like the other warning on unused bound variable.
4393 * sem_prag.adb (Check_Precondition_Postcondition): Remove useless test
4394 on removed flag.
4395 (Analyze_Pragma): Remove tests for SPARK 2014
4396 pragmas, not officially allowed by GNAT.
4397
58827738
AC
43982014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4399
4400 * sem_prag.adb (Analyze_Pragma): Ensure that
4401 the sole argument of pragmas Abstract_State, Contract_Cases,
4402 Depends, Global and Initializes in in aggregate form.
4403 (Analyze_Refined_Pragma): Ensure that the sole argument of
4404 pragmas Refined_Depends, Refined_Global and Refined_State is in
4405 aggregate form.
4406 (Ensure_Aggregate_Form): New routine.
4407
44082014-01-20 Doug Rupp <rupp@adacore.com>
4409
4410 * sem_attr.adb (Analyze_Attribute): case
4411 Attribute_Constrained => treat all prefixes as legal for Declib
4412 compatibility.
4413
9559eccf
AC
44142014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4415
4416 * sem_prag.adb (Check_Mode): Reimplement the routine.
4417 (Find_Mode): New routine.
4418
44192014-01-20 Robert Dewar <dewar@adacore.com>
4420
4421 * sem_ch4.adb (Operator_Check): Handle additional
4422 Allow_Integer_Address cases.
4423
7dbd3de9
RD
44242014-01-20 Robert Dewar <dewar@adacore.com>
4425
4426 * gnat_rm.texi (Allow_Integer_Address): Remove note about not
4427 allowed if address is non-private, no longer true.
4428 * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
4429 Remove check for address being private, causes difficulty when
4430 pragma used in gnat.adc file and is not needed, since we guard
4431 this in Address_Integer_Convert_OK.
4432 * exp_ch7.adb: Minor reformatting.
4433 * sem_ch4.adb: Handle operator operands in Allow_Integer_Address mode.
4434
44352014-01-20 Robert Dewar <dewar@adacore.com>
4436
4437 * checks.adb (Apply_Range_Check): Remove gnatprove special
4438 casing of exponentiation.
4439 * sem_res.adb (Resolve_Op_Expon): Apply range check to right
4440 operand for integer case to check range against Natural.
4441
061828e3
AC
44422014-01-20 Robert Dewar <dewar@adacore.com>
4443
4444 * s-tataat.adb: Minor reformatting.
4445
44462014-01-20 Robert Dewar <dewar@adacore.com>
4447
4448 * einfo.adb (Is_Descendent_Of_Address): Now applies to all
4449 entities, and also fix documentation to remove mention of visible
4450 integer type, since this is not what the implementation does.
4451 * einfo.ads (Is_Descendent_Of_Address): Now applies to all
4452 entities, and also fix documentation to remove mention of visible
4453 integer type, since this is not what the implementation does.
4454 * gnat_rm.texi: Minor clarification of Allow_Integer_Address
4455 function.
4456 * sem_ch4.adb (Analyze_One_Call): Handle Allow_Integer_Address
4457 case for parameter type check.
4458 * sem_res.adb (Resolve): Use new function
4459 Address_Integer_Convert_OK.
4460 * sem_type.adb: Minor code reorganization (use Ekind_In) Minor
4461 reformatting throughout.
4462 * sem_util.adb (Address_Integer_Convert_OK): New function.
4463 * sem_util.ads: Minor reformatting (put specs in alpha order)
4464 (Address_Integer_Convert_OK): New function.
4465
44662014-01-20 Thomas Quinot <quinot@adacore.com>
4467
4468 * exp_ch7.adb (Wrap_Transient_Expression):
4469 Insertion extra conditional expression only if
4470 Opt.Suppress_Control_Flow_Optimizations is set.
4471
ff4e28eb
AC
44722014-01-20 Arnaud Charlet <charlet@adacore.com>
4473
4474 * s-tataat.adb (Initialize_Attributes): Abort might already be
4475 deferred in Create_Task.
4476
44772014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4478
4479 * checks.adb (Apply_Scalar_Range_Check): Flag
4480 the exponent as requiring a range check when the expression is
4481 an exponentiation.
4482
a1efcc17
AC
44832014-01-20 Fedor Rybin <frybin@adacore.com>
4484
4485 * gnat_ugn.texi: Documenting --passed-tests option for gnattest.
4486
44872014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4488
4489 * sem_util.adb (Default_Initialization): New routine.
4490 * sem_util.ads: Add new type Default_Initialization_Kind.
4491 (Default_Initialization): New routine.
4492
44932014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4494
4495 * sem_prag.adb (Check_Mode): Correct all error
4496 message logic dealing with in/in out parameters that may appear
4497 as inputs or have a self reference.
4498
6fd0a72a
AC
44992014-01-20 Robert Dewar <dewar@adacore.com>
4500
4501 * exp_ch9.adb, checks.adb, exp_intr.adb: Minor reformatting.
4502 * sem_res.adb (Resolve): Fix error causing infinite loop for
4503 integer used as address. Allow addresses as integers.
4504
45052014-01-20 Arnaud Charlet <charlet@adacore.com>
4506
4507 * s-osinte-linux.ads (struct_sigaction): Fix rep clause.
4508
45092014-01-20 Bob Duff <duff@adacore.com>
4510
4511 * par-ch8.adb (P_Use_Type_Clause): Detect syntax
4512 error when "use all" is not followed by "type".
4513
3b4598a7
AC
45142014-01-20 Bob Duff <duff@adacore.com>
4515
4516 * exp_intr.adb (Expand_Unc_Deallocation): Remove warning on abort
4517 followed by free.
4518
45192014-01-20 Ed Schonberg <schonberg@adacore.com>
4520
4521 * checks.adb (Apply_Address_Clause_Check): If there is an
4522 alignment check on the expression in an address clause, and there
4523 is no local exception propagation, add an additional explanatory
4524 message to clarify the cause of previous warning.
4525
4058ddcc
AC
45262014-01-20 Robert Dewar <dewar@adacore.com>
4527
4528 * exp_ch7.adb: Minor reformatting.
4529 * opt.ads: Minor comment updates.
4530 * sem.adb: Minor name change Is_Main_Unit =>
4531 Is_Main_Unit_Or_Main_Unit_Spec.
4532 * sem_ch6.adb: Minor reformatting and code reorganization.
4533
45342014-01-20 Bob Duff <duff@adacore.com>
4535
4536 * gnat_ugn.texi: Update gnatpp switches.
4537
45382014-01-20 Thomas Quinot <quinot@adacore.com>
4539
4540 * exp_ch9.adb: Minor comment edit.
4541
d8a764c4
AC
45422014-01-20 Robert Dewar <dewar@adacore.com>
4543
4544 * gnat_rm.texi: Document that Allow_Integer_Address is permitted
4545 only if System.Address is a private type.
4546 * opt.ads (Allow_Integer_Address): No longer set by -gnates.
4547 * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
4548 Allowed only if type System.Address is private, since otherwise
4549 it makes no sense.
4550 * sem_res.adb: Fix failure to properly Analyze unchecked
4551 conversions that were introduced by Allow_Integer_Address.
4552 * switch-c.adb: Remove -gnates switch.
4553 * usage.adb: Remove -gnates switch.
4554 * gnat_ugn.texi: Remove documentation of -gnates flag.
4555
45562014-01-20 Ed Schonberg <schonberg@adacore.com>
4557
4558 * sem_ch6.adb (Analyze_Expression_Function): Pre-analyze and
4559 resolve expression to perform proper name capture.
4560
45612014-01-20 Ed Schonberg <schonberg@adacore.com>
4562
4563 * sem.adb (Semantics): When saving/restoring configuration
4564 switches, the spec of a pre- defined unit that is the main unit
4565 must be treated as a predefined unit as well.
4566
45672014-01-20 Thomas Quinot <quinot@adacore.com>
4568
4569 * exp_ch7.adb (Wrap_Transient_Expression): For a Boolean
4570 expression, insert an extra conditional expression when saving
4571 the value of the expression, for the benefit of control flow
4572 graph based coverage analysis.
4573 * exp_ch3.adb: Minor reformatting.
4574
818b578d
AC
45752014-01-20 Robert Dewar <dewar@adacore.com>
4576
4577 * gnat1drv.adb: Set Allow_Integer_Address in relaxed semantics mode.
4578 * gnat_rm.texi: Document pragma Allow_Integer_Address.
4579 * gnat_ugn.texi: Document pragma Allow_Integer_Address, -gnates.
4580 * opt.ads: New flag Allow_Integer_Address.
4581 * par-prag.adb: Dummy entry for pragma Allow_Integer_Address.
4582 * sem_ch5.adb: Minor reformatting.
4583 * sem_prag.adb: Implement pragma Allow_Integer_Address.
4584 * sem_res.adb (Resolve): Allow integer address value if
4585 switch set.
4586 * sem_util.adb: Minor reformatting.
4587 * snames.ads-tmpl: Add entry for pragma Allow_Integer_Address.
4588 * switch-c.adb: Recognize flag -gnates.
4589 * usage.adb: Document flag -gnates.
4590
45912014-01-20 Thomas Quinot <quinot@adacore.com>
4592
4593 * s-tadeca.adb: Fix minor typos in comment.
4594
c2e54001
AC
45952014-01-20 Pascal Obry <obry@adacore.com>
4596
4597 * s-win32.ads (FreeLibrary): New import.
4598
45992014-01-20 Robert Dewar <dewar@adacore.com>
4600
4601 * sem_res.adb, sem_cat.adb: Minor reformatting.
4602 * sem_ch11.adb (Analyze_Raise_Statement): Only give warning about
4603 assigning to OUT parameters for the current subprogram scope.
4604 * exp_ch4.adb: Minor reformatting.
4605
46062014-01-20 Ed Schonberg <schonberg@adacore.com>
4607
4608 * exp_ch4.adb (Process_Transient_Object,
4609 Find_Enclosing_Contexts): If the top-level if-expression that
4610 generated the transient object is an actual in a call, the proper
4611 Hook_Context is a construct enclosing the call.
4612 * einfo.ads: Indicate that Related_Expression is used to link a
4613 loop variable to the container expression over which the loop
4614 takes place.
4615 (Analyze_Iterator_Specification): Set the Related_Expression of
4616 the loop variable in a container element iterator.
4617 (Note_Possible_Modification): If the variable is the loop
4618 variable in a container element iterator, indicate that the
4619 enclosing container is also modified.
4620
46212014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4622
4623 * aspects.adb (Move_Or_Merge_Aspects): Reimplemented.
4624
90b51aaf
AC
46252014-01-20 Robert Dewar <dewar@adacore.com>
4626
4627 * s-taasde.ads, gnat_ugn.texi, s-tadeca.adb, sem_res.adb, s-tadeca.ads:
4628 Minor reformatting and code clean up.
4629
46302014-01-20 Arnaud Charlet <charlet@adacore.com>
4631
4632 * sem_cat.adb (Validate_Object_Declaration): Relax semantics
4633 of objects of private type if Relaxed_RM_Semantics.
4634
2838fa93
AC
46352014-01-20 Claire Dross <dross@adacore.com>
4636
4637 * a-cofove.ads (Vector): Capacity discriminant
4638 should be in range of the index.
4639
46402014-01-20 Thomas Quinot <quinot@adacore.com>
4641
4642 * a-caldel.ads(To_Duration), s-taasde.ads(Time_Enqueue):
4643 Clarify specs s-tadeca.adb(Enqueue_Calendar): Compensate for
4644 possible difference between epoch of Ada.Calendar clock and Ada
4645 real-time/tasking clock.
4646 * s-taprop-posix.adb: Minor comment fix.
4647
46482014-01-20 Doug Rupp <rupp@adacore.com>
4649
4650 * sysdep.c [vxworks]: Remove Vxworks version noise for RTP.
4651
46522014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4653
4654 * exp_attr.adb (Expand_N_Attribute_Reference): Generate validity
4655 checks on the prefix of attribute 'Old.
4656 * sem_ch3.adb (Process_Range_Expr_In_Decl): Suppress the
4657 generation of validity checks on a range that belongs to the
4658 iteration scheme of a quantified expression.
4659 * sem_ch5.adb (One_Bound): Suppress the generation of validity
4660 checks on a bound that belongs to the iteration scheme of a
4661 quantified expression, generate the check in all other cases.
4662
46632014-01-20 Bob Duff <duff@adacore.com>
4664
4665 * gnat_ugn.texi: Enable --pp-new by default. Minor reorganization.
4666
46672014-01-20 Ed Schonberg <schonberg@adacore.com>
4668
4669 * sem_res.adb (Resolve): When compiling a predefined unit, ignore
4670 interpretations that do not come from other predefined units,
4671 to prevent spurious ambiguities in the presence of user-defined
4672 operators in the context of (an instance of) a predefined unit.
4673
1e569204
AC
46742014-01-20 Robert Dewar <dewar@adacore.com>
4675
4676 * gnat_rm.texi: Document that Loop_Variant is included in
4677 Statement_Assertions.
4678 * sem_prag.adb (Check_Kind): Add Loop_Variant to
4679 Statement_Assertions (Check_Applicable_Policy): Add Loop_Variant
4680 to Statement_Assertions.
4681
46822014-01-20 Doug Rupp <rupp@adacore.com>
4683
4684 * sysdep.c (__gnat_is_file_not_found_error) [vxworks6]: Add case
4685 for errno ENOENT from RTP on NFS mounted file system.
4686
0969e96d
AC
46872014-01-20 Ed Schonberg <schonberg@adacore.com>
4688
4689 * sem_util.adb (Check_Function_Writable_Actuals): 1) Do not
4690 examine code that does not come from source. The check does not
4691 apply to code generated for constraint checks, and such code may
4692 generate spurious error messages when compiled with expansion
4693 disabled (as in a generic unit) because side effects may not
4694 have been removed.
4695 2) Make error messages more explicit: indicate the component
4696 of the construct whose value is indeterminate because of a
4697 call to a function with in-out parameter in another component,
4698 when there is no mandated order of execution between the two
4699 components (actuals, aggregate components, alternatives).
4700
47012014-01-20 Robert Dewar <dewar@adacore.com>
4702
4703 * gnat_rm.texi: Minor cleanup.
4704
36eef04a
AC
47052014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4706
4707 * sem_attr.adb (Analyze_Attribute): Attributes 'Old and 'Result
4708 can now apply to a refined postcondition.
4709 * sem_ch6.adb (Analyze_Subprogram_Contract): Remove local
4710 variable Result_Seen. Add variables Case_Prag, Post_Prag,
4711 Seen_In_Case and Seen_In_Post. Update the mechanism that detects
4712 whether postconditions and/or constract-cases mention attribute
4713 'Result and introduce a post-state when applied to functions.
4714 (Check_Result_And_Post_State): Removed.
4715 * sem_prag.adb (Analyze_Pragma): Add local variable
4716 Result_Seen. Verify that the expression of pragma Refined_Post
4717 mentions attribute 'Result and introduces a post-state.
4718 * sem_util.ads, sem_util.adb (Check_Result_And_Post_State): New routine.
4719
47202014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4721
4722 * exp_ch7.adb (Is_Subprogram_Call): New routine.
4723 (Process_Transient_Objects): Make variable Must_Hook global with
4724 respect to all locally declared subprograms. Search the context
4725 for at least one subprogram call.
4726 (Requires_Hooking): Removed.
4727
47282014-01-20 Claire Dross <dross@adacore.com>
4729
4730 * a-cfdlli.ads a-cfhama.ads a-cfhase.ads a-cforma.ads
4731 * a-cforse.ads a-cofove.ads: Add pragma Annotate (GNATprove,
4732 External_Axiomatization);
4733
65441a1e
RD
47342014-01-20 Robert Dewar <dewar@adacore.com>
4735
4736 * sem_attr.adb (Analyze_Attribute, case Loop_Entry): Allow
4737 Loop_Entry in Assert, Assert_And_Cut, and Assume pragmas.
4738 * sem_prag.adb (Analyze_Pragma, case Assert[_And_Cut], Assume):
4739 Allow Loop_Entry to be used in these pragmas if they appear in
4740 an appropriate context.
4741 (Placement_Error): Specialize error
4742 message for pragma Assert[_And_Cut] or pragma Assume containing
4743 Loop_Entry attribute.
4744 * a-exexpr-gcc.adb, sinput.adb: Minor reformatting.
4745 * s-excmac-arm.ads, s-except.ads, s-excmac-gcc.ads: Minor reformatting
4746 and code clean ups.
4747
800da977
AC
47482014-01-20 Robert Dewar <dewar@adacore.com>
4749
4750 * gnat1drv.adb: Minor comment update.
4751
47522014-01-20 Tristan Gingold <gingold@adacore.com>
4753
4754 * raise-gcc.c (PERSONALITY_FUNCTION/arm): Remove unused
4755 variables, comment out unused code.
4756 * a-exexpr-gcc.adb: Move declarations to s-excmac-gcc.ads
4757 * s-excmac-gcc.ads: New file, extracted from a-exexpr-gcc.adb
4758 * s-excmac-arm.ads: New file.
4759
47602014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4761
4762 * exp_ch4.adb (Expand_N_Slice): Remove constant D and variables
4763 Drange and Index_Typ. Remove the circuitry which creates a
4764 range check to compare the index type of the array against the
4765 discrete_range.
4766 * sem_res.adb (Resolve_Slice): Add local variable Dexpr. Update
4767 the circuitry which creates a range check to handle a
4768 discrete_range denoted by a subtype indication.
4769
47702014-01-20 Pierre-Marie Derodat <derodat@adacore.com>
4771
4772 * sinput.adb, sinput.ads (Sloc_Range): Traverse the tree of original
4773 nodes to get the original sloc range.
4774
47752014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4776
4777 * sem_prag.adb (Analyze_Pragma): Use Defining_Entity to obtain the
4778 entity of a [library level] package.
4779
51b0e05a
AC
47802014-01-20 Tristan Gingold <gingold@adacore.com>
4781
4782 * raise-gcc.c (exception_class_eq): New function.
4783 (is_handled_by): Use it to compare exception classes.
4784 (PERSONALITY_STORAGE): Define. (continue_unwind): New function to
4785 be called to return URC_CONTINUE_UNWIND.
4786 (personality_body): New function, extracted from PERSONALITY_ROUTINE.
4787 (PERSONALITY_ROUTINE): Add an implementation for the ARM unwinder.
4788
47892014-01-20 Robert Dewar <dewar@adacore.com>
4790
4791 * opt.ads: Minor comment update.
4792
5ff90f08
AC
47932014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4794
4795 * exp_ch4.adb (Expand_N_Slice): Relocate some variables and
4796 constants to the "Local variables" area. Add new constant D. Add
4797 new variables Drange and Index_Typ. Rename Pfx to Rep and Ptp
4798 to Pref_Typ and update all occurrences. Add circuitry to extract
4799 the discrete_range and the index type and build a range check.
4800
48012014-01-20 Arnaud Charlet <charlet@adacore.com>
4802
4803 * gnat1drv.adb (Adjust_Global_Switches): Enable
4804 Treat_Categorization_Errors_As_Warnings when Relaxed_RM_Semantics
4805 is set.
4806
48072014-01-20 Thomas Quinot <quinot@adacore.com>
4808
4809 * sem_ch5.adb, sem_ch4.adb: Minor reformatting.
4810
48112014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4812
4813 * sem_ch13.adb (Analyze_Aspect_Specifications):
4814 When aspect SPARK_Mode appears on a package body, insert the
4815 generated pragma at the top of the body declarations.
4816
1f0b1e48
RD
48172014-01-20 Robert Dewar <dewar@adacore.com>
4818
4819 * sem_aggr.adb, exp_prag.adb, sem_aux.adb, sinfo.ads, sem_ch10.adb,
4820 checks.adb, sem_prag.adb, sem_ch12.adb, freeze.adb, g-arrspl.adb,
4821 expander.adb, gnat1drv.adb, exp_ch4.adb, sem_ch6.adb,
4822 sem_ch8.adb, exp_dist.adb: Minor reformatting.
4823
c093d3cc
AC
48242014-01-20 Yannick Moy <moy@adacore.com>
4825
4826 * gnat1drv.adb (Gnat1drv): Call Write_ALI with Object=True in GNATprove
4827 mode.
4828
48292014-01-20 Pascal Obry <obry@adacore.com>
4830
4831 * g-arrspl.ads (Slice_Set): New definition (will use a copy on
4832 write scheme).
4833 * g-arrspl.adb: Adapt all routine to this new implementation.
4834 (Set): Copy the Slice_Set definition before reusing it.
4835
0bd75e44
AC
48362014-01-20 Arnaud Charlet <charlet@adacore.com>
4837
4838 * sem_prag.adb (Process_Import_Or_Interface): In
4839 Relaxed_RM_Semantics, support old Ada 83 style of pragma Import.
4840 (Analyze_Pragma): Ditto for pragma Export.
4841 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Handle old pragma
4842 Import style.
4843
aca90db9
AC
48442014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4845
4846 * einfo.ads: E_Abstract_State is now part of the entities that
4847 can be overloaded. Update type Overloadable_Kind to reflect the
4848 inclusion of abstract states.
4849 * sem_ch6.adb (New_Overloaded_Entity): A function can now
4850 overload an abstract state.
4851 * sem_prag.adb (Analyze_Constituent): Handle the overloading
4852 of states by functions. Use Entity_Of to obtain the entity of
4853 a constituent. (Analyze_Global_Item): Handle the overloading of
4854 states by functions.
4855 (Analyze_Initialization_Item): Handle the
4856 overloading of states by functions. Use Entity_Of to obtain the
4857 entity of an item.
4858 (Analyze_Input_Item): Handle the overloading
4859 of states by functions. Use Entity_Of to obtain the entity of an item.
4860 (Analyze_Input_Output): Handle the overloading of states by functions.
4861 (Analyze_Refinement_Clause): Handle the overloading
4862 of states by functions. Use Entity_Of to obtain the entity of an item.
4863 (Appears_In): Use Entity_Of to obtain the entity of an element.
4864 (Check_Usage): Use Entity_Of to obtain the entity of
4865 an item. Add a guard to prevent a crash due to a previous error.
4866 (Resolve_State): New routine.
4867
48682014-01-20 Yannick Moy <moy@adacore.com>
4869
4870 * spark_xrefs.ads, debug.adb, gnat1drv.adb, errout.adb, errout.ads,
4871 opt.ads: Minor comments updates.
4872
dc726757
HK
48732014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4874
4875 * einfo.adb (Non_Limited_View): Applies to abstract states.
4876 (Set_From_Limited_With): Applies to abstract states.
4877 (Set_Non_Limited_View): Applies to abstract states.
4878 (Write_Field17): Output the non-limited view of an abstract state.
4879 * einfo.ads: Update the comment on usage and occurrences in
4880 nodes for attributes From_Limited_With and Non_Limited_View.
4881 * sem_aux.adb (Available_View): This routine can now handle
4882 abstract states.
4883 * sem_aux.ads (Available_View): This routine can now handle
4884 abstract states. Update the comment on usage.
4885 * sem_ch8.adb (Find_Expanded_Name): Handle abstract views
4886 of states and variables.
4887 (In_Pragmas_Depends_Or_Global): New routine.
4888 * sem_ch10.adb (Build_Limited_Views): Implement
4889 abstract (limited) views of variables and states.
4890 (Build_Shadow_Entity): This routine is now a procedure. Add
4891 formal parameter Shadow. Update the comment on usage. Add
4892 context-specific decoration for states and variables.
4893 (Decorate_State): New routine. (Decorate_Variable): New routine.
4894 (Find_And_Process_States): New routine.
4895 (Process_Declarations): Renamed to Process_Declarations_And_States.
4896 (Process_Declarations_And_States): Add formal parameters
4897 Pack and Create_Abstract_Views. Update the comment on usage.
4898 (Process_States): New routine.
4899 * sem_prag.adb (Check_Dependency_Clause): Handle abstract
4900 views of states and variables. Match the abstract view of a state
4901 against its corresponding non-abstract view.
4902 (Is_Matching_Input):
4903 Handle abstract views of states and variables. Match the abstract
4904 view of a state against its corresponding non-abstract view.
4905 (Process_Global_Item): Handle abstract views of states and
4906 variables.
4907
3a5de596
BD
49082014-01-20 Bob Duff <duff@adacore.com>
4909
4910 * sem_ch10.adb (Expand_With_Clause): Don't
4911 recurse on the prefix if the current with-ed name refers to a
4912 package that renames its own parent, eg "package P.Q renames P;".
4913
4460a9bc
YM
49142014-01-20 Yannick Moy <moy@adacore.com>
4915
4916 * exp_spark.adb (Expand_SPARK_Call): Remove procedure.
4917 * opt.adb, opt.ads (Full_Expander_Active): Remove function.
4918 * checks.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb, sem_aggr.adb,
4919 * sem_ch10.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb,
4920 * sem_disp.adb, sem_res.adb Replace Full_Expander_Active by
4921 Expander_Active.
4922
49232014-01-20 Yannick Moy <moy@adacore.com>
4924
4925 * sinfo.ads Update documentation of GNATprove mode.
4926
f5da7a97
YM
49272014-01-20 Yannick Moy <moy@adacore.com>
4928
4929 * adabkend.adb, ali-util.adb, errout.adb, exp_ch7.adb,
4930 * exp_dbug.adb, freeze.adb, lib-xref.adb, restrict.adb,
4931 * sem_attr.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb,
4932 * sem_prag.adb, sem_res.adb, sem_util.adb Rename SPARK_Mode into
4933 GNATprove_Mode.
4934 * sem_ch13.adb: Remove blank.
4935 * exp_spark.adb, exp_spark.ads (Expand_SPARK_Call): Only replace
4936 subprograms by alias for renamings, not for inherited primitive
4937 operations.
4938 * exp_util.adb (Expand_Subtype_From_Expr): Apply the expansion
4939 in GNATprove mode.
4940 (Remove_Side_Effects): Apply the removal in
4941 GNATprove mode, for the full analysis of expressions.
4942 * expander.adb (Expand): Call the light SPARK expansion in GNATprove
4943 mode.
4944 (Expander_Mode_Restore, Expander_Mode_Save_And_Set): Ignore
4945 save/restore actions for Expander_Active flag in GNATprove mode,
4946 similar to what is done in ASIS mode.
4947 * frontend.adb (Frontend): Generic bodies are instantiated in
4948 GNATprove mode.
4949 * gnat1drv.adb (Adjust_Global_Switches): Set operating
4950 mode to Check_Semantics in GNATprove mode, although a light
4951 expansion is still performed.
4952 (Gnat1drv): Set Back_End_Mode to
4953 Declarations_Only in GNATprove mode, and later on special case
4954 the GNATprove mode to continue analysis anyway.
4955 * lib-writ.adb (Write_ALI): Always generate ALI files in
4956 GNATprove mode.
4957 * opt.adb, opt.ads (Full_Expander_Active): Make it equivalent to
4958 Expander_Active.
4959 (SPARK_Mode): Renamed as GNATprove_Mode.
4960 * sem_aggr.adb (Aggregate_Constraint_Checks): Add checks in the
4961 tree in GNATprove_Mode.
4962 * sem_ch12.adb (Analyze_Package_Instantiation): Always instantiate
4963 body in GNATprove mode.
4964 (Need_Subprogram_Instance_Body): Always instantiate body in GNATprove
4965 mode.
4966 * sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl):
4967 Make sure side effects are removed in GNATprove mode.
4968
fd6e497e
EB
49692014-01-20 Eric Botcazou <ebotcazou@adacore.com>
4970
4971 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Robustify tests
4972 for aliased objects with an unconstrained nominal subtype.
4973 * gcc-interface/trans.c (Call_to_gnu): Likewise.
4974 (gnat_to_gnu) <case N_Op_Not>: Robustify test for private type.
4975 <case N_Op_Minus>: Remove useless code.
4976 (Exception_Handler_to_gnu_zcx): Minor tweaks.
4977
44e9e3ec
EB
49782014-01-20 Eric Botcazou <ebotcazou@adacore.com>
4979
4980 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Record_Subtype>:
4981 Tidy up. For a subtype with discriminants and variant part, if a
4982 variant is statically selected and the fields all have a constant
4983 position, put them in order of increasing position. Likewise if
4984 no variant part but representation clause is present.
4985 * gcc-interface/utils.c (make_packable_type): Robustify.
4986 (maybe_pad_type): Use local variable and tidy up condition. If no
4987 alignment is specified, use the original one.
4988 (create_type_stub_decl): Minor tweak.
4989 (convert) <case VECTOR_CST>: Fix typo.
4990 <case CONSTRUCTOR>: Deal with padding types around the same type.
4991 Do not punt on missing fields.
4992 (unchecked_convert): Call finish_record_type to lay out the special
4993 record types made for conversions from/to problematic integer types.
4994 Bump the alignment of CONSTRUCTORs before converting them to a more
4995 aligned type.
4996
59f5c969
EB
49972014-01-20 Eric Botcazou <ebotcazou@adacore.com>
4998
4999 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Component>: Remove
5000 obsolete code for type_annotate_only mode, simplify code and slightly
5001 improve wording of comments.
5002
2323a580
EB
50032014-01-12 Eric Botcazou <ebotcazou@adacore.com>
5004
5005 PR ada/59772
5006 * gcc-interface/cuintp.c (build_cst_from_int): Use 32-bit integer type
5007 as intermediate type.
5008 (UI_To_gnu): Likewise.
5009
517c399e
EB
50102014-01-03 Eric Botcazou <ebotcazou@adacore.com>
5011
5012 * gnatvsn.ads (Current_Year): Bump to 2014.
5013
98db73df 50142014-01-02 Tobias Burnus <burnus@net-b.de>
00f96dc9 5015
98db73df 5016 * gnat_ugn.texi: Bump @copying's copyright year.
ad41bd84 5017\f
98db73df 5018Copyright (C) 2014 Free Software Foundation, Inc.
ad41bd84
JM
5019
5020Copying and distribution of this file, with or without modification,
5021are permitted in any medium without royalty provided the copyright
5022notice and this notice are preserved.