]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
Change the 3rd parameter of function .DEFERRED_INIT from IS_VLA to decl name.
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
d9450aa0
GA
12022-01-10 Eric Botcazou <ebotcazou@adacore.com>
2
3 * gcc-interface/trans.c (Identifier_to_gnu): Use correct subtype.
4 (elaborate_profile): New function.
5 (Call_to_gnu): Call it on the formals and the result type before
6 retrieving the translated result type from the subprogram type.
7
82022-01-10 Eric Botcazou <ebotcazou@adacore.com>
9
10 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Fix
11 computation of boolean result in the unchecked union case.
12 (components_to_record): Rename MAYBE_UNUSED parameter to IN_VARIANT
13 and remove local variable of the same name. Pass NULL recursively
14 as P_GNU_REP_LIST for nested variants in the unchecked union case.
15
162022-01-10 Eric Botcazou <ebotcazou@adacore.com>
17
18 * gcc-interface/trans.c (lvalue_required_p) <N_Pragma>: New case.
19 <N_Pragma_Argument_Association>: Likewise.
20 (Pragma_to_gnu) <Pragma_Inspection_Point>: Fetch the corresponding
21 variable of a constant before marking it as addressable.
22
232022-01-10 Arnaud Charlet <charlet@adacore.com>
24
25 * gcc-interface/Make-lang.in (ADA_GENERATED_FILES): Remove
26 s-casuti.ad?, s-crtl.ad?, s-os_lib.ad?. Update list of object
27 files accordingly.
28
292022-01-10 Piotr Trojanek <trojanek@adacore.com>
30
31 * libgnat/s-atopri.ads (Atomic_Compare_Exchange): Replaces
32 deprecated Sync_Compare_And_Swap.
33 * libgnat/s-atopri.adb (Lock_Free_Try_Write): Switch from __sync
34 to __atomic builtins.
35
362022-01-10 Piotr Trojanek <trojanek@adacore.com>
37
38 * libgnat/s-exponn.adb, libgnat/s-expont.adb,
39 libgnat/s-exponu.adb, libgnat/s-widthi.adb,
40 libgnat/s-widthu.adb: Remove CodePeer annotations for pragma
41 Loop_Variant.
42
432022-01-10 Piotr Trojanek <trojanek@adacore.com>
44
45 * exp_prag.adb (Expand_Pragma_Loop_Variant): Disable expansion
46 in CodePeer mode.
47
482022-01-10 Piotr Trojanek <trojanek@adacore.com>
49
50 * sem_util.adb (Is_Child_Or_Sibling): Fix typo in comment.
51
522022-01-10 Eric Botcazou <ebotcazou@adacore.com>
53
54 * exp_pakd.adb (Install_PAT): If the PAT is a scalar type, apply
55 the canonical adjustment to its alignment.
56
572022-01-10 Piotr Trojanek <trojanek@adacore.com>
58
59 * libgnat/s-atocou__builtin.adb (Decrement, Increment): Switch
60 from __sync to __atomic builtins; use 'Address to be consistent
61 with System.Atomic_Primitives.
62
632022-01-10 Eric Botcazou <ebotcazou@adacore.com>
64
65 * exp_pakd.adb (Install_PAT): Do not reset the alignment here.
66 * layout.adb (Layout_Type): Call Adjust_Esize_Alignment after having
67 copied the RM_Size onto the Esize when the latter is too small.
68
692022-01-10 Justin Squirek <squirek@adacore.com>
70
71 * sem_warn.adb (Check_References): Handle arrays of tasks
72 similar to task objects.
73
55e96bf9
GA
742022-01-07 Patrick Bernardi <bernardi@adacore.com>
75
76 * libgnat/a-direct.adb (Search_Data): Remove type.
77 (Directory_Vectors): New package instantiation.
78 (Search_State): New type.
79 (Fetch_Next_Entry): Remove.
80 (Close): Remove.
81 (Finalize): Rewritten.
82 (Full_Name): Ditto.
83 (Get_Next_Entry): Return next entry from Search results vector
84 rather than querying the directory directly using readdir.
85 (Kind): Rewritten.
86 (Modification_Time): Rewritten.
87 (More_Entries): Use Search state cursor to determine if more
88 entries are available for users to read.
89 (Simple_Name): Rewritten.
90 (Size): Rewritten.
91 (Start_Search_Internal): Rewritten to load the contents of the
92 directory that matches the pattern and filter into the search
93 object.
94 * libgnat/a-direct.ads (Search_Type): New type.
95 (Search_Ptr): Ditto.
96 (Directory_Entry_Type): Rewritten to support new Start_Search
97 procedure.
98 * libgnat/s-filatt.ads (File_Length_Attr): New function.
99
1002022-01-07 Etienne Servais <servais@adacore.com>
101
102 * sem_attr.adb (Check_Reference): Fix condition.
103
1042022-01-07 Ghjuvan Lacambre <lacambre@adacore.com>
105
106 * libgnarl/s-taprop__mingw.adb (Timed_Sleep): Remove "pragma
107 Unreferenced" for Result.
108 (Timed_Delay): Likewise.
109
1102022-01-07 Piotr Trojanek <trojanek@adacore.com>
111
112 * gen_il-gen.adb (Put_Make_Decls): Put pragma Inline in a
113 dedicated line, so that the current indentation is taken into
114 account.
115
1162022-01-07 Piotr Trojanek <trojanek@adacore.com>
117
118 * exp_aggr.adb (Build_Array_Aggr_Code): Fix inconsistent style
119 in comments and code.
120
1212022-01-07 Piotr Trojanek <trojanek@adacore.com>
122
123 * exp_aggr.adb (Gen_Assign): Remove explicit initialization for
124 components of access types.
125 (Get_Assoc_Expr): Enable initialization for components of all
126 types that require simple initialization.
127
1282022-01-07 Javier Miranda <miranda@adacore.com>
129
130 * atree.ads (Traverse_Func_With_Parent): New generic subprogram.
131 (Traverse_Proc_With_Parent): Likewise.
132 * atree.adb (Parents_Stack): New table used to traverse trees
133 passing the parent field of each node.
134 (Internal_Traverse_With_Parent): New generic subprogram.
135 (Traverse_Func_With_Parent): Likewise.
136 (Traverse_Proc_With_Parent): Likewise.
137 * contracts.adb (Fix_Parents): New subprogram.
138 (Restore_Original_Selected_Component): Enhanced to fix the
139 parent field of restored nodes.
140 (Inherit_Condition): Adding assertions to check the parent field
141 of inherited conditions and to ensure that the built inherited
142 condition has no reference to the formals of the parent
143 subprogram.
144 * sem_util.ads, sem_util.adb (Check_Parents): New subprogram.
145
1462022-01-07 Etienne Servais <servais@adacore.com>
147
148 * sem_attr.adb (Check_Placement_In_Test_Case): Fix typo.
149
1502022-01-07 Justin Squirek <squirek@adacore.com>
151
152 * comperr.adb (Delete_SCIL_Files): Replace unnecessary
153 Unreferenced pragma with specific pragma Warnings.
154 * doc/gnat_rm/implementation_defined_pragmas.rst (Unreferenced):
155 Add documentation for new behavior.
156 * gnat_rm.texi: Regenerate.
157 * erroutc.adb (Set_At): Remove useless assignment.
158 * exp_ch2.adb (In_Assignment_Context): Deleted.
159 (Is_Object_Renaming_Name): Replace calls to Is_LHS with calls to
160 Known_To_Be_Assigned.
161 (Expand_Current_Value): Replace calls to May_Be_Lvalue with
162 calls to Known_To_Be_Assigned.
163 (Expand_Entry_Paramter): Replace calls to In_Assignment_Context
164 with calls to Known_To_Be_Assigned.
165 * exp_ch4.adb (Expand_N_Op_Rem): Remove unnecessary Unreferenced
166 pragma.
167 * exp_imgv.adb (Build_Enumeration_Image_Tables): Default
168 initialize S_N.
169 * ghost.adb (Check_Ghost_Policy): Replace call to May_Be_Lvalue
170 with call to Known_To_Be_Assigned.
171 * lib-xref.adb (Is_On_LHS): Deleted.
172 (OK_To_Set_Referenced): Rewrite subprogram to encompass the new
173 pragma Unreferenced behavior.
174 (Process_Deferred_References): Replace call to Is_LHS with call
175 to Known_To_Be_Assigned.
176 * libgnarl/s-taasde.adb, libgnarl/s-tasren.adb,
177 libgnarl/s-tpobop.adb, libgnat/a-calend.adb,
178 libgnat/a-calfor.adb, libgnat/a-cbdlli.adb,
179 libgnat/a-cbhama.adb, libgnat/a-cbhase.adb,
180 libgnat/a-cbmutr.adb, libgnat/a-cborma.adb,
181 libgnat/a-cborse.adb, libgnat/a-cdlili.adb,
182 libgnat/a-cfhama.adb, libgnat/a-cforse.adb,
183 libgnat/a-cidlli.adb, libgnat/a-cihama.adb,
184 libgnat/a-cihase.adb, libgnat/a-cimutr.adb,
185 libgnat/a-ciorma.adb, libgnat/a-ciormu.adb,
186 libgnat/a-ciorse.adb, libgnat/a-cohama.adb,
187 libgnat/a-cohase.adb, libgnat/a-comutr.adb,
188 libgnat/a-convec.adb, libgnat/a-coorma.adb,
189 libgnat/a-coormu.adb, libgnat/a-coorse.adb,
190 libgnat/a-crdlli.adb, libgnat/a-tigeau.adb,
191 libgnat/a-wtgeau.adb, libgnat/a-ztgeau.adb,
192 libgnat/g-calend.adb, libgnat/g-comlin.adb,
193 libgnat/g-expect.adb, libgnat/g-mbflra.adb,
194 libgnat/g-spipat.adb, libgnat/s-fatgen.adb,
195 libgnat/s-fileio.adb, libgnat/s-os_lib.adb,
196 libgnat/s-regpat.adb, libgnat/s-valued.adb,
197 libgnat/s-valuer.adb: Remove unnecessary Unreferenced pragmas
198 * sem_ch10.adb (Process_Spec_Clauses): Remove useless
199 assignments.
200 * sem_ch13.adb (Validate_Literal_Aspect): Default initialize I.
201 * sem_ch3.adb (Build_Derived_Concurrent_Type): Default
202 initialize Corr_Decl.
203 * sem_ch8.adb (Undefined): Replace calls to Is_LHS with calls to
204 Known_To_Be_Assigned.
205 (In_Abstract_View_Pragma): Likewise.
206 * sem_eval.adb (Eval_Selected_Component): Replace calls to
207 Is_LHS with calls to Known_To_Be_Assigned.
208 * sem_res.adb (Init_Component): Replace calls to May_Be_Lvalue
209 with calls to Known_To_Be_Assigned.
210 * sem_util.adb, sem_util.ads (End_Label_Loc): Default initialize
211 Owner.
212 (Explain_Limited_Type): Default initialize Expr_Func.
213 (Find_Actual): Modified to handle entry families.
214 (Is_LHS): Deleted.
215 (May_Be_Lvalue): Deleted.
216 (Known_To_Be_Assigned): Modified and improved to handle all
217 cases.
218 * sem_warn.adb (Traverse_Result): Replace calls to May_Be_Lvalue
219 with calls to Known_To_Be_Assigned.
220 (Check_Ref): Modify error on unreferenced out parameters to take
221 into account different warning flags.
222
2232022-01-07 Javier Miranda <miranda@adacore.com>
224
225 * sem_ch3.adb (Reorder_Interfaces): When the conflicting
226 interface is identified we just replace the interface in the
227 list of interfaces of the tagged type (instead of adding a
228 duplicate to the list of interfaces).
229
2302022-01-07 Dmitriy Anisimkov <anisimko@adacore.com>
231
232 * adaint.c (__gnat_kill): Terminate process only in case of
233 SIGKILL, SIGINT, SIGBREAK, SIGTERM, SIGABRT. Do not call
234 OpenProcess if not going to terminate process.
235
2362022-01-07 Eric Botcazou <ebotcazou@adacore.com>
237
238 * exp_prag.adb (Expand_Pragma_Inspection_Point): Do a single pass
239 over the arguments of the pragma. Set the Address_Taken flag on
240 them and use the Has_Delayed_Freeze flag to spot those which have
241 their elaboration delayed. Reuse the location variable Loc.
242
2432022-01-07 Piotr Trojanek <trojanek@adacore.com>
244
245 * osint.adb (To_Lower): Clarify that only To_Lower function
246 causes bootstrap issues; fix style.
247 * treepr.adb (Print_Str_Mixed_Case): Reuse existing case
248 conversion routine.
249 (To_Mixed): Rename from Capitalize; reuse System.Case_Util
250 procedure and explain the bootstrap issue.
251
2522022-01-07 Piotr Trojanek <trojanek@adacore.com>
253
254 * exp_ch7.adb (Process_Transients_In_Scope): Remove unnecessary
255 initialization of Must_Hook; change Detect_Subprogram_Call from
256 function to procedure; adapt caller.
257
2582022-01-07 Piotr Trojanek <trojanek@adacore.com>
259
260 * exp_ch5.adb, exp_disp.adb, exp_util.adb, par-ch4.adb,
261 sem_ch13.adb: Remove extra space before THEN that occurs at the
262 end of a line.
263
2642022-01-07 Dmitriy Anisimkov <anisimko@adacore.com>
265
266 * expect.c (__gnat_waitpid): Use macros WIFEXITED, WEXITSTATUS,
267 WIFSIGNALED, WTERMSIG, WIFSTOPPED, WSTOPSIG to get exit status
268 or signal that caused the child process to terminate/stop. Do
269 not process exit status in case of error in waitpid call.
270 * adaint.c (__gnat_kill): Use of GenerateConsoleCtrlEvent is
271 removed in Windows variant as it actually is not working and was
272 terminating the calling process. Set signal number into exit
273 code parameter of TerminateProcess to work the same like in
274 Linux.
275
2762022-01-07 Piotr Trojanek <trojanek@adacore.com>
277
278 * exp_ch5.adb (Expand_N_Case_Statement): Remove explicit
279 expansion.
280
2812022-01-07 Etienne Servais <servais@adacore.com>
282
283 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
284 Update -gnatwr documentation.
285 * gnat_ugn.texi: Regenerate.
286
2872022-01-07 Piotr Trojanek <trojanek@adacore.com>
288
289 * exp_unst.adb (Unnest_Subprogram): Sync comment with the
290 current code.
291
2922022-01-07 Piotr Trojanek <trojanek@adacore.com>
293
294 * exp_ch4.adb (Raise_Accessibility_Error): Move exception name
295 to the message string; move << control characters to the end,
296 for consistency.
297 * sem_ch6.adb (Analyze_Function_Return): Likewise.
298 * sem_util.adb (Compile_Time_Constraint_Error): Likewise.
299 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove quotes
300 around Storage_Error.
301 * gcc-interface/trans.c (gnat_to_gnu): Remove quotes around
302 Constraint_Error.
303
3042022-01-07 Piotr Trojanek <trojanek@adacore.com>
305
306 * errout.adb (Error_Msg): Move warning suppression code from
307 Error_Msg_NLE
308 (Error_Msg_NLE): Warning suppression is now done by the internal
309 call to Error_Msg.
310
3112022-01-07 Piotr Trojanek <trojanek@adacore.com>
312
313 * exp_ch3.adb (Expand_N_Object_Declaration): Remove unnecessary
314 guards.
315 * exp_ch4.adb (Expand_N_If_Expression): Likewise; clarify comment.
316 * exp_ch5.adb (Expand_N_If_Statement,
317 Expand_Iterator_Loop_Over_Container): Likewise.
318 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Remove redundant
319 guard.
320 * freeze.adb (Freeze_All_Ent): Reduce scope of a local variable.
321
3222022-01-07 Piotr Trojanek <trojanek@adacore.com>
323
324 * exp_ch3.adb (Build_Init_Procedure): Remove unnecessary guard.
325 * exp_disp.adb (Make_DT): Likewise.
326 * sem_ch12.adb (Analyze_Associations): Likewise.
327
3282022-01-07 Etienne Servais <servais@adacore.com>
329
330 * sem_res.adb (Resolve_Op_Concat_Arg): Check range when
331 concatenating scalars.
332
3332022-01-07 Bob Duff <duff@adacore.com>
334
335 * treepr.adb (Print_Node_Ref): Change "not Is_Array_Type" to
336 "Is_Discrete_Type".
337
3382022-01-07 Richard Kenner <kenner@adacore.com>
339
340 * libgnat/g-spipat.ads (Boolean_Func, Natural_Func,
341 VString_Func): Mark as Favor_Top_Level.
342 * sem_ch13.adb (Validate_Unchecked_Conversion): Avoid using
343 internal representation if Unchecked_Conversion between
344 an access to subprogram and System.Address within the same unit.
345
3462022-01-07 Bob Duff <duff@adacore.com>
347
348 * treepr.adb (Print_Node_Ref): Print the value if available.
349
3502022-01-07 Richard Kenner <kenner@adacore.com>
351
352 * sem_util.ads, sem_util.adb (Get_Fullest_View): Add option to
353 not recurse and return the next-most-fullest view.
354
3552022-01-07 Bob Duff <duff@adacore.com>
356
357 * sem_ch10.adb (Check_Redundant_Withs): Add a warning if a
358 library unit with's its own ancestor. Note that this warning is
359 not triggered for something like "with P.R;" in P.Q, because
360 there the "with P;" is considered implicit.
361 * fname-sf.adb, libgnarl/s-stusta.adb, libgnarl/s-tasdeb.ads,
362 libgnat/a-calfor.adb, libgnat/a-tiboio.adb,
363 libgnat/a-wwboio.adb, libgnat/a-zzboio.adb, libgnat/i-cobol.adb,
364 libgnat/s-bitops.adb, libgnat/s-bitops.ads,
365 libgnat/s-direio.adb, libgnat/s-dwalin.adb,
366 libgnat/s-geveop.adb, libgnat/s-mmosin__unix.adb,
367 libgnat/s-os_lib.adb, libgnat/s-os_lib.ads,
368 libgnat/s-pooglo.ads, libgnat/s-secsta.adb,
369 libgnat/s-shasto.adb, libgnat/s-stausa.ads,
370 libgnat/s-stratt.ads, libgnat/s-ststop.adb: Remove with of
371 parent.
372 * sinfo.ads: Minor comment fix.
373
3742022-01-07 Bob Duff <duff@adacore.com>
375
376 * osint-m.adb: Remove with_clause and pragma.
377
11ce8d04
GA
3782022-01-06 Bob Duff <duff@adacore.com>
379
380 * sem_res.adb (Resolve_Range): Warn on null range, unless we are
381 inside a generic unit or an instance thereof.
382 * sem_ch3.adb (Analyze_Subtype_Indication): Minor: avoid double
383 negative.
384
3852022-01-06 Piotr Trojanek <trojanek@adacore.com>
386
387 * errout.adb (Adjust_Name_Case): Remove unnecessary declare
388 block.
389
3902022-01-06 Yannick Moy <moy@adacore.com>
391
392 * libgnat/a-ngcoar.adb: Add pragma to ignore assertions in
393 instance.
394 * libgnat/a-ngrear.adb: Likewise.
395 * libgnat/s-gearop.adb: Prove implementation is free of runtime
396 errors.
397 * libgnat/s-gearop.ads: Add contracts to protect against runtime
398 errors in the generic part.
399
4002022-01-06 Piotr Trojanek <trojanek@adacore.com>
401
402 * errout.adb (Remove_Warning_Messages): Use traversal procedure
403 instead of traversal function, since we discard status of each
404 step anyway.
405
4062022-01-06 Piotr Trojanek <trojanek@adacore.com>
407
408 * exp_ch4.adb (Expand_Concatenate): There is no reason for using
409 declaring, raising and catching an exception; a simple return
410 statement is enough.
411
4122022-01-06 Piotr Trojanek <trojanek@adacore.com>
413
414 * sem_eval.adb (Eval_Arithmetic_Op): Add Loc parameter to all
415 calls to Apply_Compile_Time_Constraint_Error related to division
416 by zero.
417
4182022-01-06 Piotr Trojanek <trojanek@adacore.com>
419
420 * errout.adb (Remove_Warning_Messages): Remove unnecessary guard.
421 * exp_util.adb (Kill_Dead_Code): Likewise.
422 * par_sco.adb (Traverse_Declarations_Or_Statements): Likewise.
423 * sem_ch3.adb (Build_Derived_Record_Type): Likewise.
424 * sem_ch4.adb (Traverse_Interfaces): Likewise.
425 * sem_eval.adb (Traverse_Interfaces): Likewise.
426 * sem_util.adb (Collect_Interfaces): Likewise.
427 (Has_Non_Null_Statements, Side_Effect_Free_Statements):
428 Likewise; turn into WHILE loops, for consistency.
429
4302022-01-06 Etienne Servais <servais@adacore.com>
431
432 * sem_type.adb (Full_View_Covers): Fix typo.
433
4342022-01-06 Eric Botcazou <ebotcazou@adacore.com>
435
436 * sem_ch12.adb (Insert_Freeze_Node_For_Instance): When going to
437 the outer level, do not jump over following instantiations in
438 the list.
439
4402022-01-06 Piotr Trojanek <trojanek@adacore.com>
441
442 * err_vars.ads (Warn_On_Instance): Remove; it was a relic from
443 the previous handling of warning in instances that was removed
444 decades ago.
445
4462022-01-06 Piotr Trojanek <trojanek@adacore.com>
447
448 * errout.adb (Error_Msg_Internal): Reorder words.
449 * erroutc.ads (Is_Warning_Msg): Add closing paren.
450 * sem_util.adb (Compile_Time_Constraint_Error): Fix casing.
451
4522022-01-06 Piotr Trojanek <trojanek@adacore.com>
453
454 * sem_res.adb (Resolve_String_Literal): Simplify pointer
455 arithmetic.
456
4572022-01-06 Piotr Trojanek <trojanek@adacore.com>
458
459 * sem_res.adb (Resolve_String_Literal): Avoid unnecessary
460 conversions inside "<" and ">" bodies.
461
4622022-01-06 Piotr Trojanek <trojanek@adacore.com>
463
464 * checks.adb (Null_Exclusion_Static_Checks,
465 Selected_Range_Checks): Fix style.
466
4672022-01-06 Eric Botcazou <ebotcazou@adacore.com>
468
469 * sem_ch8.adb (Analyze_Package_Renaming): Do not check for Text_IO
470 special units when the name of the renaming is a generic instance,
471 which is the case for package instantiations in the GNAT model.
472
4732022-01-06 Steve Baird <baird@adacore.com>
474
475 * sem_util.adb (Build_Discriminant_Reference): In the unexpected
476 case where we previously would fail an assertion, we instead
477 revert to the old behavior.
478
4792022-01-06 Steve Baird <baird@adacore.com>
480
481 * sem_util.adb (Build_Actual_Subtype_Of_Component): Define a new
482 local function, Build_Discriminant_Reference, and call it in
483 each of the three cases where Make_Selected_Component was
484 previously being called to construct a discriminant reference (2
485 in Build_Actual_Array_Constraint and 1 in
486 Build_Actual_Record_Constraint). Instead of unconditionally
487 using the passed-in object name as the prefix for the new
488 selected component node, this new function checks to see if
489 perhaps a prefix of that name should be used instead.
490
4912022-01-06 Etienne Servais <servais@adacore.com>
492
493 * atree.adb: Fix typo.
494 * einfo.ads: Likewise.
495 * exp_aggr.adb: Likewise.
496 * exp_ch6.adb: Likewise.
497 * exp_ch7.adb: Likewise.
498 * exp_ch9.adb: Likewise.
499 * exp_prag.adb: Likewise.
500 * exp_unst.adb: Likewise.
501 * exp_unst.ads: Likewise.
502 * exp_util.adb: Likewise.
503 * par-endh.adb: Likewise.
504 * par.adb: Likewise.
505 * restrict.adb: Likewise.
506 * sem.ads: Likewise.
507 * sem_ch4.adb: Likewise.
508 * sem_ch5.adb: Likewise.
509 * sem_ch6.adb: Likewise.
510 * sem_ch8.adb: Likewise.
511 * sem_ch12.adb: Likewise.
512 * sem_ch13.adb: Likewise.
513 * sem_dim.adb: Likewise.
514 * sem_elab.adb: Likewise.
515 * sem_prag.adb: Likewise.
516 * sem_res.adb: Likewise.
517 * sem_util.adb: Likewise.
518 * sem_util.ads: Likewise.
519 * sinfo.ads: Likewise.
520 * sprint.adb: Likewise.
521 * urealp.adb: Likewise.
522
5232022-01-06 Justin Squirek <squirek@adacore.com>
524
525 * exp_ch3.adb (Build_Assignment): Replace current instance of
526 type with Init_Proc formal.
527 * sem_attr.adb (OK_Self_Reference): Handle recognition of
528 Current_Instance to detect certain expansion.
529 * sem_ch4.adb (Analyze_One_Call): Set actual's type when the
530 actual in question is a current instance and its corresponding
531 formal is an incomplete type.
532 * sem_util.adb (Is_Current_Instance): Add check for incomplete
533 views and add comment.
534
5352022-01-06 Bob Duff <duff@adacore.com>
536
537 * libgnat/s-rident.ads (No_Tagged_Type_Registration): New
538 restriction identifier.
539 * restrict.ads (Implementation_Restriction): Add restriction.
540 * exp_ch7.adb (Process_Declarations): Suppress
541 tagged-type-related finalization actions if the restriction is
542 active. Call RTE_Available last.
543 * exp_disp.adb (Make_DT): Likewise.
544 * exp_util.adb (Requires_Cleanup_Actions): Return False for a
545 tagged type declaration if No_Tagged_Type_Registration is
546 active.
547 * sem_attr.adb (Check_Stream_Attribute): Check restriction
548 No_Tagged_Type_Registration.
549 * libgnat/a-except.ads (Null_Occurrence): Minor: Initialize, to
550 avoid stopping at a warning in gdb.
551 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
552 Document new restriction.
553 * gnat_rm.texi: Regenerate.
554
5552022-01-06 Piotr Trojanek <trojanek@adacore.com>
556
557 * par-ch4.adb (P_Simple_Expression): Reuse Null_String_Id.
558 * prep.adb (Parse_Def_File): Likewise; remove Empty_String.
559
5602022-01-06 Eric Botcazou <ebotcazou@adacore.com>
561
562 * stand.ads (Any_Access): Delete.
563 (Universal_Access): New entity.
564 * einfo.ads: Remove obsolete reference to Any_Access.
565 * gen_il-gen-gen_entities.adb: Likewise.
566 * cstand.adb (Create_Standard): Do not create Any_Access and create
567 Universal_Access as a full type instead.
568 * errout.adb (Set_Msg_Insertion_Type_Reference): Do not deal with
569 Any_Access and deal with Universal_Access instead.
570 * sem_ch3.adb (Analyze_Object_Declaration): Replace Any_Access with
571 Universal_Access.
572 * sem_ch4.adb (Analyze_Null): Likewise.
573 (Find_Non_Universal_Interpretations): Likewise.
574 (Find_Equality_Types.Try_One_Interp): Likewise and avoid shadowing
575 by renaming a local variable of the same name.
576 * sem_res.adb (Make_Call_Into_Operato): Likewise.
577 (Resolve_Equality_Op): Likewise.
578 * sem_type.adb (Covers): Likewise.
579 (Specific_Type): Likewise.
580
5812022-01-06 Piotr Trojanek <trojanek@adacore.com>
582
583 * treepr.adb (Destroy): Prevent spurious check from CodePeer.
584
5852022-01-06 Yannick Moy <moy@adacore.com>
586
587 * libgnat/s-exponu.adb (Exponu): Add annotation.
588
5892022-01-06 Justin Squirek <squirek@adacore.com>
590
591 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Add comments
592 regarding special handling of components which depend on
593 discriminants.
594 * exp_dist.adb (Build_From_Any_Function): Add Real_Rep actual
595 for calls to Has_Stream_Attribute_Definition.
596 (Build_To_Any_Function): Likewise.
597 (Build_TypeCode_Function): Likewise.
598 * freeze.adb (Freeze_Entity): Add missing comment for Test_E.
599 * libgnat/s-utf_32.adb: Remove disabled warning comments and
600 temporarily inserted pragma warnings. Remove very old (2006 and
601 2012) comments about bootstrapping older versions.
602 * par.adb (P_Identifier): Add new parameter Force_Msg.
603 * par-ch2.adb (P_Identifier): Restructure and clean up function.
604 * par-ch3.adb (P_Defining_Identifier): Remove code duplication
605 for parsing identifiers.
606 * sem_attr.adb (Stream_Attribute_Available): Add missing
607 comments and add Real_Rep actual for calls to
608 Has_Stream_Attribute_Definition.
609 * sem_cat.adb (Has_Read_Write_Attribute): Add Real_Rep actual
610 for calls to Has_Stream_Attribute_Definition.
611 (Has_Stream_Attribute_Definition): Remove local Real_Rep and fix
612 recursive calls. Add default value for Real_Rep.
613 * sem_cat.ads (Has_Stream_Attribute_Definition): Add new out
614 parameter "Real_Rep".
615 * sem_type.adb (Add_Entry): Add condition to avoid passing
616 non-function calls to Function_Interp_Has_Abstract_Op.
617 (Function_Interp_Has_Abstract_Op): Add missing comments and
618 remove check for Is_Overloadable.
619 * sem_util.adb (Derivation_Too_Early_To_Inherit): Remove
620 duplicated code.
621
6222022-01-06 Javier Miranda <miranda@adacore.com>
623
624 * contracts.adb (Restore_Original_Selected_Component): New
625 subprogram that traverses a preanalyzed expression searching for
626 dispatching calls to functions whose original node was a
627 selected component, and replacing them with their original node.
628 This functionality is required because the preanalyis of
629 dispatching calls using the Object.Operation notation transforms
630 such calls, and we need the original condition to properly
631 inherit and extend the condition expression on tagged type
632 derivations. This functionality was previously provided by the
633 routine Install_Original_Selected_Component (as part of
634 inheriting conditions); now it is performed as part of the
635 preanalysis of the condition, thus avoiding repeatedly
636 installing and restoring such nodes.
637 (Install_Original_Selected_Component): Removed.
638 (Restore_Dispatching_Calls): Removed.
639
6402022-01-06 Piotr Trojanek <trojanek@adacore.com>
641
642 * treepr.adb (Visit_Node): Simplify repeated call to
643 Next_Entity.
644
6452022-01-06 Piotr Trojanek <trojanek@adacore.com>
646
647 * treepr.ads (Treepr, Print_Tree_List, Print_Tree_Elist): Fix
648 style in comments.
649 * treepr.adb (Serial_Numbers): Hash table instance.
650 (Hash): Hashing routine.
651 (Print_Field): Fix style.
652 (Print_Init): Adapt to simple hash table.
653 (Print_Term): Likewise.
654 (Serial_Numbers): Likewise.
655 (Set_Serial_Number): Likewise.
656
6572022-01-06 Yannick Moy <moy@adacore.com>
658
659 * libgnat/s-expmod.adb: Mark in SPARK. Add ghost code for proof.
660 * libgnat/s-expmod.ads: Mark in SPARK. Add ghost specifications.
661
6622022-01-06 Yannick Moy <moy@adacore.com>
663
664 * libgnat/s-explllu.ads: Mark in SPARK.
665 * libgnat/s-expllu.ads: Mark in SPARK.
666 * libgnat/s-exponu.adb: Add loop invariants and needed
667 assertions.
668 * libgnat/s-exponu.ads: Add functional contract.
669 * libgnat/s-expuns.ads: Mark in SPARK.
670
0fbefa25
GA
6712022-01-05 Steve Baird <baird@adacore.com>
672
673 * exp_ch5.adb (Finish_Binding_Object_Declaration): Fix a bug
674 that was introduced in the previous commit. The previous
675 version initialized a Boolean constant Declare_Copy before the
676 variable Decl had been initialized properly.
677
6782022-01-05 Piotr Trojanek <trojanek@adacore.com>
679
680 * sem_prag.adb (Adjust_External_Name_Case): Use membership test.
681
6822022-01-05 Piotr Trojanek <trojanek@adacore.com>
683
684 * exp_ch3.adb (Make_Controlling_Function_Wrappers): For
685 GNATprove build the wrapper as an expression function.
686
6872022-01-05 Piotr Trojanek <trojanek@adacore.com>
688
689 * exp_ch3.ads (Make_Controlling_Function_Wrappers): Move
690 declaration from body to spec, so it can be called by
691 SPARK-specific expansion.
692 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Likewise.
693 * exp_spark.adb (SPARK_Freeze_Type): Enable expansion of
694 wrappers for function with controlling result types.
695
6962022-01-05 Piotr Trojanek <trojanek@adacore.com>
697
698 * exp_dbug.adb, sem_dim.adb: Replace Add_Str_To_Name_Buffer with
699 Add_Char_To_Name_Buffer.
700
7012022-01-05 Piotr Trojanek <trojanek@adacore.com>
702
703 * gnatls.adb (Gnatls): Use Name_Find function.
704 * targparm.adb (Get_Target_Parameters): Likewise.
705
7062022-01-05 Bob Duff <duff@adacore.com>
707
708 * repinfo.adb (List_Entities): The code was assuming that if we
709 encounter a package in the current scope, then it must be
710 a (physically) nested package. That was wrong, because it could
711 be a child package. Avoid recursing into child packages; they
712 have not been annotated with representation information, and
713 -gnatR2 queries that information.
714
7152022-01-05 Marc Poulhiès <poulhies@adacore.com>
716
717 * libgnat/s-sopco3.ads, libgnat/s-sopco3.adb: Remove.
718 * libgnat/s-sopco4.ads, libgnat/s-sopco4.adb: Remove.
719 * libgnat/s-sopco5.ads, libgnat/s-sopco5.adb: Remove.
720 * libgnat/s-strops.ads, libgnat/s-strops.adb: Remove.
721 * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove occurences of removed
722 units.
723 * gcc-interface/Make-lang.in (ada/sdefault.o): Remove
724 dependencies on removed units.
725 (GNATBIND_OBJS): Remove occurences of removed units.
726
7272022-01-05 Piotr Trojanek <trojanek@adacore.com>
728
729 * exp_ch3.adb (Build_Dcheck_Function): Remove extra whitespace.
730 * libgnarl/s-taskin.adb (Initialize_ATCB): Likewise.
731
7322022-01-05 Piotr Trojanek <trojanek@adacore.com>
733
734 * exp_attr.adb (Build_Array_VS_Func): Remove explicit "IN" in
735 spec of the generated array validation function; it was
736 redundant, just like it would be in a user-written code.
737
7382022-01-05 Piotr Trojanek <trojanek@adacore.com>
739
740 * exp_ch4.adb (Expand_N_Op_Ne): Fix whitespace.
741 * sem_dim.adb (Expand_Put_Call_With_Symbol): Likewise.
742 (Reduce): Likewise.
743
7442022-01-05 Piotr Trojanek <trojanek@adacore.com>
745
746 * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Fix whitespace.
747 * libgnat/a-cofuve.ads (Add): Likewise.
748 * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Likewise.
749
7502022-01-05 Piotr Trojanek <trojanek@adacore.com>
751
752 * exp_ch3.adb (Make_Eq_Body, Make_Neq_Body,
753 Make_Predefined_Primitive_Eq_Spec,
754 Make_Predefined_Primitive_Specs): Fix whitespace.
755
7562022-01-05 Etienne Servais <servais@adacore.com>
757
758 * sem_ch3.adb (Analyze_Component_Declaration): Rework condition
759 to build subtypes.
760 (Analyze_Object_Declaration): Likewise.
761 (Should_Build_Subtype): New.
762
7632022-01-05 Yannick Moy <moy@adacore.com>
764
765 * libgnat/s-arit128.adb: Mark in SPARK.
766 * libgnat/s-arit128.ads: Add functional contracts.
767
7682022-01-05 Piotr Trojanek <trojanek@adacore.com>
769
770 * sem_util.adb (String_From_Numeric_Literal): Simplify using
771 membership tests and ranges; fix whitespace.
772
7732022-01-05 Yannick Moy <moy@adacore.com>
774
775 * libgnat/s-expint.ads: Mark in SPARK. Adapt to change to
776 package.
777 * libgnat/s-explli.ads: Likewise.
778 * libgnat/s-expllli.ads: Likewise.
779 * libgnat/s-expont.adb: Add lemmas and ghost code.
780 * libgnat/s-expont.ads: Add functional contract.
781
7822022-01-05 Piotr Trojanek <trojanek@adacore.com>
783
784 * exp_disp.adb (Gen_Parameters_Profile): Remove redundant guard.
785
7862022-01-05 Claire Dross <dross@adacore.com>
787
788 * libgnat/s-valuti.ads (Starts_As_Exponent_Format_Ghost): Ghost
789 function to determine if a string is recognized as something
790 which might be an exponent.
791 (Is_Opt_Exponent_Format_Ghost): Ghost function to determine if a
792 string has the correct format for an optional exponent.
793 (Scan_Exponent): Use ghost functions to factorize contracts.
794
7952022-01-05 Bob Duff <duff@adacore.com>
796
797 * exp_util.ads (Get_Current_Value_Condition): Belt: Add a
798 postcondition that Val /= Var.
799 * sem_util.adb (Known_Null): Suspenders: Raise Program_Error if
800 Get_Current_Value_Condition returned the same value. This will
801 be enabled even without assertions, because infinite recursion
802 is a nuisance -- better to crash if this bug ever occurs.
803
8042022-01-05 Piotr Trojanek <trojanek@adacore.com>
805
806 * exp_ch3.adb (Make_Null_Procedure_Specs): Simplify by reusing
807 Copy_Subprogram_Spec.
808 * sem_util.ads (Copy_Subprogram_Spec): Add New_Sloc parameter.
809 * sem_util.adb (Copy_Subprogram_Spec): Pass New_Sloc to
810 New_Copy_Tree.
811
8122022-01-05 Yannick Moy <moy@adacore.com>
813
814 * libgnat/s-exnint.ads: Mark in SPARK. Adapt to change to
815 package.
816 * libgnat/s-exnlli.ads: Likewise.
817 * libgnat/s-exnllli.ads: Likewise.
818 * libgnat/s-exponn.adb: Add lemmas and ghost code. Secial case
819 value zero as Left or Right to simplify proof.
820 * libgnat/s-exponn.ads: Transform the generic function into a
821 generic package with a function inside. Add a functional
822 contract.
823
8242022-01-05 Piotr Trojanek <trojanek@adacore.com>
825
826 * sem_ch12.adb (Instantiate_Formal_Subprogram): Remove redundant
827 call to Set_Defining_Unit_Name; a similar call is done few lines
828 below.
829
8302022-01-05 Piotr Trojanek <trojanek@adacore.com>
831
832 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create
833 distinct copies of parameter lists for spec and body with
834 Copy_Parameter_List; cleanup.
835 (Make_Null_Procedure_Specs): Fix style in comments; remove a
836 potentially unnecessary initialization of a local variable.
837
8382022-01-05 Bob Duff <duff@adacore.com>
839
840 * einfo-utils.ads, einfo-utils.adb (Renamed_Entity Alias):
841 Change Node_Id to Entity_Id.
842
8432022-01-05 Piotr Trojanek <trojanek@adacore.com>
844
845 * sem_ch12.ads (Build_Function_Wrapper, Build_Operator_Wrapper):
846 Remove unreferenced spec.
847 * sem_ch12.adb (Build_Function_Wrapper, Build_Operator_Wrapper):
848 Remove dead bodies.
849
8502022-01-05 Yannick Moy <moy@adacore.com>
851
852 * libgnat/s-aridou.adb: Apply replacement.
853
8542022-01-05 Yannick Moy <moy@adacore.com>
855
856 * libgnat/s-aridou.adb (Lemma_Word_Commutation): Fix for
857 instances with other values of Single_Size.
858
8592022-01-05 Marc Poulhiès <poulhies@adacore.com>
860
861 * doc/gnat_rm/implementation_defined_pragmas.rst (Compiler_Unit)
862 (Compiler_Unit_Warning): Remove.
863 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate.
864 * libgnat/g-dynhta.ads: Add comment indicating this unit is
865 built during stage1.
866 * libgnat/g-dyntab.ads: Likewise.
867 * libgnat/g-graphs.ads: Likewise.
868 * libgnat/g-lists.ads: Likewise.
869 * libgnat/g-sets.ads: Likewise.
870 * libgnat/gnat.ads: Likewise.
871 * libgnat/s-pehage.ads: Likewise.
872 * libgnat/s-resfil.ads: Likewise.
873 * libgnat/s-rident.ads: Likewise.
874 * libgnat/s-utf_32.ads: Likewise.
875 * errout.ads: Update comment.
876 * opt.ads (Opt): Remove Compiler_Unit.
877 * par-ch5.adb (All_Pragmas): Remove call to Check_Compiler_Unit.
878 * sem_prag.adb (Analyze_Pragma): Likewise.
879 * sem_ch4.adb (Non_Static_Choice_Error, Analyze_If_Expression)
880 (Analyze_Set_Membership, Record_Interp): Likewise.
881 * sem_ch11.adb (Analyze_Raise_Expression): Likewise.
882 * sem_ch6.adb: Remove Restric package reference.
883 (Analyze_Extended_Return_Statement): Remove call to
884 Check_Compiler_Unit.
885 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings):
886 Remove handling of Pragma_Compiler_Unit[_Warning}.
887 * restrict.adb (Check_Compiler_Unit): Remove both.
888 * restrict.ads: Likewise.
889 * snames.ads-tmpl (Pragma_Id): Remove
890 Pragma_Compiler_Unit[_Warning].
891 * libgnat/a-assert.ads: Remove pragma Compiler_Unit_Warning.
892 * libgnat/a-chlat1.ads: Likewise.
893 * libgnat/a-elchha.adb: Likewise.
894 * libgnat/a-elchha.ads: Likewise.
895 * libgnat/a-ioexce.ads: Likewise.
896 * libgnat/a-strhas.ads: Likewise.
897 * libgnat/g-byorma.adb: Likewise.
898 * libgnat/g-byorma.ads: Likewise.
899 * libgnat/g-dyntab.adb: Likewise.
900 * libgnat/g-heasor.ads: Likewise.
901 * libgnat/g-hesora.adb: Likewise.
902 * libgnat/g-hesora.ads: Likewise.
903 * libgnat/g-htable.adb: Likewise.
904 * libgnat/g-htable.ads: Likewise.
905 * libgnat/g-spchge.adb: Likewise.
906 * libgnat/g-spchge.ads: Likewise.
907 * libgnat/g-speche.adb: Likewise.
908 * libgnat/g-speche.ads: Likewise.
909 * libgnat/g-table.ads: Likewise.
910 * libgnat/g-u3spch.adb: Likewise.
911 * libgnat/g-u3spch.ads: Likewise.
912 * libgnat/interfac.ads: Likewise.
913 * libgnat/s-addope.adb: Likewise.
914 * libgnat/s-addope.ads: Likewise.
915 * libgnat/s-assert.adb: Likewise.
916 * libgnat/s-assert.ads: Likewise.
917 * libgnat/s-bitops.adb: Likewise.
918 * libgnat/s-bitops.ads: Likewise.
919 * libgnat/s-carun8.adb: Likewise.
920 * libgnat/s-carun8.ads: Likewise.
921 * libgnat/s-casuti.adb: Likewise.
922 * libgnat/s-casuti.ads: Likewise.
923 * libgnat/s-conca2.adb: Likewise.
924 * libgnat/s-conca2.ads: Likewise.
925 * libgnat/s-conca3.adb: Likewise.
926 * libgnat/s-conca3.ads: Likewise.
927 * libgnat/s-conca4.adb: Likewise.
928 * libgnat/s-conca4.ads: Likewise.
929 * libgnat/s-conca5.adb: Likewise.
930 * libgnat/s-conca5.ads: Likewise.
931 * libgnat/s-conca6.adb: Likewise.
932 * libgnat/s-conca6.ads: Likewise.
933 * libgnat/s-conca7.adb: Likewise.
934 * libgnat/s-conca7.ads: Likewise.
935 * libgnat/s-conca8.adb: Likewise.
936 * libgnat/s-conca8.ads: Likewise.
937 * libgnat/s-conca9.adb: Likewise.
938 * libgnat/s-conca9.ads: Likewise.
939 * libgnat/s-crc32.adb: Likewise.
940 * libgnat/s-crc32.ads: Likewise.
941 * libgnat/s-crtl.ads: Likewise.
942 * libgnat/s-excdeb.adb: Likewise.
943 * libgnat/s-excdeb.ads: Likewise.
944 * libgnat/s-except.ads: Likewise.
945 * libgnat/s-exctab.adb: Likewise.
946 * libgnat/s-exctab.ads: Likewise.
947 * libgnat/s-finmas.ads: Likewise.
948 * libgnat/s-htable.adb: Likewise.
949 * libgnat/s-htable.ads: Likewise.
950 * libgnat/s-mastop.adb: Likewise.
951 * libgnat/s-mastop.ads: Likewise.
952 * libgnat/s-memory.adb: Likewise.
953 * libgnat/s-memory.ads: Likewise.
954 * libgnat/s-os_lib.ads: Likewise.
955 * libgnat/s-parame.adb: Likewise.
956 * libgnat/s-parame.ads: Likewise.
957 * libgnat/s-parame__posix2008.ads: Likewise.
958 * libgnat/s-purexc.ads: Likewise.
959 * libgnat/s-resfil.adb: Likewise.
960 * libgnat/s-restri.adb: Likewise.
961 * libgnat/s-restri.ads: Likewise.
962 * libgnat/s-secsta.adb: Likewise.
963 * libgnat/s-secsta.ads: Likewise.
964 * libgnat/s-soflin.adb: Likewise.
965 * libgnat/s-soflin.ads: Likewise.
966 * libgnat/s-sopco3.adb: Likewise.
967 * libgnat/s-sopco3.ads: Likewise.
968 * libgnat/s-sopco4.adb: Likewise.
969 * libgnat/s-sopco4.ads: Likewise.
970 * libgnat/s-sopco5.adb: Likewise.
971 * libgnat/s-sopco5.ads: Likewise.
972 * libgnat/s-spsufi.ads: Likewise.
973 * libgnat/s-stache.adb: Likewise.
974 * libgnat/s-stache.ads: Likewise.
975 * libgnat/s-stalib.adb: Likewise.
976 * libgnat/s-stalib.ads: Likewise.
977 * libgnat/s-stoele.adb: Likewise.
978 * libgnat/s-stoele.ads: Likewise.
979 * libgnat/s-strcom.adb: Likewise.
980 * libgnat/s-strcom.ads: Likewise.
981 * libgnat/s-strhas.adb: Likewise.
982 * libgnat/s-string.adb: Likewise.
983 * libgnat/s-string.ads: Likewise.
984 * libgnat/s-strops.adb: Likewise.
985 * libgnat/s-strops.ads: Likewise.
986 * libgnat/s-ststop.adb: Likewise.
987 * libgnat/s-ststop.ads: Likewise.
988 * libgnat/s-traceb.adb: Likewise.
989 * libgnat/s-traceb.ads: Likewise.
990 * libgnat/s-traent.adb: Likewise.
991 * libgnat/s-traent.ads: Likewise.
992 * libgnat/s-utf_32.adb: Likewise.
993 * libgnat/s-unstyp.ads: Likewise.
994 * libgnat/s-wchcnv.adb: Likewise.
995 * libgnat/s-wchcnv.ads: Likewise.
996 * libgnat/s-wchcon.adb: Likewise.
997 * libgnat/s-wchcon.ads: Likewise.
998 * libgnat/s-wchjis.adb: Likewise.
999 * libgnat/s-wchjis.ads: Likewise.
1000
10012022-01-05 Arnaud Charlet <charlet@adacore.com>
1002
1003 * osint.adb (File_Names_Equal): Declare To_Lower locally.
1004 * osint.ads (Null_FD): New.
1005 * fmap.adb, sinput-l.adb, targparm.adb: Adapt to changes above.
1006 * switch-b.adb (Scan_Debug_Switches): Use Is_Regular_File to
1007 simplify the bootstrap dependencies.
1008
a4ae8c37
GA
10092022-01-03 Jakub Jelinek <jakub@redhat.com>
1010
1011 * gnat_ugn.texi: Bump @copying's copyright year.
1012 * gnat_rm.texi: Likewise.
1013
848830dc 1014\f
6123f29a 1015Copyright (C) 2022 Free Software Foundation, Inc.
848830dc
PMR
1016
1017Copying and distribution of this file, with or without modification,
1018are permitted in any medium without royalty provided the copyright
1019notice and this notice are preserved.