1 2015-01-09 Michael Collison <michael.collison@linaro.org>
3 * gcc-interface/cuintp.c: Include hash-set.h, machmode.h,
4 vec.h, double-int.h, input.h, alias.h, symtab.h,
5 fold-const.h, wide-int.h, and inchash.h due to
7 * gcc-interface/decl.c: Ditto.
8 * gcc-interface/misc.c: Ditto.
9 * gcc-interface/targtyps.c: Include hash-set.h, machmode.h,
10 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h,
11 fold-const.h, wide-int.h, and inchash.h due to
13 * gcc-interface/trans.c: Include hash-set.h, machmode.h,
14 vec.h, double-int.h, input.h, alias.h, symtab.h, real.h,
15 fold-const.h, wide-int.h, inchash.h due to
17 * gcc-interface/utils.c: Include hash-set.h, machmode.h,
18 vec.h, double-int.h, input.h, alias.h, symtab.h,
19 fold-const.h, wide-int.h, and inchash.h due to
21 * gcc-interface/utils2.c: Ditto.
23 2015-01-07 Robert Dewar <dewar@adacore.com>
25 * sem_warn.adb (Check_One_Unit): Don't give unused entities
26 warning for a package which is used as a generic parameter.
28 2015-01-07 Bob Duff <duff@adacore.com>
30 * usage.adb (Usage): Correct documentation of
33 2015-01-07 Robert Dewar <dewar@adacore.com>
35 * s-fileio.adb: Minor reformatting.
37 2015-01-07 Ed Schonberg <schonberg@adacore.com>
39 * sem_ch12.adb (Instantiate_Object): If formal is an anonymous
40 access to subprogram, replace its formals with new entities when
41 building the object declaration, both if actual is present and
44 2015-01-07 Ed Schonberg <schonberg@adacore.com>
46 * sem_ch5.adb (Analyze_Assignment): If left-hand side is a view
47 conversion and type of expression has invariant, apply invariant
50 2015-01-07 Ed Schonberg <schonberg@adacore.com>
52 * sem_ch3.adb (Create_Constrained_Components): A call to
53 Gather_Components may detect an error if an inherited discriminant
54 that controls a variant is non-static.
55 * sem_aggr.adb (Resolve_Record_Aggregate, Step 5): The call to
56 Gather_Components may report an error if an inherited discriminant
57 in a variant in non-static.
58 * sem_util.adb (Gather_Components): If a non-static discriminant
59 is inherited do not report error here, but let caller handle it.
60 (Find_Actual): Small optimization.
62 2015-01-07 Bob Duff <duff@adacore.com>
64 * usage.adb (Usage): Document -gnatw.f switch.
66 2015-01-07 Ed Schonberg <schonberg@adacore.com>
68 * sem_ch12.adb: Code clean up and minor reformatting.
70 2015-01-07 Robert Dewar <dewar@adacore.com>
72 * exp_ch4.adb (Expand_N_Type_Conversion): Add guard for
73 Raise_Accessibility_Error call.
74 * s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Add documentation
75 on handling of invalid digits in based constants.
76 * s-fatgen.ads: Minor reformatting.
77 * sem_attr.adb (Analyze_Attribute, case Unrestricted_Access):
78 Avoid noting bogus modification for Valid test.
79 * snames.ads-tmpl (Name_Attr_Long_Float): New Name.
80 * einfo.ads: Minor reformatting.
81 * sem_warn.adb: Minor comment clarification.
82 * sem_ch12.adb: Minor reformatting.
84 2015-01-07 Ed Schonberg <schonberg@adacore.com>
86 * exp_ch5.adb (Expand_Predicated_Loop): Handle properly loops
87 over static predicates when the loop parameter specification
88 carries a Reverse indicator.
90 2015-01-07 Ed Schonberg <schonberg@adacore.com>
92 * sem_ch12.adb (Instantiate_Object): If formal has a default,
93 actual is missing and formal has an anonymous access type, copy
94 access definition in full so that tree for instance is properly
95 formatted for ASIS use.
97 2015-01-07 Bob Duff <duff@adacore.com>
99 * sem_elab.adb (Check_Internal_Call_Continue): Give a warning
100 for P'Access, where P is a subprogram in the same package as
101 the P'Access, and the P'Access is evaluated at elaboration
102 time, and occurs before the body of P. For example, "X : T :=
103 P'Access;" would allow a subsequent call to X.all to be an
104 access-before-elaboration error; hence the warning. This warning
105 is enabled by the -gnatw.f switch.
106 * opt.ads (Warn_On_Elab_Access): New flag for warning switch.
107 * warnsw.adb (Set_Dot_Warning_Switch): Set Warn_On_Elab_Access.
108 * gnat_ugn.texi: Document the new warning.
110 2015-01-07 Johannes Kanig <kanig@adacore.com>
112 * lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded
115 2015-01-07 Robert Dewar <dewar@adacore.com>
117 * s-taprop-linux.adb, clean.adb: Minor reformatting.
119 2015-01-07 Arnaud Charlet <charlet@adacore.com>
121 * s-tassta.adb: Relax some overzealous assertions.
123 2015-01-07 Ed Schonberg <schonberg@adacore.com>
125 * sem_ch6.adb (Analyze_Return_Type): An call that returns a limited
126 view of a type is legal when context is a thunk generated for
127 operation inherited from an interface.
128 * exp_ch6.adb (Expand_Simple_Function_Return): If context is
129 a thunk and return type is an incomplete type do not continue
130 expansion; thunk will be fully elaborated when generating code.
132 2015-01-07 Doug Rupp <rupp@adacore.com>
134 * s-osinte-mingw.ads (LARGE_INTEGR): New subtype.
135 (QueryPerformanceFrequency): New imported procedure.
136 * s-taprop-mingw.adb (RT_Resolution): Call above and return
137 resolution vice a hardcoded value.
138 * s-taprop-solaris.adb (RT_Resolution): Call clock_getres and return
139 resolution vice a hardcoded value.
140 * s-linux-android.ads (clockid_t): New subtype.
141 * s-osinte-aix.ads (clock_getres): New imported subprogram.
142 * s-osinte-android.ads (clock_getres): Likewise.
143 * s-osinte-freebsd.ads (clock_getres): Likewise.
144 * s-osinte-solaris-posix.ads (clock_getres): Likewise.
145 * s-osinte-darwin.ads (clock_getres): New subprogram.
146 * s-osinte-darwin.adb (clock_getres): New subprogram.
147 * thread.c (__gnat_clock_get_res) [__APPLE__]: New function.
148 * s-taprop-posix.adb (RT_Resolution): Call clock_getres to
149 calculate resolution vice hard coded value.
151 2015-01-07 Ed Schonberg <schonberg@adacore.com>
153 * exp_util.adb (Make_CW_Equivalent_Type): If root type is a
154 limited view, use non-limited view when available to create
155 equivalent record type.
157 2015-01-07 Vincent Celier <celier@adacore.com>
159 * gnatcmd.adb: Remove command Sync and any data and processing
160 related to this command. Remove project processing for gnatstack.
161 * prj-attr.adb: Remove package Synchonize and its attributes.
163 2015-01-07 Vincent Celier <celier@adacore.com>
165 * clean.adb: Minor error message change.
167 2015-01-07 Tristan Gingold <gingold@adacore.com>
170 * env.c (__gnat_environ): Adjust for darwin9/darwin10.
172 2015-01-07 Javier Miranda <miranda@adacore.com>
174 * sem_ch10.adb (Analyze_With_Clause): Compiling under -gnatq
175 protect the frontend against never ending recursion caused by
176 circularities in the sources.
178 2015-01-07 Robert Dewar <dewar@adacore.com>
180 * a-reatim.adb, make.adb, exp_pakd.adb, i-cpoint.adb, sem_ch8.adb,
181 exp_ch3.adb: Minor reformatting.
183 2015-01-07 Doug Rupp <rupp@adacore.com>
185 * s-linux.ads (clockid_t): New subtype.
186 * s-osinte-linux.ads (pragma Linker Options): Add -lrt.
187 (clockid_t): New subtype.
188 (clock_getres): Import system call.
189 * s-taprop-linux.adb (System.OS_Constants): With and rename.
190 (RT_Resolution): Remove
191 hardcoded value and call clock_getres.
192 * s-linux-sparc.ads, s-linux-mipsel.ads, s-linux-hppa.ads,
193 s-linux-alpha.ads, s-linux-x32.ads (clockid_t): Add new subtype.
195 2015-01-07 Robert Dewar <dewar@adacore.com>
197 * sem_warn.adb (Check_One_Unit): Guard against context item
198 with no Entity field.
200 2015-01-07 Vincent Celier <celier@adacore.com>
202 * clean.adb (Gnatclean): Warn that 'gnatclean -P' is obsolete.
203 * make.adb (Initialize): Warn that 'gnatmake -P' is obsolete.
205 2015-01-07 Vincent Celier <celier@adacore.com>
207 * prj-conf.adb (Parse_Project_And_Apply_Config): Always finalize
208 errors/warnings in the first parsing of the project files,
209 to display the warnings when there is no errors.
211 2015-01-07 Tristan Gingold <gingold@adacore.com>
213 * i-cpoint.adb (Copy_Terminated_Array): Nicely handle null target.
215 2015-01-07 Doug Rupp <rupp@adacore.com>
217 * s-taprop-vxworks.adb (Stop_All_Tasks): Pass return
218 value from Int_Lock as parameter to Int_Unlock.
219 * s-osinte-vxworks.ads (Int_Unlock): Add parameter.
220 * s-vxwext.ads (Int_Unlock): Likewise.
221 * s-vxwext-kernel.adb (intUnlock, Int_Unlock): Likewise.
222 * s-vxwext-kernel.ads (Int_Unlock): Likewise.
223 * s-vxwext-rtp.adb (Int_Unlock): Likewise.
224 * s-vxwext-rtp.ads (Int_Unlock): Likewise.
226 2015-01-07 Pierre-Marie de Rodat <derodat@adacore.com>
228 * exp_pakd.adb: Add a comment in exp_pakd.adb to explain why we
231 2015-01-07 Tristan Gingold <gingold@adacore.com>
233 * i-cpoint.adb (Copy_Terminated_Array): Use Copy_Array to
236 2015-01-07 Eric Botcazou <ebotcazou@adacore.com>
238 * sem_ch3.adb (Analyze_Full_Type_Declaration): Do not
239 automatically set No_Strict_Aliasing on access types.
240 * fe.h (No_Strict_Aliasing_CP): Declare.
241 * gcc-interface/trans.c (gigi): Force flag_strict_aliasing to 0 if
242 No_Strict_Aliasing_CP is set.
244 2015-01-07 Johannes Kanig <kanig@adacore.com>
246 * sem_ch8.adb (Analyze_Subprogram_Renaming) do
247 not build function wrapper in gnatprove mode when the package
248 is externally axiomatized.
250 2015-01-07 Jose Ruiz <ruiz@adacore.com>
252 * a-reatim.adb (Time_Of): Reduce the number of spurious overflows in
253 intermediate computations when the parameters have different signs.
255 2015-01-07 Javier Miranda <miranda@adacore.com>
257 * exp_ch3.adb (Build_Init_Procedure): For derived types,
258 improve the code which takes care of identifying and moving to
259 the beginning of the init-proc the call to the init-proc of the
262 2015-01-07 Olivier Hainque <hainque@adacore.com>
264 * gcc-interface/trans.c (gnat_to_gnu, <N_Expression_With_Action>):
265 Elaborate the expression as part of the same stmt group as the actions.
267 2015-01-07 Robert Dewar <dewar@adacore.com>
269 * sem_ch3.adb: Minor error message change.
271 2015-01-07 Ed Schonberg <schonberg@adacore.com>
273 * sem_prag.adb (Analyze_Pragma, case Preelaborable_Initialization):
274 Following AI05-028, the pragam applies legally to any composite type.
276 2015-01-07 Arnaud Charlet <charlet@adacore.com>
278 * s-osinte-vxworks.adb, s-osinte-vxworks.ads
279 (sigwait, sigwaitinfo): Removed, not needed after all on any
280 VxWorks configurations.
282 2015-01-07 Robert Dewar <dewar@adacore.com>
284 * sem_ch3.adb, freeze.adb, exp_disp.adb: Minor reformatting.
286 2015-01-07 Javier Miranda <miranda@adacore.com>
288 * exp_disp.adb (Expand_Interface_Conversion): Adding missing
289 generation of accessibility check.
291 2015-01-07 Ed Schonberg <schonberg@adacore.com>
293 * sem_ch3.adb (Derived_Type_Declaration): In the case of an
294 illegal completion from a class- wide type, set etype of the
295 derived type properly to prevent cascaded errors.
297 2015-01-07 Robert Dewar <dewar@adacore.com>
299 * prj.ads, i-cpoint.adb, freeze.adb, ghost.adb, prj-err.adb: Minor
302 2015-01-07 Robert Dewar <dewar@adacore.com>
304 * restrict.adb (Check_Restriction_No_Use_Of_Attribute):
306 (OK_No_Use_Of_Entity_Name): New function.
307 (Set_Restriction_No_Use_Of_Entity): New procedure.
308 * restrict.ads (Check_Restriction_No_Use_Of_Attribute):
310 (OK_No_Use_Of_Entity_Name): New function.
311 (Set_Restriction_No_Use_Of_Entity): New procedure.
312 * sem_ch8.adb (Find_Direct_Name): Add check for violation of
314 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
315 Add processing for new restriction No_Use_Of_Entity.
317 2015-01-07 Eric Botcazou <ebotcazou@adacore.com>
319 * freeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic
320 component type as to Has_Atomic_Components type. Remove useless
321 test on Is_Aliased component type.
323 2015-01-07 Hristian Kirtchev <kirtchev@adacore.com>
325 * alloc.ads Alphabetize several declarations. Add constants
326 Ignored_Ghost_Units_Initial and Ignored_Ghost_Units_Increment.
327 * atree.adb Add with and use clauses for Opt.
328 (Allocate_Initialize_Node): Mark a node as ignored Ghost
329 if it is created in an ignored Ghost region.
330 (Ekind_In): New variant.
331 (Is_Ignored_Ghost_Node): New routine.
332 (Set_Is_Ignored_Ghost_Node): New routine.
333 * atree.adb Aplhabetize several subprograms declarations. Flag
334 Spare0 is now known as Is_Ignored_Ghost_Node.
335 (Ekind_In): New variant.
336 (Is_Ignored_Ghost_Node): New routine.
337 (Set_Is_Ignored_Ghost_Node): New routine.
338 * einfo.adb: Flag 279 is now known as Contains_Ignored_Ghost_Code.
339 (Contains_Ignored_Ghost_Code): New routine.
340 (Set_Contains_Ignored_Ghost_Code): New routine.
341 (Set_Is_Checked_Ghost_Entity, Set_Is_Ignored_Ghost_Entity):
342 It is now possible to set this property on an unanalyzed entity.
343 (Write_Entity_Flags): Output the status of flag
344 Contains_Ignored_Ghost_Code.
345 * einfo.ads New attribute Contains_Ignored_Ghost_Code along with
347 (Contains_Ignored_Ghost_Code): New routine
348 along with pragma Inline.
349 (Set_Contains_Ignored_Ghost_Code): New routine along with pragma Inline.
350 * exp_ch3.adb Add with and use clauses for Ghost.
351 (Freeze_Type): Capture/restore the value of Ghost_Mode on entry/exit.
352 Set the Ghost_Mode in effect.
353 (Restore_Globals): New routine.
354 * exp_ch7.adb (Process_Declarations): Do not process a context
355 that invoves an ignored Ghost entity.
356 * exp_dbug.adb (Qualify_All_Entity_Names): Skip an ignored Ghost
357 construct that has been rewritten as a null statement.
358 * exp_disp.adb Add with and use clauses for Ghost.
359 (Make_DT): Capture/restore the value of Ghost_Mode on entry/exit. Set
360 the Ghost_Mode in effect.
361 (Restore_Globals): New routine.
362 * exp_util.adb (Requires_Cleanup_Actions): An ignored Ghost entity
363 does not require any clean up. Add two missing cases that deal
364 with block statements.
365 * freeze.adb Add with and use clauses for Ghost.
366 (Freeze_Entity): Capture/restore the value of Ghost_Mode on entry/exit.
367 Set the Ghost_Mode in effect.
368 (Restore_Globals): New routine.
369 * frontend.adb Add with and use clauses for Ghost. Remove any
370 ignored Ghost code from all units that qualify.
371 * ghost.adb New unit.
372 * ghost.ads New unit.
373 * gnat1drv.adb Add with clause for Ghost. Initialize and lock
374 the table in package Ghost.
375 * lib.ads: Alphabetize several subprogram declarations.
376 * lib-xref.adb (Output_References): Do not generate reference
377 information for ignored Ghost entities.
378 * opt.ads Add new type Ghost_Mode_Type and new global variable
380 * rtsfind.adb (Load_RTU): Provide a clean environment when
381 loading a runtime unit.
382 * sem.adb (Analyze): Capture/restore the value of Ghost_Mode on
383 entry/exit as the node may set a different mode.
385 Capture/restore the value of Ghost_Mode on entry/exit as the
386 unit may be withed from a unit with a different Ghost mode.
387 * sem_ch3.adb Add with and use clauses for Ghost.
388 (Analyze_Full_Type_Declaration, Analyze_Incomplete_Type_Decl,
389 Analyze_Number_Declaration, Analyze_Private_Extension_Declaration,
390 Analyze_Subtype_Declaration): Set the Ghost_Mode in effect. Mark
391 the entity as Ghost when there is a Ghost_Mode in effect.
392 (Array_Type_Declaration): The implicit base type inherits the
393 "ghostness" from the array type.
394 (Derive_Subprogram): The
395 alias inherits the "ghostness" from the parent subprogram.
396 (Make_Implicit_Base): The implicit base type inherits the
397 "ghostness" from the parent type.
398 * sem_ch5.adb Add with and use clauses for Ghost.
399 (Analyze_Assignment): Set the Ghost_Mode in effect.
400 * sem_ch6.adb Add with and use clauses for Ghost.
401 (Analyze_Abstract_Subprogram_Declaration, Analyze_Procedure_Call,
402 Analyze_Subprogram_Body_Helper, Analyze_Subprogram_Declaration):
403 Set the Ghost_Mode in effect. Mark the entity as Ghost when
404 there is a Ghost_Mode in effect.
405 * sem_ch7.adb Add with and use clauses for Ghost.
406 (Analyze_Package_Body_Helper, Analyze_Package_Declaration,
407 Analyze_Private_Type_Declaration): Set the Ghost_Mode in
408 effect. Mark the entity as Ghost when there is a Ghost_Mode
410 * sem_ch8.adb Add with and use clauses for Ghost.
411 (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
412 Analyze_Object_Renaming, Analyze_Package_Renaming,
413 Analyze_Subprogram_Renaming): Set the Ghost_Mode in effect. Mark
414 the entity as Ghost when there is a Ghost_Mode in effect.
415 (Find_Type): Check the Ghost context of a type.
416 * sem_ch11.adb Add with and use clauses for Ghost.
417 (Analyze_Exception_Declaration): Set the Ghost_Mode in
418 effect. Mark the entity as Ghost when there is a Ghost_Mode
420 * sem_ch12.adb Add with and use clauses for Ghost.
421 (Analyze_Generic_Package_Declaration,
422 Analyze_Generic_Subprogram_Declaration): Set the Ghost_Mode in effect.
423 Mark the entity as Ghost when there is a Ghost_Mode in effect.
424 * sem_prag.adb Add with and use clauses for Ghost.
425 (Analyze_Pragma): Ghost-related checks are triggered when there
426 is a Ghost mode in effect.
427 (Create_Abstract_State): Mark the
428 entity as Ghost when there is a Ghost_Mode in effect.
429 * sem_res.adb Add with and use clauses for Ghost.
430 (Check_Ghost_Context): Removed.
431 * sem_util.adb (Check_Ghost_Completion): Removed.
432 (Check_Ghost_Derivation): Removed.
433 (Incomplete_Or_Partial_View):
434 Add a guard in case the entity has not been analyzed yet
435 and does carry a scope.
436 (Is_Declaration): New routine.
437 (Is_Ghost_Entity): Removed.
438 (Is_Ghost_Statement_Or_Pragma):
440 (Is_Subject_To_Ghost): Removed.
441 (Set_Is_Ghost_Entity):
443 (Within_Ghost_Scope): Removed.
444 * sem_util.adb (Check_Ghost_Completion): Removed.
445 (Check_Ghost_Derivation): Removed.
446 (Is_Declaration): New routine.
447 (Is_Ghost_Entity): Removed.
448 (Is_Ghost_Statement_Or_Pragma): Removed.
449 (Is_Subject_To_Ghost): Removed.
450 (Set_Is_Ghost_Entity): Removed.
451 (Within_Ghost_Scope): Removed.
452 * sinfo.ads Add a section on Ghost mode.
453 * treepr.adb (Print_Header_Flag): New routine.
454 (Print_Node_Header): Factor out code. Output flag
455 Is_Ignored_Ghost_Node.
456 * gcc-interface/Make-lang.in: Add dependency for unit Ghost.
458 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
460 * freeze.adb (Freeze_Array_Type) <Complain_CS>: Remove always
461 true test and unreachable 'else' arm.
463 2015-01-06 Vincent Celier <celier@adacore.com>
465 * prj-conf.adb (Check_Target): Improve error message when
466 there are mismatched targets between the on in the configuration
467 project file and the specified one, either in the main project
468 file or in the --target= switch.
470 2015-01-06 Pascal Obry <obry@adacore.com>
472 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Mode and
473 Install_Name attribute definitions.
475 2015-01-06 Ed Schonberg <schonberg@adacore.com>
477 * freeze.adb (Wrap_Imported_Subprogram): Indicate that the
478 generated Import pragma for the internal imported procedure does
479 not come from an aspect, so that Is_Imported can be properly
482 2015-01-06 Gary Dismukes <dismukes@adacore.com>
484 * sem_ch12.adb (Might_Inline_Subp): Record whether
485 any subprograms in the generic package are marked with
486 pragma Inline_Always (setting flag Has_Inline_Always).
487 (Analyze_Package_Instantiation): Add test of Has_Inline_Always
488 alongside existing test of Front_End_Inlining as alternative
489 conditions for setting Inline_Now. Also add test of
490 Has_Inline_Always along with Front_End_Inlining test as an
491 alternative condition for setting Needs_Body to False.
493 2015-01-06 Tristan Gingold <gingold@adacore.com>
495 * i-cpoint.adb (Copy_Array): Handle overlap.
497 2015-01-06 Pascal Obry <obry@adacore.com>
499 * bindgen.adb: Minor style fix.
501 2015-01-06 Robert Dewar <dewar@adacore.com>
503 * sem_util.ads, sem_util.adb: Minor reformatting.
505 2015-01-06 Vincent Celier <celier@adacore.com>
507 * prj-conf.adb (Parse_Project_And_Apply_Config): Reset incomplete
508 with flags before parsing the projects.
509 * prj-err.adb (Error_Msg): Do nothing if there are incomplete withs.
510 * prj-part.adb (Post_Parse_Context_Clause): Set Incomplete_Withs
511 to True in the flags, when Ignore_Missing_With is True and an
512 imported project cannot be found.
513 * prj-proc.adb (Expression): When there are incomplete withs and
514 a variable or attribute is not found, set the variable/attribute
516 * prj.ads (Processing_Flags): New flag Incomplete_Withs,
519 2015-01-06 Vasiliy Fofanov <fofanov@adacore.com>
521 * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-conf.adb,
522 prj-err.adb: Add new switch --no-command-line.
524 2015-01-06 Ed Schonberg <schonberg@adacore.com>
526 * sem_ch12.adb: Sloc of wrapper is that of instantiation.
528 2015-01-06 Robert Dewar <dewar@adacore.com>
530 * sem_ch11.adb: Minor reformatting.
532 2015-01-06 Ed Schonberg <schonberg@adacore.com>
534 * exp_aggr.adb (Get_Assoc_Expr): New routine internal to
535 Build_Array_Aggr_Code, used to initialized components covered
536 by a box association. If the component type is scalar and has
537 a default aspect, use it to initialize such components.
539 2015-01-06 Pascal Obry <obry@adacore.com>
541 * rtinit.c (__gnat_runtime_initialize): Add a parameter to
542 control the setup of the exception handler.
543 * initialize.c: Remove unused declaration.
544 * bindgen.adb: Always call __gnat_runtime_initialize and pass
545 whether the exeception handler must be set or not.
547 2015-01-06 Thomas Quinot <quinot@adacore.com>
549 * freeze.adb (Set_SSO_From_Defaults): When setting scalar storage
550 order to native from default, make sure to also adjust bit order.
551 * exp_aggr.adb: Minor reformatting.
553 2015-01-06 Robert Dewar <dewar@adacore.com>
555 * s-valllu.adb, s-valllu.ads, s-valuti.ads, s-valuns.adb, s-valuns.ads,
556 s-valrea.adb, s-valrea.ads: Add some additional guards for
557 Str'Last = Positive'Last.
559 2015-01-06 Ed Schonberg <schonberg@adacore.com>
561 * sem_ch12.adb, sem_ch8.adb: Ongoing work for wrappers for actual
564 2015-01-06 Javier Miranda <miranda@adacore.com>
566 * exp_disp.adb (Expand_Interface_Conversion): Reapply patch.
568 2015-01-06 Thomas Quinot <quinot@adacore.com>
570 * sem_util.ads: Minor reformatting.
571 * sem_cat.adb (In_RCI_Visible_Declarations): Change back to...
572 (In_RCI_Declaration) Return to old name, as proper checking of
573 entity being in the visible part depends on entity kind and must
574 be done by the caller.
576 2015-01-06 Ed Schonberg <schonberg@adacore.com>
578 * sem_ch12.adb, sem_ch12.ads, sem_ch8.adb: Ongoing work for wrappers
579 for operators in SPARK.
581 2015-01-06 Ed Schonberg <schonberg@adacore.com>
583 * sem_aggr.adb (Get_Value): In ASIS mode, preanalyze the
584 expression in an others association before making copies for
585 separate resolution and accessibility checks. This ensures that
586 the type of the expression is available to ASIS in all cases,
587 in particular if the expression is itself an aggregate.
589 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
591 * einfo.ads (Has_Independent_Components): Document extended
593 * einfo.adb (Has_Independent_Components): Remove obsolete assertion.
594 (Set_Has_Independent_Components): Adjust assertion.
595 * sem_prag.adb (Analyze_Pragma): Also set Has_Independent_Components
596 for pragma Atomic_Components. Set Has_Independent_Components
597 on the object instead of the type for an object declaration with
598 pragma Independent_Components.
600 2015-01-06 Olivier Hainque <hainque@adacore.com>
602 * set_targ.adb (Read_Target_Dependent_Values): Set
603 Long_Double_Index when "long double" is read.
604 (elaboration code): Register_Back_End_Types only when not reading from
605 config files. Doing otherwise is pointless and error prone.
607 2015-01-06 Robert Dewar <dewar@adacore.com>
609 * s-valrea.adb (Value_Real): Check for Str'Last = Positive'Last
611 2015-01-06 Robert Dewar <dewar@adacore.com>
613 * a-wtgeau.adb, a-ztgeau.adb, a-tigeau.adb (String_Skip): Raise PE if
614 Str'Last = Positive'Last.
616 2015-01-06 Ed Schonberg <schonberg@adacore.com>
618 * sem_ch6.adb (Matches_Limited_View): Handle properly the case
619 where the non-limited type is a generic actual and appears as
620 a subtype of the non-limited view of the other.
621 * freeze.adb (Build_Renamed_Body): If the return type of the
622 declaration that is being completed is a limited view and the
623 non-limited view is available, use it in the specification of
626 2015-01-06 Ed Schonberg <schonberg@adacore.com>
628 * sem_ch3.adb (Find_Type_Name): If there is a previous tagged
629 incomplete view, the type of the classwide type common to both
630 views is the type being declared.
632 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
634 * einfo.ads (Is_Independent): Further document extended usage.
636 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
638 * einfo.ads (Is_Independent): Document extended usage.
639 * einfo.adb (Is_Independent): Remove obsolete assertion.
640 (Set_Is_Independent): Likewise.
641 * sem_prag.adb (Process_Atomic_Shared_Volatile): Rename into...
642 (Process_Atomic_Independent_Shared_Volatile): ...this.
643 Deal with pragma Independent here.
644 (Analyze_Pragma): Adjust
645 to above renaming and also invoke it for pragma Independent.
646 Adjust comment for Independent_Components.
648 2015-01-06 Robert Dewar <dewar@adacore.com>
650 * snames.ads-tmpl: Remove entries for attribute Enum_Image.
651 * exp_attr.adb: Remove reference to Attribute_Enum_Image.
653 2015-01-06 Robert Dewar <dewar@adacore.com>
655 * s-vallli.adb (Value_Long_Long_Integer): Handle case of Str'Last
657 * s-valllu.adb (Value_Long_Long_Unsigned): Handle case of
658 Str'Last = Positive'Last.
660 2015-01-06 Robert Dewar <dewar@adacore.com>
662 * sem_prag.adb (Process_Inline): Remove redundant construct
663 warning (-gnatw.r) for an ineffective pragma Inline.
665 2015-01-06 Robert Dewar <dewar@adacore.com>
667 * s-valint.adb: Fix typo in last checkin.
668 * s-valuns.adb (Value_Unsigned): More efficient fix for
670 * sem_attr.adb (Analyze_Attribute): Minor reformatting
671 (Eval_Attribute): Static ervaluation of 'Img for enumeration types.
673 2015-01-06 Robert Dewar <dewar@adacore.com>
675 * s-valint.adb, s-valuns.adb (Value_Integer): Deal with case where
676 Str'Last = Positive'Last
678 2015-01-06 Thomas Quinot <quinot@adacore.com>
680 * xoscons.adb: Display exception information and return non-zero
681 exit status in top level exception handler.
683 2015-01-06 Ed Schonberg <schonberg@adacore.com>
685 * sem_ch8.adb: Code clean up.
687 2015-01-06 Tristan Gingold <gingold@adacore.com>
689 * targparm.ads: Remove obsolete comment.
691 2015-01-06 Olivier Hainque <hainque@adacore.com>
693 * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable): When
694 constructing a ref to variable, update inner_const_flag from the
695 variable TREE_READONLY attribute.
696 * gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Remove default
698 (get_target_float_size): Remove.
699 (get_target_double_size): Remove.
700 (get_target_long_double_size): Remove.
702 2015-01-06 Pascal Obry <obry@adacore.com>
704 * adaint.c (ProcListEvt): Set to NULL.
705 * rtinit.c: New file.
706 (__gnat_rt_init_count): New reference counter set to 0.
707 (__gnat_runtime_initialize): Move code here from __gnat_initialize when
708 this code is actually needed for the runtime initialization. This
709 routine returns immediately if the initialization has already been done.
710 * final.c: Revert previous change.
711 * rtfinal.c: New file.
712 (__gnat_runtime_finalize)[Win32]: Add finalization of the critical
713 section and event. The default version of this routine is empty (except
714 for the reference counting code). This routine returns immediately if
715 some others libraries are referencing the runtime.
716 * bindgen.adb (Gen_Adainit): Generate call to Runtime_Initialize
717 remove circuitry to initialize the signal handler as this is
718 now done by the runtime initialization routine.
719 (Gen_Adafinal): Generate call to Runtime_Finalize.
720 * gnat_ugn.texi: Update documentation about concurrency and
721 initialization/finalization of the run-time.
722 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Add
723 references to rtfinal.o and rtinit.o
725 2015-01-06 Robert Dewar <dewar@adacore.com>
727 * exp_attr.adb (Expand_N_Attribute_Reference): Add dummy entry
729 * sem_attr.adb: Implement Enum_Image attribute.
730 * snames.ads-tmpl: Add entries for Enum_Image attribute.
732 2015-01-06 Robert Dewar <dewar@adacore.com>
734 * namet.ads: Document use of Boolean2 for No_Use_Of_Entity.
735 * restrict.ads (No_Use_Of_Entity): New table.
736 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
737 Ignore No_Use_Of_Entity (will be processed in parser).
738 * snames.ads-tmpl: Add entry for Name_No_Use_Of_Entity.
740 2015-01-06 Vincent Celier <celier@adacore.com>
742 * prj-tree.adb (Imported_Or_Extended_Project_Of): Do not try
743 to check for an extended project, if a project does not have
744 yet a project declaration.
746 2015-01-06 Pierre-Marie Derodat <derodat@adacore.com>
748 * scos.ads: Update documentation about the SCO table build
749 process and about table records format.
750 * par_sco.ads (SCO_Record): Rename to SCO_Record_Raw.
751 (SCO_Record_Filtered): New procedure.
752 (Set_SCO_Logical_Operator): New procedure.
753 (dsco): Update documentation.
754 * par_sco.adb: Update library-level comments.
755 (SCO_Generation_State_Type): New type.
756 (SCO_Generation_State): New variable.
757 (SCO_Raw_Table): New package instanciation.
758 (Condition_Pragma_Hash_Table): Rename to SCO_Raw_Hash_Table.
760 (Tristate): New type.
761 (Is_Logical_Operator): Return Tristate and update documentation.
762 (Has_Decision): Update call to Is_Logical_Operator and complete
764 (Set_Table_Entry): Rename to Set_Raw_Table_Entry, update
765 comment, add an assertion for state checking and change
766 references to SCO_Table into SCO_Raw_Table.
767 (dsco): Refactor to dump the raw and the filtered tables.
768 (Process_Decisions.Output_Decision_Operand): Handle putative
769 short-circuit operators.
770 (Process_Decisions.Output_Element): Update references
771 to Set_Table_Entry and to Condition_Pragma_Hash_Table.
772 (Process_Decisions.Process_Decision_Operand): Update call
773 to Is_Logical_Operator.
774 (Process_Decisions.Process_Node): Handle putative short-circuit
775 operators and change references to
776 SCO_Table into SCO_Raw_Table.
777 (SCO_Output): Add an assertion
778 for state checking and remove code that used to stamp out SCO entries.
779 (SCO_Pragma_Disabled): Change reference to SCO_Table
781 (SCO_Record): Rename to SCO_Record_Raw,
782 add an assertion for state checking and change references
783 to SCO_Table into SCO_Raw_Table.
784 (Set_SCO_Condition): Add an assertion for state checking, update
785 references to Condition_Pragma_Hash_Table and change references to
786 SCO_Table into SCO_Raw_Table.
787 (Set_SCO_Pragma_Enabled): Add an assertion for state checking and
788 change references to SCO_Table into SCO_Raw_Table.
789 (Set_SCO_Logical_Operator): New procedure.
790 (Traverse_Declarations_Or_Statements.Set_Statement_Entry): Update
791 references to Set_Table_Entry and to Condition_Pragma_Hash_Table.
792 (SCO_Record_Fildered): New procedure.
793 * gnat1drv.adb (Gnat1drv): Invoke the SCO filtering pass.
794 * lib-writ.adb (Write_ALI): Invoke the SCO filtering pass and
796 * par-load.adb (Load): Update reference to SCO_Record.
797 * par.adb (Par): Update reference to SCO_Record.
798 * put_scos.adb (Put_SCOs): Add an assertion to check that no
799 putative SCO condition reaches this end.
800 * sem_ch10.adb (Analyze_Proper_Body): Update reference to SCO_Record.
801 * sem_res.adb (Resolve_Logical_Op): Validate putative SCOs
802 when corresponding to an "and"/"or" operator affected by the
803 Short_Circuit_And_Or pragma.
805 2015-01-06 Robert Dewar <dewar@adacore.com>
807 * sem_ch8.adb (Analyze_Use_Package): Give more specific error
808 msg for attempted USE of generic subprogram or subprogram.
810 2015-01-06 Robert Dewar <dewar@adacore.com>
812 * s-valllu.adb, a-tiinau.adb, a-timoau.adb, a-ztinau.adb, a-ztmoau.adb,
813 s-valuns.adb, s-valrea.adb, a-wtflau.adb, a-tiflau.adb, a-ztflau.adb,
814 a-wtinau.adb, a-wtmoau.adb: Document recognition of : in place of #.
816 2015-01-06 Ed Schonberg <schonberg@adacore.com>
818 * sem_ch13.adb (Analyze_Aspect_Specifications): For aspects
819 that specify stream subprograms, if the prefix is a class-wide
820 type then the generated attribute definition clause must apply
821 to the same class-wide type.
822 (Default_Iterator): An iterator defined by an aspect of some
823 container type T must have a first parameter of type T, T'class,
824 or an access to such (from code reading RM 5.5.1 (2/3)).
826 2015-01-06 Arnaud Charlet <charlet@adacore.com>
828 * gnat1drv.adb: Minor: complete previous change.
830 2015-01-06 Olivier Hainque <hainque@adacore.com>
832 * set_targ.ads (C_Type_For): New function. Return the name of
833 a C type supported by the back-end and suitable as a basis to
834 construct the standard Ada floating point type identified by
835 the T parameter. This is used as a common ground to feed both
836 ttypes values and the GNAT tree nodes for the standard floating
838 * set_targ.adb (Long_Double_Index): The index at which "long
839 double" gets registered in the FPT_Mode_Table. This is useful to
840 know whether we have a "long double" available at all and get at
841 it's characteristics without having to search the FPT_Mode_Table
842 when we need to decide which C type should be used as the
843 basis for Long_Long_Float in Ada.
844 (Register_Float_Type): Fill Long_Double_Index.
845 (FPT_Mode_Index_For): New function. Return the index in
846 FPT_Mode_Table that designates the entry corresponding to the
847 provided C type name.
848 (FPT_Mode_Index_For): New function. Return the index in
849 FPT_Mode_Table that designates the entry for a back-end type
850 suitable as a basis to construct the standard Ada floating point
851 type identified by the input T parameter.
852 (elaboration code): Register_Back_End_Types unconditionally,
853 so C_Type_For can operate regardless of -gnateT. Do it
854 early so we can query it for the floating point sizes, via
855 FPT_Mode_Index_For. Initialize Float_Size, Double_Size and
856 Long_Double_Size from the FPT_Mode_Table, as cstand will do.
857 * cstand.adb (Create_Float_Types): Use C_Type_For to determine
858 which C type should be used as the basis for the construction
859 of the Standard Ada floating point types.
860 * get_targ.ads (Get_Float_Size, Get_Double_Size,
861 Get_Long_Double_Size): Remove.
862 * get_targ.adb: Likewise.
864 2015-01-06 Thomas Quinot <quinot@adacore.com>
866 * sem_cat.adb (In_RCI_Declaration): Remove unnecessary
867 parameter and rename to...
868 (In_RCI_Visible_Declarations): Fix handling of private part of nested
870 (Validate_RCI_Subprogram_Declaration): Reject illegal function
871 returning anonymous access in RCI unit.
873 2015-01-06 Ed Schonberg <schonberg@adacore.com>
875 * sem_ch6.adb (New_Overloaded_Entity): In GNATprove mode, a
876 function wrapper may be a homonym of another local declaration.
877 * sem_ch8.adb (Analyze_Subprogram_Renaming): In GNATprove mode,
878 build function and operator wrappers after the actual subprogram
879 has been resolved, and replace the standard renaming declaration
880 with the declaration of wrapper.
881 * sem_ch12.ads (Build_Function_Wrapper, Build_Operator_Wraooer):
882 make public for use elsewhere.
883 * sem_ch12.adb (Build_Function_Wrapper, Build_Operator_Wraooer):
884 rewrite, now that actual is fully resolved when wrapper is
887 2015-01-06 Javier Miranda <miranda@adacore.com>
889 * exp_disp.adb: Revert previous change.
891 2015-01-06 Robert Dewar <dewar@adacore.com>
893 * exp_util.adb: Change name Name_Table_Boolean to
895 * namet.adb: Change name Name_Table_Boolean to Name_Table_Boolean1
896 Introduce Name_Table_Boolean2/3.
897 * namet.ads: Change name Name_Table_Boolean to Name_Table_Boolean1
898 Introduce Name_Table_Boolean2/3.
899 * par-ch13.adb: Change name Name_Table_Boolean to
902 2015-01-06 Bob Duff <duff@adacore.com>
904 * gnat_rm.texi: Improve documentation regarding No_Task_Termination.
906 2015-01-06 Ed Schonberg <schonberg@adacore.com>
908 * sem_aggr.adb (Resolve_Record_Aggregte, Get_Value): For an
909 others choice that covers multiple components, analyze each
910 copy with the type of the component even in compile-only mode,
911 to detect potential accessibility errors.
913 2015-01-06 Hristian Kirtchev <kirtchev@adacore.com>
915 * sem_res.adb (Is_Assignment_Or_Object_Expression): New routine.
916 (Resolve_Actuals): An effectively volatile out
917 parameter cannot act as an in or in out actual in a call.
918 (Resolve_Entity_Name): An effectively volatile out parameter
921 2015-01-06 Ed Schonberg <schonberg@adacore.com>
923 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is
924 the expansion of an expression function it may be pre-analyzed
925 if a 'access attribute is applied to the function, in which case
926 last_entity may have been assigned already.
928 2015-01-06 Ed Schonberg <schonberg@adacore.com>
930 * sem_ch4.adb (Analyze_One_Call): If formal has an incomplete
931 type and actual has the corresponding full view, there is no
932 error, but a case of use of incomplete type in a predicate or
933 invariant expression.
935 2015-01-06 Vincent Celier <celier@adacore.com>
937 * makeutl.adb (Insert_No_Roots): Make sure that the same source
938 in two different project tree is checked in both trees, if they
939 are sources of two different projects, extended or not.
941 2015-01-06 Arnaud Charlet <charlet@adacore.com>
943 * gnat1drv.adb: Minor code clean up.
944 (Adjust_Global_Switches): Ignore gnatprove_mode in codepeer_mode.
946 2015-01-06 Bob Duff <duff@adacore.com>
948 * osint.adb (Read_Source_File): Don't print out
949 file name unless T = Source.
951 2015-01-06 Ed Schonberg <schonberg@adacore.com>
953 * sem_util.adb (Is_Variable, Is_OK_Variable_For_Out_Formal):
954 recognize improper uses of constant_reference types as actuals
955 for in-out parameters.
956 (Check_Function_Call): Do not collect identifiers if function
957 name is missing because of previous error.
959 2015-01-06 Robert Dewar <dewar@adacore.com>
961 * ali-util.adb, sem_prag.adb, rtsfind.adb, sem_util.adb, sem_res.adb,
962 ali.adb, binde.adb, namet.adb, namet.ads, gnatls.adb, bcheck.adb:
963 Minor change of name Name_Table_Info => Name_Table_Int.
965 2015-01-06 Robert Dewar <dewar@adacore.com>
967 * exp_strm.adb (Build_Elementary_Input_Call): Clarify comments
969 * freeze.adb (Freeze_Fixed_Point_Type): Add warning for shaving
971 * sem_prag.adb, sem_ch10.adb, sem_ch6.adb: Minor reformatting.
973 2015-01-06 Vincent Celier <celier@adacore.com>
975 * a-strsup.adb (Times (Natural;String;Positive)): Raise
976 Length_Error, not Index_Error, when the result is too long.
978 2015-01-06 Thomas Quinot <quinot@adacore.com>
980 * a-direct.adb (Create_Path): Minor error handling and
981 performance improvement.
983 2015-01-06 Robert Dewar <dewar@adacore.com>
985 * checks.ads, sem_ch12.adb: Minor reformatting.
986 * exp_ch4.adb (Expand_N_Op_Divide): Generate explicit divide by
987 zero check for fixed-point case if Backend_Divide_Checks_On_Target
990 2015-01-06 Robert Dewar <dewar@adacore.com>
992 * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All):
993 Do not set restriction No_Elaboration_Code unless the pragma
994 appears in the main unit).
996 2015-01-06 Ed Schonberg <schonberg@adacore.com>
998 * sem_ch10.adb (Is_Regular_With_Clause): Add guard to verify
999 that with clause has already been analyzed before checking kind
1002 2015-01-06 Robert Dewar <dewar@adacore.com>
1004 * exp_strm.adb (Build_Elementary_Input_Call): Return base type
1005 (as required by RM).
1007 2015-01-06 Arnaud Charlet <charlet@adacore.com>
1009 * a-reatim.adb ("/"): Add explicit pragma Unsuppress (Division_Check).
1011 2015-01-06 Robert Dewar <dewar@adacore.com>
1013 * sem_prag.adb (Process_Suppress_Unsuppress): Add extra warning
1014 for ignoring pragma Suppress (Elaboration_Check) in SPARK mode.
1016 2015-01-06 Javier Miranda <miranda@adacore.com>
1018 * exp_disp.adb (Expand_Interface_Conversion): No displacement
1019 of the pointer to the object needed when the type of the operand
1020 is not an interface type and the interface is one of its parent
1021 types (since they share the primary dispatch table).
1023 2015-01-06 Vincent Celier <celier@adacore.com>
1025 * prj-env.adb: Minor comment update.
1027 2015-01-06 Javier Miranda <miranda@adacore.com>
1029 * sem_res.adb (Valid_Conversion): Restrict the checks on anonymous
1030 access types whose target type is an interface type to operands
1031 that are access types; required to report an error when the
1032 operand is not an access type.
1034 2015-01-06 Bob Duff <duff@adacore.com>
1036 * a-cfinve.adb (Copy): Set the discriminant to the Length when
1038 * a-cofove.ads (Capacity): Add a postcondition.
1039 * a-cfinve.ads (Capacity): Add a postcondition.
1040 (Reserve_Capacity): Correct the postcondition in the case where
1041 Capacity = 0; that means "Capacity => Length (Container)".
1042 * a-cofove.adb (Elems[c]): Add a comment
1043 explaining the dangers and how to avoid them.
1045 2015-01-06 Ed Schonberg <schonberg@adacore.com>
1047 * sem_ch12.adb: Code clean up.
1049 2015-01-06 Arnaud Charlet <charlet@adacore.com>
1051 * gnatvsn.ads: Bump copyright year.
1053 2015-01-06 Robert Dewar <dewar@adacore.com>
1055 * s-taskin.ads, s-traces.ads: Minor reformatting.
1056 * exp_util.adb: Minor typo fix.
1058 2015-01-06 Vincent Celier <celier@adacore.com>
1060 * gnatls.adb (Search_RTS): Invoke Initialize_Default_Project_Path
1061 with the runtime name.
1062 * prj-env.adb (Initialize_Default_Project_Path): When both
1063 Target_Name and Runtime_Name are not empty string, add to the
1064 project path the two directories .../lib/gnat and .../share/gpr
1065 related to the runtime.
1066 * prj-env.ads (Initialize_Default_Project_Path): New String
1067 parameter Runtime_Name, defaulted to the empty string.
1069 2015-01-06 Hristian Kirtchev <kirtchev@adacore.com>
1071 * frontend.adb: Guard against the case where a configuration
1072 pragma may be split into multiple pragmas and the original
1073 rewritten as a null statement.
1074 * sem_prag.adb (Analyze_Pragma): Insert a brand new Check_Policy
1075 pragma using Insert_Before rather than Insert_Action. This
1076 takes care of the configuration pragma case where Insert_Action
1079 2015-01-06 Bob Duff <duff@adacore.com>
1081 * a-coboho.ads (Element_Access): Add "pragma
1082 No_Strict_Aliasing (Element_Access);". This is needed because
1083 we are unchecked-converting from Address to Element_Access.
1084 * a-cofove.ads, a-cofove.adb (Elems,Elemsc): Fix bounds of the
1087 2015-01-06 Hristian Kirtchev <kirtchev@adacore.com>
1089 * sem_res.adb (Resolve_Actuals): Remove the
1090 restriction which prohibits volatile actual parameters with
1091 enabled external propery Async_Writers to act appear in procedure
1092 calls where the corresponding formal is of mode OUT.
1094 2015-01-05 Jakub Jelinek <jakub@redhat.com>
1096 * gnat_ugn.texi: Bump @copying's copyright year.
1098 2015-01-05 Eric Botcazou <ebotcazou@adacore.com>
1101 * gcc-interface/Makefile.in (../stamp-tools): Reinstate dropped code.
1103 2015-01-04 Uros Bizjak <ubizjak@gmail.com>
1105 * gcc-interface/misc.c (internal_error_function): Use xasprintf instead
1106 of unchecked asprintf.
1109 Copyright (C) 2015 Free Software Foundation, Inc.
1111 Copying and distribution of this file, with or without modification,
1112 are permitted in any medium without royalty provided the copyright
1113 notice and this notice are preserved.