OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [ChangeLog-2007] - Blame information for rev 706

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 706 jeremybenn
2007-12-27  Samuel Tardieu  
2
 
3
        PR ada/34553
4
        * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
5
        instead of mktemp() or tmpnam() on NetBSD.
6
 
7
2007-12-23  Eric Botcazou  
8
 
9
        * trans.c (call_to_gnu): Make the temporary for non-addressable
10
        In parameters passed by reference.
11
        (addressable_p): Return true for STRING_CST and CALL_EXPR.
12
 
13
2007-12-19  Robert Dewar  
14
 
15
        * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
16
        Add pragma Warnings (Off) for unassigned IN OUT arguments
17
 
18
        * sem_warn.adb (Output_Reference): Suppress messages for internal names
19
        (Check_References): Extensive changes to tune up warnings
20
        (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
21
        (Has_Pragma_Unmodifed_Check_Spec): New function
22
        (Check_References): Implement pragma Unmodified
23
        (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
24
 
25
        * par-prag.adb: Dummy entry for pragma Unmodified
26
 
27
        * sem_prag.adb: Implement pragma Unmodified
28
 
29
        * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
30
        (Proc_Next_Component_Or_Discriminant): Fix typo.
31
        Update comments.
32
 
33
        * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
34
        Unmodified.
35
        (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
36
        because the former already takes care of discarding the result.
37
        (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
38
        Add comment.
39
 
40
        * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
41
 
42
2007-12-19  Eric Botcazou  
43
 
44
        * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
45
        system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
46
        system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
47
        system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
48
        system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
49
        system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
50
        system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
51
        system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
52
        system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
53
        system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
54
        (Dynamic_Trampolines_Used): Delete.
55
 
56
        * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
57
        Turn on stack probing mechanism on LynxOS.
58
 
59
2007-12-19  Bob Duff  
60
 
61
        * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
62
        the resulting tail recursion by hand. This prevents running out of
63
        memory on deeply nested concatenations, since Field2 is where the left
64
        operand of concatenations is stored.
65
        Fix bug (was returning OK_Orig in some cases). Fix return subtype to
66
        clarify that it can only return OK or Abandon.
67
 
68
        * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
69
        operand by iteration, in order to avoid running out of memory on
70
        deeply-nested concatenations. Use the Parent pointer to get back up the
71
        tree.
72
        (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
73
         Resolve_Op_Concat_Rest): New procedures split out of
74
        Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
75
        clearer.
76
 
77
        * checks.adb (Remove_Checks): Use Traverse_Proc instead of
78
        Traverse_Func, because the former already takes care of discarding the
79
        result.
80
 
81
        * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
82
        because the former already takes care of discarding the result.
83
        (Remove_Warning_Messages): Use appropriate subtype for Status and
84
        Discard
85
 
86
2007-12-19  Ed Schonberg  
87
 
88
        * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
89
        discriminants forces expansion of the aggregate into assignments.
90
        (Init_Record_Controller):  If the type of the aggregate is untagged and
91
        is not inherently limited, the record controller is not limited either.
92
 
93
2007-12-19  Robert Dewar  
94
 
95
        * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
96
        handling compile time known size of record or array (case of front end
97
        layout active, e.g. in GNAAMP).
98
 
99
2007-12-19  Javier Miranda  
100
 
101
        * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
102
        that forces the construction of static dispatch tables in case of
103
        record subtypes.
104
 
105
2007-12-19  Robert Dewar  
106
 
107
        * exp_ch9.adb (Null_Statements): Moved to library level
108
        (Trivial_Accept_OK): New function
109
        (Expand_Accept_Declaration): Use Trivial_Accept_OK
110
        (Expand_N_Accept_Statement): Use Trivial_Accept_OK
111
 
112
2007-12-19  Robert Dewar  
113
 
114
        * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
115
        in complex case where array is Volatile.
116
 
117
2007-12-19  Ed Schonberg  
118
 
119
        * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
120
        properly the Ada2005 rules concerning when the current instance of a
121
        record type is aliased.
122
 
123
2007-12-19  Ed Schonberg  
124
 
125
        * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
126
        mangled declaration
127
        (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
128
        declarations.
129
        (P_Variant_Part): Cleaner patch for parenthesized discriminant
130
 
131
2007-12-19  Vincent Celier  
132
 
133
        * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
134
        package is not known
135
 
136
        * prj-attr.ads (Unknown_Package): New constant
137
        Do not crash when an unknown package is in several projects
138
 
139
        * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
140
        ignored
141
 
142
        * prj-nmsc.adb (Check): Remove obsolete code related to no longer
143
        existing package Language_Processing.
144
 
145
2007-12-19  Ed Schonberg  
146
            Gary Dismukes  
147
            Samuel Tardieu  
148
 
149
        PR ada/15803, ada/15805
150
        * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
151
        illegal access subtypes when there is a constrained partial view.
152
        (Check_For_Premature_Usage): New procedure inside
153
        Access_Subprogram_Declaration for checking that an access-to-subprogram
154
        type doesn't reference its own name within any formal parameters or
155
        result type (including within nested anonymous access types).
156
        (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
157
        (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
158
        context is an access_to_variable, the expression cannot be an
159
        access_to_constant.
160
 
161
2007-12-19  Bob Duff  
162
 
163
        * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
164
        (Analyze_Concatenation): Use iteration instead of recursion in order
165
        to avoid running out of stack space for deeply nested concatenations.
166
 
167
2007-12-19  Ed Schonberg  
168
            Gary Dismukes  
169
 
170
        * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
171
        whose renamed entity is a subprogram that requires overriding.
172
        (Premature_Usage): Test for the case of N_Full_Type_Declaration when
173
        issuing an error for premature usage and issue a message that says
174
        'type' rather than 'object'.
175
 
176
2007-12-19  Gary Dismukes  
177
 
178
        PR ada/34149
179
        * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
180
        presence of a statically tagged operand (Present (Static_Tag)) with
181
        test for Indeterm_Ancestor_Call when determining whether to propagate
182
        the static tag to tag-indeterminate operands (which forces dispatching
183
        on such calls).
184
        (Check_Controlling_Formals): Ada2005, access parameters can have
185
        defaults.
186
        (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
187
        not insert subprogram in list of primitive operations if already there.
188
 
189
2007-12-19  Tristan Gingold  
190
 
191
        * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
192
        global variable.
193
 
194
2007-12-19  Thomas Quinot  
195
 
196
        Part of PR ada/33688
197
        * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
198
        datagram info on Linux.
199
 
200
2007-12-19  Vincent Celier  
201
 
202
        * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
203
        that the source path name is always found in the dependencies.
204
 
205
2007-12-19  Robert Dewar  
206
 
207
        * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
208
        Fix name of Wide_Wide_Latin_1/9 file names
209
        Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
210
        Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
211
        Add missing documentation for Ada.Command_Line.Response_File
212
        Update list of warning letters for Warnings pragma
213
        Add documentation for pragma Unmodified
214
 
215
2007-12-19  Samuel Tardieu  
216
 
217
        * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
218
 
219
2007-12-17  Arnaud Charlet  
220
 
221
        * s-vxwork-alpha.ads: Removed, no longer used.
222
 
223
2007-12-15  Jakub Jelinek  
224
 
225
        * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
226
 
227
2007-12-13  Samuel Tardieu  
228
 
229
        PR ada/34360
230
        * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
231
        mlib-tgt-specific.adb.
232
 
233
2007-12-13  Bob Duff  
234
 
235
        * trans.c (Attribute_to_gnu): Check for violations of the
236
        No_Implicit_Dynamic_Code restriction. This checking used to be done in
237
        the front end, but is moved here so we can make it more accurate.
238
 
239
2007-12-13  Pascal Obry  
240
 
241
        * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
242
         version is provided for older GNU/Linux distribution not
243
         supporting thread affinity sets.
244
 
245
        * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
246
        call.
247
        (bit_field): New packed boolean type used by cpu_set_t.
248
        (cpu_set_t): New type corresponding to the C type with
249
        the same name. Note that on the Ada side we use a bit
250
        field array for the affinity mask. There is not need
251
        for the C macro for setting individual bit.
252
        (pthread_setaffinity_np): New imported routine.
253
 
254
        * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
255
        no null.
256
        (Create_Task): Set the processor affinity mask if information
257
        is present.
258
 
259
        * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
260
 
261
2007-12-13  Robert Dewar  
262
 
263
        * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
264
        s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
265
        s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
266
        s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
267
        s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
268
        s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
269
        s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
270
        i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
271
        for subprogram pointers.
272
 
273
        * g-ctrl_c.adb: New file.
274
 
275
        * g-ctrl_c.ads (Install_Handler): New body.
276
 
277
        * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
278
        instead of obsolete function Is_Always_Inlined.
279
        (Freeze_Entity): check for tagged type in imported C subprogram
280
        (Freeze_Entity): check for 8-bit boolean in imported C subprogram
281
        (Freeze_Entity): check for convention Ada subprogram pointer in
282
        imported C subprogram.
283
        (Freeze_Fixed_Point_Type): In the case of a base type where the low
284
        bound would be chopped off and go from negative to zero, force
285
        Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
286
        bound) so that the size computation for the base type will take
287
        negative values into account.
288
 
289
2007-12-13  Eric Botcazou  
290
            Bob Duff  
291
            Tristan Gingold  
292
 
293
        * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
294
        system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
295
        system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
296
        system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
297
        system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
298
        system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
299
        system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
300
        system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
301
        system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
302
        system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
303
        system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
304
        (Always_Compatible_Rep): New flag to control trampolines globally.
305
        (Dynamic_Trampolines_Used): New flag for implementing the
306
        No_Implicit_Dynamic_Code restriction more correctly (not yet used,
307
        and not yet set correctly for some targets).
308
 
309
        * s-taprop-vxworks.adb: Use stack limit method of stack checking.
310
        Simply indirectly call s-stchop when a task is created.
311
 
312
        * ali.ads:
313
        New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
314
        appears as an argument (entries A) in an ALI file.
315
 
316
        * fe.h (Stack_Check_Limits): Declare new target parameter.
317
        (Check_Implicit_Dynamic_Code_Allowed): New procedure.
318
 
319
        * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
320
        This variable is declared in C to be sure not subject to elaboration
321
        code.
322
        (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
323
        Storage_Error.
324
 
325
        * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
326
        (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
327
 
328
        * s-stchop.ads: Add comments.
329
 
330
        * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
331
        limit method of stack checking.
332
 
333
        * s-stchop-limit.ads: New file.
334
 
335
2007-12-13  Robert Dewar  
336
 
337
        * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
338
        a-cihama.adb, g-awk.adb,
339
        s-inmaop-posix.adb: Update handling of assigned value/unreferenced
340
        warnings
341
 
342
        * exp_smem.adb: Update handling of assigned value/unreferenced warnings
343
 
344
        * sem.adb: Update handling of assigned value/unreferenced warnings
345
 
346
        * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
347
 
348
        * lib-xref.ads: Improve documentation for k xref type
349
 
350
        * lib-xref.adb:
351
        Update handling of assigned value/unreferenced warnings
352
        (Generate_Reference): Warning for reference to entity for which a
353
        pragma Unreferenced has been given should be unconditional.
354
        If the entity is a discriminal, mark the original
355
        discriminant as referenced.
356
 
357
        * sem_warn.ads, sem_warn.adb
358
        (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
359
        no entities referenced in package
360
        (Check_One_Unit): Don't give message about no entities referenced in
361
        a package if a pragma Unreferenced has appeared.
362
        Handle new warning flag -gnatw.a/-gnatw.A
363
        Update handling of assigned value/unreferenced warnings
364
 
365
        * atree.h: Add flags up to Flag247
366
        (Flag231): New macro.
367
 
368
2007-12-13  Jose Ruiz  
369
 
370
        * adaint.h: (__gnat_plist_init): Not defined for RTX.
371
 
372
        * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
373
        RTX systems.
374
 
375
        * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
376
        (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
377
        EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
378
        GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
379
 
380
        * mingw32.h:
381
        Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
382
 
383
        * sysdep.c (winflush_function for RTX): Procedure that does nothing
384
        since we only have problems with Windows 95/98, which are not
385
        supported by RTX.
386
        (__gnat_ttyname): Return the empty string on Nucleus, just as
387
        done on vxworks.
388
 
389
2007-12-13  Robert Dewar  
390
 
391
        * a-textio.adb, a-textio.ads:
392
        Extensive changes to private part for wide character encoding
393
 
394
        * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
395
        (Look_Ahead): Fix mishandling of encoded sequences
396
        Move declaration of Wch_Con to private part (should not be visible)
397
 
398
        * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
399
        UTF-8. Probably this is never used, but if it is, brackets is
400
        clearly correct.
401
 
402
        * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
403
        setting wide character encoding for no main program case and when
404
        encoding is specified using -W?
405
        Initialize stack limit of environment task if stack limit method of
406
        stack checking is enabled.
407
        (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
408
        (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
409
        (Get_Main_Unit_Name): New function.
410
        (Gen_Adainit_Ada): Add call to main program for .NET when needed.
411
        (Gen_Output_File): Set Bind_Main_Program to True for .NET
412
 
413
        * bindusg.adb: Add line for -Wx switch
414
 
415
        * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
416
        Add comments
417
        Add new useful constant WC_Longest_Sequences
418
 
419
        * switch-b.adb: Clean up handling of -Wx switch
420
        For -gnatWx, set Wide_Character_Encoding_Method_Specified
421
 
422
        * switch-c.adb: -gnatg activates warning on assertion errors
423
        For -gnatWx, set Wide_Character_Encoding_Method_Specified
424
 
425
        * s-wchcon.adb: (Is_Start_Of_Encoding): New function
426
 
427
2007-12-13  Robert Dewar  
428
            Ed Schonberg  
429
 
430
        * a-ngcoty.adb: New pragma Fast_Math
431
 
432
        * opt.adb: New pragma Fast_Math
433
 
434
        * par-prag.adb:
435
        Add Implemented_By_Entry to the list of pragmas which do not require any
436
        special processing.
437
        (Favor_Top_Level): New pragma.
438
        New pragma Fast_Math
439
 
440
        * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
441
        (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
442
        Expand_Allocator_Expression): Take into account VM_Target
443
        (Expand_Attribute, case 'Identity):  Handle properly the case where
444
        the prefix is a task interface.
445
        New pragma Fast_Math
446
 
447
        * par.adb (Next_Token_Is): New function
448
        (P_Pragma): Add Skipping parameter
449
        (U_Left_Paren): New procedure
450
        (U_Right_Paren): New procedure
451
        New pragma Fast_Math
452
 
453
        * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
454
        subunit
455
        New pragma Fast_Math
456
 
457
        * sem_prag.adb: Add significance value to table Sig_Flag for pragma
458
        Implemented_By_Entry.
459
        (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
460
        (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
461
        items, since it can apply to more than one overloadable entity. Set
462
        new flag Has_Pragma_Inline_Always for Inline_Always case.
463
        (Analyze_Pragma, case Complex_Representation): Improve error message.
464
        (Analyze_Pragma, case Assert): When assertions are disabled build the
465
        rewritten code with Sloc of expression rather than pragma, so new
466
        warning about failing is not deleted.
467
        (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
468
        protected types and update error message to reflect that. Test whether
469
        the protected type is allowed for the pragma (an error is issued if the
470
        type has any entries, or components that do not have preelaborable
471
        initialization).
472
        New pragma Fast_Math
473
        (Analyze_Pragma, case No_Return): Handle generic instance
474
 
475
        * snames.h, snames.ads, snames.adb:
476
        Add new predefined name for interface primitive _Disp_Requeue.
477
        New pragma Fast_Math
478
 
479
        * a-tags.ads, a-tags.adb: New calling sequence for
480
        String_To_Wide_[Wide_]String
481
        (Secondary_Tag): New subprogram.
482
 
483
        * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
484
        from Exp_Attr
485
        New calling sequence for String_To_Wide_[Wide_]String
486
        (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
487
        the use of the secondary stack for image routines.
488
 
489
        * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
490
        calling sequence for String_To_Wide_[Wide_]String
491
 
492
        * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
493
        Ada 95 mode
494
        (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
495
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
496
 
497
        * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
498
        (P_Formal_Part): Use Skipping parameter in P_Pragma call
499
        to improve error recovery
500
 
501
        * par-util.adb (Next_Token_Is): New function
502
        (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
503
 
504
        * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
505
        semicolon if missing
506
        (P_Pragma): Implement new Skipping parameter
507
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
508
        Fix location of flag for unrecognized pragma message
509
 
510
        * par-tchk.adb (U_Left_Paren): New procedure
511
        (U_Right_Paren): New procedure
512
 
513
2007-12-13  Geert Bosch  
514
 
515
        * a-tifiio.adb:
516
        (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
517
        the second or later Scaled_Divide would omit leading zeroes,
518
        resulting in too few digits produced and a Layout_Error as result.
519
        (Put): Initialize Pos.
520
 
521
2007-12-13  Robert Dewar  
522
 
523
        atree.ads, atree.adb (Flag231..Flag247): New functions
524
        (Set_Flag231..Set_Flag247): New procedures
525
        (Basic_Set_Convention): Rename Set_Convention to be
526
        Basic_Set_Convention
527
        (Nkind_In): New functions
528
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
529
 
530
        * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
531
        instead
532
         of obsolete function Is_Always_Inlined
533
        (Register_Predefined_DT_Entry): Initialize slots of the second
534
        secondary dispatch table.
535
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
536
        (Expand_N_Function_Call): Remove special provision for stack checking.
537
 
538
        * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
539
        Include _Disp_Requeue in the list of predefined operations.
540
        (Find_Interface_ADT): Modified to fulfill the new specification.
541
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
542
 
543
        * par-ch4.adb, nlists.ads, nlists.adb:
544
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
545
 
546
        * sinfo.ads, sinfo.adb: (Nkind_In): New functions
547
        Fix location of flag for unrecognized pragma message
548
 
549
        * sem_ch7.adb: Use Nkind_In
550
 
551
2007-12-13  Vincent Celier  
552
 
553
        * opt.ads:
554
        Indicate what flags are used by the Project Manager, gprbuild and
555
        gprclean.
556
        (Opt.Follow_Links_For_Dirs): New flag
557
        (Warn_On_Assertion_Failure): New flag
558
        (Wide_Character_Encoding_Method_Specified): New flag
559
        (Suppress_All_Inlining): New switch set by -fno-inline
560
        (Real_VMS_Target): New flag
561
        New pragma Fast_Math
562
 
563
2007-12-13  Robert Dewar  
564
 
565
        * back_end.adb: Recognize -fno-inline
566
 
567
2007-12-13  Robert Dewar  
568
 
569
        * checks.adb: Fix optimization problem with short-circuited form
570
 
571
2007-12-13  Bob Duff  
572
 
573
        * clean.adb (Usage): Add line for -aP
574
        (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
575
        with a parameter "procedure Usage", instead of passing a pointer to a
576
        procedure. This is to eliminate trampolines (since the Usage procedure
577
        is often nested in a main procedure, and it would be inconvenient to
578
        unnest it).
579
 
580
        * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
581
        to be generic, with a parameter "procedure Callback (...)", instead of
582
        passing a pointer to a procedure. This is to eliminate trampolines
583
        (since the Callback procedure is usually nested).
584
 
585
        * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
586
        gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
587
        (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
588
 
589
        * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
590
        Use the generic Heap_Sort_G instead of Heap_Sort_A.
591
 
592
2007-12-13  Hristian Kirtchev  
593
 
594
        * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
595
        (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
596
        (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
597
        (Renamed_In_Spec): New flag
598
        (Has_Pragma_Inline_Always): New flag
599
        Add missing doc for pragma Obsolescent_Warning
600
        Add missing doc for 17 additional unused flags (230-247)
601
        (Is_Derived_Type): Remove condition "not Is_Generic_Type".
602
        Alphabetize with clauses.
603
        Separate Is_Thunk and Has_Thunks flags
604
        (Write_Entity_Flags): Add forgotten entry for Has_Thunks
605
        (Related_Interface): Renamed to Related_Type.
606
        (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
607
        (Set_Is_Flag): Restrict the assertion.
608
 
609
2007-12-13  Vincent Celier  
610
 
611
        * errout.adb (Output_Source_Line): Do not keep a trailing space after
612
        the source line number if the source line is empty.
613
 
614
2007-12-13  Geert Bosch  
615
 
616
        * eval_fat.adb (Decompose_Int): Handle argument of zero.
617
        (Compose): Remove special casing of zero.
618
        (Exponent): Likewise.
619
        (Fraction): Likewise.
620
        (Machine): Likewise.
621
        (Decompose): Update comment.
622
 
623
2007-12-13  Ed Schonberg  
624
 
625
        * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
626
        limited ancestor part, initialize controllers of enclosing record
627
        before expanding ancestor aggregate.
628
        (Gen_Assign): If a component of the aggregate is box-initialized, add
629
        code to call Initialize if the component is controlled, and explicit
630
        assignment of null if the component is an access type.
631
 
632
        Handle properly aggregates for limited types that appear in object
633
        declarations when the aggregate contains controlled values such as
634
        protected types.
635
        When expanding limited aggregates into individual components, do not
636
        call Adjust on controlled components that are limited.
637
 
638
2007-12-13  Ed Schonberg  
639
 
640
        * expander.adb: Take into account N_Subprogram_Renaming_Declaration
641
 
642
2007-12-13  Hristian Kirtchev  
643
 
644
        * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
645
        predefined primitive _Disp_Requeue.
646
        (Make_Predefined_Primitive_Specs): Create the spec for predefined
647
        primitive _Disp_Requeue.
648
        (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
649
        type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
650
        (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
651
        an interface type. In case of limited interfaces we now declare all the
652
        predefined primitives associated with synchronized interfaces as
653
        abstract.
654
        (Predef_Spec_Or_Body): For interface types generate abstract subprogram
655
        declarations.
656
        (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
657
        tagged type is an interface type and there is no user-defined equality
658
        function.
659
        Add also bodies of predefined primitives associated with synchronized
660
        interfaces.
661
        (Freeze_Record_Type): Do not build bodies of predefined primitives of
662
        interface types because they are now defined abstract.
663
        Add missing documentation.
664
        (Expand_Record_Controller): Update occurrence of Related_Interface
665
        to Related_Type.
666
        (Build_Offset_To_Top_Functions): Do nothing in case of VM.
667
        (Expand_N_Object_Declaration): Take into account VM_Target when handling
668
        class wide interface object declaration.
669
        (Expand_Previous_Access_Type): Do not create a duplicate master entity
670
        if the access type already has one.
671
        (Expand_N_Object_Declaration): Defend against attempt to validity check
672
        generic types. Noticed for -gnatVcf specified with previous errors.
673
 
674
2007-12-13  Arnaud Charlet  
675
 
676
        * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
677
        Expand_Allocator_Expression): Take into account VM_Target
678
 
679
        * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
680
        secondary stack when VM_Target /= No_VM
681
 
682
2007-12-13  Javier Miranda  
683
            Ed Schonberg  
684
 
685
        * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
686
        Is_Complation_Unit by Is_Library_Level_Entity in the code
687
        that decides if the static dispatch tables need to be built.
688
        (Wrap_Transient_Declaration): Do not generate a finalization call if
689
        this is a renaming declaration and the renamed object is a component
690
        of a controlled type.
691
 
692
2007-12-13  Gary Dismukes  
693
 
694
        * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
695
        In the case where the renamed subprogram is a dereference, call
696
        Force_Evaluation on the prefix.
697
 
698
2007-12-13  Hristian Kirtchev  
699
            Ed Schonberg  
700
 
701
        * exp_ch9.adb (Expand_N_Asynchronous_Select,
702
        Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
703
        comment reformatting.
704
        (Set_Privals): Inherit aliased flag from formal. From code reading.
705
        (Build_Simple_Entry_Call): Out parameters of an access type are passed
706
        by copy and initialized from the actual. This includes entry parameters.
707
        (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
708
        and Ada 2005 models of requeue.
709
        (Null_Statements): Still connsider do-end block null if it contains
710
        Unreferenced and Warnings pragmas.
711
        (Expand_N_Accept_Statement): Do not optimize away null do end if
712
        dispatching policy is other than defaulted.
713
        (Expand_N_Timed_Entry_Call): When the triggering statement is a
714
        dispatching call, manually analyze the delay statement.
715
        (Find_Parameter_Type): Move subprogram to Sem_Util.
716
 
717
2007-12-13  Hristian Kirtchev  
718
            Javier Miranda  
719
 
720
        * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
721
        _Disp_Requeue occupies dispatch table slot number 15. Move
722
        _Disp_Timed_Select to slot 16.
723
        (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
724
        generate the spec and body of _Disp_Reqeueue.
725
        (Make_DT): Build and initialize the second dispatch table.
726
        Handle initialization of RC_Offset when the parent
727
        is a private type with variable size components.
728
        (Make_Secondary_DT): Complete documentation. Add support to
729
        initialize the second dispatch table.
730
        (Make_Tags): Generate the tag of the second dispatch table.
731
        (Register_Primitive): Add support to register primitives in the
732
        second dispatch table.
733
 
734
2007-12-13  Pascal Obry  
735
 
736
        * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
737
        Windows. This signal is used by gnatmake to kill child processes for
738
        example.
739
 
740
2007-12-13  Javier Miranda  
741
 
742
        * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
743
        support for generic dispatching constructor calls in which we need to
744
        locate the tag of a secondary dispatch table associated with an
745
        interface type to properly dispatch the call.
746
        (Expand_N_Attribute_Reference [case Address],
747
        Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
748
        handling of VM targets.
749
 
750
2007-12-13  Robert Dewar  
751
            Ed Schonberg  
752
 
753
        * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
754
        assert fail
755
 
756
        * ug_words: Add entries for -gnatw.a -gnatw.A
757
 
758
        * sem_res.adb (Set_String_Literal_Subtype): If the context of the
759
        literal is a subtype with non-static constraints, use the base type of
760
        the context as the base of the string subtype, to prevent type
761
        mismatches in gigi.
762
        (Resolve_Actuals): If the actual is an entity name, generate a
763
        reference before the actual is resolved and expanded, to prevent
764
        spurious warnings on formals of enclosing protected operations.
765
        (Analyze_Overloaded_Selected_Component): If type of prefix if
766
        class-wide, use visible components of base type.
767
        (Resolve_Selected_Component): Ditto.
768
        (Resolve_Short_Circuit): Detect case of pragma Assert argument
769
        evaluating to False, and issue warning message.
770
 
771
        * usage.adb: Add lines for -gnatw.a and -gnatw.A
772
 
773
2007-12-13  Emmanuel Briot  
774
 
775
        * g-calend.ads (No_Time): New constant, to represent an uninitialized
776
        time value
777
 
778
        * g-catiio.ads, g-catiio.adb (Value): Added support for more date
779
        formats.
780
        (Month_Name_To_Number): New subprogram
781
 
782
        * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
783
        letter to upper-case.
784
 
785
2007-12-13  Robert Dewar  
786
            Ed Schonberg  
787
 
788
        * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
789
 
790
        * layout.adb (Resolve_Attribute, case 'Access): If designated type of
791
        context is a limited view, use non-limited view when available. If the
792
        non-limited view is an unconstrained array, this enforces consistency
793
        requirements in 3.10.2 (27).
794
        (Layout_Type): For an access type whose designated type is a limited
795
        view, examine its declaration to determine if it is an unconstrained
796
        array, and size the access type accordingly.
797
        (Layout_Type): Do not force 32-bits for convention c subprogram
798
        pointers in -gnatdm mode, only if real vms target.
799
 
800
        * sem_attr.adb (Analyze_Access_Attribute): Use new flag
801
        Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
802
        (Analyze_Access_Attribute,Attribute_Address): Remove checks for
803
        violations of the No_Implicit_Dynamic_Code restriction.
804
        (Resolve_Attribute, case 'Access): If designated type of context is a
805
        limited view, use non-limited view when available. If the non-limited
806
        view is an unconstrained array, this enforces consistency requirements
807
        in 3.10.2 (27).
808
        (Layout_Type): For an access type whose designated type is a limited
809
        view, examine its declaration to determine if it is an unconstrained
810
        array, and size the access type accordingly.
811
 
812
2007-12-13  Vincent Celier  
813
 
814
        * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
815
        object directory of main project does not exist.
816
        On VMS, correctly set then environment variable for the source
817
        directories.
818
 
819
2007-12-13  Vasiliy Fofanov  
820
 
821
        * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
822
        set to True this procedure will create the value of type REG_EXPAND_SZ.
823
        It was only possible to create REG_SZ values before.
824
 
825
2007-12-13  Robert Dewar  
826
 
827
        * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
828
        g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
829
        namet-sp.adb, namet-sp.ads: New files.
830
 
831
        * g-speche.adb: Use generic routine in g-spchge
832
 
833
        * s-wchcnv.ads, s-wchcnv.adb:
834
        Minor code cleanup (make formal type consistent with spec)
835
 
836
        * namet.adb: Update comments.
837
 
838
        * par-endh.adb (Evaluate_End_Entry): Use new
839
        Namet.Sp.Is_Bad_Spelling_Of function
840
 
841
        * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
842
 
843
        * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
844
        ancestor is an access type initialized with a box, set its type
845
        explicitly, for use in subsequent expansion.
846
        (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
847
        function
848
 
849
2007-12-13  Robert Dewar  
850
 
851
        * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
852
        access Vstring)
853
 
854
2007-12-13  Robert Dewar  
855
 
856
        * inline.adb (Back_End_Cannot_Inline): Use new flag
857
        Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
858
 
859
        * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
860
        Has_Pragma_Inline_Always instead.
861
        of obsolete function Is_Always_Inlined
862
        (Build_Body_To_Inline): Same change
863
        (Cannot_Inline): Same change
864
        Do not give warning on exception raise in No_Return function
865
 
866
        * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
867
        component has two inconsistent component clauses in the same record
868
        representation clause, favor the message that complains about
869
        duplication rather than inconsistency.
870
        Update comments.
871
        (Record_Representation_Clause): Do not warn on missing component
872
        clauses for inherited components of a type extension.
873
        (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
874
        an overloadable item if it is a pragma that can apply to multiple
875
        overloadable entities (e.g. Inline) because a pragma cannot be on
876
        more than one chain at a time.
877
        (Validate_Unchecked_Conversion): Add code to warn on unchecked
878
        conversion where one of the operands is Ada.Calendar.Time.
879
        (Analyze_Attribute_Definition_Clause): Fix typo in error message.
880
        For now, ignore Component_Size clause on VM targets, as done for
881
        pragma Pack.
882
 
883
2007-12-13  Emmanuel Briot  
884
            Vincent Celier  
885
 
886
        * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
887
        string
888
        (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
889
        prj.ads
890
        (Hash): Move instantiation of System.HTable.Hash from spec to body
891
        (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
892
        systems, since we do not need to recompute the Name_Id for the canonical
893
        file name.
894
        (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
895
        as a parameter. This parameter is in fact always "ada" in all calls, and
896
        we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
897
        while loading a project with 40000 files
898
 
899
        * prj-attr.adb: Fix name of attribute Dependency_Driver
900
        Change the kind of indexing for attribute Root
901
 
902
        * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
903
        variables already declared, in case constructions.
904
 
905
        * prj-env.adb (Initialize): Reset Current_Source_Path_File and
906
        Current_Object_Path_File to No_Path.
907
 
908
        * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
909
        ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
910
 
911
        * prj-makr.adb: new parameter Current_Dir
912
 
913
        * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
914
        Ada sources when language is not Ada.
915
        Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
916
        (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
917
        (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
918
        (Locate_Directory): Always resolve links when computing Canonical_Path
919
        (Look_For_Sources): Make sure that Name_Buffer contains the file name
920
        in Source_Files before checking for the presence of a directory
921
        separator.
922
        Optimize calls to Name_Find when on case sensitive systems.
923
        (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
924
        as a parameter.
925
        (Prj.Nmsc.Check): new parameter Current_Dir
926
        (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
927
        cannot be empty and the spec suffix cannot be the same as the body or
928
        separate suffix.
929
        (Get_Unit): When a file name can be of several unit kinds (spec, body or
930
        subunit), always consider the longest suffix.
931
        (Check_Configuration): Do not issue an error if there is no compiler
932
        for a language. Just issue a warning and ignore the sources for the
933
        language.
934
        (Check_Library_Attributes): Only check Library_Dir if Library_Name is
935
        not empty.
936
        (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
937
        (Unit_Exceptions): New hash table
938
        (Check_Naming_Schemes): Check if a file that could be a unit because of
939
        the naming scheme is not in fact a source because there is an exception
940
        for the unit.
941
        (Look_For_Sources): Put the unit exceptions in hash table
942
        Unit_Exceptions
943
        (Get_Unit_Exceptions): Give initial value No_Source to local variable
944
        Other_Part to avoid exception when code is compiled with validity
945
        checking.
946
        (Get_Sources_From_File): Check that there is no directory information
947
        in the file names.
948
        (Look_For_Sources): Check that there is no directory information in the
949
        list of file names in Source_Files.
950
        (Look_For_Sources): In multi-language mode, do not allow exception file
951
        names that are excluded.
952
        (Excluded_Sources_Htable): New hash table
953
        (Search_Directories.Check_File): New procedure to simplify
954
        Search_Directories.
955
        (Search_Directories): Do not consider excluded sources
956
        (Look_For_Sources): Populate Excluded_Sources_Htable before calling
957
        Search_Directories.
958
        (Get_Exceptions): Set component Lang_Kind of Source_Data
959
        (Get_Unit_Exceptions): Ditto
960
        (Search_Directories): Ditto
961
 
962
        * prj-pars.adb: new parameter Current_Dir
963
 
964
        * prj-part.ads, prj-part.adb:
965
        Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
966
        (Opt.Follow_Links_For_Dirs): New flag
967
        (Project_Path_Name_Of): Cache information returned by this routine as
968
        Locate_Regular_File is a costly routine. The code to output a log
969
        information and the effective call to Locate_Regular_File is now
970
        factorized into a routine (code clean-up).
971
        (Parse, Parse_Single_Project): new parameter Current_Dir
972
        When main project file cannot be found, indicate in the error
973
        message the project path that was used to do the search.
974
 
975
        * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
976
        (Prj.Proc.Process*): new parameter Current_Dir
977
 
978
        * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
979
 
980
2007-12-13  Bob Duff  
981
 
982
        * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
983
        procedure to be called from the back end to check the
984
        No_Implicit_Dynamic_Code restriction.
985
 
986
2007-12-13  Arnaud Charlet  
987
 
988
        * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
989
        Fixes another case where RTE_Available_Call was ignored instead of being
990
        taken into account.
991
        (Load_Fail): Ditto.
992
 
993
        * rtsfind.ads: Add new entries.
994
 
995
2007-12-13  Robert Dewar  
996
 
997
        * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
998
        g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
999
 
1000
        * scn.adb: Implement BOM recognition
1001
 
1002
2007-12-13  Thomas Quinot  
1003
            Ed Schonberg  
1004
 
1005
        * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
1006
        subprogram body that acts as its own spec may not have a non-private
1007
        WITH clause on a private sibling.
1008
        (Build_Unit_Name): If the parent unit in the name in a with_clause on a
1009
        child unit is a renaming, create an implicit with_clause on that
1010
        parent, and not on the unit it renames, to prevent visibility errors
1011
        in the current unit.
1012
 
1013
2007-12-13  Ed Schonberg  
1014
 
1015
        * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
1016
        renaming declaration, use the Slocs of the formal parameters from the
1017
        declaration of the formal subprogram when creating the formal parameter
1018
        entities in the renaming declaration.
1019
        (Analyze_Formal_Type_Declaration): Change the placement of the error
1020
        message concerning illegal known discriminants. It is now posted on the
1021
        type rather than on the first discriminant. This change ensures early
1022
        error report.
1023
        (Freeze_Subprogram_Body): If the generic subprogram is nested within
1024
        the package body that contains the instance, do not generate an
1025
        out-of-place freeze node for the enclosing package.
1026
        (Collect_Previous_Instantiations): Ignore internal instantiations
1027
        generated for formal packages.
1028
        (Validate_Derived_Type_Instance): Add a check that when a formal
1029
        derived type is Known_To_Have_Preelab_Init then the actual type must
1030
        have preelaborable initialization, and issue an error when this
1031
        condition is violated.
1032
 
1033
2007-12-13  Robert Dewar  
1034
 
1035
        * s-imenne.adb, s-imenne.ads: New files.
1036
 
1037
        * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
1038
        s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
1039
        s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
1040
        s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
1041
        s-imgwch.ads: New calling sequence for Image routines to avoid sec
1042
        stack usage.
1043
 
1044
2007-12-13  Javier Miranda  
1045
            Ed Schonberg  
1046
 
1047
        * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
1048
        generation of spurious error if parent is an interface type; caused
1049
        because predefined primitive bodies will be generated later by
1050
        Freeze_Record_Type.
1051
        (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
1052
        flag.
1053
        (Derive_Subprograms): Handle derivations of predefined primitives
1054
        after all the user-defined primitives to ensure that they are
1055
        found in proper order in instantiations.
1056
        (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
1057
        of Related_Interface to Related_Type.
1058
        (Record_Type_Declaration): Minor reordering of calls to decorate the
1059
        Tag component because the entity must have set its Ekind attribute
1060
        before setting its Is_Tag attribute.
1061
        (Analyze_Subtype_Declaration): In the case of subtypes with
1062
        Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
1063
 
1064
2007-12-13  Hristian Kirtchev  
1065
            Ed Schonberg  
1066
 
1067
        * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
1068
        statement to the list of contexts where a selected component with a
1069
        concurrent tagged type prefix should yield a primitive operation.
1070
        (Find_Primitive_Operation): Handle case of class-wide types.
1071
        (Analyze_Overloaded_Selected_Component): If type of prefix is
1072
        class-wide, use visible components of base type.
1073
        (Resolve_Selected_Component): Ditto.
1074
        (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
1075
        formal of a generic subprogram. find candidate interpretations by
1076
        scanning the list of generic formal declarations.:
1077
        (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
1078
        type from a limited_with_clause, and the full view is available, use it
1079
        for subsequent semantic checks.
1080
        (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
1081
        (Find_Primitive_Operation): New function.
1082
        (Analyze_Overloaded_Selected_Component): insert explicit dereference
1083
        only once if several interpretations of the prefix yield an access type.
1084
        (Try_Object_Operation): Code and comment cleanup.
1085
        (Analyze_Selected_Component): Reorder local variables. Minot comment and
1086
        code reformatting. When the type of the prefix is tagged concurrent, a
1087
        correct interpretation might be available in the primitive and
1088
        class-wide operations of the type.
1089
 
1090
2007-12-13  Robert Dewar  
1091
            Ed Schonberg  
1092
 
1093
        * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
1094
        renaming entry as subprogram using rename-as-body if subprogram spec
1095
        frozen.
1096
        (Use_One_Type): The clause is legal on an access type whose designated
1097
        type has a limited view.
1098
        (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
1099
        (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
1100
        (Analyze_Renamed_Primitive_Operation): new procedure to determine the
1101
        operation denoted by a selected component.
1102
        (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
1103
        it can be an expression, possibly overloaded, that returns a task or
1104
        an access to one.
1105
 
1106
2007-12-13  Hristian Kirtchev  
1107
            Gary Dismukes  
1108
 
1109
        * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
1110
        requeue statement is dispatching. Do not emit an error when the name is
1111
        not an entry and the context is a dispatching select. Add code to
1112
        perform subtype conformance between the formals of the current entry
1113
        and those of the target interface primitive.
1114
        (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
1115
        Timed_Entry_Call): Analyze the triggering statement as the first step of
1116
        the processing. If this is a dispatching select, postpone the analysis
1117
        of all select statements until the Expander transforms the select. This
1118
        approach avoids generating duplicate identifiers after the Expander has
1119
        replicated some of the select statements. In case the Expander is
1120
        disabled, perform regular analysis.
1121
        (Check_Triggering_Statement): New routine.
1122
        (Analyze_Requeue): Exclude any interpretations that are not entries when
1123
        checking overloaded names in a requeue. Also test type conformance for
1124
        matching interpretations rather than requiring subtype conformance at
1125
        that point to conform with the RM's resolution rule for requeues.
1126
 
1127
2007-12-13  Ed Schonberg  
1128
 
1129
        * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
1130
        inherited operation is a defaulted tag-indeterminate call, and there is
1131
        a statically tagged actual, use the static tag as a controlling actual
1132
        for the defaulted actual.
1133
 
1134
2007-12-13  Geert Bosch  
1135
 
1136
        * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
1137
        context, so do not call Check_Non_Static_Context.
1138
 
1139
2007-12-13  Hristian Kirtchev  
1140
 
1141
        * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
1142
        whether formal E is an entity which may have parameters.
1143
 
1144
2007-12-13  Bob Duff  
1145
            Javier Miranda  
1146
            Robert Dewar  
1147
 
1148
        * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
1149
        (Set_Convention): New procedure to set the Convention flag, and in
1150
        addition make sure the Favor_Top_Level flag is kept in sync (all
1151
        foreign-language conventions require Favor_Top_Level = True).
1152
        (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
1153
        to Related_Type.
1154
        (Collect_Interfaces_Info): Minor update to handle the two secondary
1155
        dispatch tables. Update occurrence of Related_Interface to Related_Type.
1156
        (Generate_Parent_Ref): Add parameter to specify entity to check
1157
        (Is_Preelaborable_Expression): Allow the name of a discriminant to
1158
        initialize a component of a type with preelaborable initialization.
1159
        This includes the case of a discriminal used in such a context.
1160
        (Is_Dependent_Component_Of_Mutable_Object): Take into account the
1161
        latest Ada 2005 rules about renaming and 'Access of
1162
        discriminant-dependent components.
1163
        (Check_Nested_Access): Add handling when there are no enclosing
1164
        subprograms (e.g. case of a package body).
1165
        (Find_Parameter_Type): Factor routine from several other compiler files.
1166
        Remove routine from Find_Overridden_Synchronized_Primitive.
1167
 
1168
2007-12-13  Thomas Quinot  
1169
 
1170
        * sinput.adb (Get_Source_File_Index): Add assertion to guard against
1171
        an invalid access to an uninitialized slot in the
1172
        Source_File_Index_Table.
1173
 
1174
2007-12-13  Thomas Quinot  
1175
 
1176
        * sinput-l.adb (Load_File): Disable style checks when preprocessing.
1177
 
1178
2007-12-13  Bob Duff  
1179
 
1180
        * s-soflin.ads: Apply new pragma Favor_Top_Level to all
1181
        access-to-subprogram types in this package.
1182
 
1183
2007-12-13  Olivier Hainque  
1184
 
1185
        * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
1186
        with Stack_Grows_Down in System.Parameters. Rename Array_Address into
1187
        Stack_Overlay_Address and document that we are using an internal
1188
        abstraction.
1189
        (Byte_Size, Unsigned_32_Size): Remove, now useless.
1190
        (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
1191
        consistently throughout the various implementation pieces.
1192
 
1193
        * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
1194
        overlay we are using to fill the stack area with patterns.
1195
        (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
1196
        (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
1197
        (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
1198
 
1199
2007-12-13  Robert Dewar  
1200
 
1201
        * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
1202
 
1203
2007-12-13  Arnaud Charlet  
1204
 
1205
        * s-tassta.adb:
1206
        (Create_Task): Take into account tasks created by foreign threads.
1207
        Code clean up: use constants instead of hard coded values.
1208
 
1209
2007-12-13  Robert Dewar  
1210
 
1211
        * styleg.adb (Check_Comment): More liberal rules for comment placement
1212
 
1213
2007-12-13  Olivier Hainque  
1214
 
1215
        * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
1216
        of Procedure Value instead of Frame Pointer as the invocation
1217
        identifier associated with the instruction pointer in each traceback
1218
        entry.
1219
 
1220
        * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
1221
        TB_Entry_For): Revert back to use of Procedure Value instead of Frame
1222
        Pointer as the invocation identifier passed to tbk$symbolize.
1223
 
1224
        * s-traent-vms.ads, s-traent-vms.adb
1225
        (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
1226
        Procedure Value instead of Frame Pointer as the invocation identifier
1227
        passed to tbk$symbolize.
1228
 
1229
2007-12-13  Robert Dewar  
1230
 
1231
        * tbuild.ads, tbuild.adb:
1232
        Fix location of flag for unrecognized pragma message
1233
 
1234
2007-12-13  Robert Dewar  
1235
 
1236
        * treepr.ads, treepr.adb: (pl): implement use of positive value
1237
        shorthands
1238
 
1239
2007-12-13  Robert Dewar  
1240
 
1241
        * xeinfo.adb: Remove warnings
1242
        * xnmake.adb: Remove warnings
1243
        * xsinfo.adb: Remove warnings
1244
        * xtreeprs.adb: Remove warnings
1245
        * xsnames.adb: Remove warnings
1246
 
1247
        * a-ngcoar.adb: Fix typo.
1248
        * s-interr.adb: Minor reformatting
1249
        * env.c: Minor reformatting.
1250
        * g-bytswa.adb: Minor reformatting.
1251
        * g-rannum.ads: Minor documentation improvements
1252
        * s-tasinf-mingw.adb: Minor header fix
1253
        * a-clrefi.adb: Minor reformatting
1254
        * g-sttsne.ads: Minor documentation improvement
1255
        * g-sttsne-locking.ads: Minor documentation improvement
1256
        * g-soliop-solaris.ads: Minor documentation improvement
1257
        * g-soliop-mingw.ads: Minor documentation improvement
1258
        * g-soliop.ads: Minor documentation improvement
1259
        * exp_aggr.ads: Minor reformatting
1260
        * debug.adb: Add documentation for the gprbuild debug flags
1261
        * exp_ch2.adb: Use Nkind_In to simplify code throughout
1262
        * exp_pakd.adb: Minor reformatting
1263
 
1264
        * g-altive.ads, g-alleve.adb: Remove assertions.
1265
        Add comment about minor differences between targets regarding
1266
        floating-point operations.
1267
 
1268
        * g-thread.adb: Remove pragma unreferenced.
1269
        * lib.ads: Minor reformatting
1270
        * par-ch9.adb: Minor reformatting of error messages
1271
        * sem_case.adb: Minor reformatting
1272
        * s-fileio.adb: Minor reformattinng
1273
        * s-vmexta.ads: Minor typo
1274
        * vxaddr2line.adb:
1275
        Take into account 'Success' value as per new GNAT warning.
1276
 
1277
2007-12-13  Vincent Celier  
1278
 
1279
        * a-direct.adb (Create_Path): Always take '/' as a directory separator,
1280
        even on Windows
1281
 
1282
2007-12-13  Robert Dewar  
1283
            Bob Duff  
1284
 
1285
        * gnat_ugn.texi: Dcoument new rules for style check comment alignment
1286
        Document that suffixes may be terminations of each others
1287
        Add doc for -gnatw.a and -gnatw.A
1288
        Document gnatbind -Wx switch
1289
        Document BOM recognition
1290
        Document pragma Implemented_By_Entry.
1291
        Document new units.
1292
 
1293
        * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
1294
        Add doc for pragma Unreferenced suppressing no entities referenced msg
1295
        Add documentation of GNAT.Directory_Operations.Iteration
1296
        Add documentation of GNAT.Random_Numbers
1297
        Add documentation for pragma Shared.
1298
        Correct documentation for Bit_Order
1299
        Add documentation for the Pool_Address attribute.
1300
        Fix and improve documentation of pragma machine_attribute.
1301
        New pragma Fast_Math
1302
        Document BOM recognition
1303
 
1304
        * vms_data.ads: Add entries for -gnatw.a -gnatw.A
1305
        Add /Wide_Character_Encoding for binder
1306
        Add qualifier for the new gnatpp option --no-separate-loop-then
1307
 
1308
2007-12-13  Matthew Heaney  
1309
 
1310
        * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
1311
        which generic formal operations are called for each operation.
1312
 
1313
2007-12-13  Olivier Hainque  
1314
 
1315
        * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
1316
        (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
1317
 
1318
2007-12-13  Emmanuel Briot  
1319
 
1320
        * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
1321
        Reference_Dir unless we actually need it.
1322
 
1323
2007-12-13  Vasiliy Fofanov  
1324
            Tristan Gingold  
1325
 
1326
        * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
1327
 
1328
        * s-osprim-vms.adb,
1329
        a-calend-vms.adb: Remove pragma warning off and add pragma
1330
        unreferenced.
1331
 
1332
2007-12-13  Robert Dewar  
1333
 
1334
        * impunit.adb: Add entries for missing units
1335
 
1336
        * Makefile.rtl: Add new run-time units.
1337
 
1338
        * Make-lang.in:  Update dependencies.
1339
 
1340
2007-12-13  Bob Duff  
1341
 
1342
        * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
1343
        types, set Can_Use_Internal_Rep appropriately, based on
1344
        Always_Compatible_Rep_On_Target.
1345
 
1346
2007-12-13  Gary Dismukes  
1347
            Arnaud Charlet  
1348
 
1349
        * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
1350
        it to the front end and setting the aamp_target environment variable
1351
        to the switch's argument to ensure that gnaampbind and gnaamplink will
1352
        take the specified library into account.
1353
        (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
1354
        target, since the CIL compiler supports an "object" file (.il files).
1355
 
1356
2007-12-13  Vincent Celier  
1357
 
1358
        * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
1359
        (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
1360
 
1361
2007-12-13  Geert Bosch  
1362
 
1363
        * s-parame-vxworks.adb:
1364
        Update comments to reflect usage of this package by Nucleus.
1365
 
1366
2007-12-13  Arnaud Charlet  
1367
 
1368
        * i-vxwork.ads: Kill new warning on Convention C, since changing the
1369
        spec would break code.
1370
 
1371
        * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
1372
 
1373
        * system-vxworks-alpha.ads: Removed.
1374
 
1375
2007-12-10  Eric Botcazou  
1376
 
1377
        * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
1378
 
1379
2007-12-09  Samuel Tardieu  
1380
 
1381
        PR ada/34366
1382
        * sem_ch3.adb (Designates_T): New function.
1383
        (Mentions_T): Factor reusable part of the logic into Designates_T.
1384
        Consider non-access parameters and access and non-access result.
1385
        (Check_Anonymous_Access_Components): Set ekind of anonymous access to
1386
        E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
1387
 
1388
        * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
1389
 
1390
2007-12-07  Ludovic Brenta  
1391
 
1392
        PR ada/34361
1393
        * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
1394
        the new implementation of target-specific calls.
1395
 
1396
2007-12-07  Olivier Hainque  
1397
 
1398
        * decl.c (gnat_to_gnu_entity) : When computing
1399
        the designated full view, only follow a second level Full_View link
1400
        for Non_Limited_Views of from_limited_with references.
1401
 
1402
2007-12-07  Samuel Tardieu  
1403
 
1404
        PR ada/15805
1405
        * sem_ch6.adb (Process_Formals): Prevent an access type formal
1406
        to be initialized with an access to constant object.
1407
 
1408
        * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
1409
        when an access to constant is used to initialize an access
1410
        value.
1411
 
1412
        PR ada/21346
1413
        * a-direct.adb (Compose): Containing_Directory can be an empty string.
1414
 
1415
2007-12-07  Olivier Hainque  
1416
 
1417
        PR ada/34173
1418
        * decl.c (gnat_to_gnu_entity) : When setting
1419
        the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
1420
        this is from an alignment clause on the GNAT entity.
1421
        * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
1422
        to distinguish the case where we set it from the type's alignment.
1423
        When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
1424
        whether this alignment was set from an explicit alignment clause.
1425
 
1426
2007-12-06  Eric Botcazou  
1427
 
1428
        * decl.c (make_packable_type): Revert last change.
1429
        (gnat_to_gnu_field): Avoid setting size and position multiple times.
1430
        * utils.c (finish_record_type): Retrieve the real name of the type.
1431
 
1432
2007-12-05  Eric Botcazou  
1433
 
1434
        * trans.c (lvalue_required_p): Take base node directly instead
1435
        of its parent.  Rename second parameter to 'gnu_type'.
1436
        : Return 0 if the node isn't the prefix.
1437
        : Likewise.
1438
        (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
1439
        Adjust calls to lvalue_required_p.
1440
 
1441
2007-12-05  Samuel Tardieu  
1442
 
1443
        PR ada/21489
1444
        * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
1445
        parameters of an entry call.
1446
 
1447
2007-12-03  Robert Dewar  
1448
            Samuel Tardieu  
1449
 
1450
        PR ada/34287
1451
        * sem_util.adb (Safe_To_Capture_Value): Do not capture values
1452
        of variables declared in a library-level package.
1453
 
1454
2007-12-02  Samuel Tardieu  
1455
 
1456
        * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
1457
        of Empty_String'Unchecked_Access.
1458
 
1459
        * Makefile.in: Add support for sh4-linux.
1460
 
1461
        * system-linux-sh4.ads: New file.
1462
 
1463
2007-12-01  Kostik Belousov  
1464
 
1465
        PR ada/33722
1466
        * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
1467
        and its argument must not be free()ed.
1468
 
1469
2007-11-29  Eric Botcazou  
1470
 
1471
        * decl.c (make_packable_type): Retrieve the real name of the type.
1472
        (maybe_pad_type): Simplify similar code.
1473
 
1474
2007-11-28  Samuel Tardieu  
1475
 
1476
        PR ada/15804
1477
        * par-ch3.adb (P_Variant_Part): Signal an error when anything other
1478
        than an identifier is used after "case" in a variant_part.
1479
 
1480
        PR ada/17318
1481
        * par-ch4.adb (Is_Parameterless_Attribute): New map.
1482
        (P_Name, Scan_Apostrophe block): Parse left parenthesis following
1483
        attribute name or not depending on the new map.
1484
 
1485
        * sem-attr.adb (Analyze_Attribute): Parameterless attributes
1486
        returning a string or a type will not be called with improper
1487
        arguments.
1488
 
1489
        * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
1490
 
1491
        * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
1492
 
1493
        PR ada/32792
1494
        * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
1495
        Signal an error when attribute argument is a fixed-point value of
1496
        an unknown type.
1497
 
1498
        PR ada/22559
1499
        * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
1500
        a derived ordinary fixed point type.
1501
 
1502
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
1503
        RM_Size when a Small clause is found.
1504
 
1505
2007-11-26  Andreas Krebbel  
1506
 
1507
        PR 34081/C++
1508
        * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
1509
        Pass 'false' for the new allocate_struct_function parameter.
1510
        * utils.c (build_function_stub): Likewise.
1511
 
1512
2007-11-25  Richard Guenther  
1513
 
1514
        * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
1515
        (gnat_poplevel): Likewise.
1516
 
1517
2007-11-25  Eric Botcazou  
1518
 
1519
        * decl.c (gnat_to_gnu_entity) : If the type has
1520
        strict alignment, no alignment clause and a known static size, cap
1521
        the type alignment to the greatest power of 2 factor of the size.
1522
        (gnat_to_gnu_field): If the field has a component clause, is aliased
1523
        or of a type with strict alignment, require that its size be equal to
1524
        that of the type.
1525
        (validate_size): Use the type size as the minimum size for a type with
1526
        strict alignment.
1527
 
1528
2007-11-23  Samuel Tardieu  
1529
 
1530
        * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
1531
        s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
1532
        s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
1533
        Use 'Access instead of 'Unchecked_Access in second and third
1534
        arguments of pthread_sigmask.
1535
 
1536
2007-11-23  Eric Botcazou  
1537
 
1538
        * decl.c (ceil_alignment): New function.
1539
        (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
1540
        (make_packable_type): Likewise.
1541
 
1542
2007-11-22  Olivier Hainque  
1543
 
1544
        * trans.c (gnat_to_gnu) : Reformat lines
1545
        to fit in 80 columns.
1546
 
1547
2007-11-21  Aurelien Jarno  
1548
 
1549
        * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
1550
        * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
1551
 
1552
2007-11-19  Eric Botcazou  
1553
 
1554
        PR ada/34098
1555
        * misc.c (gnat_adjust_rli): Delete.
1556
        (gnat_init): Do not initialize the translation code here.
1557
        Do not call set_lang_adjust_rli.
1558
        * trans.c (init_code_table): Make static.
1559
        (gnat_init_stmt_group): Delete.
1560
        (gigi): Initialize the translation code entirely here.
1561
        Emit debug info for the common types here instead of...
1562
        * utils.c (gnat_init_decl_processing): ...here.
1563
        * gigi.h (init_code_table): Delete.
1564
        (gnat_init_stmt_group): Likewise.
1565
 
1566
2007-11-16  Olivier Hainque  
1567
 
1568
        * utils2.c (build_call_alloc_dealloc) : Move the code
1569
        retrieving an allocator return value from a super-aligned address from
1570
        here to ...
1571
        * trans.c (gnat_to_gnu) : ... here, and don't
1572
        expect a super-aligned address for a fat or thin pointer.
1573
 
1574
2007-11-14  Eric Botcazou  
1575
 
1576
        * trans.c (call_to_gnu): Always set the source location on the call
1577
        expression.  If the function returns-by-target, also set it on the
1578
        address expression.
1579
 
1580
2007-11-14  Samuel Tardieu  
1581
 
1582
        * adaint.c, init.c, initialize.c, link.c: Remove system-specific
1583
        sections of non-supported Interix target.
1584
 
1585
        * s-osinte-interix.ads: Removed.
1586
 
1587
        * i-cstrin.ads (chars_ptr): Make it a C convention type.
1588
 
1589
2007-11-13  Samuel Tardieu  
1590
 
1591
        * a-tasatt.adb: Add a comment at the beginning of the package
1592
        explaining why in general 'Unchecked_Access must be used instead
1593
        of 'Access.
1594
 
1595
        * sem_prag.adb (Process_Convention): Move the test for the
1596
        entity on which the Convention pragma applies down to also
1597
        forbid pragma Convention on enumeration literals reached
1598
        through renamings.
1599
 
1600
2007-11-10  Samuel Tardieu  
1601
 
1602
        * a-tasatt.adb: Revert previous change for this file as it will
1603
        generate an error when this package is instantiated from a
1604
        local context.
1605
 
1606
2007-11-07  Samuel Tardieu  
1607
 
1608
        * a-tasatt.adb: Type Wrapper should be declared in comment instead
1609
        of already declared type Node_Access.
1610
        Use 'Access instead of 'Unchecked_Access when applicable. Local
1611
        lifetime is the one of the package.
1612
        (Set_Value): W is allocated on the heap.
1613
 
1614
        * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
1615
        applicable.
1616
        (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
1617
        access type.
1618
        (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
1619
        access type.
1620
 
1621
        * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
1622
        applicable.
1623
        (elaboration code): Timer_Queue lifetime is the one of the
1624
        package.
1625
 
1626
        * tracebak.c (i386 alternative): Remove useless comparaison
1627
        which is always false; LOWEST_ADDRESS is 0 and is never greater
1628
        than an unsigned integer.
1629
 
1630
        * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
1631
        embedded check for "Ada_Version >= Ada_05".
1632
 
1633
2007-11-07  Olivier Hainque  
1634
 
1635
        * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
1636
        craft and expand comment.
1637
 
1638
2007-11-01  Eric Botcazou  
1639
 
1640
        * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
1641
 
1642
2007-10-23  Eric Botcazou  
1643
 
1644
        * misc.c (gnat_handle_option): Replace call to abort with
1645
        call to gcc_unreachable.
1646
        (gnat_init): Likewise.
1647
        (gnat_expand_expr): Likewise.
1648
        (fp_prec_to_size): Likewise.
1649
        (fp_size_to_prec): Likewise.
1650
 
1651
2007-10-23  Richard Guenther  
1652
 
1653
        PR bootstrap/33608
1654
        * tracebak.c: #undef abort after including system.h.
1655
 
1656
2007-10-20  Danny Smith  
1657
 
1658
        * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
1659
        s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
1660
        for win32 targets.
1661
        (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
1662
 
1663
2007-10-15  Eric Botcazou  
1664
 
1665
        * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
1666
        Set the protection status of the guard page based on the value of On.
1667
 
1668
        * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
1669
 
1670
        * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
1671
        (Exit_Task): Pass False to Hide_Yellow_Zone.
1672
 
1673
2007-10-15  Robert Dewar  
1674
 
1675
        * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
1676
        s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
1677
        a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
1678
        checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
1679
        freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
1680
        gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
1681
        mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
1682
        prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
1683
        sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
1684
        s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
1685
        uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
1686
        a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
1687
        a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
1688
        a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
1689
        a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
1690
        a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
1691
        Minor reformatting.
1692
        Add Unreferenced and Warnings (Off) pragmas for cases of
1693
        variables modified calls where they are IN OUT or OUT parameters and
1694
        the resulting values are not subsequently referenced. In a few cases,
1695
        we also remove redundant code found by the new warnings.
1696
 
1697
        * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
1698
        sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
1699
        sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
1700
        sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
1701
        warning controlled by -gnatw.o that warns on cases of out parameter
1702
        values being ignored.
1703
 
1704
2007-10-15  Geert Bosch  
1705
 
1706
        * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
1707
 
1708
        * expect.c: Initial port to arm-mentor-nucleus.
1709
        Use kill for __gnat_kill() on VMS.
1710
 
1711
2007-10-15  Emmanuel Briot  
1712
 
1713
        * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
1714
        value.
1715
        (Xref_Record): Change type for Line, since in the case of a reference to
1716
        a predefined entity (as happens for array index types), the line is set
1717
        to 0.
1718
        Add support for parsing multiple array index types info, or
1719
        multiple inherited interfaces info. This information cannot be stored
1720
        in Xref_Entity_Record, which only supports a single instance of Tref_*,
1721
        and is therefore stored in the list of references instead. It has a
1722
        special treatement later on in tools that use this information.
1723
 
1724
2007-10-15  Tristan Gingold  
1725
 
1726
        * debug.adb: Document use of -gnatd.a and -gnatd.I
1727
 
1728
        * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
1729
 
1730
2007-10-15  Javier Miranda  
1731
 
1732
        * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
1733
        Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
1734
        care of access to class-wide interface types plus removal of bizarre
1735
        conversion of tagged object to access type (reported by Gary
1736
        Dismukes). After this patch there is no need to perform any
1737
        additional management on these nodes in Expand_Interface_Actuals.
1738
 
1739
        * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
1740
        that handles use of 'Access and 'Unchecked_Access applied to
1741
        actuals covering interface types. Such code is now
1742
        centralized in Expand_N_Attribute_Reference.
1743
 
1744
2007-10-15  Ed Schonberg  
1745
 
1746
        * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
1747
        of tagged types whose ultimate ancestor is a CPP type.
1748
        (Freeze_Array_Type): For a packed array type, generate an initialization
1749
        procedure if the type is public, to handle properly a client that
1750
        specifies Normalize_Scalars.
1751
 
1752
2007-10-15  Hristian Kirtchev  
1753
 
1754
        * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
1755
        inside a generic body, retrieve the full view of the entry family
1756
        discrete subtype if available.
1757
 
1758
2007-10-15  Thomas Quinot  
1759
 
1760
        * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
1761
        attempt to generate stubs for hidden primitive operations.
1762
 
1763
2007-10-15  Vincent Celier  
1764
 
1765
        * mlib-tgt-specific.adb (Support_For_Libraries): New function,
1766
        returning None, used when there is no platform specific body for
1767
        MLib.Tgt.Specific.
1768
 
1769
2007-10-15  Bob Duff  
1770
 
1771
        * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
1772
        (passing'Unrestricted_Access of nested subprograms to Sort) with use of
1773
        the generic Heap_Sort_G, in order to avoid trampolines.
1774
 
1775
2007-10-15  Vasiliy Fofanov  
1776
            Jose Ruiz  
1777
 
1778
        * vx_stack_info.c: New file.
1779
 
1780
        * i-forbla-unimplemented.ads: New file.
1781
 
1782
        * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
1783
        for unsupported configurations; use it on VMS targets instead of the
1784
        real one.
1785
        (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
1786
        vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
1787
        used by VxWorks targets to have access to task-specific data and be
1788
        able to extract the stack boundaries for stack checking.
1789
        Use system-vms-ia64.ads on ivms.
1790
 
1791
        * Make-lang.in: Update dependencies.
1792
 
1793
        * sysdep.c (__gnat_get_stack_info): Move to a standalone file
1794
        (vx_stack_info.c).
1795
 
1796
2007-10-15  Vincent Celier  
1797
 
1798
        * snames.adb, snames.ads: Add new standard name runtime_library_dir
1799
 
1800
        * prj.ads (Language_Config): Add new component Runtime_Library_Dir
1801
 
1802
        * prj-attr.adb: Add project level attribute Runtime_Library_Dir
1803
 
1804
        * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
1805
        the source is unknown.
1806
 
1807
        * prj-ext.adb: Spelling error fix
1808
 
1809
        * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
1810
        95 reserved word in its name.
1811
        (Process_Project_Level_Array_Attributes): Process new attribute
1812
        Runtime_Library_Dir.
1813
 
1814
        * prj-part.adb (Parse_Single_Project): Do not check the name of the
1815
        config project against the user project names.
1816
 
1817
        * prj-proc.adb (Expression): In multi-language mode, indexes that do
1818
        not include a dot are always case insensitive.
1819
        (Process_Declarative_Items): Ditto
1820
        (Process_Project_Tree_Phase_1): Set Success to False in case an error is
1821
        detected.
1822
 
1823
        * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
1824
        True, compare both indexes in lower case.
1825
 
1826
2007-10-15  Robert Dewar  
1827
 
1828
        * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
1829
 
1830
2007-10-15  Gary Dismukes  
1831
 
1832
        * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
1833
        association for an access component, add an association with null as
1834
        the expression. Remove testing for array subtypes and the setting in
1835
        that case of Ctyp to the array component type, which prevented proper
1836
        inclusion of an association for null-initialized arrays. Collapse
1837
        condition that tests for array subtypes into just a test of
1838
        Is_Partially_Initialized_Type (which already covers arrays anyway).
1839
 
1840
2007-10-15  Hristian Kirtchev  
1841
 
1842
        * sem_ch12.adb: Minor code reformatting.
1843
        (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
1844
        find the parent package which may have been hidden by local
1845
        declarations.
1846
 
1847
2007-10-15  Gary Dismukes  
1848
 
1849
        * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
1850
        flag of derived concurrent types, taking into account the flag setting
1851
        on the parent subtype and any new set of discriminants.
1852
 
1853
2007-10-15  Hristian Kirtchev  
1854
 
1855
        * sem_ch4.adb: Minor code and comment reformatting.
1856
        (Analyze_Allocator): When the designated type of an unconstrained
1857
        allocator is a record with unknown discriminants or an array with
1858
        unknown range bounds, emit a detailed error message depending on the
1859
        compilation mode and whether the designated type is limited.
1860
 
1861
2007-10-15  Tristan Gingold  
1862
 
1863
        * system-vms-ia64.ads: New file.
1864
 
1865
        * system-vms_64.ads: Minor comment fix.
1866
 
1867
2007-10-15  Ed Schonberg  
1868
 
1869
        * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
1870
        body generated for a function with a controlling result that is a null
1871
        extension, discard the generated body in favor of the current explicit
1872
        one.
1873
 
1874
2007-10-15  Ed Schonberg  
1875
 
1876
        * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
1877
        examining its original form, to handle properly operator calls that
1878
        have been rewritten.
1879
 
1880
2007-10-15  Olivier Hainque  
1881
 
1882
        * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
1883
        instead of a procedure value in each traceback entry.
1884
 
1885
        * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
1886
        instead of procedure value to TBK$SYMBOLIZE.
1887
 
1888
        * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
1889
        field.
1890
        (TB_Entry_For): Account for the PV/FP renaming.
1891
 
1892
        * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
1893
        add comment.
1894
        (Null_TB_Entry): Account for change of component name.
1895
        (PV_For): Rename as FP_For.
1896
 
1897
2007-10-15  Tristan Gingold  
1898
 
1899
        * trans.c (gnat_to_gnu): Remove the padding structure more often.
1900
        This optimize assignment to over-aligned record.
1901
 
1902
2007-10-15  Emmanuel Briot  
1903
 
1904
        * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
1905
        interfaces.
1906
 
1907
        * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
1908
        type, for dispatching calls.
1909
 
1910
2007-10-15  Vincent Celier  
1911
            Robert Dewar  
1912
 
1913
        * gnat_ugn.texi: Add documentation for switches --version and --help
1914
        for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
1915
        gnatxref, gnatfind, gnatls, and gnatclean.
1916
        Document -gnatw.o.
1917
        Mention attribute Excluded_Source_Dirs
1918
        Replace obsolescent attribute Locally_Removed_Files with attribute
1919
        Excluded_Source_Files.
1920
        Improve documentation of -u (gnatbind)
1921
        Document how to do reliable stack checking for the environmental task
1922
        on iVMS.
1923
 
1924
        * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
1925
        Document attribute Excluded_Source_Files and indicate that attribute
1926
        Locally_Removed_Files is obsolescent.
1927
 
1928
2007-10-15  Thomas Quinot  
1929
 
1930
        * g-soccon-vms.ads: Fix value of MSG_WAITALL.
1931
 
1932
        * gen-soccon.c:
1933
        Update documentation to note that OpenVMS 8.3 or later must be used
1934
        to generate g-soccon-vms.ads.
1935
 
1936
        * atree.adb: Add ??? comment
1937
 
1938
        * exp_util.adb: Minor reformatting.
1939
        Add ??? comment in Kill_Dead_Code.
1940
 
1941
2007-10-15  Robert Dewar  
1942
 
1943
        * errout.ads: Comment clarification
1944
 
1945
        * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
1946
        (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
1947
 
1948
        * lib.ads: Comment update
1949
 
1950
        * init.c: Minor reformatting.
1951
 
1952
        * sem_attr.adb: Minor formatting
1953
 
1954
        * osint-b.ads: Minor reformatting
1955
 
1956
        * sem_ch9.adb: Implement -gnatd.I switch
1957
 
1958
        * g-comlin.adb: (Start): Fix handling of empty command line.
1959
 
1960
        * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
1961
        even when -rules follows the -cargs section.
1962
 
1963
2007-10-08  Ollie Wild  
1964
 
1965
        * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
1966
        gnat_return_tree.
1967
        (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
1968
        gnat_return_tree.
1969
        (gnat_eh_runtime_type): Removed.
1970
        (gnat_return_tree): New function.
1971
 
1972
2007-10-08  Ben Elliston  
1973
 
1974
        PR ada/33454
1975
        Revert:
1976
        2007-08-31  Ben Elliston  
1977
 
1978
        * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
1979
        when compiling for powerpc64-*-linux.
1980
        * system-linux-ppc64.ads: New file.
1981
 
1982
2007-09-27  Eric Botcazou  
1983
 
1984
        Mapped location support
1985
        * back_end.adb (Call_Back_End): Pass information about source
1986
        files instead of units to gigi.
1987
        * gigi.h (struct File_Info_Type): New.
1988
        (gigi): Rename and change type of number_units parameter, change
1989
        type of file_info_ptr parameter.
1990
        * trans.c (number_files): New global variable.
1991
        (gigi): Rename and change type of number_units parameter, change
1992
        type of file_info_ptr parameter.
1993
        If mapped location support is enabled, create the isomorphic mapping
1994
        between source files and line maps.
1995
        (Sloc_to_locus): If mapped location support is enabled, translate
1996
        source location into mapped location.
1997
        (annotate_with_node): Rename into set_expr_location_from_node.
1998
        Call set_expr_location instead of annotate_with_locus.
1999
        (Pragma_to_gnu): Adjust for above change.
2000
        (Loop_Statement_to_gnu): Likewise.
2001
        (call_to_gnu): Likewise.
2002
        (Handled_Sequence_Of_Statements_to_gnu): Likewise.
2003
        (gnat_to_gnu): Likewise.
2004
        (add_stmt_with_node): Likewise.
2005
        (add_cleanup): Likewise.
2006
        * utils.c (gnat_init_decl_processing): Do not set input_line.
2007
 
2008
2007-09-26  Hristian Kirtchev  
2009
 
2010
        * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
2011
        (Applicable_Use): Emit a warning when a package tries to use itself.
2012
        (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
2013
        is already in use or the package where it is declared is in use or is
2014
        declared in the current package.
2015
        (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
2016
 
2017
        * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
2018
        s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
2019
        s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
2020
 
2021
2007-09-26  Hristian Kirtchev  
2022
 
2023
        * a-calend-vms.adb, a-calend.adb:
2024
        Add a section on leap seconds control along with two entities used to
2025
        enable and disable leap seconds support. The array Leap_Second_Times is
2026
        now constant and contains hard time values pre-generated. Remove
2027
        all elaboration code used to populate the table of leap seconds.
2028
 
2029
        * bindgen.adb:
2030
        Add entity Leap_Seconds_Support to the list of global run-time variables
2031
        along with a comment on its usage and values.
2032
        (Gen_Adainit_Ada): Add code to generate the declaration and import of
2033
        Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
2034
        or one (enabled) depending on the presence of binder switch "-y".
2035
        (Gen_Adainit_C): Add code to generate the declaration of external int
2036
        __gl_leap_seconds_support. Set is value to zero (disabled) or one
2037
        (enabled) depending on the presence of binder switch "-y".
2038
 
2039
        * init.c: Add __gl_leap_seconds_support to the list of global values
2040
        computed by the binder.
2041
 
2042
2007-09-26  Jerome Guitton  
2043
 
2044
        * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
2045
        s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
2046
         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
2047
        s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
2048
 
2049
        * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
2050
 
2051
        * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
2052
        function which can be called by the debugger to interrupt the tasks of
2053
        an Ada application asynchronously, as needed on VxWorks.
2054
        (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
2055
 
2056
        * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
2057
        renamed from Stop_All_Tasks. Update comments.
2058
        (Stop_All_tasks): New function declaration.
2059
 
2060
2007-09-26  Olivier Hainque  
2061
 
2062
        * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
2063
        #include  and #define GCC_RESOURCE_H before
2064
        #include .
2065
        Add more protections in __gnat_translate_vms.
2066
 
2067
        * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
2068
        #include .
2069
 
2070
2007-09-26  Thomas Quinot  
2071
            Sergey Rybin  
2072
 
2073
        * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
2074
 
2075
        * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
2076
        where it belongs.
2077
 
2078
        * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2079
 
2080
        * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
2081
        where it belongs.
2082
 
2083
        * sem_dist.ads: Minor comment fix
2084
 
2085
        * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2086
 
2087
2007-09-26  Javier Miranda  
2088
            Eric Botcazou  
2089
 
2090
        * a-tags.adb:
2091
        (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
2092
         indirection added to the HT_Link component of the TSD. This is required
2093
         to statically allocate the TSD.
2094
 
2095
        * a-tags.ads:
2096
        Minor reordering of the declarations in the private part. Required to
2097
        add a level of indirection to the contents of the TSD component HT_Link.
2098
        This is required to statically allocate the TSD.
2099
 
2100
        * decl.c (gnat_to_gnu_entity) : Do not exclude objects with
2101
        Is_Statically_Allocated set from constant objects.
2102
        Do not make exported constants created by the compiler volatile.
2103
        (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
2104
        as read-only.
2105
 
2106
        * trans.c (Identifier_to_gnu): For constants, unshare initializers
2107
        before returning them.
2108
 
2109
        * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
2110
        public part of the package.
2111
        (Make_DT): Move HT_Link component out of the TSD record. For this
2112
        purpose Make_DT now declares a separate object that stores the
2113
        HT_Link value, and initializes the TSD component with the address
2114
        of this new object. The addition of this level of indirection is
2115
        required to statically allocate the TSD because the TSD cannot
2116
        have variable components.
2117
        (Expand_Interface_Conversion): Improve the expanded code.
2118
        (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
2119
 
2120
        * sem_disp.adb (Check_Dispatching_Operation): In case of a body
2121
        declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
2122
        if we are building static dispatch tables then we must not generate
2123
        extra code to register the primitive because the dispatch table will
2124
        be built at the end of the library package; otherwise we notify that
2125
        we cannot build the static dispatch table.
2126
 
2127
2007-09-26  Robert Dewar  
2128
 
2129
        * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
2130
        overlays.
2131
 
2132
        * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
2133
        (Analyze_Record_Representation_Clause): Suppress junk warning for
2134
        missing component clause.
2135
        (Analyze_Attribute_Definition_Clause, case Address): Apply the special
2136
        tests for controlled type overlay to composites with controlled
2137
        components.
2138
        (Analyze_Record_Representation_Clause): Add reference for component name
2139
 
2140
2007-09-26  Javier Miranda  
2141
            Gary Dismukes  
2142
 
2143
        * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
2144
        for thunks associated with interface types.
2145
 
2146
        * einfo.ads: Improve documentatation of Is_Internal
2147
        (Is_Thunk): New attribute applicable to subprograms. True for thunks
2148
        associated with interface types.
2149
        Extensive comment fixes regarding flags that appear in all entities. The
2150
        documentation is now consistent for all such flags (there were a number
2151
        of errors in the documentation in this regard).
2152
 
2153
        * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
2154
 
2155
        * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
2156
        of these procedures are passed a function call that already has
2157
        build-in-place actuals (testing new flag
2158
        Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
2159
        the case where processing continues.
2160
        (Expand_Call): If the call is generated from a thunk body then we
2161
        propagate the extra actuals associated with the accessibility
2162
        level of the access type actuals.
2163
 
2164
        * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
2165
        of each extra formal of a protected operation to reference the
2166
        corresponding extra formal of the subprogram denoted by the
2167
        operation's Protected_Body_Subprogram.
2168
 
2169
        * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
2170
        N_Function_Call nodes.
2171
 
2172
2007-09-26  Robert Dewar  
2173
 
2174
        * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
2175
 
2176
        * debug.adb: Add d.s flag.
2177
 
2178
2007-09-26  Gary Dismukes  
2179
 
2180
        * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
2181
        debug variable so that it won't be initialized when pragma
2182
        Initialize_Scalars is in effect.
2183
 
2184
2007-09-26  Gary Dismukes  
2185
 
2186
        * freeze.adb (Freeze_Entity): Remove check for preelaborable
2187
        initialization of a full view. This is moved to
2188
        Analyze_Package_Specification.
2189
 
2190
        * sem_ch7.adb (Analyze_Package_Specification): Add check for
2191
        preelaborable initialization of a full view in entity loop.
2192
        (Uninstall_Declarations): If entity is a use-visible compilation unit,
2193
        its child units are use-visible only if they are visible child units.
2194
 
2195
        * sem_util.adb (Is_Preelaborable_Expression): New function to determine
2196
        whether an expression can be used within a type declaration that
2197
        requires preelaborable init.
2198
        (Check_Components): Replace inline code that does partial checking for
2199
        preelaborable default expressions with call to
2200
        Is_Preelaborable_Expression.
2201
        (Has_Preelaborable_Initialization): In the case of a generic actual
2202
        subtype, (that is, Is_Generic_Actual is True), return the result of
2203
        applying Has_Preelaborable_Initialization to the generic actual's base
2204
        type.
2205
 
2206
2007-09-26  Hristian Kirtchev  
2207
 
2208
        * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
2209
        call to Jan_1_Day _Of_Week to optimize its performance.
2210
        (Is_Leap): Move the routine to the scope of Week_In_Year.
2211
        (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
2212
        weekday on which January 1 falls of Year - 1 and Year + 1. This function
2213
        avoids calling Time_Of and Split, thus making it more efficent.
2214
        (Week_In_Year): Reimplemented in oder to follow ISO 8601.
2215
 
2216
        * g-calend.ads (Week_In_Year): Change comment to reflect new
2217
        implementation.
2218
 
2219
2007-09-26  Emmanuel Briot  
2220
 
2221
        * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
2222
        Command_Line): New types
2223
        (Define_Alias, Define_Prefix, Free): New subprograms. These provide
2224
        support for defining how switches can be grouped on a command line (as
2225
        is the case for -gnatw... for GNAT), and how simple switches can be
2226
        used as aliases for more complex switches (-gnatwa is same as
2227
        -gnatwbcef...)
2228
        (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
2229
        (Start, Current_*): New subprograms
2230
        Added support for parsing an array of strings in addition to the real
2231
        command line.
2232
        (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
2233
         be moved from the body to the private part of the spec.
2234
        (*): All subprograms now have an extra parameter with default value to
2235
        specify which parser should be used. For backward compatibility, it
2236
        defaults to parsing the command line of the application. They were also
2237
        modified to properly handle cases where each of the argument does not
2238
        start at index 1 (which is always true for Ada.Command_Line, but not
2239
        when processing any Argument_List).
2240
        (Free): New subprogram
2241
        (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
2242
        Argument): New subprograms
2243
        (Switch_Parameter_Type): New enum, which clarifies the code. The extra
2244
        special characters like ':', '=',... are now handled in a single place,
2245
        which makes the code more extensible eventually.
2246
        (Getopt, Full_Switch): When the switch was returned as part of the
2247
        special character '*', make sure it is prepended by the switch character
2248
        ('-' in general), so that the application knows whether "foo" or "-foo"
2249
        was specified on the command line.
2250
 
2251
2007-09-26  Florian Villoing  
2252
 
2253
        * g-dirope.adb (Remove_Dir): In case we are removing directories
2254
        recursively, make sure that if an exception is raised during the
2255
        processing, the current working directory is reset to its initial
2256
        value before propagating the exception.
2257
 
2258
2007-09-26  Vincent Celier  
2259
 
2260
        * gnatbind.adb: If there are several ALI files specified and there is
2261
        a main program to bind, the first ALI is expected to contain the main
2262
        subprogram and the names of the binder generated files will be derived
2263
        from the first ALI file name.
2264
        (Gnatbind): Fix insertion character in invocation of Error_Msg
2265
 
2266
2007-09-26  Vincent Celier  
2267
 
2268
        * gnatcmd.adb (Check_Files): Do not include sources that have been
2269
        removed by attributes Exclude_Source_Files or Locally_Removed_Files.
2270
 
2271
2007-09-26  Ed Schonberg  
2272
 
2273
        * lib-xref.ads, lib-xref.adb: The entry for array types now carries
2274
        information about each of its index types, following the type
2275
        reference for its component type.
2276
 
2277
2007-09-26  Vincent Celier  
2278
 
2279
        * make.adb: (Kill): New procedure (__gnat_kill imported)
2280
        (Running_Compile, Outstanding_Compiles): Global variables that
2281
        were previously local to procedure Compile_Sources.
2282
        (Sigint_Intercepted): Send signal SIGINT to all outstanding
2283
        compilation processes.
2284
 
2285
        (Gnatmake): If project files are used, create the mapping of all the
2286
        sources, so that the correct paths will be found.
2287
 
2288
        * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
2289
 
2290
2007-09-26  Vincent Celier  
2291
 
2292
        * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
2293
 
2294
        * prj.ads, prj.adb (Default_Language): Remove function, no longer used
2295
        Replace components Compiler_Min_Options and Binder_Min_Options with
2296
        Compiler_Required_Switches and Binder_Required_Switches in record
2297
        Language_Config.
2298
        Remove components Default_Language and Config in Project_Tree_Data,
2299
        no longer used.
2300
 
2301
        * prj-attr.adb: New attributes Required_Switches () in
2302
        packages Compiler and Binder.
2303
 
2304
        * prj-nmsc.adb: Major rewrite of the processing of configuration
2305
        attributes for gprbuild. No impact on GNAT tools.
2306
 
2307
        * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
2308
        process configuration attributes: this is done in Prj.Nmsc.Check.
2309
        (Recursive_Process): Make a full copy of packages inherited from project
2310
        being extended, instead of a shallow copy.
2311
        (Process_Project_Tree_Phase_1): New procedure
2312
        (Process_Project_Tree_Phase_1): New procedure
2313
        (Process): Implementation now uses the two new procedures
2314
 
2315
        * prj-util.adb (Executable_Of): Get the suffix and the default suffix
2316
        from the project config, not the tree config that no longer exists.
2317
 
2318
2007-09-26  Vincent Celier  
2319
 
2320
        * Make-lang.in: Update dependencies..
2321
 
2322
2007-09-26  Vincent Celier  
2323
 
2324
        * osint.adb, osint.ads: Minor reformatting
2325
 
2326
        * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
2327
 
2328
2007-09-26  Gary Dismukes  
2329
 
2330
        * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
2331
        message to cite use of <> in aggregate component associations rather
2332
        than wrongly indicating use of limited aggregates.
2333
 
2334
2007-09-26  Robert Dewar  
2335
 
2336
        * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
2337
        Address_Taken.
2338
 
2339
2007-09-26  Ed Schonberg  
2340
 
2341
        * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
2342
        ancestor of the derived type, the operations are inherited from the
2343
        primary dispatch table of the parent.
2344
        (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
2345
        when the context is an explicit type conversion.
2346
 
2347
2007-09-26  Ed Schonberg  
2348
 
2349
        * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
2350
        rule for qualified expressions properly, to detect improper conversions
2351
        and resolve some cases of overloading.
2352
 
2353
2007-09-26  Ed Schonberg  
2354
 
2355
        * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
2356
        proper kind of reference to the primitive operation, for better source
2357
        navigation.
2358
        (Valid_Conversion): A tagged conversion is legal if both operands are
2359
        tagged.
2360
 
2361
2007-09-26  Robert Dewar  
2362
 
2363
        * sem_warn.adb (Check_References): Catch more cases of unreferenced
2364
        packages.
2365
 
2366
2007-09-26  Vincent Celier  
2367
 
2368
        * snames.adb, snames.ads: Change Include_Option to Include_Switches
2369
 
2370
2007-09-26  Robert Dewar  
2371
 
2372
        * s-wchstw.adb: provide messages for run time unit exceptions
2373
 
2374
        * a-witeio.adb: Minor reformatting
2375
 
2376
        * exp_ch13.adb: Minor reformatting
2377
 
2378
2007-09-26  Sergey Rybin  
2379
 
2380
        * vms_data.ads: Revise gnatmetric qualifiers.
2381
        Add qualified for the new gnatbind option '-y'
2382
 
2383
        * gnat_ugn.texi: Revise the gnatmetric section.
2384
        Add entry for new gnatbind option '-y'.
2385
 
2386
        * gnat_rm.texi: Minor spelling correction.
2387
        Document restriction on overlaying controlled types
2388
 
2389
2007-09-26  Vincent Celier  
2390
 
2391
        * makegpr.adb (Link_Executables): Do not fail when the root project has
2392
        no sources, but is an extending project.
2393
 
2394
2007-09-25  Eric Botcazou  
2395
 
2396
        * trans.c: Fix misplaced #define.
2397
 
2398
2007-09-22  Eric Botcazou  
2399
 
2400
        * utils2.c (build_unary_op)  [INDIRECT_REF]: Propagate
2401
        the TYPE_REF_CAN_ALIAS_ALL flag to the result.
2402
 
2403
2007-09-21  Olivier Hainque  
2404
 
2405
        * utils.c (type_for_nonaliased_component_p): Return false for
2406
        all AGGREGATE_TYPEs.
2407
 
2408
2007-09-17  Eric Botcazou  
2409
 
2410
        * decl.c (gnat_to_gnu_entity) : Make again the type of an
2411
        object covered by 13.3(19) volatile.
2412
 
2413
2007-09-12  Eric Botcazou  
2414
 
2415
        PR ada/26797
2416
        PR ada/32407
2417
        * utils.c (unchecked_convert): Use a subtype as the intermediate type
2418
        in the special VIEW_CONVERT_EXPR case.
2419
 
2420
2007-09-12  Robert Dewar  
2421
 
2422
        * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
2423
 
2424
        * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
2425
        lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
2426
        s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
2427
        s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
2428
        s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
2429
        s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
2430
        s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
2431
        s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
2432
        a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
2433
        g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
2434
        s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
2435
        s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
2436
        snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
2437
        s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
2438
        s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
2439
        s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
2440
        s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
2441
        pragma Compiler_Unit and adds it to relevant library units.
2442
 
2443
2007-09-12  Ed Schonberg  
2444
 
2445
        * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
2446
        a box need not correspond to any component.
2447
 
2448
2007-09-12  Robert Dewar  
2449
 
2450
        * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
2451
        the tasking version of the Ada run time when foreign threads are
2452
        present and there are no explicit Ada tasks or tasking constructs.
2453
 
2454
        * gnat_rm.texi: Clarify documentation of GNAT.Threads.
2455
 
2456
2007-09-12  Hristian Kirtchev  
2457
 
2458
        * bindusg.adb (Display): Correct comment for switch -X. Add a line for
2459
        the usage of switch -y.
2460
 
2461
        * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
2462
        when switch -y is present.
2463
 
2464
        * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
2465
        leap seconds in Ada.Calendar and its children.
2466
 
2467
2007-09-12  Jose Ruiz  
2468
 
2469
        * a-extiti.ads (Timer): The discriminant is a "not null access
2470
        constant" in the Reference Manual.
2471
        (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
2472
 
2473
2007-09-12  Robert Dewar  
2474
 
2475
        * a-swuwha.adb: Remove junk RM header
2476
 
2477
2007-09-12  Vincent Celier  
2478
 
2479
        * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
2480
        indicator
2481
 
2482
        * g-bytswa.ads: Minor reformatting
2483
 
2484
2007-09-12  Thomas Quinot  
2485
 
2486
        * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
2487
        Add new constant Thread_Blocking_IO, always True by default, set False
2488
        on a per-runtime basis.
2489
        (Need_Netdb_Buffer): New constant.
2490
 
2491
2007-09-12  Arnaud Charlet  
2492
 
2493
        * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
2494
        Added renames for corresponding functions in System.Partition_Interface.
2495
 
2496
2007-09-12  Doug Rupp  
2497
 
2498
        * Makefile.in: Remove VMS specific System.CRTL packages which are no
2499
        longer needed.
2500
 
2501
        * s-crtl-vms64.ads: Removed.
2502
 
2503
2007-09-12  Olivier Hainque  
2504
 
2505
        * decl.c (gnat_to_gnu_entity) : For a subtype
2506
        with discriminant constraints, generalize the code for BIT_FIELDs
2507
        to PACKED fields of constant size and propagate DECL_PACKED.
2508
 
2509
2007-09-11  Eric Botcazou  
2510
 
2511
        * decl.c (array_type_has_nonaliased_component): New predicate.
2512
        (gnat_to_gnu_field) : Invoke the above predicate to
2513
        set the TYPE_NONALIASED_COMPONENT flag on the type.
2514
        : Likewise.
2515
        * gigi.h (type_for_nonaliased_component_p): Declare.
2516
        * utils.c (type_for_nonaliased_component_p): New predicate.
2517
        (create_field_decl): Invoke the above predicate to set the
2518
        DECL_NONADDRESSABLE_P flag on the field.
2519
 
2520
2007-09-11  Javier Miranda  
2521
 
2522
        * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
2523
        in library level record type entities if we are generating statically
2524
        allocated dispatch tables.
2525
 
2526
        * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
2527
        importing/exporting the _tag declaration by new code
2528
        importing/exporting the dispatch table wrapper. This change allows us
2529
        to statically allocate of the TSD.
2530
        (Make_DT.Export_DT): New procedure.
2531
        (Build_Static_DT): New function.
2532
        (Has_DT): New function.
2533
 
2534
        * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
2535
        True_Constant and Current_Value. Required to statically
2536
        allocate the dispatch tables.
2537
        (Check_Allocator): Make function iterative instead of recursive.
2538
        Also return inner allocator node, when present, so that we do not have
2539
        to look for that node again in the caller.
2540
 
2541
2007-09-11  Jan Hubicka  
2542
 
2543
        * misc.c (gnat_expand_body): Kill.
2544
        (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
2545
 
2546
2007-09-10  Robert Dewar  
2547
 
2548
        * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
2549
        mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2550
        mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2551
        mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
2552
        ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
2553
        bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
2554
        bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
2555
        butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
2556
        comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
2557
        elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
2558
        err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
2559
        exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
2560
        exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
2561
        exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
2562
        exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
2563
        exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
2564
        exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
2565
        exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
2566
        exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
2567
        exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
2568
        exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
2569
        exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
2570
        fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
2571
        get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
2572
        gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
2573
        gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
2574
        gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
2575
        gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
2576
        gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
2577
        gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
2578
        inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
2579
        lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
2580
        lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
2581
        make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
2582
        mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
2583
        mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
2584
        mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
2585
        mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
2586
        osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
2587
        osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
2588
        par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
2589
        par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
2590
        par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
2591
        par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
2592
        par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
2593
        prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
2594
        prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
2595
        prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
2596
        prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
2597
        prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
2598
        prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
2599
        prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
2600
        rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
2601
        scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
2602
        sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
2603
        sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
2604
        sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
2605
        sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
2606
        sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
2607
        sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
2608
        sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
2609
        sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
2610
        sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
2611
        sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
2612
        sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
2613
        sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
2614
        sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
2615
        sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
2616
        stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
2617
        styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
2618
        switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
2619
        switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
2620
        tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
2621
        treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
2622
        types.h, uintp.h, urealp.h, usage.adb, usage.ads,
2623
        validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
2624
        xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
2625
        xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
2626
        gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
2627
        mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
2628
        symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
2629
        mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
2630
        mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
2631
 
2632
2007-09-10  Emmanuel Briot  
2633
 
2634
        * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
2635
        classes ("[]").
2636
 
2637
2007-09-10  Vasiliy Fofanov  
2638
 
2639
        * adaint.c (__gnat_translate_vms): new function.
2640
 
2641
2007-09-10  Gary Dismukes  
2642
            Thomas Quinot  
2643
 
2644
        * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
2645
        create an abstract subprogram in the case of 'Input. For 'Output we now
2646
        create a real spec/body when the type is abstract, since it can
2647
        potentially be called.
2648
        (Predefined_Primitive_Bodies): Now allow the creation of a predefined
2649
        body for 'Output when the type is abstract (only the creation of the
2650
        body for 'Input is excluded when the type is abstract).
2651
        (Stream_Operation_OK): Add an additional condition in the return
2652
        statement, so that False will be returned for TTS_Stream_Input if the
2653
        associated tagged type is an abstract extension. Add comments for
2654
        return statement.
2655
        (Expand_N_Object_Declaration): For the case of a shared passive
2656
        variable, insert init proc call only after the shared variable
2657
        procedures have been processed, because the IP call needs to undergo
2658
        shared passive variable reference expansion, which requires these
2659
        procedures to be available (and elaborated).
2660
 
2661
2007-09-10  Vincent Celier  
2662
 
2663
        * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
2664
        parameter Runtime_Project.
2665
 
2666
2007-09-10  Ed Schonberg  
2667
 
2668
        * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
2669
        given a box association, the type of the component is discriminated,
2670
        and the value of the discriminant is the discriminant of the enclosing
2671
        type, retrieve its value from the aggregate itself, where it must have
2672
        been supplied.
2673
 
2674
        * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
2675
        to remove other spurious ambiguities on arithmetic operations involving
2676
        literals and addresses, on systems where Address is a visible integer
2677
        type, when the operator is called in functional notation.
2678
        (Try_Primitive_Operation): Within an instance, a call in prefixed form
2679
        is legal when the types match, even if the operation is currently
2680
        hidden.
2681
 
2682
2007-09-10  Ed Schonberg  
2683
 
2684
        * sem_ch12.adb (Build_Local_Package): A formal package with no
2685
        associations is legal if all formals have defaults. It is not
2686
        equivalent to a formal declared with a box.
2687
 
2688
2007-09-10  Sergey Rybin  
2689
 
2690
        * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
2691
 
2692
2007-09-10  Sergey Rybin  
2693
 
2694
        * gnat_ugn.texi: Add description of the new '-lratio' option
2695
        Update 7.3.1 section about availability of the feature.
2696
 
2697
2007-09-10  Thomas Quinot  
2698
 
2699
        * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
2700
        inserted node.
2701
 
2702
2007-09-10  Olivier Hainque  
2703
 
2704
        * Makefile.in: (mips-irix section): Activate build of libgmem.
2705
 
2706
2007-09-10  Eric Botcazou  
2707
 
2708
        * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
2709
        x87 registers.
2710
 
2711
2007-09-10  Eric Botcazou  
2712
 
2713
        * decl.c (gnat_to_gnu_entity) : Deal with variable built for
2714
        a debug renaming declaration specially.
2715
 
2716
2007-09-08  Eric Botcazou  
2717
 
2718
        * decl.c (gnat_to_gnu_entity) : Simplify the condition under
2719
        which a constant renaming is treated as a normal object declaration.
2720
        * trans.c (lvalue_required_p) : New case, extracted from
2721
        the N_Indexed_Component case.
2722
        : Fall through to above case.
2723
        : Return true for all composite types.
2724
 
2725
2007-09-08  Eric Botcazou  
2726
 
2727
        * decl.c (make_packable_type): If the new type has been given BLKmode,
2728
        try again to get an integral mode for it.
2729
 
2730
2007-09-07  Eric Botcazou  
2731
 
2732
        Re-apply accidentally reverted change:
2733
 
2734
        2007-02-07  Andreas Krebbel  
2735
 
2736
        * raise-gcc.c (get_region_description_for, get_call_site_action_for,
2737
        get_action_description_for): Replace _Unwind_Word with _uleb128_t
2738
        and _Unwind_SWord with _sleb128_t.
2739
 
2740
2007-09-06  Eric Botcazou  
2741
 
2742
        * trans.c (convert_with_check): Update call to real_2expN.
2743
 
2744
2007-09-05  Sandra Loosemore  
2745
 
2746
        * trans.c (Compilation_unit_to_gnu): Use set_cfun.
2747
        * utils.c (end_subprog_body): Likewise.
2748
 
2749
2007-09-03  Nick Clifton  
2750
 
2751
        * Make-lang.in: Change copyright header to refer to version 3 of
2752
        the GNU General Public License and to point readers at the
2753
        COPYING3 file and the FSF's license web page.
2754
        * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
2755
        Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
2756
        namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
2757
        treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
2758
        Likewise.
2759
 
2760
2007-08-31  Vincent Celier  
2761
 
2762
        PR ada/4720
2763
 
2764
        * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
2765
        gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
2766
        (Check_Version_And_Help): New procedure in package Switch to process
2767
        switches --version and --help.
2768
        Use Check_Version_And_Help in GNAT tools
2769
 
2770
        * make.adb:  Ditto.
2771
        (Compile_Sources): Make sure that sources that are "excluded" are not
2772
        compiled.
2773
        (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
2774
        project file is used.
2775
        (Version_Switch): Remove, moved to Switch
2776
        (Help_Switch): Remove, moved to Switch
2777
        (Display_Version): Remove, moved to Switch
2778
 
2779
        * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
2780
        package Switch to process switches --version and --help.
2781
        (Display_Version): New procedure
2782
 
2783
        * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
2784
 
2785
2007-08-31  Javier Miranda  
2786
 
2787
        * a-tags.adb (Internal_Tag): Protect the run-time against wrong
2788
        internal tags.
2789
 
2790
2007-08-31  Hristian Kirtchev  
2791
 
2792
        * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
2793
        (Mark_Non_Null): If the node for which we just generated an access check
2794
        is a reference to an *in* parameter and the reference appears in the
2795
        declarative part of a subprogram body, mark the node as known non null.
2796
 
2797
2007-08-31  Hristian Kirtchev  
2798
 
2799
        * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
2800
        structure of E_Exception to reflect the new flag.
2801
        (Is_Raised, Set_Is_Raised): New inlined routines.
2802
        Update the usage of available flag to reflect the addition of Is_Raised.
2803
        (Is_Raised, Set_Is_Raised): Bodies of new routines.
2804
        (Write_Entity_Flags): Write the status of flag Is_Raised.
2805
        (Is_Descendent_Of_Address): New entity flag, to simplify handling of
2806
        spurious ambiguities when integer literals appear in the context of an
2807
        address type that is a visible integer type.
2808
 
2809
        * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
2810
        exceptions never being raised.
2811
        (Analyze_Raise_Statement): When analyzing an exception, mark it as being
2812
        explicitly raised.
2813
 
2814
2007-08-31  Javier Miranda  
2815
 
2816
        * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
2817
        statement when compiling under restriction No_Exceptions_Proparation.
2818
 
2819
2007-08-31  Ed Schonberg  
2820
 
2821
        * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
2822
        initialization aggregate for the type, generate itype references for
2823
        thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
2824
 
2825
2007-08-31  Gary Dismukes  
2826
 
2827
        * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
2828
        library-level package renaming, pass the declaration associated with
2829
        the renaming's special debug variable to Qualify_Entity_Names to ensure
2830
        that its encoded name is properly qualified.
2831
 
2832
        * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
2833
        occurring in the list of entities to qualify, and do not attempt to
2834
        traverse an entity list in that case. Variables associated with
2835
`       library-level package renamings can now occur in the table.
2836
 
2837
        * exp_dbug.ads: Revise documentation of the encoding for renaming
2838
        declarations.
2839
 
2840
2007-08-31  Richard Kenner  
2841
 
2842
        * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
2843
        access type points to an unconstrained array.
2844
 
2845
2007-08-31  Hristian Kirtchev  
2846
 
2847
        * restrict.adb, namet.adb, par-util.adb: Remove redundant type
2848
        conversion.
2849
 
2850
        * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
2851
        simple redundant qualifications. The check is performed whenever the
2852
        expression is a non-overloaded identifier.
2853
        (Resolve_Type_Conversion): Enchance the redundant type conversion check
2854
        to include loop parameters.
2855
        (Valid_Conversion): Avoid generation of spurious error message.
2856
 
2857
2007-08-31  Bob Duff  
2858
 
2859
        * par-ch4.adb (P_Simple_Expression): Fold long sequences of
2860
        concatenations of string literals into a single literal, in order to
2861
        avoid very deep recursion in the front end, which was causing stack
2862
        overflow.
2863
 
2864
        * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
2865
        string, and the right operand is a string literal (the case of "" &
2866
        "..."), optimize by avoiding copying the right operand -- just use the
2867
        value of the right operand directly.
2868
 
2869
        * stringt.adb (Store_String_Chars): Optimize by growing the
2870
        String_Chars table all at once, rather than appending characters one by
2871
        one.
2872
        (Write_String_Table_Entry): If the string to be printed is very long,
2873
        just print the first few characters, followed by the length. Otherwise,
2874
        doing "pn(n)" in the debugger can take an extremely long time.
2875
 
2876
        * sem_prag.adb (Process_Interface_Name): Replace loop doing
2877
        Store_String_Char with Store_String_Chars.
2878
 
2879
2007-08-31  Vincent Celier  
2880
 
2881
        * prj-attr.adb: Add new attribute Excluded_Source_Files
2882
 
2883
        * prj-nmsc.adb: Use attribute Excluded_Source_Files before
2884
        Locally_Removed_Files.
2885
 
2886
        * snames.ads, snames.adb: New standard name Excluded_Source_Files
2887
 
2888
2007-08-31  Ed Schonberg  
2889
 
2890
        * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
2891
        clauses of subunits, ignore limited_with_clauses that are illegal and
2892
        have not been fully analyzed.
2893
 
2894
2007-08-31  Ed Schonberg  
2895
 
2896
        * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
2897
        flag, for effiency. It is called when analyzing arithmetic operators
2898
        and also for actuals in calls that are universal_integers. The flag is
2899
        set for the predefined type address, and for any type or subtype
2900
        derived from it.
2901
 
2902
        * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
2903
        Universal_Integer, when the formal is a descendent of address and the
2904
        call appears in user code.
2905
        (Analyze_Selected_Component): if the prefix is a private extension, the
2906
        tag component is visible.
2907
 
2908
        * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
2909
        entity flag.
2910
 
2911
2007-08-31  Robert Dewar  
2912
 
2913
        * s-fileio.adb (Open): Normalize file name to lower case in non-case
2914
        sensitive file name systems to avoid unexpected mismatch in Vista.
2915
 
2916
2007-08-31  Vincent Celier  
2917
 
2918
        * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
2919
 
2920
2007-08-31  Vincent Celier  
2921
 
2922
        * symbols-vms.adb (Initialize): Read symbol files with continuation
2923
        lines
2924
        (Finalize): If symbol is long, split the line
2925
 
2926
2007-08-31  Vincent Celier  
2927
 
2928
        * fmap.ads: Minor comment updates
2929
 
2930
2007-08-31  GNAT Script  
2931
 
2932
        * Make-lang.in: Makefile automatically updated
2933
 
2934
2007-08-31  Bob Duff  
2935
 
2936
        * sinfo.ads: Minor comment fix.
2937
 
2938
2007-08-31  Thomas Quinot  
2939
 
2940
        * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
2941
        with implementation.
2942
        Documentation cleanup only.
2943
 
2944
2007-08-31  Sergey Rybin  
2945
 
2946
        * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
2947
        gnatpp '--separate-stmt-name' option.
2948
        Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
2949
        option.
2950
 
2951
        * gnat_ugn.texi: Add description for the new gnatpp
2952
        '--separate-stmt-name' and '--use-on-new-line' options.
2953
 
2954
2007-08-31  Ben Elliston  
2955
 
2956
        * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
2957
        when compiling for powerpc64-*-linux.
2958
        * system-linux-ppc64.ads: New file.
2959
 
2960
2007-08-22  Krister Walfridsson  
2961
 
2962
        * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
2963
        NetBSD.
2964
 
2965
2007-08-16  Kaveh R. Ghazi  
2966
 
2967
        * misc.c (gnat_type_max_size): Constify.
2968
 
2969
2007-08-16  Gary Dismukes  
2970
 
2971
        * cstand.adb (Create_Standard): Create an entity for a zero-sized type
2972
        associated with Standard_Debug_Renaming_Type, to be used as the type of
2973
        the special variables whose names provide debugger encodings for
2974
        renaming declarations.
2975
 
2976
        * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
2977
        (Set_Debug_Renaming_Link): Change to set Node25.
2978
        (Write_Field13_Name): Remove case for E_Enumeration_Literal.
2979
        (Write_Field25_Name): Add case for E_Variable to output
2980
        "Debug_Renaming_Link".
2981
        (Write_Field23_Name): Correct the output string for "Limited_View".
2982
 
2983
        * exp_dbug.adb: Add with and use of Tbuild.
2984
        (Debug_Renaming_Declaration): Replace creation of an enumeration type
2985
        and literal with creation of a variable of type
2986
        Standard_Debug_Renaming_Type whose name encodes both the renamed object
2987
        and the entity of the renaming declaration.
2988
        (Qualify_Entity_Name): Add the delayed qualification of the entity name
2989
        part of the name of a variable that has a Debug_Renaming_Link.
2990
 
2991
        * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
2992
        special type to be associated with variables that provide debugger
2993
        encodings for renaming declarations.
2994
 
2995
2007-08-16  Gary Dismukes  
2996
            Ed Schonberg  
2997
            Javier Miranda  
2998
 
2999
        * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
3000
        ancestor part given by an aggregate to test for an unchecked conversion,
3001
        since this can occur in some cases when the ancestor part is a function
3002
        call, and we don't want to fall into the recursive call to this
3003
        procedure in that case.
3004
 
3005
        * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
3006
        stream attributes on limited types to account for user-specified
3007
        attributes as well as whether Input (resp. Output) becomes available
3008
        due to Read (resp. Write) being available for the type. Change Boolean
3009
        variable to the more accurate name
3010
        Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
3011
        double-"not" predicate at beginning of return statement to more
3012
        understandable form.
3013
 
3014
        * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
3015
        return has an associated N_Handled_Sequence_Of_Statements, then wrap it
3016
        in a block statement and use that as the first statement of the
3017
        expanded return rather than incorrectly using the handled sequence as
3018
        the first statement.
3019
 
3020
        * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
3021
        operation, generate an explicit freeze node for it rather than
3022
        generating extra formals, to ensure that gigi has the proper order of
3023
        elaboration for anonymous subtypes in the signature of the subprograms.
3024
        (Build_In_Place_Formal): Move assertion to beginning of loop.
3025
        (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
3026
        applied to a function call (occurs for some cases of 'Input).
3027
        (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
3028
        applied to a function call (occurs for some cases of 'Input).
3029
 
3030
        * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
3031
        2005, generate an extended return statement enclosing the result object
3032
        and 'Read call.
3033
 
3034
        * freeze.adb (Freeze_Record_Type): Extend the current management of
3035
        components that are access type with an allocator as default value: add
3036
        missing support to the use of qualified expressions of the
3037
        allocator (which also cause freezing of the designated type!)
3038
        (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
3039
        dispatching operation, since extra formals may be needed by calls to
3040
        build-in-place functions (such as stream 'Input).
3041
 
3042
        * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
3043
        formals for 'Constrained and accessibility level in the case of a
3044
        predefined dispatching operation.
3045
 
3046
        * exp_util.adb (Insert_Actions): A protected body is a valid insertion
3047
        point, no need to find the parent node.
3048
 
3049
2007-08-16  Javier Miranda  
3050
 
3051
        * exp_attr.adb (Attribute_Priority): Add missing support for entries
3052
        and entry barriers.
3053
 
3054
2007-08-16  Javier Miranda  
3055
 
3056
        * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
3057
        is not really required and can introduce regression with the debugger.
3058
        The original problem is fixed with the patch written for checks.adb.
3059
 
3060
2007-08-16  Thomas Quinot  
3061
 
3062
        * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
3063
        Range_Check on Allocated_Table.
3064
 
3065
2007-08-16  Vincent Celier  
3066
 
3067
        * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
3068
        Including_Non_Switch set to False.
3069
        (Gnatmake): For the compiler, call Test_If_Relative_Path with
3070
        Including_Non_Switch set to False.
3071
 
3072
        * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
3073
        parameter Including_Non_Switch, defaulted to True. When
3074
        Including_Non_Switch is False, options that are not switches and
3075
        appear as relative path are not converted to absolute paths.
3076
 
3077
2007-08-16  Nicolas Roche  
3078
 
3079
        * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
3080
        makefiles
3081
 
3082
        * Make-lang.in: Update dependencies
3083
 
3084
2007-08-16  Hristian Kirtchev  
3085
 
3086
        * sem_ch10.adb (Has_With_Clause): If the name of the with clause
3087
        currently inspected is a selected component, retrieve the entity of
3088
        its selector.
3089
        (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
3090
        from the immediate ancestor of Main_Unit_Entity.
3091
        (Install_Limited_Withed_Unit): Do not install the limited view of
3092
        package P if P is reachable through an ancestor chain from package C
3093
        and C also has a with clause for P in its body.
3094
        (Has_Limited_With_Clause): New routine.
3095
        (Has_With_Clause): New routine.
3096
 
3097
2007-08-16  Ed Schonberg  
3098
 
3099
        * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
3100
        generic for an enclosing instance is a global reference, even though
3101
        its scope is the enclosing instance.
3102
 
3103
2007-08-16  Gary Dismukes  
3104
            Javier Miranda  
3105
 
3106
        * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
3107
        initialize a limited object.
3108
        (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
3109
        13/2 and 14/2.
3110
        Make sure Has_Complex_Representation is inherited by derived type.
3111
 
3112
2007-08-16  Robert Dewar  
3113
 
3114
        * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
3115
        exception case
3116
 
3117
2007-08-16  Ed Schonberg  
3118
 
3119
        * sem_disp.adb (Check_Dispatching_Operation): If the operation
3120
        implements an operation inherited from a progenitor interface, verify
3121
        that they are subtype-conformant.
3122
 
3123
2007-08-16  Hristian Kirtchev  
3124
            Bob Duff  
3125
            Nicolas Setton  
3126
 
3127
        * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
3128
        (Resolve): Alphabetize local variables. Add new variable From_Lib. When
3129
        the statement which is being resolved comes from a predefined library
3130
        unit, all non-predefined library interpretations are skipped.
3131
        (Resolve_Op_Concat): If string concatenation was folded in the parser,
3132
        but the "&" is user defined, give an error, because the folding would
3133
        be wrong.
3134
 
3135
        * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
3136
        the parser has folded a long sequence of concatenations of string
3137
        literals.
3138
 
3139
        * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
3140
        and "JMP_BUF" variables as artificial.
3141
        (N_String_Literal): Do not use alloca for very long string literals. Use
3142
        xmalloc/free instead. Otherwise the stack might overflow.
3143
 
3144
        * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
3145
        compiler.
3146
 
3147
2007-08-16  Vincent Celier  
3148
 
3149
        * vms_conv.adb (Process_Argument): Ensure that project related options
3150
        are not put in the -cargs section when using GNAT COMPILE.
3151
 
3152
2007-08-16  Robert Dewar  
3153
 
3154
        * gnat_ugn.texi: Add note on preprocessing (output file not written)
3155
 
3156
2007-08-16  Thomas Quinot  
3157
 
3158
        * a-tags.adb: Minor reformatting.
3159
 
3160
2007-08-16  Bob Duff  
3161
 
3162
        * sem_type.ads, sem_ch4.adb: Minor reformatting.
3163
 
3164
2007-08-14  Thomas Quinot  
3165
 
3166
        * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
3167
        s-osinte-interix.ads, system-interix.ads: Removed.
3168
 
3169
2007-08-14  Hristian Kirtchev  
3170
 
3171
        * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
3172
        calls to Check_Within_Time_Bounds.
3173
        ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
3174
        (Difference): Account for possible rounding of the resulting difference
3175
 
3176
2007-08-14  Robert Dewar  
3177
 
3178
        * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
3179
        par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
3180
        s-osinte-solaris.adb, s-osinte-solaris.ads,
3181
        s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
3182
 
3183
        * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
3184
        switch -gnatyS. Enable -gnatyS in GNAT style check mode
3185
 
3186
2007-08-14  Robert Dewar  
3187
            Ed Schonberg  
3188
 
3189
        * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
3190
        Suppress unmodified in-out parameter warning in some cases
3191
        This patch is a also fairly significant change to the way suppressible
3192
        checks are handled.
3193
 
3194
        * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
3195
        needed for access to concurrent record types generated by the expander.
3196
        (Generate_Range_Check): When generating a temporary to capture the
3197
        value of a conversion that requires a range check, set the type of the
3198
        temporary before rewriting the node, so that the type is always
3199
        properly placed for back-end use.
3200
        (Apply_Float_Conversion_Check): Handle case where the conversion is
3201
        truncating.
3202
        (Get_Discriminal): Code reformatting. Climb the scope stack looking
3203
        for a protected type in order to examine its discriminants.
3204
 
3205
2007-08-14  Robert Dewar  
3206
            Gary Dismukes  
3207
            Ed Schonberg  
3208
            Thomas Quinot  
3209
 
3210
        * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
3211
        a-stwisu.adb, a-strsup.adb: Fix warnings for range
3212
        tests optimized out.
3213
 
3214
        * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
3215
        (Get_Allocator_Final_List): For the case of an anonymous access type
3216
        that has a specified Associated_Final_Chain, do not go up to the
3217
        enclosing scope.
3218
        (Expand_N_Type_Conversion): Test for the case of renamings of access
3219
        parameters when deciding whether to apply a run-time accessibility
3220
        check.
3221
        (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
3222
        aggregate code before allocator, and ahead of declaration for
3223
        temporary, to prevent access before elaboration when the allocator is
3224
        an actual for an access parameter.
3225
        (Expand_N_Type_Conversion): On an access type conversion involving an
3226
        access parameter, do not apply an accessibility check when the
3227
        operand's original node was an attribute other than 'Access. We now
3228
        create access conversions for the expansion of 'Unchecked_Access and
3229
        'Unrestricted_Access in certain cases and clearly accessibility should
3230
        not be checked for those.
3231
 
3232
        * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
3233
        includes a type conversion of a packed component that has been expanded,
3234
        recover the original expression for the object, and use this expression
3235
        in the post-call assignment statement, so that the assignment is made
3236
        to the object and not to a back-end temporary.
3237
        (Freeze_Subprogram): In case of primitives of tagged types not defined
3238
        at the library level force generation of code to register the primitive
3239
        in the dispatch table. In addition some code reorganization has been
3240
        done to leave the implementation clear.
3241
        (Expand_Call): When expanding an inherited implicit conversion,
3242
        preserve the type of the inherited function after the intrinsic
3243
        operation has been expanded.
3244
 
3245
        * exp_ch2.ads, exp_ch2.adb
3246
        (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
3247
        of an entry formal appearing in an assignment statement does not assign
3248
        to the formal.
3249
        (Expand_Current_Value): Instead of calling a routine to determine
3250
        whether the prefix of an attribute reference should be optimized or
3251
        not, prevent the optimization of such prefixes all together.
3252
 
3253
        * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
3254
        component whose prefix is known to be of an access type is an implicit
3255
        dereference and does not assign to the prefix.
3256
 
3257
2007-08-14  Ed Schonberg  
3258
            Robert Dewar  
3259
 
3260
        * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
3261
        itype is visited, make an entry into table to link associated node and
3262
        new itype.
3263
        Add comments and correct harmless error in Build_NCT_Hash_Tables
3264
        (Array_Aggr_Subtype): Associate each itype created for an index type to
3265
        the corresponding range construct, and not to the aggregate itself. to
3266
        maintain a one-to-one correspondence between itype and its associated
3267
        node, to prevent errors when complex expression is copied.
3268
        Fix mishandling of multiple levels of parens
3269
 
3270
        * sem_aggr.adb: Create a limited view of an incomplete type, to make
3271
        treatment of limited views uniform for all visible declarations in a
3272
        limited_withed package.
3273
        (New_Copy_Tree): If hash table is being used and itype is visited,
3274
        make an entry into table to link associated node and new itype.
3275
        (Resolve_Record_Aggregate): Do not add an others box association for a
3276
        discriminated record component that has only discriminants, when there
3277
        is a box association for the component itself.
3278
 
3279
        * par-ch4.adb: Fix mishandling of multiple levels of parens
3280
 
3281
2007-08-14  Robert Dewar  
3282
 
3283
        * comperr.adb: Fix problem with suppressing warning messages from gigi
3284
 
3285
        * erroutc.ads, erroutc.adb, errout.ads,
3286
        errout.adb (Write_Eol): Remove trailing spaces before writing the line
3287
        (Write_Eol_Keep_Blanks): New procedure to write a line, including
3288
        possible trailing spaces.
3289
        (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
3290
        Fix problem with suppressing warning messages from back end
3291
        Improve handling of deleted warnings
3292
 
3293
        * gnat1drv.adb:
3294
        Fix problem with suppressing warning messages from back end
3295
        Handle setting of Static_Dispatch_Tables flag.
3296
 
3297
        * prepcomp.adb:
3298
        Fix problem with suppressing warning messages from back end
3299
 
3300
        * exp_intr.adb: Improve handling of deleted warnings
3301
 
3302
2007-08-14  Robert Dewar  
3303
 
3304
        * debug.adb: Improve -gnatdI to cover all cases of serialization
3305
        Add documentation of dZ, d.t
3306
 
3307
        * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
3308
        serialization.
3309
        (Sprint_Node_Actual): Generate new output associated with implicit
3310
        importation and implicit exportation of object declarations.
3311
 
3312
2007-08-14  Ed Schonberg  
3313
            Robert Dewar  
3314
            Javier Miranda  
3315
            Gary Dismukes  
3316
 
3317
        * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
3318
        to make treatment of limited views uniform for all visible declarations
3319
        in a limited_withed package.
3320
        Improve warnings for in out parameters
3321
        (Set_Related_Interaface/Related_Interface): Allow the use of this
3322
        attribute with constants.
3323
        (Write_Field26_Name): Handle attribute Related_Interface in constants.
3324
        Warn on duplicate pragma Preelaborable_Initialialization
3325
 
3326
        * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
3327
        generation of a freezing node to ensure proper management of null
3328
        excluding access types in the backend.
3329
        (Create_Extra_Formals): Test base type of the formal when checking for
3330
        the need to add an extra accessibility-level formal. Pass the entity E
3331
        on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
3332
        originally being done in a couple of cases), to ensure that the
3333
        Extra_Formals list gets set on the entity E when the first entity is
3334
        added.
3335
        (Conforming_Types): Add missing calls to Base_Type to the code that
3336
        handles anonymous access types. This is required to handle the
3337
        general case because Process_Formals builds internal subtype entities
3338
        to handle null-excluding access types.
3339
        (Make_Controlling_Function_Wrappers): Create wrappers for constructor
3340
        functions that need it, even when not marked Requires_Overriding.
3341
        Improve warnings for in out parameters
3342
        (Analyze_Function_Return): Warn for disallowed null return
3343
        Warn on return from procedure with unset out parameter
3344
        Ensure consistent use of # in error messages
3345
        (Check_Overriding_Indicator): Add in parameter Is_Primitive.
3346
        (Analyze_Function_Return): Move call to Apply_Constraint_Check before
3347
        the implicit conversion of the expression done for anonymous access
3348
        types. This is required to generate the code of the null excluding
3349
        check (if required).
3350
 
3351
        * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
3352
        A formal parameter is never publicly referenceable outside of its body.
3353
        (Check_References): For an unreferenced formal parameter in an accept
3354
        statement, use the same warning circuitry as for subprogram formal
3355
        parameters.
3356
        (Warn_On_Unreferenced_Entity): New subprogram, taken from
3357
        Output_Unreferenced_Messages, containing the part of that routine that
3358
        is now reused for entry formals as described above.
3359
        (Goto_Spec_Entity): New function
3360
        (Check_References): Do not give IN OUT warning for dispatching operation
3361
        Improve warnings for in out parameters
3362
        (Test_Ref): Check that the entity is not undefinite before calling
3363
        Scope_Within, in order to avoid infinite loops.
3364
        Warn on return from procedure with unset out parameter
3365
        Improved warnings for unused variables
3366
 
3367
2007-08-14  Robert Dewar  
3368
            Javier Miranda  
3369
            Gary Dismukes  
3370
 
3371
        * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
3372
        (Expand_N_Attribute_Reference): Further unify the handling of the
3373
        three forms of access attributes, using common code now for all three
3374
        cases. Add a test for the case of applying an access attribute to
3375
        an explicit dereference when the context is an access-to-interface
3376
        type. In that case we need to apply the conversion to the prefix
3377
        of the explicit dereference rather than the prefix of the attribute.
3378
        (Attribute_Version, UET_Address): Set entity as internal to ensure
3379
        proper dg output of implicit importation.
3380
        (Expand_Access_To_Type): Removed.
3381
        (Expand_N_Attribute_Reference): Merge the code from the three cases
3382
        of access attributes, since the processing is largely identical for
3383
        these cases. The substantive fix here is to process the case of a
3384
        type name prefix (current instance case) before handling the case
3385
        of interface prefixes.
3386
 
3387
2007-08-14  Thomas Quinot  
3388
            Ed Schonberg  
3389
            Javier Miranda  
3390
            Robert Dewar  
3391
 
3392
        * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
3393
        (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
3394
        type that is an anonymous access to controlled object, establish
3395
        an associated finalization chain to avoid corrupting the global
3396
        finalization list when a dynamically allocated object designated
3397
        by such a component is deallocated.
3398
        (Make_Controlling_Function_Wrappers): Create wrappers for constructor
3399
        functions that need it, even when not marked Requires_Overriding.
3400
        (Initialize_Tag): Replace call to has_discriminants by call to
3401
        Is_Variable_Size_Record in the circuitry that handles the
3402
        initialization of secondary tags.
3403
        (Is_Variable_Size_Record): New implementation.
3404
        (Expand_N_Object_Declaration): Suppress call to init proc if there is a
3405
        Suppress_Initialization pragma for a derived type.
3406
        (Is_Variable_Size_Record): New subprogram.
3407
        (Build_Offset_To_Top_Functions): New implementation that simplifies the
3408
        initial version of this routine and also fixes problems causing
3409
        incomplete initialization of the table of interfaces.
3410
        (Build_Init_Procedure): Improve the generation of code to initialize the
3411
        the tag components of secondary dispatch tables.
3412
        (Init_Secondary_Tags): New implementation that simplifies the previous
3413
        version of this routine.
3414
        (Make_DT): Add parameter to indicate when type has been frozen by an
3415
        object declaration, for diagnostic purposes.
3416
        (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
3417
        diagnose attemps to freeze a subprogram when some untagged type of its
3418
        profile is a private type whose full view has not been analyzed yet.
3419
        (Freeze_Array_Type): Generate init proc for packed array if either
3420
        Initialize or Normalize_Scalars is set.
3421
        (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
3422
        constructing the new profile, copy the null_exclusion indicator for each
3423
        parameter, to ensure full conformance of the new body with the spec.
3424
 
3425
        * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
3426
        Create wrappers for constructor functions that need it, even when not
3427
        marked Requires_Overriding.
3428
        (Covers): Handle properly designated types of anonymous access types,
3429
        whose non-limited views are themselves incomplete types.
3430
        (Add_Entry): Use an entity to store the abstract operation which hides
3431
        an interpretation.
3432
        (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
3433
        (Collect_Interps): Use Empty as an actual for Abstract_Op in the
3434
        initialization aggregate.
3435
        (Function_Interp_May_Be_Hidden): Rename to
3436
        Function_Interp_Has_Abstract_Op.
3437
        (Has_Compatible_Type): Remove machinery that skips interpretations if
3438
        they are labeled as potentially hidden by an abstract operator.
3439
        (Has_Hidden_Interp): Rename to Has_Abstract_Op.
3440
        (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
3441
        (Write_Overloads): Output the abstract operator if present.
3442
        (Add_Entry): Before inserting a new entry into the interpretation table
3443
        for a node, determine whether the entry will be disabled by an abstract
3444
        operator.
3445
        (Binary_Op_Interp_May_Be_Hidden): New routine.
3446
        (Collect_Interps): Add value for flag May_Be_Hidden in initialization
3447
        aggregate.
3448
        (Function_Interp_May_Be_Hidden): New routine.
3449
        (Has_Compatible_Type): Do not consider interpretations hidden by
3450
        abstract operators when trying to determine whether two types are
3451
        compatible.
3452
        (Has_Hidden_Interp): New routine.
3453
        (Set_May_Be_Hidden_Interp): New routine.
3454
        (Write_Overloads): Write the status of flag May_Be_Hidden.
3455
 
3456
2007-08-14  Ed Schonberg  
3457
            Javier Miranda  
3458
 
3459
        * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
3460
        types declared in the declarative part of a nested package body or in
3461
        the proper body of a stub.
3462
        (Set_All_DT_Position): Add missing check to avoid wrong assignation
3463
        of the same dispatch table slot to renamed primitives.
3464
        (Make_Select_Specific_Data_Table): Handle private types.
3465
        (Tagged_Kind): Handle private types.
3466
        (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
3467
        output of implicit importation and exportation.
3468
        (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
3469
        first formal of the thunk is always associated with the controlling
3470
        type. In addition perform the following code cleanup: remove formal
3471
        Thunk_Alias which is no longer required, cleanup evaluation of the
3472
        the controlling type, and update the documentation.
3473
        Replace occurrence of Default_Prim_Op_Count by
3474
        Max_Predef_Prims. Addition of compile-time check to verify
3475
        that the value of Max_Predef_Prims is correct.
3476
        (Check_Premature_Freezing): Apply check in Ada95 mode as well.
3477
        (Make_DT): Add parameter to indicate when type has been frozen by an
3478
        object declaration, for diagnostic purposes.
3479
        (Build_Static_Dispatch_Tables): New subprogram that takes care of the
3480
        construction of statically allocated dispatch tables.
3481
        (Make_DT): In case of library-level tagged types export the declaration
3482
        of the primary tag. Remove generation of tags (now done by Make_Tags).
3483
        Additional modifications to handle non-static generation of dispatch
3484
        tables. Take care of building tables for asynchronous interface types
3485
        (Make_Tags): New subprogram that generates the entities associated with
3486
        the primary and secondary tags of Typ and fills the contents of Access_
3487
        Disp_Table. In case of library-level tagged types imports the forward
3488
        declaration of the primary tag that will be declared later by Make_DT.
3489
        (Expand_Interface_Conversion): In case of access types to interfaces
3490
        replace an itype declaration by an explicit type declaration to avoid
3491
        problems associated with the scope of such itype in transient blocks.
3492
 
3493
2007-08-14  Robert Dewar  
3494
            Ed Schonberg  
3495
            Javier Miranda  
3496
 
3497
        * exp_util.ads, exp_util.adb:
3498
        This patch replaces a number of occurrences of explicit tests for N_Null
3499
        with calls to Known_Null. This improves tracking of null values, since
3500
        Known_Null also catches null constants, and variables currently known to
3501
        be null, so we get better tracking.
3502
        (Ensure_Defined): create an itype reference only in the scope of the
3503
        itype.
3504
        (Side_Effect_Free): A selected component of an access type that
3505
        denotes a component with a rep clause must be treated as not
3506
        side-effect free, because if it is part of a linked structure its
3507
        value may be affected by a renaming.
3508
        (Expand_Subtype_From_Expr): For limited objects initialized with build
3509
        in place function calls, do nothing; otherwise we prematurely introduce
3510
        an N_Reference node in the expression initializing the object, which
3511
        breaks the circuitry that detects and adds the additional arguments to
3512
        the called function. Bug found working in the new patch for statically
3513
        allocated dispatch tables.
3514
        (Is_Library_Level_Tagged_Type): New subprogram.
3515
        (Remove_Side_Effects): If the expression of an elementary type is an
3516
        operator treat as a function call.
3517
        (Make_Literal_Range): If the index type of the array is not integer, use
3518
        attributes properly to compute the constraint on the resulting aggregate
3519
        which is a string.
3520
 
3521
        * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
3522
        class-wide type whose base type is an incomplete private type, leave
3523
        class-wide type unfrozen so that freeze nodes can be generated
3524
        properly at a later point.
3525
        (Freeze_Entity, array case): Handle case of pragma Pack and component
3526
        size attributre clause for same array.
3527
 
3528
2007-08-14  Vincent Celier  
3529
 
3530
        * prj.ads, prj.adb: Update Project Manager to new attribute names for
3531
        gprbuild.
3532
        Allow all valid declarations in configuration project files
3533
        (Reset): Initialize all tables and hash tables in the project tree data
3534
        Major update of the Project Manager and of the project aware tools,
3535
        including gprmake, so that the same sources in the GNAT repository
3536
        can be used by gprbuild.
3537
        (Slash_Id): Change type to be Path_Name_Type
3538
        (Slash): Return a Path_Name_Type instead of a File_Name_Type
3539
 
3540
        * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
3541
        gprbuild.
3542
        Update Project Manager to new attribute names for ghprbuild
3543
        Allow all valid declarations in configuration project files
3544
        Major update of the Project Manager and of the project aware tools,
3545
        including gprmake, so that the same sources in the GNAT repository
3546
        can be used by gprbuild.
3547
 
3548
        * prj-com.ads:
3549
        Major update of the Project Manager and of the project aware tools,
3550
        including gprmake, so that the same sources in the GNAT repository
3551
        can be used by gprbuild.
3552
 
3553
        * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
3554
        insensitive flag for attributes with optional index.
3555
        (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
3556
        array attribute, put the index in lower case.
3557
        Update Project Manager to new attribute names for ghprbuild
3558
        Allow all valid declarations in configuration project files
3559
        Major update of the Project Manager and of the project aware tools,
3560
        including gprmake, so that the same sources in the GNAT repository
3561
        can be used by gprbuild.
3562
 
3563
        * prj-env.ads, prj-env.adb:
3564
        Major update of the Project Manager and of the project aware tools,
3565
        including gprmake, so that the same sources in the GNAT repository
3566
        can be used by gprbuild.
3567
        (Get_Reference): Change type of parameter Path to Path_Name_Type
3568
 
3569
        * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
3570
        removing '-' from the path to start with the first character of the
3571
        next directory.
3572
        Major update of the Project Manager and of the project aware tools,
3573
        including gprmake, so that the same sources in the GNAT repository
3574
        can be used by gprbuild.
3575
        Major update of the Project Manager and of the project aware tools,
3576
        including gprmake, so that the same sources in the GNAT repository
3577
        can be used by gprbuild.
3578
 
3579
        * prj-nmsc.ads, prj-nmsc.adb:
3580
        Update Project Manager to new attribute names for ghprbuild
3581
        Allow all valid declarations in configuration project files
3582
        (Search_Directories): Detect subunits that are specified with an
3583
        attribute Body in package Naming. Do not replace a source/unit in the
3584
        same project when the order of the source dirs are known. Detect
3585
        duplicate sources/units in the same project when the order of the
3586
        source dirs are not known.
3587
        (Check_Ada_Name): Allow all identifiers that are not reserved words
3588
        in Ada 95.
3589
        Major update of the Project Manager and of the project aware tools,
3590
        including gprmake, so that the same sources in the GNAT repository
3591
        can be used by gprbuild.
3592
        (Look_For_Sources): If the list of sources is empty, set the object
3593
        directory of non extending project to nil.
3594
        Change type of path name variables to be Path_Name_Type
3595
        (Locate_Directory): Make sure that on Windows '/' is converted to '\',
3596
        otherwise creating missing directories will fail.
3597
 
3598
        * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
3599
        prj-part.ads, prj-part.adb:
3600
        Major update of the Project Manager and of the project aware tools,
3601
        including gprmake, so that the same sources in the GNAT repository
3602
        can be used by gprbuild.
3603
 
3604
        * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
3605
        insensitive flag for attributes with optional index.
3606
        (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
3607
        array attribute, put the index in lower case.
3608
        (Parse_Variable_Reference): Allow the current project name to be used in
3609
        the prefix of an attribute reference.
3610
 
3611
        * prj-util.ads, prj-util.adb
3612
        (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
3613
        defaulted to False. When True, always check against indexes in lower
3614
        case.
3615
 
3616
        * snames.ads, snames.h, snames.adb:
3617
        Update Project Manager to new attribute names for gprbuild
3618
        Allow all valid declarations in configuration project files
3619
 
3620
2007-08-14  Robert Dewar  
3621
            Ed Schonberg  
3622
 
3623
        * opt.ads: Warning for non-local exception propagation now off by
3624
        default
3625
        New switch -gnatI to disable representation clauses
3626
        Implement new pragma Implicit_Packing
3627
 
3628
        * usage.adb:
3629
        Warning for non-local exception propagation now off by default
3630
        Add warning for unchecked conversion of pointers wi different
3631
        conventions.
3632
        New switch -gnatI to disable representation clauses
3633
 
3634
        * usage.adb: new switch -gnatyS
3635
 
3636
        * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
3637
        note that aggregates of anonymous array types are not flagged.
3638
        -gnatwc now includes membership tests optimized away
3639
        -gnatw.x warnings are now off by default
3640
        Added conditional compilation Appendix
3641
        Add documentation of -gnatI
3642
        Add documentation for new -gnatyS style check
3643
        Update documentation about SAL and auto-init on Windows.
3644
 
3645
        * gnat_rm.texi:
3646
        Add documentation for pragma Check_Name and 'Enabled attribute
3647
        Document that Eliminate on dispatching operation is ignored
3648
        Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
3649
        Document pragma Main
3650
        Document pragma Implicit_Packing
3651
 
3652
        * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
3653
        different conventions
3654
        New switch -gnatI to disable representation clauses
3655
 
3656
        * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
3657
        recognized, report the invalid characters including "-gnat" instead of
3658
        just the first character in the switch.
3659
        New switch -gnatI to disable representation clauses
3660
        Set Warn_On_Object_Renames_Function true for -gnatg
3661
 
3662
        * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
3663
        Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
3664
        Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
3665
        to switch -aP (add directory to project search dir).
3666
 
3667
        * par-prag.adb: Implement new pragma Implicit_Packing
3668
 
3669
        * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
3670
        type as having a non-standard representation, to force expansion on
3671
        conversion to related types.
3672
        (Analyze_Pragma): Warn on misspelled pragma
3673
        (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
3674
        Ensure consistent use of # in error messages
3675
        Implement pragma Implicit_Packing
3676
 
3677
2007-08-14  Olivier Hainque  
3678
            Eric Botcazou  
3679
 
3680
        * targtyps.c (get_target_maximum_default_alignment): New function.
3681
        Maximum alignment
3682
        that the compiler might choose by default for a type or object.
3683
        (get_target_default_allocator_alignment): New function. Alignment known
3684
        to be honored by the target default allocator.
3685
        (get_target_maximum_allowed_alignment): New function. Maximum alignment
3686
        we might accept for any type or object on the target.
3687
        (get_target_maximum_alignment): Now synonym of maximum_default_alignment
3688
 
3689
        * gigi.h (get_target_maximum_default_alignment): Declare new function.
3690
        (get_target_default_allocator_alignment): Likewise.
3691
        (get_target_maximum_allowed_alignment): Likewise.
3692
 
3693
        PR ada/19037
3694
        * decl.c (gnat_to_gnu_entity) : Except for the renaming of the
3695
        result of a function call, first try to use a stabilized reference for
3696
        a constant renaming too.
3697
        (validate_alignment): Use target_maximum_allowed_alignment instead of
3698
        MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
3699
        (gnat_to_gnu_entity): Use common nodes directly.
3700
        (gnat_to_gnu_entity) : Pick the values of the type to annotate
3701
        alignment and size for the object.
3702
        (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
3703
        and N_Procedure_Call_Statement.
3704
        (takes_address): Rename to lvalue_required_p, add third parameter
3705
        'aliased' and adjust recursive calls.
3706
        : Update 'aliased' from the array type.
3707
        : New case.
3708
        : New Likewise.
3709
        (Identifier_to_gnu): Adjust for above changes.
3710
        (maybe_stabilize_reference) : New case.
3711
 
3712
        * utils2.c (build_binary_op) : Look through conversion
3713
        between type variants.
3714
        (build_simple_component_ref): Likewise.
3715
        (build_call_alloc_dealloc): Use target_default_allocator_alignment
3716
        instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
3717
        aligning type circuitry for allocations from the default storage pool.
3718
        (build_allocator): Likewise.
3719
        (build_simple_component_ref): Manually fold the reference for a
3720
        constructor if the record type contains a template.
3721
 
3722
        * utils.c (value_zerop): Delete.
3723
        (gnat_init_decl_processing): Emit debug info for common types.
3724
        (rest_of_record_type_compilation): If a union contains a field
3725
        with a non-constant qualifier, treat it as variable-sized.
3726
        (finish_record_type): Give the stub TYPE_DECL a name.
3727
        (rest_of_record_type_compilation): Likewise.
3728
        (convert) : New case.  Build a new constructor if
3729
        types are equivalent array types.
3730
        (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
3731
        even if the type is not passed by reference.
3732
        (static_ctors, static_dtors): Delete.
3733
        (end_subprog_body): Do not record constructors and destructors.
3734
        (build_global_cdtor): Delete.
3735
        (gnat_write_global_declarations): Do not call build_global_cdtor.
3736
 
3737
        * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
3738
        -fRTS=rtp is specified.
3739
        If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
3740
        specified.
3741
 
3742
        * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
3743
        of the personality function with SJLJ exceptions.
3744
 
3745
        * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
3746
        the name of the personality function with SJLJ exceptions.
3747
 
3748
2007-08-14  Robert Dewar  
3749
            Ed Schonberg  
3750
 
3751
        * par.ads, par.adb: Improve handling of extra right parens.
3752
        (Par): Remove flag From_Limited_With_Clause.
3753
 
3754
        * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
3755
        Improve handling of extra right parens.
3756
 
3757
2007-08-14  Robert Dewar  
3758
 
3759
        * par-tchk.adb (TF_Semicolon): Improve error recovery
3760
 
3761
2007-08-14  Robert Dewar  
3762
            Ed Schonberg  
3763
 
3764
        * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
3765
        enumeration type, mark all literals as referenced.
3766
        (Eval_Attribute, case 'Image): If the argument is an enumeration
3767
        literal and names are available, constant-fold but mark nevertheless as
3768
        non-static.
3769
        Clean up function names.
3770
        (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
3771
        comment.
3772
        (Requires_Simple_Name_Prefix): Removed.
3773
 
3774
2007-08-14  Robert Dewar  
3775
            Ed Schonberg  
3776
 
3777
        * sem_ch11.adb: Improved warnings for unused variables
3778
 
3779
        * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
3780
        is a synchronized interface, the derived type is limited.
3781
        (Analyze_Object_Declaration): Mark the potential coextensions in the
3782
        definition and expression of an object declaration node.
3783
        (Build_Derived_Type): For the completion of a private type declaration
3784
        with a derived type declaration, chain the parent type's representation
3785
        items to the last representation item of the derived type (not the
3786
        first one) if they are not present already.
3787
        (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
3788
        object declaration of forward references to tags.
3789
        (Access_Subprogram_Declaration): In Ada2005, anonymous access to
3790
        subprogram types can appear as access discriminants of synchronized
3791
        types.
3792
        (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
3793
        given in prefixed form as a selected component.
3794
        (Process_Discriminants): If not all discriminants have defaults, place
3795
        error message on a default that is present.
3796
        (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
3797
        extend a synchronized tagged type.
3798
        Improved warnings for unused variables
3799
        (Is_Visible_Component): Fix a visibility hole on a component inherited
3800
        by a private extension when parent is itself declared as a private
3801
        extension, and the derivation is in a child unit.
3802
        (Find_Hidden_Interface): Move spec from the package body.
3803
 
3804
2007-08-14  Robert Dewar  
3805
            Ed Schonberg  
3806
 
3807
        * sem_ch5.adb: Improve warnings on redundant assignments
3808
 
3809
        * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
3810
        parameter
3811
        (Is_Synchronized_Tagged_Type): New subprogram that returns true
3812
        in case of synchronized tagged types (AARM 3.9.4 (6/2)).
3813
        (Safe_To_Capture_Value): Can now return True for constants, even if Cond
3814
        is set to False. Improves handling of Known_[Not_]Null.
3815
        (Wrong_Type): Special case address arithmetic attempt
3816
        (Collect_Abstract_Interfaces): Add new formal to allow collecting
3817
        abstract interfaces just using the partial view of private types.
3818
        (Has_Abstract_Interfaces): Add new formal to allow checking types
3819
        covering interfaces using the partial view of private types.
3820
        (Is_Fully_Initialized_Type): Special VM case for uTag component. This
3821
        component still needs to be defined in this case, but is never
3822
        initialized as VMs are using other dispatching mechanisms.
3823
        (Abstract_Interface_List): For a protected type, use base type to get
3824
        proper declaration.
3825
        Improve warnings on redundant assignments
3826
        (Is_Variable): Handle properly an implicit dereference of a prefixed
3827
        function call.
3828
        (Build_Actual_Subtype): If this is an actual subtype for an
3829
        unconstrained formal parameter, use the sloc of the body for the new
3830
        declaration, to prevent anomalises in the debugger.
3831
 
3832
2007-08-14  Robert Dewar  
3833
 
3834
        * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
3835
        dispatching operation
3836
 
3837
2007-08-14  Ed Schonberg  
3838
            Gary Dismukes  
3839
 
3840
        * exp_aggr.ads,
3841
        exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
3842
        expanded aggregate code before allocator, and ahead of declaration for
3843
        temporary, to prevent access before elaboration when the allocator is
3844
        an actual for an access parameter.
3845
        (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
3846
        the TSD and the table of interfaces.
3847
        (Convert_To_Assignments): Augment the test for delaying aggregate
3848
        expansion for limited return statements to include the case of extended
3849
        returns, to prevent creation of an unwanted transient scope.
3850
        (Is_Static_Dispatch_Table_Aggregate): New subprogram.
3851
        (Expand_Array_Aggregate): Handle aggregates associated with
3852
        statically allocated dispatch tables.
3853
        (Expand_Record_Aggregate): Handle aggregates associated with
3854
        statically allocated dispatch tables.
3855
        (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
3856
        of anonymous access type.
3857
 
3858
2007-08-14  Ed Schonberg  
3859
 
3860
        * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
3861
        is a variable that renames a slice, use the variable itself in the
3862
        expannsion when the renamed expression itself may be modified between
3863
        the declaration of the renaming and the array assignment.
3864
 
3865
2007-08-14  Jerome Guitton  
3866
 
3867
        * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
3868
        s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
3869
        s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
3870
        New functions; dummy implementations.
3871
 
3872
        * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
3873
        functions, used to implement the multi-tasks mode routines on VxWorks.
3874
 
3875
        * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
3876
        New functions, thin
3877
        binding to the VxWorks routines which have changed between VxWorks 5
3878
        and 6.
3879
        (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
3880
        which are not callable from a RTP.
3881
 
3882
        * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
3883
        implemented for the multi-tasks mode on VxWorks 5 and 6.
3884
 
3885
        * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
3886
 
3887
        * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
3888
        functions.
3889
 
3890
2007-08-14  Vincent Celier  
3891
 
3892
        * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
3893
        gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
3894
        mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
3895
        mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
3896
        mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
3897
        mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
3898
        mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
3899
        procedure.
3900
        (Major_Id_Name): New function.
3901
        mlib-tgt.ads/mlib.tgt.adb:
3902
        (Library_Major_Minor_Id_Supported): New function, default returns True
3903
        Most mlib-tgt-*.adb that support shared libraries and symbolic links:
3904
        (Build_Dynamic_Library): Add support for major/minor ids for shared libs
3905
        Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
3906
        Implementation of Library_Major_Minor_Id_Supported returns False
3907
        clean.adb:
3908
        (Clean_Library_Directory): If major/minor ids are supported, clean all
3909
        library files.
3910
        Major update of the Project Manager and of the project aware tools,
3911
        including gprmake, so that the same sources in the GNAT repository
3912
        can be used by gprbuild.
3913
 
3914
2007-08-14  Olivier Hainque  
3915
 
3916
        * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
3917
        (GCC_ZCX_Support): Switch to True.
3918
 
3919
        * s-intman-solaris.adb (Notify_Exception): Call
3920
        Adjust_Context_For_Raise before raising, as expected for signal
3921
        handlers in general.
3922
 
3923
        * s-intman-posix.adb (Notify_Exception): Remove declaration of
3924
        Adjust_Context_For_Raise, moved to the spec of this unit to be visible
3925
        to other implementation bodies.
3926
 
3927
        * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
3928
        be visible by multiple implementation bodies.
3929
 
3930
        * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
3931
        only for conditions coming from hardware.
3932
        [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
3933
        adjustments to signal context prior to exception raise from signal
3934
        handler.
3935
        (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
3936
        mode.
3937
        Solaris section: (__gnat_adjust_context_for_raise): New function.
3938
        Implementation of the machine context adjustments to perform prior to
3939
        raise from a signal handler. Version for both sparc and x86.
3940
        (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
3941
        (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
3942
        prior to raising as expected for any handler, before possible nested
3943
        faults to make sure all the contexts in a chain have been adjusted by
3944
        the time we propagate.
3945
 
3946
2007-08-14  Pascal Obry  
3947
 
3948
        * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
3949
        (SYSTEM_INFO): New record.
3950
        (SetThreadIdealProcessor): New imported routine needed for supporting
3951
        task_info pragma on Windows.
3952
 
3953
        * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
3954
        info can be applied to the current host.
3955
        (Create_Task): Set the ideal processor if information is present.
3956
 
3957
        * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
3958
        a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
3959
 
3960
2007-08-14  Olivier Hainque  
3961
 
3962
        * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
3963
        stack size and initial stack pointer value for a given task.
3964
        (Enter_Task): Get the stack attributes of the task we are entering and
3965
        let the stack checking engine know about them.
3966
 
3967
        * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
3968
        Let the stack-checking engine know about the initial sp value and stack
3969
        size associated with the current task.
3970
        (Set_Stack_Info): If a stack base has been notified for the current
3971
        task, honor it. Fallback to the previous less accurate method otherwise.
3972
 
3973
        * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
3974
 
3975
2007-08-14  Ed Schonberg  
3976
 
3977
        * sem_ch10.adb: Create a limited view of an incomplete type, to make
3978
        treatment of limited views uniform for all visible declarations in a
3979
        limited_withed package.
3980
        Set flag indicating that a subprogram body for a child unit has a
3981
        generated spec.
3982
        (Analyze_Compilation_Unit): If unit is a subprogram body that has no
3983
        separate declaration, remove the unit name from visibility after
3984
        compilation, so that environment is clean for subsequent compilations.
3985
        (Install_Limited_Context_Clauses): Do not install a
3986
        limited_private_with_clause unless the current unit is a body or a
3987
        private child unit.
3988
        (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
3989
        in the same fashion.
3990
        (Install_Limited_Withed_Unit): Do not install a limited with clause if
3991
        it applies to the declaration of the current package body.
3992
        (Remove_Private_With_Clauses): If there is a regular with_clause for
3993
        the unit, delete Private_With_Clause from context, to prevent improper
3994
        hiding when processing subsequent nested packages and instantiations.
3995
 
3996
2007-08-14  Jose Ruiz  
3997
 
3998
        * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
3999
        dir/file, device:/dir/file, and device:drive_letter:/dir/file as
4000
        representing absolute path names.
4001
        __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
4002
 
4003
        * cstreams.c (__gnat_full_name for VxWorks): Use
4004
        __gnat_is_absolute_path to detect whether we need to add the current
4005
        directory to normalize the path.
4006
 
4007
2007-08-14  Javier Miranda  
4008
 
4009
        * a-tags.ads,
4010
        a-tags.adb (Displace): Associate a message with the raised CE
4011
        exception.
4012
        (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
4013
        To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
4014
        To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
4015
        spec.
4016
        (Default_Prim_Op_Count): Removed.
4017
        (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
4018
        Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
4019
        Remove pragma Inline_Always.
4020
 
4021
        * rtsfind.ads (Default_Prim_Op_Count): Removed
4022
        (Max_Predef_Prims): New entity
4023
        (RE_Expanded_Name): Removed
4024
        (RE_HT_Link): Removed
4025
        (RE_Iface_Tag): Remmoved
4026
        (RE_Ifaces_Table): Removed
4027
        (RE_Interfaces_Array): Removed
4028
        (RE_Interface_Data_Element): Removed
4029
        (RE_Nb_Ifaces): Removed
4030
        (RE_RC_Offset): Removed
4031
        (RE_Static_Offset_To_Top): Removed
4032
 
4033
        * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
4034
        formal.
4035
        (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
4036
        Prim_Op_Count by Max_Predef_Prims.
4037
 
4038
2007-08-14  Thomas Quinot  
4039
            Vincent Celier  
4040
 
4041
        * binde.adb (Elab_All_Links): Remove unnecessary call to
4042
        Generic_Separately_Compiled (if a unit satisfies this predicate, there
4043
        won't be an associated Afile).
4044
        (Elab_All_Links): Fail if a referenced unit cannot be found
4045
 
4046
        * bindgen.adb:
4047
        Fix comments in bindgen regarding consistency checks done in Bcheck:
4048
        the checks are made across units within a partition, not across several
4049
        partitions.
4050
        Fix generation of C binder file for VxWorks.
4051
 
4052
        * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
4053
        Generic_May_Lack_ALI, more descriptive of the current use of the
4054
        predicate, and update documentation.
4055
 
4056
        * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
4057
        reorganization and documentation update for the case of predefined
4058
        library generics (for which we do not reference an Afile).
4059
 
4060
2007-08-14  Robert Dewar  
4061
 
4062
        * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
4063
        s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
4064
        s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
4065
        s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
4066
        s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
4067
        s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
4068
        s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
4069
        s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
4070
        exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
4071
        s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
4072
        s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
4073
        a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
4074
        s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
4075
        g-altcon.adb: Minor reformatting
4076
 
4077
        ada-tree.h: Delete empty line.
4078
 
4079
        ali.ads: Minor reformatting
4080
        Clarification of comments.
4081
        Minor spelling correction
4082
 
4083
        * exp_dbug.adb: Add Warnings Off to suppress new warning
4084
 
4085
        * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
4086
        formal
4087
 
4088
        * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
4089
        value
4090
 
4091
        * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
4092
 
4093
        * a-textio.ads: Reorder the standard input/output/error declarations
4094
        for consistency.
4095
 
4096
        * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
4097
 
4098
        * par-ch2.adb: Recognize RM specially in errout
4099
        Change 'R'M to RM in all error messages
4100
 
4101
        * scng.adb: Recognize RM specially in errout
4102
 
4103
        * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
4104
        N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
4105
 
4106
        * s-direio.adb: Add missing routine header box.
4107
 
4108
        * sem_attr.ads: Add ??? comments
4109
 
4110
        * sem_eval.adb: Recognize RM specially in errout
4111
        Change 'R'M to RM in all error messages
4112
 
4113
        * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
4114
 
4115
        * s-tasinf.ads: Fix minor comment typo.
4116
 
4117
        * a-cihama.adb: Minor comment addition
4118
 
4119
        * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
4120
        formal
4121
 
4122
        * s-tasinf-tru64.ads: Fix minor comment typo.
4123
 
4124
        * itypes.ads: Comment update.
4125
 
4126
        * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
4127
        anymore.
4128
 
4129
        * argv.c: Added protection against null gnat_argv and gnat_envp.
4130
 
4131
        * bcheck.adb (Check_Consistency): Use correct markup character ({) in
4132
        warning message when Tolerate_Consistency_Errors is True.
4133
 
4134
        * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
4135
        Any_Id, as this subprogram is only applicable to *type* entities (it
4136
        sets RM_Size). Instead initialize just Esize and Alignment.
4137
 
4138
2007-08-14  Bob Duff  
4139
 
4140
        * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
4141
        a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
4142
        a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
4143
        a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
4144
        a-coorse.ads (Next): Applied pragma Inline.
4145
        Make all Containers packages Remote_Types (unless they are already
4146
        Pure).
4147
        (Previous): applied pragma Inline
4148
        (Elements_Type): is now a record instead of an array
4149
 
4150
2007-08-14  Thomas Quinot  
4151
 
4152
        * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
4153
        of Set_Item.
4154
        (Set_Item): When the new item is an element of the currently allocated
4155
        table passed by reference, save a copy on the stack if we're going
4156
        to reallocate. Also, in Table.Set_Item, make sure we test the proper
4157
        variable to determine whether to call Set_Last.
4158
 
4159
        * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
4160
        symbols-vms.adb, symbols-processing-vms-alpha.adb,
4161
        symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
4162
        some occurrences of the pattern
4163
           T.Increment_Last;
4164
           T.Table (T.Last) := Value;
4165
        with a cleaner call to
4166
           T.Append (Value);
4167
 
4168
2007-08-14  Ed Schonberg  
4169
            Gary Dismukes  
4170
            Thomas Quinot  
4171
 
4172
        * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
4173
        derived type with interface progenitors use the analyzed formal as the
4174
        parent of the actual, to create renamings for all the inherited
4175
        operations in Derive_Subprograms.
4176
        (Collect_Previous_Instances): new procedure within of
4177
        Load_Parent_Of_Generic, to instantiate all bodies in the compilation
4178
        unit being loaded, to ensure that the generation of global symbols is
4179
        consistent in different compilation modes.
4180
        (Is_Tagged_Ancestor): New function testing the ancestor relation that
4181
        takes progenitor types into account.
4182
        (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
4183
        traversing over the primitives of the formal and actual types to locate
4184
        any abstract subprograms of the actual type that correspond to a
4185
        nonabstract subprogram of the formal type's ancestor type(s), and issue
4186
        an error if such is found.
4187
        (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
4188
        Instantiate_Package_Body, Instantiate_Subprogram_Body):
4189
        Remove bogus guard around calls to Inherit_Context.
4190
        (Reset_Entity): If the entity is the selector of a selected component
4191
        that denotes a named number, propagate constant-folding to the generic
4192
        template only if the named number is global to the generic unit.
4193
        (Set_Instance_Env): Only reset the compilation switches when compiling
4194
        a predefined or internal unit.
4195
 
4196
2007-08-14  Ed Schonberg  
4197
 
4198
        * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
4199
        parameter to determine whether operation applies to the prefix.
4200
        (Complete_Object_Operation): If actual has an access type and
4201
        controlling formal is not an in_parameter, reject the actual if it is
4202
        an access_to_constant type.
4203
        (Try_Primitive_Operation): If the type of the prefix is a formal tagged
4204
        type, the candidate operations are found in the scope of declaration of
4205
        the type, because the type has no primitive subprograms.
4206
        (Analyze_Selected_Component): If prefix is class-wide, and root type is
4207
        a private extension, only examine visible components before trying to
4208
        analyze as a prefixed call.
4209
        Change Entity_List to Type_To_Use, for better readability.
4210
        (Has_Fixed_Op): Use base type when checking whether the type of an
4211
        operator has a user-defined multiplication/division
4212
        (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
4213
        user-defined operators are available for fixed-point types.
4214
 
4215
2007-08-14  Thomas Quinot  
4216
            Ed Schonberg  
4217
 
4218
        * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
4219
        formal At_Any_Place indicating, when True, that we want to test for
4220
        availability of the stream attribute at any place (as opposed to the
4221
        current visibility context only).
4222
        (Missing_Read_Write_Attributes): A stream attribute is missing for the
4223
        purpose of enforcing E.2.2(8) only if it is not available at any place.
4224
        Take into account the Ada2005 pragma Has_Preelaborable_Initialization
4225
        when checking the legality of an extension aggregate in a preelaborable
4226
        package. Treat the literal null as a valid default expression in a
4227
        component declaration for a type with preelaborable initialization.
4228
        A limited interface is a legal progenitor for the designated type of a
4229
        remote access to class-wide type.
4230
 
4231
2007-08-14  Thomas Quinot  
4232
            Ed Schonberg  
4233
 
4234
        * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
4235
        reference): Use correct entity as denoted entity for the selector of
4236
        the rewritten node.
4237
        (Find_Direct_Name): Add comment about Generate_Reference incorrectly
4238
        setting the Referenced_As_LHS flag for entities that are implicitly
4239
        dereferenced.
4240
        (Find_Type): If the type is an internally generated incomplete type,
4241
        mark the full view as referenced, to prevent spurious warnings.
4242
        (Find_Selected_Component, Has_Components): Handle properly non-limited
4243
        views that are themselves incomplete types.
4244
        Handle interfaces visible through limited-with clauses.
4245
        (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
4246
        subprogram generic actual for which we have generated a renaming.
4247
        Warn when the renaming introduces a homonym of
4248
        the renamed entity, and the renamed entity is directly visible.
4249
 
4250
2007-08-14  Ed Schonberg  
4251
            Hristian Kirtchev  
4252
 
4253
        * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
4254
        appear in the subtree to the current allocator if it is not a static
4255
        coextension.
4256
        (Resolve_Allocator): Perform cleanup if resolution has determined that
4257
        the allocator is not a coextension.
4258
        (Resolve): Skip an interpretation hidden by an abstract operator only
4259
        when the type of the interpretation matches that of the context.
4260
        (Resolve): When looping through all possible interpretations of a node,
4261
        do not consider those that are hidden by abstract operators.
4262
        (Resolve_Actuals): When verifying that an access to class-wide object
4263
        is an actual  for a controlling formal, ignore anonymous access to
4264
        subprograms whose return type is an access to class_wide type.
4265
        (Resolve_Slice): If the prefix of the slice is a selected component
4266
        whose type depends on discriminants, build its actual subtype before
4267
        applying range checks on the bounds of the slice.
4268
        (Valid_Conversion): In an instance or inlined body, compare root types,
4269
        to prevent anomalies between private and public views.
4270
        (Resolve): Improve error message for ambiguous fixed multiplication
4271
        expressions that involve universal_fixed multiplying operations.
4272
 
4273
2007-08-14  Javier Miranda  
4274
            Hristian Kirtchev  
4275
 
4276
        * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
4277
        location to allow the correct generation of errors in case of
4278
        restrictions applied to the expanded code.
4279
        (Expand_Entry_Barrier): Remove all generated renamings for a barrier
4280
        function if the condition does not reference them.
4281
        (Expand_Entry_Body_Declarations): Mark the index constant as having a
4282
        valid value.
4283
 
4284
2007-08-14  Thomas Quinot  
4285
            Pablo Oliveira  
4286
 
4287
        * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
4288
        typecode parameters for a union (in a variant record), remove
4289
        extraneous layer of Any wrapping for member label.
4290
        (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
4291
        elabration statements, register the package with the name server
4292
        at the beginning, not at the end, of the elaboration statements so
4293
        that they can create remote access to subprogram values that designate
4294
        remote subprograms from the package.
4295
 
4296
2007-08-14  Hristian Kirtchev  
4297
 
4298
        * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
4299
        values to compute the number of seconds since the Unix Epoc in order to
4300
        account for Daylight Savings Time. Perform special processing for dates
4301
        that are earlier than the Unix Epoc to obtain a negative number.
4302
 
4303
2007-08-14  Emmanuel Briot  
4304
 
4305
        * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
4306
        switches.
4307
 
4308
2007-08-14  Eric Botcazou  
4309
 
4310
        * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
4311
        binder-generated file is not in Ada.
4312
        Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
4313
        recorded in the ALI file.
4314
        Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
4315
 
4316
2007-08-14  Vincent Celier  
4317
 
4318
        * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
4319
        (Output_Source): Do nothing if parameter is No_Sdep_Id
4320
 
4321
        * make.adb (Gnatmake): Do not rebuild an archive simply because a
4322
        shared library it imports has a later time stamp.
4323
        (Check): Resolve the symbolic links in the path name of the object
4324
        directory.
4325
        Check that the ALI file is in the correct object directory
4326
        Check if a file name does not correspond to the mapping of units
4327
        to file names.
4328
        (Display_Version): New procedure
4329
        (Initialize): Process switches --version and --help
4330
        Use type Path_Name_Type for path name
4331
 
4332
2007-08-14  Paul Hilfinger  
4333
 
4334
        * impunit.adb: Re-organize System.Random_Numbers and
4335
        GNAT.Random_Numbers and add to builds.
4336
 
4337
        * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
4338
 
4339
        * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
4340
 
4341
        * a-assert.ads, a-assert.adb: New files.
4342
 
4343
2007-08-14  Gary Dismukes  
4344
 
4345
        * layout.adb (Layout_Type): In the case of access-to-subprogram types,
4346
        if AAMP_On_Target is True, then the size of the type encompasses two
4347
        addresses (a static link and a subprogram address), except in the case
4348
        of library-level access types.
4349
 
4350
2007-08-14  Vincent Celier  
4351
 
4352
        * output.ads, output.adb (Write_Eol): Remove trailing spaces before
4353
        writing the line.
4354
        (Write_Eol_Keep_Blanks): New procedure to write a line, including
4355
        possible trailing spaces.
4356
        (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
4357
 
4358
2007-08-14  Javier Miranda  
4359
 
4360
        * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
4361
        null-excluding access types.
4362
 
4363
2007-08-14  Javier Miranda  
4364
 
4365
        * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
4366
        that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
4367
        of private types add missing check on matching interfaces in the
4368
        partial and full declarations.
4369
        (Analyze_Protected_Type): Code cleanup.
4370
        (Analyze_Task_Type): Code cleanup.
4371
 
4372
2007-08-14  Javier Miranda  
4373
 
4374
        * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
4375
        generated interface thunk.
4376
 
4377
2007-08-14  Ed Schonberg  
4378
 
4379
        * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
4380
        obsolescent warning on application of 'Class to an incomplete type.
4381
 
4382
        * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
4383
        prevent obsolescent warning on application of 'Class to an incomplete
4384
        type.
4385
 
4386
2007-08-14  Pascal Obry  
4387
 
4388
        * s-fileio.adb (Is_Open): Add check for usability of the underlying
4389
        file stream.
4390
 
4391
2007-08-14  Cyrille Comar  
4392
 
4393
        * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
4394
        since it is potentially used in cases implying double finalization of
4395
        the same object.
4396
 
4397
2007-08-14  Jose Ruiz  
4398
 
4399
        * s-tasini.adb (Get_Stack_Info): Move this function to
4400
        System.Soft_Links.Tasking because it is common to the full and the
4401
        restricted run times.
4402
        (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
4403
        in SSL.Tasking.Init_Tasking_Soft_Links.
4404
 
4405
        * s-solita.adb (Get_Stack_Info): Function moved from
4406
        System.Tasking.Initialization because it is common to the full and the
4407
        restricted run times.
4408
        (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
4409
 
4410
2007-08-14  Arnaud Charlet  
4411
 
4412
        * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
4413
        s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
4414
        (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
4415
        parameter.
4416
 
4417
        * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
4418
        guard to 12K.
4419
 
4420
2007-08-14  Gary Dismukes  
4421
 
4422
        * s-veboop.adb (SU): New named number initialized to
4423
        System.Storage_Unit.
4424
        (True_Val): The initialization expression is revised to use SU (=
4425
        Storage_Unit) rather than assuming 8 for the component size of an
4426
        unpacked Boolean array.
4427
 
4428
2007-08-14  Tristan Gingold  
4429
 
4430
        * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
4431
 
4432
        * tb-ivms.c: New file.
4433
 
4434
        * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
4435
 
4436
2007-08-14  Geert Bosch  
4437
 
4438
        * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
4439
        s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
4440
        Add required linker pragmas for automatically linking with the gnalasup
4441
        linear algebra support library, and the systems math library.
4442
        Rename cdot to cdotu and zdot to zdotu.
4443
        Update header comment to describe purpose of package.
4444
 
4445
2007-08-14  Thomas Quinot  
4446
 
4447
        * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
4448
        an explicitly specified Associated_Final_Chain, use that list.
4449
        (Expand_N_Package_Body): Build dispatch tables of library level tagged
4450
        types.
4451
        (Expand_N_Package_Declaration): Build dispatch tables of library level
4452
        tagged types. Minor code cleanup.
4453
 
4454
2007-08-14  Vincent Celier  
4455
 
4456
        * gnatchop.adb (Terminate_Program): Remove exception and use
4457
        Types.Terminate_Program instead.
4458
 
4459
        * osint.ads, osint.adb (Current_Exit_Status): New global variable
4460
        (Find_Program_Name): Added protection against empty name.
4461
        (OS_Exit_Through_Exception): New procedure
4462
 
4463
        * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
4464
        (OS_Exit_Default): New procedure that contains the previous
4465
        implementation of procedure OS_Exit.
4466
        (Final_Value): Remove obsolete Interix stuff.
4467
 
4468
2007-08-14  Thomas Quinot  
4469
 
4470
        * g-socket.ads: Reorganize example code so that it also works on
4471
        Windows XP.
4472
 
4473
2007-08-14  Tristan Gingold  
4474
 
4475
        * g-trasym.ads: AIX now supports symbolic backtraces.
4476
 
4477
2007-08-14  Ed Schonberg  
4478
 
4479
        * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
4480
        units being loaded to detect circularities. A circularity may be
4481
        present even if the current chain of pending units to load starts from
4482
        a limited_with_clause.
4483
 
4484
        * lib-load.ads: Change profile of Load_Unit to use a with_clause
4485
        rather than a boolean flag, in order to detect circularities in
4486
        with_clauses.
4487
 
4488
        * par-load.adb: Use current with_clause in calls to Load_Unit, rather
4489
        than propagating the From_Limited_With flag, in order to handle
4490
        properly circularities involving with_clauses.
4491
 
4492
2007-08-14  Nicolas Setton  
4493
 
4494
        * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
4495
        warnings.
4496
 
4497
2007-08-14  Arnaud Charlet  
4498
 
4499
        * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
4500
        to build for libgnala.
4501
        libgnat: Add rules to build libgnala.a
4502
        (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
4503
        target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
4504
        Add s-osinte-vxworks-kernel.adb to the target pairs of the
4505
        kernel run-time lib for VxWorks 6, which would provide a different
4506
        implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
4507
        x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
4508
        running ZCX by default.
4509
        Add g-sttsne-locking to LynxOS version.
4510
        Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
4511
        On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
4512
 
4513
        * system-darwin-x86.ads: New file.
4514
 
4515
        * Make-lang.in: Delete files before copying onto them, so if they are
4516
        read-only, the copy won't fail.
4517
        Update dependencies
4518
 
4519
2007-08-14  Pascal Obry  
4520
 
4521
        * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
4522
        naming scheme.
4523
 
4524
2007-08-14  Vincent Celier  
4525
 
4526
        * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
4527
        (Gcc): Initialize Gcc_Name at the first call
4528
 
4529
2007-08-14  Ed Schonberg  
4530
 
4531
        * sem_ch7.adb (Analyze_Package_Specification): Do not install private
4532
        with_clauses of the enclosing unit when analyzing the package
4533
        specification of a nested instance.
4534
 
4535
2007-08-14  Hristian Kirtchev  
4536
 
4537
        * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
4538
        (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
4539
        Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
4540
        layout of N_Allocator.
4541
 
4542
2007-08-14  Thomas Quinot  
4543
 
4544
        * rtsfind.adb (Check_RPC): Add PCS version check.
4545
 
4546
        * gnatvsn.ads, gnatvsn.adb: Add PCS version.
4547
        (Gnat_Free_Software): New function.
4548
 
4549
        * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
4550
        the PCS_Version value from s-parint, used to check that it is consistent
4551
        with what exp_dist expects.
4552
 
4553
        * s-parint.ads (PCS_Version): New entity for checking consistency
4554
        between exp_dist and PCS.
4555
 
4556
        * gen-soccon.c: (SO_REUSEPORT): New constant.
4557
 
4558
2007-08-14  Hristian Kirtchev  
4559
 
4560
        * a-calfor.adb (Image (Duration; Boolean)): Change type of local
4561
        variable Sub_Second to Duration in order to accomodate a larger range
4562
        of arithmetic operations.
4563
 
4564
2007-08-14  Bob Duff  
4565
 
4566
        * g-sttsne-locking.ads: Move comments from spec to body.
4567
        * g-sttsne-locking.adb: Move comments from spec to body.
4568
        * g-sttsne-vxworks.ads: Removed.
4569
        * g-sttsne-vxworks.adb: Removed.
4570
 
4571
2007-08-11  Ian Lance Taylor  
4572
 
4573
        * misc.c (gnat_get_alias_set): Change return type to
4574
        alias_set_type.
4575
 
4576
2007-08-11  Kaveh R. Ghazi  
4577
 
4578
        * decl.c, utils2.c: Fix whitespace in last change.
4579
 
4580
2007-08-11  Kaveh R. Ghazi  
4581
 
4582
        * decl.c (compare_field_bitpos): Constify.
4583
        * utils2.c (compare_elmt_bitpos): Likewise.
4584
 
4585
2007-07-27  Aurelien Jarno  
4586
 
4587
        * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
4588
        anonymous access type.
4589
        (pthread_sigmask): Now take an access sigset_t.
4590
 
4591
2007-07-05  Joel Sherrill  
4592
 
4593
        * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
4594
 
4595
2007-06-21  Eric Botcazou  
4596
 
4597
        PR tree-optimization/25737
4598
        * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
4599
 
4600
2007-06-15  Andrew Pinski  
4601
 
4602
        * trans.c (Attribute_to_gnu): When subtracting an
4603
        offset from a pointer, use POINTER_PLUS_EXPR with
4604
        NEGATE_EXPR instead of MINUS_EXPR.
4605
        (gnat_to_gnu): Likewise.
4606
        * utils.c (convert): When converting between
4607
        thin pointers, use POINTER_PLUS_EXPR and sizetype
4608
        for the offset.
4609
        * utils2.c (known_alignment): POINTER_PLUS_EXPR
4610
        have the same semantics as PLUS_EXPR for alignment.
4611
        (build_binary_op): Add support for the semantics of
4612
        POINTER_PLUS_EXPR's operands.
4613
        When adding an offset to a pointer, use POINTER_PLUS_EXPR.
4614
 
4615
2007-06-11  Rafael Ávila de Espíndola  
4616
 
4617
        * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
4618
        of get_signed_or_unsigned_type.
4619
        * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
4620
 
4621
2007-06-11  Bob Duff  
4622
            Thomas Quinot  
4623
 
4624
        * g-stsifd-sockets.adb (Create): Work around strange behavior of
4625
        'bind' on windows that causes 'connect' to fail intermittently, by
4626
        retrying the 'bind'.
4627
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4628
 
4629
2007-06-10  Duncan Sands  
4630
 
4631
        * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
4632
        than to void, for the fields when making a new fat pointer type.
4633
        (gnat_substitute_in_type): Now substitute_in_type.
4634
        * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
4635
        * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
4636
        * utils.c (update_pointer_to): Update fat pointers by updating the
4637
        dummy node pointers used for the fields.
4638
 
4639
2007-06-06  Thomas Quinot  
4640
            Bob Duff  
4641
 
4642
        * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
4643
        g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
4644
        g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
4645
        constant Thread_Blocking_IO, always True by default, set False
4646
        on a per-runtime basis.
4647
        (Need_Netdb_Buffer): New constant.
4648
 
4649
        * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
4650
        g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
4651
        files.
4652
 
4653
        * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
4654
        g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
4655
        Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
4656
        child package Task_Safe_NetDB
4657
        (Host_Error_Messages): Add stub body.
4658
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4659
 
4660
        * g-soccon-mingw.ads: Add Windows-specific constants.
4661
        (Need_Netdb_Buffer): New constant.
4662
        (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
4663
        wrapper and import inet_addr(3) from the standard sockets library
4664
        directly instead.
4665
        (In_Addr): Add alignment clause.
4666
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4667
 
4668
2007-06-06  Robert Dewar  
4669
 
4670
        * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
4671
        s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
4672
        s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
4673
        s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
4674
        s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
4675
        s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
4676
        a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
4677
        a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
4678
        a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
4679
        g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
4680
        g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
4681
        i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
4682
        s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
4683
        s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
4684
        s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
4685
        s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
4686
        s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
4687
        s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
4688
        s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
4689
        s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
4690
        s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
4691
        s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
4692
        s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
4693
        s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
4694
        s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
4695
        s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
4696
        s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
4697
        s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
4698
        s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
4699
        s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
4700
        s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
4701
        a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
4702
        Unchecked_* by Ada.Unchecked_*
4703
 
4704
2007-06-06  Robert Dewar  
4705
 
4706
        * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
4707
        s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
4708
        g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
4709
        output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
4710
        g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
4711
        a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
4712
 
4713
        * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
4714
        s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
4715
        s-tasloc.adb, s-tasloc.ads: New files.
4716
 
4717
2007-06-06  Bob Duff  
4718
 
4719
        * g-expect-vms.adb:
4720
        (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
4721
        * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
4722
        (Send_Signal, Close): Raise Invalid_Process if the process id is
4723
        invalid.
4724
        (Pattern_Matcher_Access): Is now a general access type to be able to
4725
        use aliased string.
4726
 
4727
2007-06-06  Thomas Quinot  
4728
            Arnaud Charlet  
4729
 
4730
        * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
4731
        (SIGEMT is now used instead of SIGTERM on AIX).
4732
 
4733
        * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
4734
        (Time_Slice_Supported): Set to True.
4735
        Use SIGEMT instead of SIGTERM as SIGADAABORT.
4736
 
4737
2007-06-06  Hristian Kirtchev  
4738
 
4739
        * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
4740
        (Time, Time)): Use To_Relative_Time rather than manual calculation to
4741
        express the bounds of Duration as Time. Raise Time_Error when the
4742
        result is greater or equal to the higher bound of Duration (on the
4743
        margin case).
4744
        ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
4745
        Ada_High_And_Leaps.
4746
        ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
4747
        Ada_High_And_Leaps.
4748
        ("-" (Time, Time)): Reorder code.
4749
        (All_Leap_Seconds): Removed.
4750
        (Arithmetic_Operations.Add): Remove sign related kludge.
4751
        (Arithmetic_Operations.Difference): Control the leaps seconds processing
4752
        with flag Leap_Support.
4753
        (Arithmetic_Operations.Subtract): Remove sign related kludge.
4754
        (Check_Within_Time_Bounds): New procedure.
4755
        (Clock): Control the leap seconds processing with flag Leap_Support.
4756
        (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
4757
        (Formatting_Operations.Split): Control the leap seconds processing with
4758
        flag Leap_Support.
4759
        (Formatting_Operations.Time_Of): Control the leaps seconds processing
4760
        with flag Leap_Support. Adjust the year, month and day (if applicable)
4761
        when the value of day seconds designates a new day.
4762
        (Split): Use parameter associations for better readability. Integrate
4763
        flag Is_Ada_05.
4764
        (Time_Of): Use parameter associations for better readability. Integrate
4765
        flag Is_Ada_05.
4766
 
4767
        * a-calfor.adb (Split): Use parameter associations for better
4768
        readability. Integrate flag Is_Ada_05.
4769
        (Time_Of): Remove flag Leap_Checks. Use parameter associations for
4770
        better readability. Integrate flag Is_Ada_05.
4771
 
4772
2007-06-06  Arnaud Charlet  
4773
 
4774
        * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
4775
        s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
4776
        s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
4777
        s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
4778
        s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
4779
        s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
4780
        s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
4781
        s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
4782
        s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
4783
        s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
4784
        s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
4785
        time when entering this routine to detect a backward clock setting
4786
        (manual setting or DST adjustment), to avoid waiting for a longer delay
4787
        than needed.
4788
        (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
4789
        Remove handling of deferred priority change, and replace by setting the
4790
        task priority directly, as required by AI-188.
4791
        Update comments.
4792
        (Max_Task_Image_Length): New constant.
4793
        Replace Warnings (Off) by Unreferenced pragma, cleaner.
4794
        (Dynamic_Priority_Support): Removed, no longer needed.
4795
        (Poll_Base_Priority_Change): Ditto.
4796
        (Set_Ceiling): Add this procedure to change the ceiling priority
4797
        associated to a lock. This is a dummy implementation because dynamic
4798
        priority ceilings are not supported by the underlying system.
4799
 
4800
        * a-dynpri.adb (Set_Priority): Take into account case where Target is
4801
        accepting a RV with its priority boosted.
4802
        Remove handling of deferred priority change, and replace by setting the
4803
        task priority directly, as required by AI-188.
4804
 
4805
        * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
4806
        Succeeded = True.
4807
        Remove handling of deferred priority change, and replace by setting the
4808
        task priority directly, as required by AI-188.
4809
        (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
4810
        of Self_Id earlier.
4811
 
4812
        * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
4813
        (Poll_Base_Priority_Change): Removed.
4814
        Code clean up: use SSL.Current_Target_Exception.
4815
 
4816
        * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
4817
        to run as this is a potentially dispatching point.
4818
        (Call_Synchronous): Use Local_Defer_Abort.
4819
        (Callable): Relax assertion.
4820
        (Selective_Wait): Relax assertion in case abort is not allowed.
4821
        Remove handling of deferred priority change, and replace by setting the
4822
        task priority directly, as required by AI-188.
4823
 
4824
        * s-tasuti.adb (Make_Passive): Adjust assertions.
4825
        Remove handling of deferred priority change, and replace by setting the
4826
        task priority directly, as required by AI-188.
4827
 
4828
2007-06-06  Arnaud Charlet  
4829
 
4830
        * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
4831
        system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
4832
        system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
4833
        system-vxworks-mips.ads, system-vxworks-alpha.ads,
4834
        system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
4835
        system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
4836
        system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
4837
        system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
4838
        system-solaris-sparcv9.ads, system-vms.ads, system.ads,
4839
        system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
4840
        system-linux-ia64.ads: Document mapping between Ada and OS priorities.
4841
        This patch changes the largest non-binary modulus from 2**31-1 to
4842
        2**32-1.
4843
        (Compiler_System_Version): Removed, no longer used.
4844
        Clean up system files by removing flags only used on a single target.
4845
        Also remove obsolete flags, only used during bootstrap from system.ads
4846
        (Address): Add a pragma Preelaborable_Initialization.
4847
 
4848
        * system-aix.ads:  Ditto.
4849
        (GCC_ZCX_Support): Set to true.
4850
        Update priority range on AIX and map Ada priorities to target
4851
        priorities appropriately for different scheduling policies.
4852
 
4853
        * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
4854
 
4855
2007-06-06  Vincent Celier  
4856
 
4857
        * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
4858
        mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
4859
 
4860
        * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
4861
        mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
4862
        mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
4863
        mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
4864
        mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
4865
        MLib.Tgt, containing the default versions of the exported subprograms.
4866
        For each platform, create a specific version of the body of new child
4867
        package MLib.Tgt.Specific that contains only the body of subprograms
4868
        that are different from the default.
4869
        (Archive_Builder_Append_Options): New function.
4870
 
4871
2007-06-06  Matthew Gingell  
4872
 
4873
        * s-osinte-aix.adb: Map Ada priorities to target priorities
4874
        appropriately for different scheduling policies.
4875
 
4876
2007-06-06  Arnaud Charlet  
4877
 
4878
        * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
4879
        its C counterpart.
4880
        Remove references to Unchecked_Conversion, and use Ada.xxx instead.
4881
        Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
4882
 
4883
2007-06-06  Vasiliy Fofanov  
4884
 
4885
        * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
4886
        Noop on VMS, added for interface commonality.
4887
 
4888
2007-06-06  Eric Botcazou  
4889
            Richard Kenner  
4890
            Olivier Hainque  
4891
 
4892
        * decl.c (gnat_to_gnu_entity) : Manually mark the top of the
4893
        renamed expression of a full renaming at toplevel.
4894
        (gnat_to_gnu_entity, case object): If not defining, do not look inside
4895
        the values the constant is initialized to if it is an N_Allocator.
4896
        (gnat_to_gnu_entity) : Manually mark the top of the
4897
        TYPE_SIZE_UNIT of inner types after the stride is elaborated.
4898
        (make_aligning_type): Accept an extra ROOM argument for storage to be
4899
        made available before the aligned field, and an extra BASE_ALIGN
4900
        argument for callers to pass the alignment guaranteed to be honored for
4901
        the whole aligning object. Avoid call to finish_record_type, which only
4902
        interferes with the sizes we want to set.
4903
        (gnat_to_gnu_entity) : Pass the required extra arguments to
4904
        make_aligning_type for super-aligned objects on stack.
4905
        (components_to_record): Pass the adjusted size of the type when creating
4906
        fields in the qualified union for the variant part.
4907
        (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
4908
        (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
4909
        packed array type.
4910
        (maybe_pad_type): Set TYPE_USER_ALIGN.
4911
        (make_aligning_type): Likewise.
4912
        ALIGN argument is unsigned int.
4913
        (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
4914
        (gnat_to_gnu_param): Likewise, for parameters.
4915
        (gnat_to_gnu_entity) : Always instantiate the renaming object
4916
        if it is constant and stems from a function call.
4917
        (gnat_to_gnu_entity) : Set packed to -2 if the alignment
4918
        of the record is specified.  Adjust accordingly.
4919
        (adjust_packed): New static function.
4920
        (gnat_to_gnu_field): Use it to adjust the packedness setting.
4921
        (components_to_record): Likewise.
4922
        (gnat_to_gnu_entity) : Do not test the renamed expression for
4923
        side-effects if the object is deemed constant.
4924
        (gnat_to_gnu_entity) : Create a name for the fat pointer
4925
        type instead of merely finalizing it.  Tidy.
4926
        : Retrieve the type from the TYPE_DECL.
4927
        : Likewise.
4928
        (defer_debug_incomplete_list): Rename to defer_finalize_list.
4929
        (defer_debug_level): Delete.
4930
        (gnat_to_gnu_entity) : Likewise
4931
        : Call rest_of_record_type_compilation on the fat pointer
4932
        type.
4933
        : Do not explicitly defer finalizing the type.
4934
        Adjust for write_record_type_debug_info renaming.
4935
        : Likewise.
4936
        Finalize deferred types right after deferred incomplete types are
4937
        expanded.
4938
        (rest_of_type_decl_compilation): New global function.
4939
        (components_to_record): Rename defer_debug parameter to do_not_finalize.
4940
        (components_to_record): Propagate the packedness to the fields of the
4941
        qualified union type if there is a variant part.
4942
        (gnat_to_gnu_entity) : Use new function
4943
        instead of inline code to adjust the XUT field offsets.
4944
        (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
4945
        : Do not let finish_record_type compute the sizes
4946
        and write the debug info if the type derives from a discriminated one.
4947
        (gnat_to_gnu_entity) : Adjust call to create_index_type.
4948
        : Likewise.
4949
        : Likewise.
4950
        (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
4951
        an alignment clause.
4952
        (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
4953
        before giving warning.
4954
        (prepend_one_attribute_to): New function, helper to prepend an attribute
4955
        to an attribute list.
4956
        (gnat_to_gnu_entity) : Use it.
4957
        (prepend_attributes): Likewise.
4958
        (gnat_to_gnu_entity) : Use constants of the proper type.
4959
        : Declare the padding type for the element type, if any.
4960
        : Likewise.
4961
        (defer_limited_with): New variable.
4962
        (Gigi_Equivalent_Type): New function.
4963
        (gnat_to_gnu_entity): Use it at start and use result throughout.
4964
        (gnat_to_gnu_entity, case E_Access_Type): Rework to use
4965
        Gigi_Equivalent_Type, support Limited_With, allow two levels of
4966
        indirection, precompute if unconstrained array to simplify logic, and
4967
        use defer_limited_with to defer elaboration of some types from limited
4968
        with.
4969
        (finalize_from_with_types): New function.
4970
 
4971
2007-06-06  Gary Dismukes  
4972
            Eric Botcazou  
4973
            Tristan Gingold  
4974
            Olivier Hainque  
4975
 
4976
        * trans.c (Identifier_to_gnu): Change test for deferred constant by
4977
        adding guard that the entity is an E_Constant before testing presence
4978
        of Full_view (and remove unnecessary test that entity is not a type).
4979
        For a CONST_DECL used by reference, manually retrieve
4980
        the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
4981
        (struct language_function): Move from utils.c to here.
4982
        (struct parm_attr): New structure.
4983
        (parm_attr, parm_attr vector, parm_attr GC vector): New types.
4984
        (f_parm_attr_cache): New macro.
4985
        (Attribute_to_gnu) : When not optimizing, cache the
4986
        expressions for the 'First, 'Last and 'Length attributes of the
4987
        unconstrained array IN parameters.
4988
        (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
4989
        Allocate the information structure for the function earlier, as well
4990
        as the language-specific part.
4991
        If the parameter attributes cache has been populated, evaluate the
4992
        cached expressions on entry.
4993
        (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
4994
        N_Procedure_Call_Statement and N_Indexed_Component.
4995
        (Pragma_to_gnu): Translate inspection_point to an asm statement
4996
        containaing a comment and a reference to the object (either its address
4997
        for BLKmode or its value).
4998
        (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
4999
        to go to DECL_INITIAL. Together with the size constraint relaxation
5000
        in create_var_decl, enlarges the set of situations in which an
5001
        identifier may be used as an initializer without implying elaboration
5002
        code.
5003
        (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
5004
        DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
5005
        node.
5006
        (maybe_stabilize_reference): Remove lvalues_only parameter.
5007
        (gnat_stabilize_reference): Adjust for above change.
5008
        (gnat_to_gnu): Do not set location information on the result
5009
        if it is a reference.
5010
        (add_cleanup): Add gnat_node parameter and set the location of the
5011
        cleanup to it.
5012
        (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
5013
        (Exception_Handler_to_gnu_zcx): Likewise.
5014
        (gigi): Remove the cgraph node if the elaboration procedure is empty.
5015
        (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
5016
        the former right after the latter.
5017
        (start_stmt_group): Make global.
5018
        (end_stmt_group): Likewise.
5019
        (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
5020
        vars.
5021
        (gnu_program_error_label_stack): Likewise.
5022
        (gigi): Initialize them.
5023
        (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
5024
        (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
5025
        New cases.
5026
        (push_exception_label_stack): New function.
5027
        (takes_address): New function.
5028
 
5029
        * utils.c (struct language_function): Move to trans.c from here.
5030
        (unchecked_convert): Do not wrap up integer constants in
5031
        VIEW_CONVERT_EXPRs.
5032
        (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
5033
        the latter for aggregate types, unexpected by later passes, and relax an
5034
        arbitrary size constraint on the former.
5035
        (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
5036
        to compare the sizes.
5037
        (convert_vms_descriptor): When converting to a fat pointer type, be
5038
        prepared for a S descriptor at runtime in spite of a SB specification.
5039
        (shift_unc_components_for_thin_pointers): New function.
5040
        (write_record_type_debug_info): For variable-sized fields, cap the
5041
        alignment of the pointer to the computed alignment.
5042
        (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
5043
        If REP_LEVEL is 2, do not compute the sizes.
5044
        (build_vms_descriptor): Adjust for new prototype of finish_record_type.
5045
        (build_unc_object_type): Likewise.
5046
        (declare_debug_type): New function.
5047
 
5048
        * ada-tree.def: USE_STMT: removed (not emitted anymore).
5049
 
5050
        * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
5051
        no statement is expandable anymore.
5052
        (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
5053
        (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
5054
        when the user requested it explicitely.
5055
        (gnat_post_options): By default, set flag_eliminate_unused_debug_types
5056
        to 0 for Ada.
5057
        (get_alias_set): Return alias set 0 for a type if
5058
        TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
5059
 
5060
        * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
5061
        (DECL_FUNCTION_STUB): New accessor macro.
5062
        (SET_DECL_FUNCTION_STUB): New setter macro.
5063
 
5064
        * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
5065
 
5066
        * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
5067
        declarations.
5068
 
5069
2007-06-06  Jose Ruiz  
5070
 
5071
        * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
5072
        Rename to Abort_Task_Interrupt to be able to keep the same interface
5073
        as the rest of the targets.
5074
 
5075
        * s-osinte-vxworks.ads s-osinte-vxworks.adb
5076
        (To_VxWorks_Priority): Remove explicit "in" mode indicator
5077
 
5078
        * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
5079
        New files.
5080
 
5081
2007-06-06  Robert Dewar  
5082
 
5083
        * a-chahan.ads: Remove obsolescent pragmas
5084
 
5085
        * a-chlat1.ads: Minor reformatting
5086
 
5087
2007-06-06  Robert Dewar  
5088
 
5089
        * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
5090
        for Errout
5091
 
5092
        * errout.adb: New Finalize/Compilation_Errors/Output_Messages
5093
        implementation
5094
 
5095
        * errout.ads (Finalize): Changed interface
5096
        (Output_Messages): New procedure
5097
        (Compilation_Errors): New Interface
5098
 
5099
        * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
5100
        Finalize/Output_Messages interface for Errout
5101
        (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
5102
        Errout.
5103
 
5104
2007-06-06  Thomas Quinot  
5105
            Olivier Hainque  
5106
            Robert Dewar  
5107
 
5108
        * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
5109
        check.
5110
        (Raise_Current_Excep): Call Debug_Raise_Exception just before
5111
        propagation starts, to let debuggers know about the event in a reliable
5112
        fashion.
5113
        (Local_Raise): Moved to System.Exceptions
5114
        More convenient to have this as a separate unit
5115
 
5116
        * s-except.adb, s-except.ads: New files.
5117
 
5118
        * a-exextr.adb (Unhandled_Exception): Delete - replaced by
5119
        Debug_Unhandled_Exception in System.Exceptions where it belongs
5120
        together with a couple of other debug helpers.
5121
        (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
5122
        the former Unhandled_Exception.
5123
 
5124
        * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
5125
        (Warn_No_Exception_Propagation): New procedure
5126
        (Warn_If_No_Propagation): Rewritten for new warning generation
5127
        (Expand_Exception_Handlers): New warning generation
5128
        (Expand_N_Raise_xxx_Error): Rewritten for new warnings
5129
        (Add_Exception_Label): Use Special_Exception_Package_Used for test
5130
        instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
5131
        (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
5132
        even if restriction is set (makes life easier in Check_Returns)
5133
        (Expand_Local_Exception_Handlers): Follow renamed entity chain when
5134
        checking exception identities.
5135
        (Expand_Local_Exception_Handlers): Do not optimize when all others case
5136
        (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
5137
        block for handler (used by Check_Returns)
5138
        (Expand_Local_Exception_Handlers): Local_Raise now takes an address
5139
        (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
5140
        remove all exception handlers when optimizing local raise statements.
5141
        (Find_Local_Handler): Use Get_Renamed_Entity
5142
        (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
5143
        marked analyzed after expanding exception handlers, do not generate
5144
        redundant cleanup actions, because they have been constructed already.
5145
 
5146
2007-06-06  Thomas Quinot  
5147
 
5148
        * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
5149
        presence of this categorization pragma is mandated by the language.
5150
        (Limited_Controlled): Add missing pragma Preelaborable_Initialization
5151
        for this type.
5152
 
5153
2007-06-06  Vincent Celier  
5154
            Robert Dewar  
5155
 
5156
        * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
5157
        butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
5158
        err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
5159
        fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
5160
        lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
5161
        makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
5162
        par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
5163
        prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
5164
        prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
5165
        sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
5166
        uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
5167
        ali.ads, ali.adb:
5168
        Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
5169
        package Namet. Make File_Name_Type and Unit_Name_Type types derived from
5170
        Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
5171
        Use variables of types File_Name_Type and Unit_Name_Type in error
5172
        messages.
5173
        (Get_Name): Add parameter Ignore_Special, and set it reading file name
5174
        (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
5175
        here.
5176
        Define flags Flag217-Flag230 with associated subprograms
5177
        (Flag_Word5): New record type.
5178
        (Flag_Word5_Ptr): New access type.
5179
        (To_Flag_Word5): New unchecked conversion.
5180
        (To_Flag_Word5_Ptr): Likewise.
5181
        (Flag216): New function.
5182
        (Set_Flag216): New procedure.
5183
 
5184
2007-06-06  Arnaud Charlet  
5185
 
5186
        * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
5187
        instead of 'Size.
5188
 
5189
        * a-stwifi.ads, a-stzfix.ads: Minor reformatting
5190
 
5191
2007-06-06  Javier Miranda  
5192
 
5193
        * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
5194
        the package.
5195
        (Object_Specific_Data_Array): This is now internal to the package.
5196
        (Object_Specific_Data): This is now internal to the package.
5197
        (Select_Specific_Data_Element): This is now internal to the package.
5198
        (Select_Specific_Data_Array): This is now internal to the package.
5199
        (Select_Specific_Data): This is now internal to the package.
5200
        (Offset_To_Top_Function_Ptr): This is now public.
5201
        (To_Offset_To_Top_Function_Ptr): Removed.
5202
        (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
5203
         local to subprogram Offset_To_Top.
5204
        (Predefined_DT): Removed.
5205
        (Typeinfo_Ptr): Removed.
5206
        (OSD): This function is now internal to this package.
5207
        (SSD): This function is now internal to this package.
5208
        (DT): New function that displaces the pointer to the table of primitives
5209
         to get access to the enclosing wrapper record.
5210
        (IW_Membership): Code cleanup.
5211
        (Offset_To_Top): Code cleanup.
5212
        (Predefined_DT): Removed.
5213
        (Register_Interface_Tag): Removed.
5214
        (Set_Interface_Table): Removed.
5215
        (Set_Offset_Index): Removed.
5216
        (Set_Offset_To_Top): Code cleanup.
5217
        (Set_OSD): Removed.
5218
        (Set_Signature): Removed.
5219
        (Set_SSD): Removed.
5220
        (Set_Tagged_Kind): Removed.
5221
        (Typeinfo_Ptr): Removed.
5222
        (TSD): Removed.
5223
        (Displace): Add missing check on null actual.
5224
 
5225
        * exp_disp.ads, exp_disp.adb
5226
        (Select_Expansion_Utilities): Removed.
5227
        (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
5228
        (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
5229
        the interface requires a new parameter.
5230
        (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
5231
        Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
5232
        calls to subprograms Build_T, Build_S, etc. by the corresponding code.
5233
        Done to remove package Select_Expansion_Utilities.
5234
        (Make_DT): New implementation for statically allocated dispatch tables.
5235
        (Make_Secondary_DT): Moved to the scope of Make_DT.
5236
        (Register_Primitive): Code cleanup plus incoporate the use of the new
5237
        function DT_Address_Attribute.
5238
        (Expand_Interface_Thunk): The profile of this subprogram has been
5239
        changed to return the Thunk_Id and the corresponding code.
5240
        (Fill_DT_Entry): Removed. Its functionality is now provided by
5241
        subprogram Register_Primitive.
5242
        (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
5243
        subprogram Register_Primitive.
5244
        (Register_Primitive): New subprogram that incorporates the previous
5245
        functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
5246
        (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
5247
        was only required to call Make_DT_Access_Action, which is now removed.
5248
        (Ada_Actions): Removed
5249
        (Action_Is_Proc): Removed
5250
        (Action_Nb_Arg): Removed
5251
        Replace all the calls to Make_DT_Access_Action by direct calls to
5252
        Make_Procedure_Call_Statement or Make_Function_Call.
5253
        (Set_DTC_Entity_Value): New subprogram.
5254
        (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
5255
        (Expand_Interface_Thunk): Add missing support for primitives that are
5256
        functions with a controlling result (case in which there is no need
5257
        to generate the thunk).
5258
 
5259
        * exp_atag.ads, exp_atag.adb
5260
        (Build_DT): New subprogram that displaces the pointer to reference the
5261
        base of the wrapper record.
5262
        (Build_Typeinfo_Offset): Removed.
5263
        (RTE_Tag_Node): Removed.
5264
        (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
5265
        (Build_Get_RC_Offset): Removed.
5266
        (Build_Inherit_Predefined_Prims): Removed.
5267
        (Build_Inherit_TSD: Removed.
5268
        (Build_New_TSD): Removed.
5269
        (Build_Set_External_Tag): Removed.
5270
        (Build_Set_Predefined_Prim_Op_Address): Add documentation.
5271
        (Build_Set_Prim_Op_Address): Add documentation.
5272
        (Build_Set_TSD): Removed.
5273
 
5274
        * rtsfind.ads, rtsfind.adb
5275
        (Load_Fail): If load fails and we are not in configurable run-time
5276
        mode, then raise Unrecoverable_Error.
5277
        (Text_IO_Kludge): Generate an error message if a run-time library is
5278
        not available in a given run-time (ie. zfp run-time).
5279
        (RTE_Record_Component): Add code to check that the component we search
5280
        for is not found in two records in the given run-time package.
5281
        (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
5282
        (RE_DT_Predef_Prims_Offset): New entity
5283
        (RE_Static_Offset_To_Top): New entity
5284
        (RE_HT_Link): New entity.
5285
        (System_Address_Image): Addition of this run-time package.
5286
        (RE_Address_Image): New entity.
5287
        (RE_Abstract_Interface): Removed.
5288
        (RE_Default_Prim_Op_Count): Removed.
5289
        (RE_DT_Entry_Size): Removed.
5290
        (RE_DT_Min_Prologue_Size): Removed.
5291
        (RE_DT_Prologue_Size): Removed.
5292
        (RE_Ifaces_Table_Ptr): Removed.
5293
        (RE_Interface_Data_Ptr): Removed.
5294
        (RE_Type_Specific_Data): Removed.
5295
        (RE_Primary_DT): Removed.
5296
        (RE_Register_Interface_Tag): Removed.
5297
        (RE_Set_Offset_Index): Removed.
5298
        (RE_Set_OSD): Removed.
5299
        (RE_Set_SSD): Removed.
5300
        (RE_Set_Signature): Removed.
5301
        (RE_Set_Tagged_Kind): Removed.
5302
        (RE_Address_Array): New entity.
5303
        (RE_DT): New entity.
5304
        (RE_Iface_Tag): New entity.
5305
        (RE_Interfaces_Table): New entity.
5306
        (RE_No_Dispatch_Table): New entity.
5307
        (RE_NDT_Prims_Ptr): New entity.
5308
        (RE_NDT_TSD): New entity.
5309
        (RE_Num_Prims): New entity.
5310
        (RE_Offset_To_Top_Function_Ptr): New entity.
5311
        (RE_OSD_Table): New entity.
5312
        (RE_OSD_Num_Prims): New entity.
5313
        (RE_Predef_Prims): New entity
5314
        (RE_Predef_Prims_Table_Ptr): New entity.
5315
        (RE_Primary_DT): New entity.
5316
        (RE_Signature): New entity.
5317
        (RE_SSD): New entity.
5318
        (RE_TSD): New entity.
5319
        (RE_Type_Specific_Data): New entity.
5320
        (RE_Tag_Kind): New entity.
5321
 
5322
2007-06-06  Thomas Quinot  
5323
 
5324
        * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
5325
        C imported variable.
5326
        (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
5327
        on entry.
5328
 
5329
2007-06-06  Robert Dewar  
5330
 
5331
        * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
5332
        character
5333
 
5334
2007-06-06  Vincent Celier  
5335
 
5336
        * a-tifiio.adb (Put, internal): For negative numbers, check that there
5337
        is room for at least one digit and the minus sign.
5338
        (Put.Put_Character): Never put a character outside of the range of
5339
        string To.
5340
 
5341
2007-06-06  Olivier Hainque  
5342
            Eric Botcazou  
5343
 
5344
        * utils2.c (build_allocator): Provide the extra arguments to
5345
        make_aligning_type for super-aligned objects allocated from the default
5346
        pool. Leave enough room for a pointer before the aligning field, and
5347
        store the system's allocator return value there.
5348
        (build_call_alloc_dealloc): When releasing a super-aligned object,
5349
        retrieve the system's allocator return value from where build_allocator
5350
        has stored it, just ahead of the adjusted address we are passed.
5351
        (build_call_raise): Handle properly the generation of line numbers when
5352
        the node is marked No_Location.
5353
        (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
5354
        by using DECL_UID on ties.
5355
        (build_binary_op) : Accept fat pointer types with the same
5356
        main variant.
5357
        (build_call_raise): Handle converting exception into goto; support new
5358
        argument KIND.
5359
        (build_component_ref): Add new arg to build_call_raise.
5360
 
5361
2007-06-06  Hristian Kirtchev  
5362
 
5363
        * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
5364
        "." in the case of nnn.xxx when nnn terminates with an underscore.
5365
        Parse the remaining "#" or ":" in the case of nnn#.xxx#
5366
 
5367
2007-06-06  Robert Dewar  
5368
 
5369
        * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
5370
 
5371
2007-06-06  Arnaud Charlet  
5372
            Vincent Celier  
5373
            Robert Dewar  
5374
 
5375
        * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
5376
        needed.
5377
        (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
5378
        ((destructor)) for adafinal, even when switch -a is used.
5379
        Do not issue pragma Linker_Destructor for adafinal when switch -a is
5380
        used.
5381
        (Gen_Object_Files_Options): Add formatting of Linker Options, when
5382
        Output_Linker_Option_List is set. Suppress this formatting when
5383
        Zero_Formatting is set.
5384
        Add case for CLI_Target.
5385
        (System_Restrictions_Used): New flag, used to avoid generating with of
5386
        System_Restrictions and initialization of the data unless there is
5387
        some use of System.Restrictions in the partition.
5388
        (Check_System_Restrictions_Used): New procedure
5389
 
5390
        * s-stalib.adb: Remove with of System.Restrictions. No longer needed
5391
        since we only with this unit in the binder file if it is used elsewhere
5392
        in the partition.
5393
 
5394
2007-06-06  Vincent Celier  
5395
 
5396
        * bindusg.adb: Add line for @
5397
        Add lines for new switches -R and -Z
5398
 
5399
        * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
5400
        hierarchy in the list of files of the closure when -R is used
5401
        (Gnatbind): Accept arguments starting with '@' to indicate response
5402
        files and take the arguments from the response files.
5403
        If List_Closure is set, display the referenced files
5404
 
5405
2007-06-06  Javier Miranda  
5406
            Robert Dewar  
5407
            Ed Schonberg  
5408
 
5409
        * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
5410
        which the address-clause is applied to in-mode actuals (allowed by
5411
        13.1(22)).
5412
        (Apply_Discriminant_Check): Do not generate a check if the type is
5413
        constrained by a current instance.
5414
        (Activate_Division_Check): New procedure
5415
        (Activate_Overflow_Check): New procedure
5416
        (Activate_Range_Check): New procedure
5417
        Call these new Activate procedures instead of setting flags directly
5418
        (Apply_Array_Size_Check): Removed, no longer needed.
5419
        Code clean up: remove obsolete code related to GCC 2.
5420
        (Get_E_Length): Protect against bomb in case scope is standard
5421
        (Selected_Range_Checks): If the node to be checked is a conversion to
5422
        an unconstrained array type, and the expression is a slice, use the
5423
        bounds of the slice to construct the required constraint checks.
5424
        Improve NOT NULL error messages
5425
        (Apply_Constraint_Check): If the context is a null-excluding access
5426
        type, diagnose properly the literal null.
5427
 
5428
2007-06-06  Pascal Obry  
5429
 
5430
        * clean.adb (Clean_Archive): Use untouched casing for the archive name
5431
        and the corresponding .deps file.
5432
        (Clean_Interface_Copy_Directory): Use untouched casing for the library
5433
        src directory. Minor code-clean-up. Use untouched casing for files
5434
        read into the library src dir.
5435
        (Clean_Library_Directory): Idem.
5436
        (Parse_Cmd_Line): Accept new switch -aP
5437
 
5438
2007-06-06  Javier Miranda  
5439
            Ed Schonberg  
5440
            Robert Dewar  
5441
            Eric Botcazou  
5442
            Arnaud Charlet  
5443
 
5444
        * einfo.ads, einfo.adb (Available_View): New synthesized attribute
5445
        applicable to types that have the With_Type flag set. Returns the
5446
        non-limited view of the type, if available, otherwise the type itself.
5447
        For class-wide types, there is no direct link in the tree, so we have
5448
        to retrieve the class-wide type of the non-limited view of the Etype.
5449
        New attributes Static_Initialization and Static_Elaboration_Desired.
5450
        Remove the pragma Thread_Body, and the associated flag
5451
        Is_Thread_Body in entities, and all related code.
5452
        (Suppress_Value_Tracking_On_Call): New flag
5453
        E_Exception has Esize and Alignment fields
5454
        (Universal_Aliasing): New function.
5455
        (Set_Universal_Aliasing): New procedure.
5456
        (Write_Entity_Flags): Deal with Universal_Aliasing flag.
5457
        (Check_Nested_Access): New procedure.
5458
        (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
5459
        (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
5460
        (Related_Interface): New attribute. Present in dispatch table pointer
5461
        components of records. Set to point to the entity of the corresponding
5462
        interface type.
5463
        (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
5464
        (Original_Access_Type): Remove, not needed.
5465
        (Root_Type): Handle properly subtypes of class-wide-types.
5466
        Update comments.
5467
 
5468
        * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
5469
        class-wide types visible through limited-with clauses.
5470
        (Try_Primitive_Operation): When examining all primitive operations of a
5471
        tagged type, do not consider subprograms labeled as hidden unless they
5472
        belong to a private generic type with a tagged parent.
5473
        (Try_Object_Operation): Extensive rewriting, to handle properly various
5474
        overloading cases, when several ancestors may have class-wide operations
5475
        that are possible candidates, and when the overloaded functions return
5476
        array types and have defaulted parameters so that the call may be
5477
        interpreted as an indexing.
5478
        (Analyze_Allocator): Remove Mark_Allocator and its invocation.
5479
        (Process_Function_Call): use Next, rather than Next_Actual, to analyze
5480
        successive actuals before analyzing the call itself.
5481
        (Try_Primitive_Operation): A primitive operation is compatible with the
5482
        prefix if the prefix has a synchronized type and the type of the formal
5483
        is its corresponding record, as can be the case when the primitive
5484
        operation is declared outside of the body of the type.
5485
        (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
5486
        perform homonym traversal, looking for class-wide operation matches
5487
        (formerly done in statements of Try_Class_Wide_Operation). Matches on
5488
        access parameters are now restricted to anonymous access types.
5489
        (Mark_Allocator): An allocator with a discriminant association parent is
5490
        a coextension.
5491
        (Try_One_Prefix_Interpretation): If the type of the object is
5492
        incomplete, as can be happen when it is a limited view obtained through
5493
        a limited_with_clause, the selected component is not part of a prefixed
5494
        call.
5495
        (Complete_Object_Operation): Diagnose properly an object that is not
5496
        aliased when the corresponding controlling formal is an access
5497
        parameter.
5498
        (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
5499
        ambiguous calls in prefixed notation, where two primitives differ only
5500
        in that the controlling argument of one is an access parameter.
5501
 
5502
        * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
5503
        whether a function that returns an unconstrained type can be inlined.
5504
        (Process_Formals): Diagnose properly the illegal use of an incomplete
5505
        type in the profile of an access_to_subprogram declaration.
5506
        (Check_Synchronized_Overriding): Nothing check for concurrent types, the
5507
        operations are attached to the corresponding record.
5508
        (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
5509
        When processing a primitive of a concurrent type which implements an
5510
        interface change the type of all controlling formals to that of the
5511
        corresponding record type.
5512
        (Check_Synchronized_Overriding): Relax the conditional logic when trying
5513
        to determine the tagged type to which a primitive belongs.
5514
        (Check_Conventions): Capture condition to ignore a primitive operation
5515
        (which is shared between the loop in Check_Conventions and the one in
5516
        Check_Convention) in a new local function Skip_Check.
5517
        (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
5518
        confusion with Check_Conventions' own Prim_Op local variable.
5519
        (Create_Extra_Formals): Test for a tagged result type rather than a
5520
        controlling result when determining whether to add a BIP_Alloc_Form
5521
        formal and a BIP_Final_List formal to the function.
5522
        (Check_Conformance); For parameters that are anonymous access types,
5523
        subtype conformance requires that the not null and the constant
5524
        indicators must match
5525
        (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
5526
        to retrieve the appropriate type when processing a concurrent type
5527
        declared within a generic. Minor comment reformatting. Change invocation
5528
        of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
5529
        mitive.
5530
        (Analyze_Subprogram_Body): If the return type of a function is an
5531
        anonymous access to the limited view of a class-wide type, and the
5532
        non-limited view of the type is available, update the type of the
5533
        function so that code can be generated.
5534
        (Process_Formals): In case of access-subtype itype whose designated
5535
        type is also an itype (situation that happens now with access to
5536
        subprograms) we mark the access-type itype with the Has_Delayed_Freeze
5537
        attribute to avoid backend problems.
5538
        (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
5539
        init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
5540
        anonymous types' designated types are same before testing
5541
        Subtypes_Statically_Match.
5542
        (Create_Extra_Formals): Test for a named access parameter that is a
5543
        controlling formal as an additional condition for adding an
5544
        accessibility level formal. This can occur in the subp type created for
5545
        dispatching calls in Expand_Dispatching_Call, and allows calling
5546
        Create_Extra_Formals from that procedure rather than special-casing the
5547
        extra formals there.
5548
        (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
5549
        when the function has a controlling result.
5550
        (Check_Returns): Add much more knowledge of the optimization of local
5551
        raise statements to gotos, to retain proper warnings in this case.
5552
        (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
5553
        nodes when looking for last statement.
5554
 
5555
        * sem_type.ads, sem_type.adb (Specific_Type): Add support for
5556
        class-wide types visible through limited with clauses.
5557
        (Add_One_Interp): If the operands are anonymous access types, the
5558
        predefined operator on universal_access is immediately visibles
5559
        (Find_Unique_Type): Handle anonymous access to subprogram types just as
5560
        other anonymous access types.
5561
        (Disambiguate): Take into account CIL convention.
5562
        (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
5563
 
5564
2007-06-06  Robert Dewar  
5565
 
5566
        * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
5567
        sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
5568
        elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
5569
        Fix lower bound of tables.
5570
        Add rep clauses.
5571
 
5572
        * nlists.adb: Ditto.
5573
        (Prev_Node, Next_Node): Change index type to Int so that it properly
5574
        covers the range First_Node_Id - 1 up.
5575
 
5576
2007-06-06  Javier Miranda  
5577
            Ed Schonberg  
5578
            Bob Duff  
5579
            Hristian Kirtchev  
5580
 
5581
        * exp_aggr.ads, exp_aggr.adb:
5582
        (Build_Record_Aggr_Code): Add missing initialization of secondary tags
5583
        in extension aggregates.
5584
        (Flatten): Other conditions being met, an aggregate is static if the
5585
        low bound given by component associations is different from the low
5586
        bound of the base index type.
5587
        (Packed_Array_Aggregate_Handled): If the component type is itself a
5588
        packed array or record, the front-end must expand into assignments.
5589
        (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
5590
        Init_Pr, instead of Ancestor_Is_Expression.
5591
        (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
5592
        coextension chain root, either generate a list controller or use the
5593
        already existing one.
5594
        (Static_Array_Aggregate): New procedure to construct a positional
5595
        aggregate that can be handled by the backend, when all bounds and
5596
        components are compile-time known constants.
5597
        (Expand_Record_Aggregate): Force conversion of aggregates of tagged
5598
        types covering interface types into assignments.
5599
        (Replace_Type): move to Build_Record_Aggr_Code.
5600
        (Expand_Record_Aggr_Code): if the target of the aggregate is an
5601
        interface type, convert to the definite type of the aggregate itself,
5602
        so that needed components are visible.
5603
        (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
5604
        components and the context is an extended return statement do not
5605
        create a transient block for it, to prevent premature finalization
5606
        before the return is executed.
5607
        (Gen_Assign): Do not generate a call to deep adjust routine if the
5608
        component type is itself an array of controlled (sub)-components
5609
        initialized with an inner aggregate.
5610
        (Component_Check): New name for Static_Check. This name is now more
5611
        appropriate, and documentation is added which was missing.
5612
        (Component_Check): Add test for bit aligned component value
5613
        (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
5614
        Tagged_Comps, name is more appropriate given added function below.
5615
        (Component_Not_OK_For_Backend): Check for bit aligned component ref.
5616
 
5617
2007-06-06  Hristian Kirtchev  
5618
            Javier Miranda  
5619
            Robert Dewar  
5620
 
5621
        * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
5622
        Terminated: Add unchecked type conversion from System.Address to
5623
        System.Tasking.Task_Id when calling the predefined primitive
5624
        _disp_get_task_id.
5625
        Disable new Ada 05 accessibility check for JVM.NET targets, which
5626
        cannot be implemented in a practical way.
5627
        (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
5628
        the sources always references the tag of the actual object. Therefore,
5629
        if 'Tag is applied in the sources to class-wide interface objects we
5630
        generate code that displaces "this" to reference the base of the object.
5631
        (Expand_N_Attribute_Reference, case Size): Return specified size if
5632
        known to front end.
5633
        (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
5634
        has code that displaces the pointer of the object to manage interface
5635
        types. However this code must not be executed when the prefix is a
5636
        subprogram. This bug caused the wrong expansion of the internally
5637
        generated assignment that fills the dispatch table when the primitive
5638
        is a function returning a class-wide interface type.
5639
        (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
5640
        Set_Attribute_Name for Name_Unaligned_Valid.
5641
 
5642
2007-06-06  Ed Schonberg  
5643
            Gary Dismukes  
5644
 
5645
        * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
5646
        If the initialization is the equivalent aggregate of the initialization
5647
        procedure of the type, do not remove it.
5648
        (Expand_N_Attribute_Definition_Clause): Exclude access variables
5649
        initialized to null from having their expression reset to empty and
5650
        note this exception in the comment.
5651
 
5652
2007-06-06  Hristian Kirtchev  
5653
            Robert Dewar  
5654
            Ed Schonberg  
5655
            Gary Dismukes  
5656
 
5657
        * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
5658
        Add "with" and "use" clauses for Sem_Attr.
5659
        (Expand_Current_Value): Do not replace occurences of attribute
5660
        references where the prefix must be a simple name.
5661
 
5662
        * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
5663
        Namet. Add new arrays Attribute_Name_Modifies_Prefix and
5664
        Attribute_Requires_Simple_Name_Prefix.
5665
        (Name_Modifies_Prefix): Body of new function.
5666
        (Requires_Simple_Name_Prefix): Body of new function.
5667
        (Resolve_Attribute, case Access): Improve error message for case of
5668
        mismatched conventions.
5669
        (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
5670
        incomplete type.
5671
        (Analyze_Attribute, case 'Access): If the type of the prefix is a
5672
        constrained subtype for a nominal unconstrained type, use its base type
5673
        to check for conformance with the context.
5674
        (Resolve_Attribute): Remove test of the access type being associated
5675
        with a return statement from condition for performing accessibility
5676
        checks on access attributes, since this case is now captured by
5677
        Is_Local_Anonymous_Access.
5678
        (Analyze_Access_Attribute): Set Address_Taken on entity
5679
        (Analyze_Attribute, case Address): Set Address_Taken on entity
5680
        (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
5681
        validating an access attribute whose prefix is a current instance.
5682
        (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
5683
        applied to dispatching operations, if freezing is required then we set
5684
        the attribute Has_Delayed_Freeze in the prefix's entity.
5685
        (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
5686
        current scope if access of local subprogram taken
5687
        (Analyze_Access_Attribute): Check legality of self-reference even if the
5688
        expression comes from source, as when a single component association in
5689
        an aggregate has a box association.
5690
        (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
5691
        the prefix if it is a protected operation and the attribute is
5692
        Unrestricted_Access.
5693
        (Resolve_Attribute, case 'Access): Set the Etype of the attribute
5694
        reference to the base type of the context, to force a constraint check
5695
        when the context is an access subtype with an explicit constraint.
5696
        (Analyze_Attribute, case 'Class): If the prefix is an interface and the
5697
        node is rewritten as an interface conversion. leave unanalyzed after
5698
        resolution, to ensure that type checking against the context will take
5699
        place.
5700
 
5701
2007-06-06  Ed Schonberg  
5702
            Javier Miranda  
5703
            Robert Dewar  
5704
 
5705
        * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
5706
        wrapper when the full view of the controlling type of an inherited
5707
        function that dispatches on result implements interfaces.
5708
        (Expand_N_Object_Declaration): In cases where the type of the
5709
        declaration is anonymous access, create finalization list for it.
5710
        (Expand_N_Object_Declaration): Generate a persistent_bss directive only
5711
        if the object has no explicit initialization, to match description of
5712
        functionality of pragam Persistent_BSS.
5713
        (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
5714
        new function to build static aggregates, to replace initialization call
5715
        when static initialization is desired.
5716
        (Freeze_Type): Generate a list controller for an access type whenever
5717
        its designated type has controlled anonymous access discriminants.
5718
        (Build_Equivalent_Aggregate): New procedure to compute a static
5719
        aggregate to be used as default initialization for composite types,
5720
        instead of a generating a call to the initialization procedure for the
5721
        type.
5722
        (Build_Initialization_Call): When available, replace a call to the
5723
        initialization procedure with a copy of the equivalent static aggregate
5724
        for the type.
5725
        (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
5726
        declarations for objects of a class-wide interface type, rather than
5727
        just identifiers, to prevent visibility problems.
5728
        (Expand_N_Object_Declaration): When expanding the declaration for an
5729
        object of a class-wide interface type, preserve the homonym chain of
5730
        the original entity before exchanging it with that of the generated
5731
        renaming declaration.
5732
        (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
5733
        active, because there is no way to handle the exception.
5734
        (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
5735
        to do a minimum decoration of the Access_Disp_Table list.
5736
        (Expand_Record_Controller): Avoid the addition of the controller between
5737
        the component containing the tag of a secondary dispatch table and its
5738
        adjacent component that stores the offset to the base of the object.
5739
        This latter component is only generated when the parent type has
5740
        discriminants ---documented in Add_Interface_Tag_Components).
5741
        (Apply_Array_Size_Check): Removed, no longer needed.
5742
        (Expand_N_Full_Type_Declaration): If the type has anonymous access
5743
        components, create a Master_Entity for it only if it contains tasks.
5744
        (Build_Init_Procedure): Suppress the tag assignment compiling under
5745
        no run-time mode.
5746
        (Freeze_Record_Type): Remove code associated with creation of dispatch
5747
        table.
5748
        (Init_Secondary_Tags): Update type of actuals when generating calls to
5749
        Ada.Tags.Set_Offset_To_Top
5750
        (Stream_Operation_OK): Disable use of streams compiling under no
5751
        run-time mode
5752
        (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
5753
        if Has_Init_Expression set.
5754
        (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
5755
        Register_Primitive, which provides the same functionality.
5756
        (Requires_Init_Proc): Return false in case of interface types.
5757
        (Add_Secondary_Tables): Use the new attribute Related_Interface to
5758
        cleanup the code.
5759
        (Predefined_Primitive_Freeze): Do not assume that an internal entity
5760
        is always associated with a predefined primitive because the internal
5761
        entities associated with interface types are not predefined primitives.
5762
        Therefore, the call to Is_Internal is replaced by a call to the
5763
        function Is_Predefined_Dispatching_Operation.
5764
        (Make_Eq_If): When generating the list of comparisons for the
5765
        components of a given variant, omit the controller component that is
5766
        present if the variant has controlled components.
5767
 
5768
2007-06-06  Javier Miranda  
5769
            Hristian Kirtchev  
5770
            Bob Duff  
5771
 
5772
        * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
5773
        handle the creation of finalization lists and calls for nested
5774
        coextensions when the root of the chains is part of a return statement.
5775
        (Inside_A_Return_Statement): New function inside Complete_Coextension_
5776
        Finalization.
5777
        (Expand_Record_Equality): Skip components that are interface types.
5778
        (Displace_Allocator_Pointer): Add missing support for interface subtypes
5779
        (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
5780
        with Rewrite_Coextension. Change the condition for detecting coextension
5781
        root nodes.
5782
        (Is_Local_Access_Discriminant): Removed.
5783
        (Rewrite_Coextension): New routine which rewrites a static coextension
5784
        as a temporary and uses its unrestricted access in the construction of
5785
        the outer object.
5786
        (Complete_Coextension_Finalization): New routine. Generate finalization
5787
        attachment calls to all delayed coextensions.
5788
        (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
5789
        the allocator is not a coextension itself and has delayed coextensions.
5790
        If the current allocator is controlled, but also a coextension, delay
5791
        the generation of the finalization attachment call.
5792
        Rename local variable "Node" to "Nod" in order to avoid confusion with
5793
        "Elists.Node".
5794
        (Expand_Allocator_Expression): Call Adjust for initialized allocators of
5795
        limited types that are not inherently limited. Such an allocator is
5796
        illegal, but is generated by the expander for a return statement, to
5797
        copy the result onto the secondary stack. This is the only case where a
5798
        limited object can be copied. Generate code to displace the pointer
5799
        to the object if the qualified expression is a class-wide interface
5800
        object. Such displacement was missing and hence the copy of the object
5801
        was wrong.
5802
        (Apply_Accessibility_Check): Handle allocated objects initialized in
5803
        place.
5804
        (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
5805
        and Expand_Allocator_Expression. Allocating class-wide interface objects
5806
        this routine displaces the pointer to the allocated object to reference
5807
        the component referencing the corresponding secondary dispatch table.
5808
        Expand_Allocator_Expression): Add missing support to allocate class-wide
5809
        interface objects initialized with a qualified expression.
5810
        (Get_Allocator_Final_List): Test for an anonymous access type that is a
5811
        function result type, and use the finalization list associated with the
5812
        function scope in that case (such an anonymous type should not be
5813
        treated like an access parameter's type).
5814
 
5815
2007-06-06  Ed Schonberg  
5816
            Gary Dismukes  
5817
            Javier Miranda  
5818
 
5819
        * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
5820
        controlled type, use Make_Handler_For_Ctrl_Operation to construct the
5821
        required exception handler.
5822
        (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
5823
        properly the case of a function whose return type is a limited
5824
        class-wide interface type. Modify the code of the accessibility
5825
        check to handle class-wide interface objects. In this case we need to
5826
        displace "this" to reference the primary dispatch table to get access
5827
        to the TSD of the object (to evaluate its accessibility level).
5828
        (Expand_N_Extended_Return_Statement): Test for a tagged result type
5829
        rather than a controlling result as one of the conditions for
5830
        generating tests of the implicit BIP_Alloc_Form formal. The
5831
        initialization assignment is also handled according to whether the
5832
        result is tagged instead of controlling.
5833
        In the case where the init assignment is inserted in the "then" part of
5834
        the allocation conditional, rewrite the target to be a dereference of
5835
        the implicit BIP_Object_Access formal.
5836
        If the returned value is unconstrained and created on the secondary
5837
        stack, mark the enclosing block and function so that the secondary
5838
        stack is not reclaimed on return.
5839
        Treat returns from functions with controlling results similarly to
5840
        returns from functions with unconstrained result subtypes.
5841
        If the object returned is unconstrained, and an allocator must be
5842
        created for it, analyze the allocator once the block for the extended
5843
        return is installed, to ensure that finalizable components
5844
        of the expression use the proper finalization list. Guard the call to
5845
        Move_Final_List with a check that there is something to finalize.
5846
        (Make_Tag_Ctrl_Assignment): Use "old" handling
5847
        of controlled type assignment for virtual machines, since new code uses
5848
        unsupported features (such as direct access to bytes in memory).
5849
 
5850
2007-06-06  Gary Dismukes  
5851
            Ed Schonberg  
5852
 
5853
        * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
5854
        accessibility actual, check for the case of an aliased object that has
5855
        been rewritten as an Access attribute, and assign Prev to Prev_Orig so
5856
        we fall into processing for the attribute rather than the name of the
5857
        object.
5858
        (Expand_Inline_Call): If an actual is a literal, and the corresponding
5859
        formal has its address taken in the body, create a temporary to capture
5860
        value.  If the return type is a limited interface, do not treat the
5861
        return value as Controlled.
5862
        (Is_In_Place_Function):  If the return type is a limited interface,
5863
        treat as returning in place. The actual returned object may not always
5864
        be limited, but the caller has to assume that it is returned in place.
5865
        (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
5866
        context of an allocator, use the correct finalization chain (that is,
5867
        the chain belonging to the access type, rather than the chain belonging
5868
        to the current scope).
5869
        (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
5870
        result type rather than a controlling result as a precondition for
5871
        adding an allocation form actual to a build-in-place call.
5872
        (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
5873
        (Freeze_Subprogram): Code cleanup. Remove all the code that register the
5874
        primitive in the dispatch tables. This work is now done by Make_DT when
5875
        the type is frozen.
5876
        (Register_Predefined_DT_Entry): Removed.
5877
        (Add_Return): If end label is not present, use sloc of last statement
5878
        for generated return statement in procedure, for better gdb behavior
5879
        on expanded code.
5880
        (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
5881
        object address nodes to ensure proper processing by routines like
5882
        Insert_After*.
5883
        (Expand_Call): Fix generation of validity check for parameter
5884
        (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
5885
        the allocation form parameter if the result subtype is constrained,
5886
        except when the function has a controlling result.
5887
        (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
5888
        rather than Is_Controlled and Has_Controlled_Component, since we want to
5889
        include class-wide result types in this treatment. Also test for a
5890
        controlling result, since that also requires passing a finalization
5891
        list.
5892
        (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
5893
        even when the result subtype is constrained, to handle calls involving
5894
        controlling results.
5895
        (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
5896
        is now called even when the result subtype is constrained, to handle
5897
        calls involving controlling results.
5898
        (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
5899
        on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
5900
        now performs the test).
5901
        (Make_Build_In_Place_Call_In_Object_Declaration):
5902
        Add_Alloc_Form_Actual_* is now called even when the result subtype is
5903
        constrained, to handle calls involving controlling results.
5904
        (Add_Return): Accomodate rewritten pattern from local raise to goto
5905
        transformation, so that we still recognize an transfer statement
5906
        and do the right thing here in that case.
5907
        (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
5908
        and end of subprogram code.
5909
        (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
5910
        support for primitives that are functions (without formals) with a
5911
        controlling result.
5912
        (Inherited_From_Formal): If the actual subtype has not generic parent
5913
        type, it is not an actual for a formal derived type, and there is no
5914
        operation to inherit from the formal.
5915
 
5916
2007-06-06  Ed Schonberg  
5917
            Thomas Quinot  
5918
 
5919
        * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
5920
        inserted cleanup code appropriately for GDB use.
5921
        (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
5922
        exception handler for Deep_Adjust or Deep_Finalize.
5923
        (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
5924
        Raise_From_Controlled_Operation is available, use a call to that
5925
        subprogram instead of a plain "raise Program_Error" node to raise
5926
        Program_Error if an exception is propagated from an Adjust or Finalize
5927
        operation.
5928
        (Insert_Actions_In_Scope_Around): If the statement to be wrapped
5929
        appears in the optional statement list of a triggering alternative, the
5930
        scope actions can be inserted directly there, and not in the list that
5931
        includes the asynchronous select itself.
5932
 
5933
2007-06-06  Ed Schonberg  
5934
            Robert Dewar  
5935
            Hristian Kirtchev  
5936
 
5937
        * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
5938
        generated exception handler appropriately when debugging generated code.
5939
        Deal properly with No_Exception_Propagation restriction mode.
5940
        (Expand_N_Abort_Statement): Add an unchecked type conversion from
5941
        System.Address to System.Tasking.Task_Id when processing the result of
5942
        the predefined primitive _disp_get_task_id.
5943
        (Expand_N_Asynchronous_Select): Clarify comment.
5944
        (Expand_N_Protected_Type_Declaration): Minor code cleanup.
5945
        (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
5946
        (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
5947
        (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
5948
        privals and for generated call to Complete_Entry_Body, for better gdb
5949
        behavior.
5950
        (Copy_Result_Type): Utility to construct a parameter and result profile
5951
        for protected functions whose return type is an anonymous access to
5952
        subprogram.
5953
        (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
5954
        call the above.
5955
        (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
5956
        point when the local-raise-to-goto transformation has taken place.
5957
 
5958
2007-06-06  Javier Miranda  
5959
            Nicolas Setton  
5960
 
5961
        * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
5962
        functionality when the backend is generating code.
5963
        Otherwise any serious error
5964
        reported by the backend calling the frontend routine Error_Msg
5965
        changes the Compilation_Mode to Check_Semantics, disables the
5966
        functionality of this routine and causes the generation of
5967
        spureous additional errors.
5968
 
5969
        * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
5970
        debugging information now generated by the compiler for fat-pointer
5971
        types.
5972
        Document the contents of DW_AT_producer in the GNAT Vendor extensions to
5973
        DWARF2/3.
5974
        Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
5975
 
5976
2007-06-06  Thomas Quinot  
5977
 
5978
        * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
5979
        (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
5980
        PolyORB_Support.Build_Subprogram_Receiving_Stubs):
5981
        For a remote call to a function with a classwide return type, apply an
5982
        E.4(18) check to the returned value.
5983
        (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
5984
        stream attributes of the designated type of an RACW, as they are not
5985
        dispatching primitive operations.
5986
 
5987
2007-06-06  Geert Bosch  
5988
 
5989
        * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
5990
        negative literal
5991
        (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
5992
        positive
5993
        (Do_Divide_Fixed_Universal): Handle case of negative Frac.
5994
        (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
5995
        positive
5996
        (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
5997
 
5998
2007-06-06  Javier Miranda  
5999
 
6000
        * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
6001
        attribute compiling package Ada.Tags under No_Run_Time_Mode.
6002
 
6003
2007-06-06  Javier Miranda  
6004
 
6005
        * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
6006
        deallocation of class-wide interface objects.
6007
        (Expand_Dispatching_Constructor_Call): Take into account that if the
6008
        result of the dispatching constructor is an interface type, the
6009
        function returns a class-wide interface type; otherwise the returned
6010
        object would be actual. The frontend previously accepted returning
6011
        interface types because Expand_Interface_Actuals silently performed
6012
        the management of the returned type "as if" it were a class-wide
6013
        interface type.
6014
        (Expand_Dispatching_Constructor_Call): Replace call to
6015
        Make_DT_Access_Action by direct call to Make_Function_Call.
6016
 
6017
2007-06-06  Robert Dewar  
6018
            Ed Schonberg  
6019
 
6020
        * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
6021
        compute masking constant, since we now set Esize properly to the
6022
        underlying size.
6023
        (Create_Packed_Array_Type): Set proper Esize value adjusted as required
6024
        to match the alignment.
6025
        (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
6026
        packed arrays of 8 bits or less.
6027
 
6028
        * freeze.adb (Freeze_Entity): When freezing the formals of a
6029
        subprogram, freeze the designated type of a parameter of an access type
6030
        only if it is an access parameter.
6031
        Increase size of C convention enumeration object
6032
        (Freeze_Entity, array type case): Make sure Esize value is properly
6033
        adjusted for the alignment if it is known.
6034
        (Freeze_Entity, array type case): When checking bit packed arrays for
6035
        the size being incorrect, check RM_Size, not Esize.
6036
        (Freeze_Record_Type): Check for bad discriminated record convention
6037
        (In_Exp_Body): Return true if the body is generated for a subprogram
6038
        renaming, either an attribute renaming or a renaming as body.
6039
        (Check_Itype): If the designated type of an anonymous access component
6040
        is a non-protected subprogram type, indicate that it is frozen, to
6041
        prevent out-of-scope freeze node at some subsequent call.
6042
        (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
6043
        only if the subprogram is neither imported nor exported, as well as the
6044
        NCA descriptor class if the subprogram is exported.
6045
 
6046
2007-06-06  Ed Schonberg  
6047
            Arnaud Charlet  
6048
            Robert Dewar  
6049
            Gary Dismukes  
6050
 
6051
        * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
6052
        default initialization on an imported object, when there is no
6053
        initialization call generated for it.
6054
        (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
6055
        restriction
6056
 
6057
        * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
6058
        Static_Elaboration_Desired.
6059
        Remove pragma Thread_Body.
6060
        Implement a new pragma No_Body
6061
        Removes the Explicit_Overriding pragma
6062
        Remove Optional_Overriding pragma
6063
        (Prag): Deal with Universal_Aliasing.
6064
        (Name_CIL, Name_CIL_Constructor, Convention_CIL,
6065
        Pragma_CIL_Constructor): New names.
6066
 
6067
        * sem_cat.adb (Validate_Object_Declaration): An initialization that
6068
        uses the equivalent aggregate of a type must be treated as an implicit
6069
        initialization.
6070
        (Get_Categorization): Check a unit for pragma Preelaborate only if it
6071
        has none of the other categories.
6072
        (Process_Import_Or_Interface_Pragma): Report an error for an attempt
6073
        to apply Import to an object renaming declaration.
6074
 
6075
        * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
6076
        from a C++ class should be declared as limited and that it will be
6077
        considererd limited.
6078
        (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
6079
        should be declared as limited and that it will be considererd limited.
6080
        (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
6081
        (Analyze_Pragma, case Export): Diagnose export of enumeration literal
6082
        (Analyze_Pragma): Deal with Universal_Aliasing.
6083
        (Sig_Flags): Likewise.
6084
        (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
6085
        (Overflow_Checks_Unsuppressed): New flag.
6086
        (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
6087
        (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
6088
        case of JVM or .NET targets, and compiling user code.
6089
        Add debugging convenience routine rv
6090
 
6091
2007-06-06  Robert Dewar  
6092
 
6093
        * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
6094
        are interface type.
6095
        (Build_Elementary_Input_Call): For floating-point use right type in the
6096
        absence of strange size or stream size clauses.
6097
        (Build_Elementary_Write_Call): Same fix
6098
        (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
6099
        set to value that does not match base type size.
6100
 
6101
2007-06-06  Ed Schonberg  
6102
 
6103
        * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
6104
        object of a limited type can be initialized with a call to a function
6105
        that returns in place. If the limited type has unknown discriminants,
6106
        and the underlying type is a constrained composite type, build an actual
6107
        subtype from the function call, as is done for private types.
6108
        (Side_Effect_Free): An expression that is the renaming of an object or
6109
        whose prefix is the renaming of a object, is not side-effect free
6110
        because it may be assigned through the renaming and its value must be
6111
        captured in a temporary.
6112
        (Has_Controlled_Coextensions): New routine.
6113
        (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
6114
        as is done for other limited types.
6115
        (Non_Limited_Designated_Type): new predicate.
6116
        (Make_CW_Equivalent_Type): Modified to handle class-wide interface
6117
        objects.
6118
        Remove all handling of with_type clauses.
6119
 
6120
        * par-ch10.adb: Remove all handling of with_type clauses.
6121
 
6122
        * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
6123
        checksum if the main source could not be parsed.
6124
        (Loat_Unit): When processing a child unit, determine properly whether
6125
        the parent unit is a renaming when the parent is itself a child unit.
6126
        Remove handling of with_type clauses.
6127
 
6128
        * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
6129
        (Set_Is_Static_Coextension): New procedure.
6130
        (Has_Local_Raise): New function
6131
        (Set_Has_Local_Raise): New procedure
6132
        (Renaming_Exception): New field
6133
        (Has_Init_Expression): New flag
6134
        (Delay_Finalize_Attach): Remove because flag is obsolete.
6135
        (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
6136
        Remove all handling of with_type clauses.
6137
        (Exception_Junk): Can now be set in N_Block_Statement
6138
 
6139
2007-06-06  Vincent Celier  
6140
            Robert Dewar  
6141
 
6142
        * frontend.adb (Frontend): Return immediately if the main source could
6143
        not be parsed, because of preprocessing errors.
6144
 
6145
        * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
6146
        (Gnat1drv): Exit with errors if the main source could not be parsed,
6147
        because of preprocessing errors.
6148
        (Check_Rep_Info): New procedure
6149
 
6150
2007-06-06  Robert Dewar  
6151
 
6152
        * g-hesorg.ads, g-heasor.ads,
6153
        g-busorg.ads, g-bubsor.ads: Update documentation
6154
        GNAT.Heap/Bubble_Sort_G is now pure
6155
 
6156
2007-06-06  Robert Dewar  
6157
 
6158
        * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
6159
 
6160
2007-06-06  Robert Dewar  
6161
            Ed Schonberg  
6162
 
6163
        * g-comlin.ads, g-comlin.adb:
6164
        Add new warning for renaming of function return objects
6165
 
6166
        * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
6167
        (Tree_Read): Use size of object instead of type'object_size, since the
6168
        latter is incorrect for packed array types.
6169
        (Tree_Write): Same fix
6170
 
6171
        * opt.ads: Add new warning for renaming of function return objects
6172
        (Generating_Code): New boolean variable used to indicate that the
6173
        frontend as finished its work and has called the backend to process
6174
        the tree and generate the object file.
6175
        (GCC_Version): Is now private
6176
        (Static_Dispatch_Tables): New constant declaration.
6177
        (Overflow_Checks_Unsuppressed): New flag.
6178
        (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
6179
        (List_Closure): New flag for gnatbind (-R)
6180
        Zero_Formatting: New flag for gnatbind (-Z)
6181
        (Special_Exception_Package_Used): New flag.
6182
        (Warn_On_Unrepped_Components): New flag.
6183
 
6184
        * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
6185
        unit is a compilation unit, rather than relying on its scope, so that
6186
        Standard can be renamed.
6187
        (Analyze_Object_Renaming): Add new warning for renaming of function
6188
        return objects.
6189
        Also reject attempt to rename function return object in Ada 83 mode.
6190
        (Attribute_Renaming): In case of tagged types, add the body of the
6191
        generated function to the freezing actions of the type.
6192
        (Find_Type): A protected type is visible right after the reserved word
6193
        "is" is encountered in its type declaration. Set the entity and type
6194
        rather than emitting an error message.
6195
        (New_Scope): Properly propagate Discard_Names to inner scopes
6196
        (Check_Nested_Access): New procedure.
6197
        (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
6198
        (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6199
 
6200
        * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
6201
        Add new warning for renaming of function return objects
6202
        (Check_References): Suppress warnings for objects whose type or
6203
        base type has Warnings suppressed.
6204
        (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
6205
        (Set_Warning_Switch): Include new -gnatwc in -gnatwa
6206
 
6207
2007-06-06  Vincent Celier  
6208
            Emmanuel Briot  
6209
            Olivier Hainque  
6210
 
6211
        * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
6212
        absolute value of Header.Block_Size when displaying the freed physical
6213
        memory in traces.
6214
        (Allocate): Compute Storage_Address using Integer_Address, not
6215
        Storage_Offset, because the range of Storage_Offset may not be large
6216
        enough.
6217
        (Configure): New parameter Low_Level_Traces
6218
        (Allocate, Deallocation, Free_Physically): Added low-level traces
6219
        (Configure): new parameter Errors_To_Stdout.
6220
        (Output_File): new subprogram
6221
        (Deallocate, Dereference): Send error messages to the proper stream
6222
        (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
6223
        documented. Previous code would send it to the current output file
6224
        defined in GNAT.IO, which might not be stdout
6225
        (Is_Valid): Adjust comment to mention that a positive reply means that
6226
        Header_Of may be used to retrieve the allocation header associated with
6227
        the subprogram Storage address argument. Return False early if this
6228
        address argument is misaligned.
6229
 
6230
2007-06-06  Vincent Celier  
6231
 
6232
        * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
6233
        switch -P
6234
        (ASIS_Main): New global variable
6235
        (Get_Closure): New procedure
6236
        (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
6237
        check, metric or pretty. Call Get_Closure in this case.
6238
        (Check_Files): For GNAT LIST, check all sources of all projects when
6239
        All_Projects is True.
6240
        (GNATCmd): Accept -U for GNAT LIST
6241
 
6242
2007-06-06  Vincent Celier  
6243
 
6244
        * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
6245
        has been specified
6246
        Correct error message when invocation of the linker fails
6247
        Add explicit size clause for the C imported variables
6248
        Object_List_File_Supported and Using_GNU_Linker to emphasize that
6249
        we expect char size.
6250
        Read target parameters earlier, since this is needed to set
6251
        Target_VM properly. Also do not use -static/shared-libgcc for non GCC
6252
        targets.
6253
 
6254
2007-06-06  Vincent Celier  
6255
 
6256
        * gnatls.adb:
6257
        Add 3 spaces before the default project directory when displaying
6258
        the project search path.
6259
        Add new command line switch '-l' to display license information.
6260
 
6261
2007-06-06  Vasiliy Fofanov  
6262
 
6263
        * gmem.c: Add support for timestamps on memory operations.
6264
 
6265
        * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
6266
        operations (not used currently, just foundation for future
6267
        enhancements). Add possibility to perform full dump of gmem.out file.
6268
        (Print_Back_Traces): Declare accesses to root arrays constants since
6269
        they aren't modified.
6270
        (Print_Back_Traces): allocate root arrays on the heap rather than stack.
6271
 
6272
2007-06-06  Vincent Celier  
6273
 
6274
        * gnatsym.adb: Update Copyright notice
6275
        (Parse_Cmd_Line): Accept new switch -D
6276
        (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
6277
         file.
6278
 
6279
        * prj.ads (Policy): New policy Direct
6280
        (Yes_No_Unknown): New enumeration type
6281
        (Project_Data): New component Libgnarl_Needed
6282
 
6283
        * prj-nmsc.adb (Check_For_Source): When recording a source file make
6284
        use the untouched pathname casing.
6285
        (Get_Directories): Ensure that the Display_Exec_Directory is using the
6286
        proper casing on non case-sensitive platforms like Windows.
6287
        (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
6288
        on all platforms, as it is not possible to know which one is allowed
6289
        before processing the project files.
6290
        (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
6291
        specified when symbol policy is Direct. Check that when there is a
6292
        symbol file defined (either by default or with attribute
6293
        Library_Symbol_File) it is not the same as the reference symbol file.
6294
        (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
6295
        (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
6296
        extending projects.
6297
        (Record_Ada_Source): Record a source that has been locally removed in an
6298
        imported project.
6299
 
6300
        * symbols.ads (Policy): New policy Direct
6301
 
6302
        * symbols-vms.adb (Initialize): Take new policy Direct in case
6303
        statement
6304
 
6305
2007-06-06  Vincent Celier  
6306
 
6307
        * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
6308
        Correct obvious bug (return Dir; instead of return Directory;).
6309
        (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
6310
 
6311
2007-06-06  Thomas Quinot  
6312
 
6313
        * g-pehage.adb (Produce): Open output files in Binary mode, so that
6314
        they have UNIX line endings (LF only) even on Windows, and thus pass
6315
        all GNAT style checks.
6316
 
6317
2007-06-06  Emmanuel Briot  
6318
 
6319
        * g-regpat.adb (Quote): Fix improper quoting of '.'
6320
 
6321
2007-06-06  Thomas Quinot  
6322
 
6323
        * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
6324
        default, set False on a per-runtime basis.
6325
        (Need_Netdb_Buffer): New constant.
6326
 
6327
        * g-socket.ads, g-socket.adb: Import new package
6328
        GNAT.Sockets.Thin.Task_Safe_NetDB.
6329
        (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
6330
        binding to obtain proper message.
6331
        (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
6332
        Replace various occurrences of Arry (Arry'First)'Address with the
6333
        equivalent Arry'Address (GNAT always follows implementation advice from
6334
        13.3(14)).
6335
        (Get_Host_By_Address, Get_Host_By_Name,
6336
        Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
6337
        instead, rely on platform-specific task safe netdb operations provided
6338
        by g-socthi.
6339
 
6340
        * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
6341
        parameter Process_Blocking_IO.
6342
        (Host_Error_Messages): Add stub body.
6343
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
6344
        (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
6345
        Safe_Getservbyport): Move functions into new child package
6346
        Task_Safe_NetDB.
6347
        (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
6348
        Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
6349
        (In_Addr): Add alignment clause.
6350
 
6351
2007-06-06  Robert Dewar  
6352
 
6353
        * g-trasym.ads, g-traceb.ads: Update list of supported targets
6354
        Add note about symbolic traceback
6355
 
6356
2007-06-06  Pascal Obry  
6357
 
6358
        * hostparm.ads (Normalized_CWD): Use the host directory separator
6359
        instead of the hardcoded forward slash which is not the proper
6360
        character on Windows for example.
6361
        (Java_VM): Removed.
6362
 
6363
2007-06-06  Vincent Celier  
6364
            Arnaud Charlet  
6365
 
6366
        * a-clrefi.adb, a-clrefi.ads: New files
6367
 
6368
        * impunit.adb: Add s-os_lib in the list of user visible units.
6369
        (Non_Imp_File_Names_95): Add a-clrefi to this list
6370
        Remove obsolete run-time entries.
6371
        (Non_Imp_File_Names_05): Add Ada 2005 entries for:
6372
         "a-exetim" -- Ada.Execution_Time
6373
         "a-extiti" -- Ada.Execution_Time.Timers
6374
 
6375
        * mlib-prj.ads, mlib-prj.adb
6376
        (Build_Library): Use untouched object dir and library dir. At the
6377
        same time makes sure that the checks are done using the canonical
6378
        form. Removes hard-coded directory separator and use the proper host
6379
        one instead.
6380
        (Process_Project): Do not look in object directory to check if libgnarl
6381
        is needed for a library, if there is no object directory.
6382
        (Build_Library): Scan the ALI files to decide if libgnarl is needed for
6383
        linking.
6384
        (Build_Library): When invoking gnatbind, use a response file if the
6385
        total size of the arguments is too large.
6386
 
6387
        * Makefile.rtl: (g-sttsne): New object file.
6388
        Add entry for a-clrefi, s-utf_32, System.Exceptions
6389
 
6390
        * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
6391
        (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
6392
        (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
6393
        Change g-string to s-string, g-os_lib to s-os_lib
6394
        Change all g-utf_32 references to s-utf_32
6395
 
6396
2007-06-06  Tristan Gingold  
6397
            Olivier Hainque  
6398
 
6399
        * init.c: Do not adjust IP of an imported VMS exception of ia64.
6400
        LIB$STOP is called to raise an exception and the IP of the exception
6401
        is the instruction right after the call.
6402
        (__gnat_adjust_context_for_raise, AIX): Implement.
6403
        (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
6404
         adjust_context_for_raise before Raise_From_Signal_Hanler.
6405
        (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
6406
        siginfo is passed to the handler, necessary to let the zcx propagation
6407
        engine unwind past it.
6408
 
6409
2007-06-06  Olivier Hainque  
6410
 
6411
        * initialize.c (__gnat_initialize for vxworks):  Update documentation
6412
        on the ZCX support, using different sets of crtstuff objects than with
6413
        GCC 3.4.
6414
 
6415
2007-06-06  Robert Dewar  
6416
 
6417
        * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
6418
        spec from body
6419
        (Layout_Type): Fix recomputation of size from alignment.
6420
 
6421
2007-06-06  Ed Schonberg  
6422
            Javier Miranda  
6423
 
6424
        * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
6425
        association in an instance.
6426
        (Copy_Generic_Node): If the node is a string literal, no need to copy
6427
        its descendants.
6428
        (Is_Generic_Formal): For a formal subprogram, the declaration is the
6429
        grandparent of the entity.
6430
        (Analyze_Formal_Interface_Type): Transform into a full type declaration,
6431
        to simplify handling of formal interfaces that derive from other formal
6432
        interfaces.
6433
        (Instantiate_Subprogram_Body): The defining unit name of the body of
6434
        the instance should be a defining identifier.
6435
        (Install_Formal_Packages): make global to the package, for use in
6436
        instantiations of child units.
6437
        (Analyze_Package_Instantiation): Do not attempt to set information on an
6438
        enclosing master of an entry when expansion is disabled.
6439
        (Instantiate_Type): If the actual is a tagged synchronized type and the
6440
        generic ancestor is an interface, create a generic actual for the
6441
        corresponding record.
6442
        (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
6443
        declaration, to ensure that the interface list is processed correctly.
6444
        (Inline_Instance_Body): If enclosing scope is an instance body, remove
6445
        its entities from visibiility as well.
6446
        (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
6447
        given with a named association, analyze the expression only, not the
6448
        discriminant association itself.
6449
        (Reset_Entity): If the analysis of a selected component is transformed
6450
        into an expanded name in the prefix of a call with parameters, do not
6451
        transform the original node into an expanded name, to prevent visibility
6452
        errors in the case of nested generics.
6453
        (Check_Private_View): For an array type, check whether the index types
6454
        may need exchanging.
6455
 
6456
2007-06-06  Arnaud Charlet  
6457
            Vincent Celier  
6458
 
6459
        * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
6460
        since both are separated.
6461
        Add support for imported CIL packages.
6462
        Add further special handling of "value_type" for CIL.
6463
        Add special handling of pragma Import for CIL.
6464
 
6465
        * make.ads, make.adb: When switch -eS is used, direct all outputs to
6466
        standard output instead of standard error, except errors.
6467
        (Absolute_Path): Use untouched casing for the parent directory.
6468
        (Add_Library_Search_Dir): Use the untouched directory name.
6469
        (Add_Source_Search_Dir): Idem.
6470
        (Change_To_Object_Directory): Update output to use proper casing.
6471
        (Create_Binder_Mapping_File): Use the untouched filename to set
6472
        ALI_Name.
6473
        (Gnatmake): Use untouched library and executable directory names.
6474
        (Insert_Project_Sources): Use untouched filename for spec and body.
6475
        (Is_In_Object_Directory): Use untouched object directory.
6476
        (Mark_Directory): Idem.
6477
        (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
6478
        contains the non-canonical filename in all cases.
6479
        (Change_To_Object_Directory): In verbose mode, display the name of the
6480
        object directory we're changing to.
6481
        (Compile_Sources): Make sure, when a project file is used, to compile
6482
        the body of the unit, when there is one, even when only the spec is
6483
        recorded in an ALI file.
6484
        (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
6485
        spec to the body.
6486
        (Report_Compilation_Failed): New procedure
6487
        (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
6488
        procedures moved from the spec to the body.
6489
        (Extract_Failure): Removed, not used
6490
        Replace explicit raises of exception Bind_Failed and Link_Failed with
6491
        calls to Make_Failed with the proper message.
6492
        Replace explicit raises of exception Compilation_Failed with calls to
6493
        procedure Report_Compilation_Failed.
6494
        (Initialize): Create mapping files unconditionally when using project
6495
        files.
6496
 
6497
        * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
6498
        Pragma_CIL_Constructor): New names.
6499
 
6500
        * targparm.ads, targparm.adb
6501
        (Compiler_System_Version): Removed, no longer used.
6502
        (Get_Target_Parameters): Relax checks on system.ads validity. Add
6503
        handling of two new system flags: JVM and CLI.
6504
 
6505
2007-06-06  Jose Ruiz  
6506
            Arnaud Charlet  
6507
 
6508
        * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
6509
        time, use the default s-interr body that provides interrupt support
6510
        based on signals.
6511
        (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
6512
        a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
6513
        g-soccon.ads, and s-taprop.adb for the marte run time.
6514
        (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
6515
        timers are supported on marte.
6516
        (EH_MECHANISM for marte): Do not use ZCX.
6517
        (THREADSLIB for marte): Use -lmarte.
6518
        Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
6519
        Add mlib-tgt-specific.o to gnatmake objects
6520
        mlib-tgt-.adb is now the body of MLib.Tgt.Specific, no
6521
        longer of MLib.Tgt.
6522
        (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
6523
        6, either kernel or rtp, use a specialized version of s-osinte.ads.
6524
 
6525
2007-06-06  Pascal Obry  
6526
 
6527
        * mkdir.c (__gnat_mkdir): Add support for UTF-8.
6528
 
6529
2007-06-06  Vincent Celier  
6530
 
6531
        * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
6532
        separator, use instead the proper host directory separator.
6533
        (Copy_ALI_Files): Make sure that an already existing ALI file in the
6534
        ALI copy dir is writable, before doing the copy.
6535
 
6536
        * mlib-utl.ads, mlib-utl.adb:
6537
        (Gcc): If length of command line is too long, put the list of object
6538
        files in a response file, if this is supported by the platform.
6539
        (Ar): If invocation of the archive builder is allowed to be done in
6540
        chunks and building it in one shot would go above an OS dependent
6541
        limit on the number of characters on the command line, build the archive
6542
        in chunks.
6543
 
6544
2007-06-06  Vincent Celier  
6545
 
6546
        * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
6547
        of specified object file is not equal to base name of source.
6548
 
6549
2007-06-06  Javier Miranda  
6550
            Hristian Kirtchev  
6551
            Ed Schonberg  
6552
 
6553
        * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
6554
        the full type declaration.
6555
        (Analyze_Component_Declaration): Add local variable E to capture the
6556
        initialization expression of the declaration. Replace the occurences of
6557
        Expression (N) with E.
6558
        (OK_For_Limited_Init_In_05): Allow initialization of class-wide
6559
        limited interface object with a function call.
6560
        (Array_Type_Declaration): If the declaration lacks subtype marks for
6561
        indices, create a simple index list to prevent cascaded errors.
6562
        (Is_Null_Extension): Ignore internal components created for secondary
6563
        tags when checking whether a record extension is a null extension.
6564
        (Check_Abstract_Interfaces): Add missing support for interface subtypes
6565
        and generic formals.
6566
        (Derived_Type_Declaration): Add missing support for interface subtypes
6567
        and generic formals.
6568
        (Analyze_Object_Declaration): If an initialization expression is
6569
        present, traverse its subtree and mark all allocators as static
6570
        coextensions.
6571
        (Add_Interface_Tag_Component): When looking for components that may be
6572
        secondary tags, ignore pragmas that can appear within a record
6573
        declaration.
6574
        (Check_Abstract_Overriding): an inherited function that dispatches on
6575
        result does not need to be overriden if the controlling type is a null
6576
        extension.
6577
        (Mentions_T): Handle properly a 'class attribute in an anonymous access
6578
        component declaration, when the prefix is an expanded name.
6579
        (Inherit_Component): If the derivation is for a private extension,
6580
        inherited components remain visible and their ekind should not be set
6581
        to Void.
6582
        (Find_Type_Of_Object): In the case of an access definition, always set
6583
        Is_Local_Anonymous_Access. We were previously not marking the anonymous
6584
        access type of a return object as a local anonymous type.
6585
        (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
6586
        range with character literal bounds.
6587
        (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
6588
        (Access_Subprogram_Declaration): Indicate that the type declaration
6589
        depends on an incomplete type only if the incomplete type is declared
6590
        in an open scope.
6591
        (Analyze_Subtype_Declaration): Handle properly subtypes of
6592
        synchronized types that are tagged, and that may appear as generic
6593
        actuals.
6594
        (Access_Subprogram_Declaration): An anonymous access to subprogram can
6595
        appear as an access discriminant in a private type declaration.
6596
        (Add_Interface_Tag_Components): Complete decoration of the component
6597
        containing the tag of a secondary dispatch table and the component
6598
        containing the offset to the base of the object (this latter component
6599
        is only generated when the parent type has discriminants --as documented
6600
        in this routine).
6601
        (Inherit_Components): Use the new decoration of the tag components to
6602
        improve the condition that avoids inheriting the components associated
6603
        with secondary tags of the parent.
6604
        (Build_Discriminanted_Subtype): Indicate to the backend that the
6605
        size of record types associated with dispatch tables is known at
6606
        compile time.
6607
        (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
6608
        (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
6609
        to include task, protected, and synchronized interfaces as limited
6610
        interfaces.
6611
        (Process_Discriminants): Remove the setting of
6612
        Is_Local_Anonymous_Access on the type of (anonymous) access
6613
        discriminants of nonlimited types.
6614
        (Analyze_Interface_Type_Declaration): Complete the decoration of the
6615
        class-wide entity it is is already present. This situation occurs if
6616
        the limited-view has been previously built.
6617
        (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
6618
        field.
6619
        (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
6620
        Related_Interface.
6621
 
6622
2007-06-06  Ed Schonberg  
6623
 
6624
        * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
6625
        of the type that specify the position of interface tags when the type
6626
        inherits discriminated array components from the parent type.
6627
        If a component is initialized with a box, check for the presence of a
6628
        default expression in its declaration before using its default
6629
        initialization procedure.
6630
        (Resolve_Record_Aggregate): If a component is box-initialized, and the
6631
        component type has a discriminants, create a partial aggregate for it
6632
        by copying the discriminants of the component subtype.
6633
        Reject attempt to initialize a discriminant with a box.
6634
        (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
6635
        associated with dispatch tables is known at compile time.
6636
        (Get_Value): If an association in a record aggregate has a box
6637
        association, and the corresponding record component has a default
6638
        expression, always copy the default expression, even when the
6639
        association has a single choice, in order to create a proper
6640
        association for the expanded aggregate.
6641
 
6642
2007-06-06  Ed Schonberg  
6643
            Robert Dewar  
6644
 
6645
        * par-ch12.adb (P_Generic_Associations): The source position of an
6646
        Others association is that of the others keyword, not that of the token
6647
        that follows the box.
6648
        (P_Formal_Type_Definition): Handle formal access types that carry a
6649
        not null indicator.
6650
 
6651
        * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
6652
        multiple identifier are present, save Scan_State before scanning the
6653
        colon, to ensure that separate trees are constructed for each
6654
        declaration.
6655
        (P_Identifier_Declarations): For object declaration, set new flag
6656
        Has_Init_Expression if initialization expression present.
6657
        (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
6658
        Improve NOT NULL error messages
6659
 
6660
2007-06-06  Robert Dewar  
6661
 
6662
        * par-ch4.adb: (P_Name): Recover from literal used as name
6663
 
6664
2007-06-06  Vincent Celier  
6665
 
6666
        * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
6667
        defaulted to False.
6668
        In the "not" case, recursive call with Complemented set to True.
6669
        Do not allow "or" or "and" operators when Complemented is True.
6670
 
6671
2007-06-06  Vincent Celier  
6672
 
6673
        * prj.adb (Project_Empty): Gives default value for new component
6674
        Libgnarl_Needed
6675
 
6676
        * prj-attr.ads: Minor reformatting
6677
 
6678
        * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
6679
        directory using the untouched casing.
6680
        (For_All_Source_Dirs): Idem.
6681
 
6682
        * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
6683
        directories specified with switches -aP.
6684
        (Add_Search_Project_Directory): New procedure
6685
        (Initialize_Project_Path): Put the directories in table
6686
        Search_Directories in the project search path.
6687
        (Initialize_Project_Path): For VMS, transform into canonical form the
6688
        project path.
6689
 
6690
2007-06-06  Arnaud Charlet  
6691
 
6692
        * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
6693
        true if configurable run-time or No_Run_Time is set.
6694
        (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
6695
        processing an unit which is not the one being compiled.
6696
 
6697
2007-06-06  Arnaud Charlet  
6698
 
6699
        * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
6700
        Replace UC by Ada.UC
6701
 
6702
        * s-bitops.adb: Get rid of System.Pure_Exceptions.
6703
        Replace UC by Ada.UC
6704
 
6705
2007-06-06  Robert Dewar  
6706
 
6707
        * scng.adb: (Check_End_Of_Line): Deal with very long lines
6708
 
6709
2007-06-06  Robert Dewar  
6710
 
6711
        * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
6712
        Remove no longer used nodes.
6713
 
6714
2007-06-06  Javier Miranda  
6715
            Ed Schonberg  
6716
            Robert Dewar  
6717
 
6718
        * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
6719
        on obsolescent withed unit in case of limited-withed units.
6720
        (Analyze_Compilation_Unit): Add guard to code that removed an
6721
        instantiation from visibility, to prevent compiler aborts when
6722
        instantiation is abandoned early on.
6723
        (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
6724
        current unit being analyzed, and Distinguish local incomplete types
6725
        from limited views of types declared elsewhere.
6726
        (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
6727
        to state that the class-wide entity is shared by the limited-view
6728
        and the full-view.
6729
        (Analyze_With_Clause): Improve placement of flag for case of
6730
        unimplemented unit.
6731
        (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
6732
        manner similar to GNAT.Current_Exception. This is a violation of
6733
        restriction (No_Exception_Propagation), and also inhibits the
6734
        optimization of local raise to goto.
6735
        (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
6736
        and if so set Most_Recent_Exception_Used flag in Opt, and also check
6737
        for violation of restriction No_Exception_Propagation.
6738
 
6739
2007-06-06  Javier Miranda  
6740
            Hristian Kirtchev  
6741
            Gary Dismukes  
6742
 
6743
        * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
6744
        use of entity Exception_Occurrence if it is not available in the
6745
        target run-time.
6746
 
6747
        * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
6748
        concurrent types are declared within an Ada 2005 generic, build their
6749
        corresponding record types since they are needed for overriding-related
6750
        semantic checks.
6751
        (Analyze_Protected_Type): Rearrange and simplify code for testing that a
6752
        protected type does not implement a task interface or a nonlimited
6753
        interface.
6754
        (Analyze_Task_Type): Rearrange and simplify code for testing that a task
6755
        type does not implement a protected interface or a nonlimited interface.
6756
        (Single_Task_Declaration, Single_Protected_Declaration): use original
6757
        entity for variable declaration, to ensure that debugging information
6758
        is correcty generated.
6759
        (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
6760
        routines if the expander is not active.
6761
        (Analyze_Task_Body): Mark all handlers to stop optimization of local
6762
        raise, since special things happen for task exception handlers.
6763
 
6764
        * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
6765
        concurrent types declared within a generic.
6766
        (Check_Dispatching_Operation): Do not emit warning about late interface
6767
        operations in the context of an instance.
6768
        (Check_Dispatching_Call): Remove restriction against calling a
6769
        dispatching operation with a limited controlling result.
6770
        (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
6771
        Register_Interface_DT_Entry by calls to Register_Primitive.
6772
        (Check_Dispatching_Formals): Handle properly a function with a
6773
        controlling access result.
6774
 
6775
2007-06-06  Robert Dewar  
6776
            Arnaud Charlet  
6777
 
6778
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
6779
        Check for restriction No_Implementation_Attributes if in Ada 95 mode.
6780
        (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
6781
        (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
6782
        message when using a VM, since this attribute is not supported.
6783
        (Analyze_Record_Representation_Clause): Give unrepped component warnings
6784
 
6785
        * usage.adb: Add new warning for renaming of function return objects
6786
        Indicate that -gnatwp and -gnatwP concern front-end inlining
6787
        Add line for -gnatyg
6788
        Add usage information for -gnatw.c/C
6789
 
6790
2007-06-06  Robert Dewar  
6791
            Ed Schonberg  
6792
 
6793
        * sem_ch5.adb
6794
        (Find_Var): Do not consider function call in test for infinite loop
6795
        warning if warnings set off for function entity.
6796
        (One_Bound): Do not create a temporary for a loop bound if it is a
6797
        character literal.
6798
        (Analyze_Assignment): Traverse the right hand side of an assignment and
6799
        mark all allocators as static coextensions.
6800
        (Analyze_Assignment): Exempt assignments involving a dispatching call
6801
        to a function with a controlling access result from the check requiring
6802
        the target to be class-wide.
6803
 
6804
2007-06-06  Hristian Kirtchev  
6805
            Ed Schonberg  
6806
            Robert Dewar  
6807
            Javier Miranda  
6808
 
6809
        * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
6810
        chain of coextensions when an allocator serves as the root of such a
6811
        chain.
6812
        (Propagate_Coextensions): Remove the test for the root being an
6813
        allocator.
6814
        (Resolve_Allocator): Add condition to ensure that all future decoration
6815
        occurs on an allocator node. Add processing and cleanup for static
6816
        coextensions.
6817
        (Valid_Conversion): If the operand type is the limited view of a
6818
        class-wide type, use the non-limited view is available to determine
6819
        legality of operation.
6820
        (Ambiguous_Character): move to spec, for use elsewhere.
6821
        (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
6822
        (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
6823
        character literals.
6824
        (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
6825
        Do_Division_Check flag explicitly.
6826
        (Resolve_Actuals): If the actual is of a synchronized type, and the
6827
        formal is of the corresponding record type, this is a call to a
6828
        primitive operation of the type, that is declared outside of the type;
6829
        the actual must be unchecked-converted to the type of the actual
6830
        (Resolve_Call): Kill all current values for any subprogram call if
6831
        flag Suppress_Value_Tracking_On_Call is set.
6832
        (Resolve_Type_Conversion): Generate error message the the operand
6833
        or target of interface conversions come from a limited view.
6834
        (Check_Infinite_Recursion): Ignore generated calls
6835
        (Check_Allocator_Discrim_Accessibility): New procedure for checking
6836
        that an expression that constrains an access discriminant in an
6837
        allocator does not denote an object with a deeper level than the
6838
        allocator's access type.
6839
        (Resolve_Allocator): In the case of an allocator initialized by an
6840
        aggregate of a discriminated type, check that associations for any
6841
        access discriminants satisfy accessibility requirements by calling
6842
        Check_Allocator_Discrim_Accessibility.
6843
        (Resolve_Equality_Op): Handle comparisons of anonymous access to
6844
        subprogram types in the same fashion as other anonymous access types.
6845
        (Resolve_Concatenation_Arg): Remove initial character '\' in an error
6846
        message that is not a continuation message.
6847
        (Resolve_Type_Conversion): Add missing support for conversion to
6848
        interface type.
6849
        (Resolve_Actuals): Introduce a transient scope around the call if an
6850
        actual is a call to a function returning a limited type, because the
6851
        resulting value must be finalized after the call.
6852
        (Resolve_Actuals): If the call was given in prefix notations, check
6853
        whether an implicit 'Access reference or implicit dereference must be
6854
        added to make the actual conform to the controlling formal.
6855
 
6856
2007-06-06  Robert Dewar  
6857
            Javier Miranda  
6858
 
6859
        * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
6860
        (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
6861
        overriding of an inherited private subprogram now there is no need to
6862
        inherit its dispatching slot and reduce the size of the dispatch table.
6863
        Set_All_DT_Position now ensures that the same slot is now assigned to
6864
        both entities. This is required to statically build the dispatch table.
6865
        (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
6866
        of calling Set_All_DT_Position to re-evaluate the position of the
6867
        entries in the dispatch table. Such reevaluation is not desired if
6868
        the tagged type is already frozen.
6869
 
6870
2007-06-06  Hristian Kirtchev  
6871
            Gary Dismukes  
6872
            Robert Dewar  
6873
            Javier Miranda  
6874
 
6875
        * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
6876
        reference acts as an lvalue when the attribute name modifies the prefix
6877
        (Is_Coextension_Root): New routine.
6878
        (Mark_Static_Coextensions): New routine.
6879
        (Type_Access_Level): Revise code for checking the level of the
6880
        anonymous access type of a return object.
6881
        (Safe_To_Capture_Value): Not safe to capture if Address_Taken
6882
        (Matches_Prefixed_View_Profile): Remove the no longer necessary
6883
        retrieval of the corresponding controlling record type.
6884
        (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
6885
        concurrent types declared within a generic as well as class wide types.
6886
        Emit a mode incompatibility error whenever a protected entry or routine
6887
        override an interface routine whose first parameter is not of mode
6888
        "out", "in out" or access to variable.
6889
        (Overrides_Synchronized_Primitive): Rename to
6890
        Find_Overridden_Synchronized_Primitive.
6891
        (Collect_Interface_Components): New subprogram that collects all the
6892
        components of a tagged record containing tags of secondary dispatch
6893
        tables.
6894
        (Add_Global_Declaration): New procedure
6895
        (Abstract_Interface_List): Handle properly the case of a subtype of a
6896
        private extension.
6897
        (Type_Access_Level): In the case of a type whose parent scope is a
6898
        return statement, call Type_Access_Level recursively on the enclosing
6899
        function's result type to determine the level of the return object's
6900
        type.
6901
        (Build_Elaboration_Entity): Build name of elaboration entity from the
6902
        scope chain of the entity, rather than the unit name of the file name.
6903
        (Check_Nested_Access): New procedure.
6904
        (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
6905
        (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6906
        (Get_Renamed_Entity): Utility routine for performing common operation
6907
        of chasing the Renamed_Entity field of an entity.
6908
 
6909
2007-06-06  Robert Dewar  
6910
 
6911
        * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
6912
        elaboration model
6913
        (Check_A_Call): Add check for entry call which was causing blowup
6914
 
6915
2007-06-06  Olivier Hainque  
6916
 
6917
        * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
6918
        special code on ia64-vms to handle major incompatibilities between the
6919
        GCC unwinding ABI and the VMS Condition Handling Facility, both calling
6920
        this routine with a very different set of arguments and expectations on
6921
        the return value.
6922
 
6923
2007-06-06  Thomas Quinot  
6924
 
6925
        * socket.c (__gnat_close_signalling_fd): New function.
6926
        (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
6927
        __gnat_safe_getservbyname, __gnat_safe_getservbyport):
6928
        New supporting functions for task safe Netdb operations.
6929
 
6930
2007-06-06  Thomas Quinot  
6931
            Olivier Hainque  
6932
 
6933
        * a-except-2005.ads, a-except-2005.adb
6934
        (Raise_From_Controlled_Operation): New procedure in
6935
        (private part of) Ada.Exceptions (standard runtime version). Used to
6936
        provide informational exception message when Program_Error is raised as
6937
        a result of an Adjust or Finalize operation propagating an exception.
6938
        (Rmsg_28): Fix description for E.4(18) check.
6939
        (Raise_Current_Excep): Call Debug_Raise_Exception just before
6940
        propagation starts, to let debuggers know about the event in a reliable
6941
        fashion.
6942
        Take the address of E and dereference to make sure it is homed on stack
6943
        and prevent the stores from being deleted, necessary for proper
6944
        debugger behavior on "break exception" hits.
6945
        (Local_Raise): Moved to System.Exceptions
6946
 
6947
        * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
6948
        exception message from the current occurrence and raise Program_Error
6949
        has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
6950
 
6951
2007-06-06  Jose Ruiz  
6952
            Arnaud Charlet  
6953
 
6954
        * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
6955
        lock, if needed.
6956
 
6957
        * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
6958
        priority associated to a lock.
6959
 
6960
        * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
6961
        assertion to take into account case of no abort restriction.
6962
        (Initialize_Protection_Entries): Add initialization for the field
6963
        New_Ceiling associated to the protected object.
6964
        (Unlock_Entries): Change the ceiling priority of the underlying lock, if
6965
        needed.
6966
 
6967
        * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
6968
        since this function needs to be set consistently with Update_Exception.
6969
 
6970
        * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
6971
        since this function needs to be set consistently with Update_Exception.
6972
 
6973
        * s-taskin.ads: Update comments on
6974
        Interrupt_Server_Blocked_On_Event_Flag.
6975
        (Unbind_Handler): Fix handling of server_task wakeup
6976
        (Server_Task): Set self's state so that Unbind_Handler can take
6977
        appropriate actions.
6978
        (Common_ATCB): Now use a constant from System.Parameters to determine
6979
        the max size of the Task_Image field.
6980
 
6981
        * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
6982
        Initialize_Analyzer function.
6983
        ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
6984
        take into account case of no abort restriction.
6985
        ([Vulnerable_]Complete_Master): Modify assertion.
6986
 
6987
        * s-tataat.adb (Finalize): Use the nestable versions of
6988
        Defer/Undefer_Abort.
6989
 
6990
        * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
6991
 
6992
        * s-tpobop.ads: Update comments.
6993
 
6994
        * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
6995
        of locking the object manually, to avoid inconsistencies between
6996
        Lock/Unlock_Entry assertions.
6997
 
6998
        * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
6999
        terminating
7000
        application and System.Parameters.No_Abort is True.
7001
        Update comments on Interrupt_Server_Blocked_On_Event_Flag.
7002
        (Unbind_Handler): Fix handling of server_task wakeup
7003
        (Server_Task): Set self's state so that Unbind_Handler can take
7004
        appropriate actions.
7005
 
7006
2007-06-06  Thomas Quinot  
7007
 
7008
        * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
7009
        declarations instead of an explicit null body, for conciseness.
7010
 
7011
2007-06-06  Robert Dewar  
7012
 
7013
        * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
7014
        illegal aggregate and the type is still Any_Composite.
7015
        (Subtypes_Statically_Match): Fix problem of empty discriminant list
7016
 
7017
2007-06-06  Ed Schonberg  
7018
 
7019
        * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
7020
        to prevent subsequent expansion.
7021
 
7022
2007-06-06  Robert Dewar  
7023
 
7024
        * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
7025
 
7026
2007-06-06  Ed Schonberg  
7027
            Robert Dewar  
7028
 
7029
        * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
7030
        exceptions.
7031
        (Write_Itype): Handle case of string literal subtype, which
7032
        comes up in this context.
7033
        (Update_Itype): when debugging expanded code, update sloc of itypes
7034
        associated with defining_identifiers and ranges, for gdb use.
7035
        (Sprint_Node_Actual): Add static keyword to object or exception
7036
        declaration output if Is_Statically_Allocated is True.
7037
        (Sprint_End_Label): Set entity of end marker for a subprogram, package,
7038
        or task body, so that the tree carries the proper Sloc information for
7039
        debugging use.
7040
        (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
7041
 
7042
2007-06-06  Arnaud Charlet  
7043
 
7044
        * s-secsta.adb (Chunk): Ensure this object has a static size known at
7045
        compile time, to avoid dynamic memory allocation
7046
        (Elaboration code): Only use dynamic memory allocation when needed.
7047
 
7048
2007-06-06  Quentin Ochem  
7049
 
7050
        * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
7051
        "Overflow_Guard".
7052
        (Stack_Analyzer): Added field "Overflow_Guard"
7053
        (Task_Result): Added field "Overflow_Guard".
7054
        (Index_Str): New constant.
7055
        (Task_Name_Str): New constant.
7056
        (Actual_Size_Str): New constant.
7057
        (Pattern_Array_Element_Size): New constant.
7058
        (Get_Usage_Range): New subprogram.
7059
        (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
7060
        Now align the output.
7061
        Added comments.
7062
        (Initialize): Added value for Overflow_Guard.
7063
        (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
7064
        Update the value of the overflow guard according to the actual
7065
        beginning of the pattern array.
7066
        (Initialize_Analyzer): Added parameter Overflow_Guard.
7067
        Take this parameter into accound when computing the max size.
7068
        (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
7069
        (Report_Result): Removed extra useless procedure.
7070
        Updated call to Output_Result.
7071
        Moved full computation of the Task_Result here.
7072
 
7073
2007-06-06  Thomas Quinot  
7074
 
7075
        * g-soccon-darwin.ads, gen-soccon.c: Add new constant
7076
        Thread_Blocking_IO, always True by default, set False on a per-runtime
7077
        basis.
7078
        Add Windows-specific constants
7079
        Add new constant Need_Netdb_Buffer.
7080
        Add new macros to indicate whether getXXXbyYYY is thread safe and, if
7081
        not, whether to use getXXXbyYYY_r.
7082
 
7083
        * gsocket.h: Add new constant Need_Netdb_Buffer.
7084
        Add new macros to indicate whether getXXXbyYYY is thread safe and, if
7085
        not, whether to use getXXXbyYYY_r.
7086
 
7087
2007-06-06  Eric Botcazou  
7088
 
7089
        * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
7090
        than their first call.
7091
        Add type Dummy_Communication_Block used in the generation of the pre-
7092
        defined dispatching primitive _disp_asynchronous_select.
7093
        (Storage_Element): Put Pragma Universal_Aliasing on it.
7094
 
7095
2007-06-06  Vincent Celier  
7096
 
7097
        * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
7098
        function.
7099
 
7100
        * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
7101
        letter if it is not followed by a '/' or a '\'.
7102
        (Windows): New Boolean function
7103
 
7104
        * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
7105
        Ada 2005.
7106
        (Containing_Directory): On Windows, keep at least one '/' or '\' after a
7107
        drive letter.
7108
        (Containing_Directory): Raise Use_Error when the directory is a root
7109
        directory.
7110
        (Extension): When returning the result, use a conversion to Result_Type,
7111
        not a qualification.
7112
 
7113
2007-06-06  Robert Dewar  
7114
 
7115
        * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
7116
        (Set_Style_Check_Options): Recognize new -gnatyg style switch
7117
 
7118
        * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
7119
        Warn_On_Non_Local_Exception to False, to turn off warnings for
7120
        No_Exception_Propagation in ZFP runtime.
7121
        (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
7122
        back-ends.
7123
        (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
7124
 
7125
2007-06-06  Vincent Celier  
7126
 
7127
        * switch-b.adb (Scan_Binder_Switches): Add processing for new
7128
        switches -R and -Z
7129
 
7130
        * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
7131
        (Scan_Make_Switches): Recognize new switch -aP
7132
 
7133
2007-06-06  Matthew Gingell  
7134
            Jose Ruiz  
7135
 
7136
        * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
7137
        VxWorks task descriptor in the Ada run time, call a C subprogram
7138
        (__gnat_get_stack_info) that extracts the required information.
7139
 
7140
        * sysdep.c: Back out temporary lynxos workaround.
7141
        (__gnat_get_stack_info): Add this procedure that passes to the Ada run
7142
        time the stack information associated to the currently executing task.
7143
        Only VxWorks systems require this function.
7144
 
7145
2007-06-06  Eric Botcazou  
7146
 
7147
        * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
7148
        add the stack bias if the offset is computed from a frame address.
7149
        (__gnat_backtrace): Adjust for above change.
7150
 
7151
2007-06-06  Thomas Quinot  
7152
 
7153
        * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
7154
        PE_Non_Transportable_Actual.
7155
        (By_Descriptor_Last): New constant.
7156
        (By_Copy_Return): Likewise.
7157
 
7158
2007-06-06  Vincent Celier  
7159
 
7160
        * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
7161
        is.
7162
 
7163
        * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
7164
        /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
7165
        /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
7166
        Add missing comment for /OPTIMIZE=SPACE
7167
        Add entry for OPTIMIZE=SPACE
7168
        Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
7169
        Add documentation for new qualifiers corresponding to -gnatw.c/.C
7170
 
7171
2007-06-06  Vincent Celier  
7172
            Robert Dewar  
7173
 
7174
        * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
7175
        -gnatw.C)
7176
 
7177
        * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
7178
        Document gnatbind switch -a
7179
        (case Constructions): Document that variables declarations are allowed
7180
        for previously declared variables.
7181
        Fix external lib project example
7182
        -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
7183
        Indicate that "#if not X or Y then" is not allowed in input files to
7184
        gnatprep.
7185
        Document gnatw.x and gnatw.X warning flags
7186
        Mention -Winline switch to activate warnings when back-end inlining is
7187
        ineffective.
7188
        Add gnatcheck rule descriptions
7189
        Describe how to use the GNAT driver to call a tool on a closure.
7190
        Describe how to run project-wide checks or metrics.
7191
        Document gnatbind's -R option
7192
        Updated to account for Ada 2005 support
7193
 
7194
        * gnat_rm.texi (Case Construction): Allow variable declarations for
7195
        previously declared variables.
7196
        (Representation Clauses and Pragmas): Lift restriction on alignment
7197
        clauses for record types.
7198
        (Ada.Characters.*): Fix typo in reference to A.3.3(27).
7199
        Document No_Exception_Propagation restriction
7200
        Document No_Body pragma
7201
        Updated to account for Ada 2005 support; corrected some typos
7202
        (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
7203
 
7204
        * gnat-style.texi: Make it clear that we never use mode IN for
7205
        procedures or functions
7206
 
7207
        * ug_words: Add entries for -gnatw.x and -gnatw.X
7208
        Add entries for -gnatw.c/.C
7209
 
7210
2007-06-06  Pascal Obry  
7211
            Vincent Celier  
7212
 
7213
        * makegpr.adb (Add_Archive_Path): Use untouched object and library
7214
        dirs and library name.
7215
        (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
7216
        comments.
7217
        (Build_Library): Idem.
7218
        (Compile_Individual_Sources): Idem.
7219
        (Compile_Link_With_Gnatmake): Idem.
7220
        (Compile_Sources): Idem.
7221
        (Get_Imported_Directories): Idem.
7222
        (Link_Executables): Idem. Same change for the executable dir.
7223
        (Check_Compilation_Needed): C_Source_Path new variable containing
7224
        the canonical form of Source_Path to check against the source names
7225
        in the dependency file.
7226
        (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
7227
        verbose mode, display the name of the object directory we're changing
7228
        to.
7229
        (Saved_Switches): New name of table X_Switches
7230
        (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
7231
        (Usage): New line for switch -aP
7232
        (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
7233
        testing if a directory should be added to the search path.
7234
 
7235
2007-06-06  Javier Miranda  
7236
 
7237
        * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
7238
        a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
7239
        declaration after freezing point of all its associated tagged types;
7240
        otherwise such types are frozen too early.
7241
 
7242
2007-06-06  Robert Dewar  
7243
 
7244
        * a-reatim.adb: Documentation addition
7245
 
7246
        * g-cgideb.adb: Minor code reorganization
7247
 
7248
        * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
7249
        mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
7250
        s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
7251
 
7252
        * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
7253
        function.  Change name New_Scope to Push_Scope
7254
        (Get_Debug_Flag_K): Remove unused obsolete function.
7255
 
7256
        * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
7257
        Push_Scope.
7258
 
7259
        * makeusg.adb: Update Copyright notice
7260
        Add line for switch -aP
7261
 
7262
        * makeusg.adb: Fix wording of some usage messages
7263
 
7264
        * s-assert.adb (Raise_Assert_Failure): Add call to
7265
        Debug_Raise_Assert_Failure.
7266
 
7267
        * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
7268
        (2, Standard'Alignment) for compatibility with AAMP (where alignment
7269
        is restricted to 1).
7270
 
7271
        * s-wchjis.adb: Remove use of System.Pure_Exceptions
7272
 
7273
        * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
7274
        node location to No_Location when we're not debugging the expanded
7275
        code.
7276
 
7277
2007-05-22  Alexandre Oliva  
7278
 
7279
        * misc.c (enumerate_modes): Consider log2_b to always be one.
7280
 
7281
2007-05-14  Rafael Ávila de Espíndola  
7282
 
7283
        * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
7284
 
7285
2007-05-02  Pascal Obry  
7286
 
7287
        * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
7288
        to use Stream_IO.File_Type. This is needed to make use of the UTF-8
7289
        encoding support of Stream_IO.
7290
        (Write_Unit): Idem.
7291
 
7292
        * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
7293
        filename and corresponding encoding to match the OS requirement.
7294
        (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
7295
        routine will fail on specific devices like CON: AUX: ...
7296
 
7297
        PR ada/29856: Add missing braces
7298
 
7299
2007-04-22  Andrew Pinski  
7300
 
7301
        PR ada/31660
7302
        * ada-tree.h (lang_tree_node): Fix typo in chain_next.
7303
 
7304
2007-04-21  Jan Hubicka  
7305
 
7306
        * misc.c (gnat_expand_body): Don't call target for destructors,
7307
        avoid redundant check on syntax errors.
7308
 
7309
2007-04-21  Andrew Pinski  
7310
 
7311
        * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
7312
        instead of checking GIMPLE_STMT_P in chain_next.
7313
 
7314
2007-04-17  Andreas Krebbel  
7315
 
7316
        PR ada/31576
7317
        * system-linux-alpha.ads: Disable constant condition warning for the
7318
        Default_Bit_Order variable.
7319
        * system-linux-s390.ads: Likewise.
7320
        * system-linux-s390x.ads: Likewise.
7321
        * system-linux-sparc.ads: Likewise.
7322
 
7323
2007-04-06  Javier Miranda  
7324
            Matt Heaney  
7325
            Robert Dewar  
7326
 
7327
        a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7328
        a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
7329
        a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
7330
        a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
7331
        a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
7332
        a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
7333
        a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
7334
        a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
7335
        a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
7336
        a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
7337
        a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
7338
        a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
7339
        a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
7340
        a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
7341
        a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
7342
        a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
7343
        a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
7344
        i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
7345
        unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
7346
        a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
7347
        a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
7348
        a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
7349
        expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
7350
        s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
7351
        s-taprop-tru64.adb, s-taprop-irix.adb,
7352
        s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
7353
        s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
7354
        s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
7355
        s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
7356
        s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
7357
        a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
7358
        a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
7359
        g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
7360
        s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
7361
        s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
7362
        s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
7363
        s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
7364
        s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
7365
        s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
7366
        a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
7367
        a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
7368
        a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
7369
        a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
7370
        a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
7371
        a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
7372
        access types.
7373
        Update documentation.
7374
        Minor rewording.
7375
 
7376
2007-04-06  Robert Dewar  
7377
 
7378
        * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7379
        system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7380
        system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
7381
        system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
7382
        system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
7383
        system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7384
        system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
7385
        system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
7386
        system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7387
        system-hpux-ia64.ads, targparm.adb,
7388
        targparm.ads (Functions_Return_By_DSP_On_Target): Removed
7389
 
7390
        * system.ads: Move Functions_Return_By_DSP to obsolete section,
7391
        kept for bootstrap purposes only.
7392
 
7393
2007-04-06  Arnaud Charlet  
7394
 
7395
        * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7396
        s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
7397
        s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
7398
        (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
7399
 
7400
2007-04-06  Robert Dewar  
7401
 
7402
        * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
7403
        (Local_Raise): New dummy procedure called when a raise is converted
7404
        to a local goto. Used for debugger to detect that the exception
7405
        is raised.
7406
 
7407
        * debug.adb: Document new d.g flag (expand local raise statements to
7408
        gotos even if pragma Restriction (No_Exception_Propagation) is not set)
7409
 
7410
        * exp_sel.adb: Use Make_Implicit_Exception_Handler
7411
 
7412
        * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
7413
        suppress warnings for unused handlers.
7414
        (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
7415
        warnings for raise statements not handled locally.
7416
        (Get_RT_Exception_Entity): New function
7417
        (Get_Local_Call_Entity): New function
7418
        (Find_Local_Handler): New function
7419
        (Warn_If_No_Propagation): New procedure
7420
        (Expand_At_End_Handler): Call Make_Implicit_Handler
7421
        (Expand_Exception_Handlers): Major additions to deal with local handlers
7422
        (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
7423
        Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
7424
        for local raise
7425
 
7426
        * exp_ch11.ads (Get_RT_Exception_Entity): New function
7427
        (Get_Local_Call_Entity): New function
7428
 
7429
        * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
7430
        of restrictions that the binder will never suggest adding.
7431
 
7432
        * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
7433
        to No_Elist.
7434
 
7435
        * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
7436
        be with'ed in the presence of pragma Restriction
7437
        (No_Exception_Propagation).
7438
 
7439
        * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
7440
 
7441
        * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
7442
        parameter, then the handler is not a suitable target for a local raise,
7443
        and this is a violation of restriction No_Exception_Propagation.
7444
        (Analyze_Handled_Statements): Analyze choice parameters in exception
7445
        handlers before analyzing statement sequence (needed for proper
7446
        detection of local raise statements).
7447
        (Analyze_Raise_Statement): Reraise statement is a violation of the
7448
        No_Exception_Propagation restriction.
7449
 
7450
        * s-rident.ads: Add new restriction No_Exception_Propagation
7451
 
7452
        * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
7453
        function, like Make_Exception_Handler but sets Local_Raise_Statements
7454
        to No_List.
7455
        (Add_Unique_Serial_Number): Deal with case where this is called during
7456
        processing of configuration pragmas.
7457
 
7458
2007-04-06  Thomas Quinot  
7459
            Pat Rogers  
7460
            Pascal Obry  
7461
 
7462
        * g-stsifd-sockets.adb: New file.
7463
 
7464
        * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
7465
        g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
7466
        g-socthi-vms.adb: Move signalling
7467
        fd management to a nested package, so that they can conveniently be
7468
        moved to a subunit that is shared across Windows, VMS, and VxWorks
7469
        (Ada implementation) or completed with imported bodies from socket.c
7470
        (UNIX case).
7471
        (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
7472
        subprograms.
7473
        (Check_Selector): Use Read_Signalling_Fd to read and discard data from
7474
        the signalling file descriptor.
7475
        (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
7476
        signalling file descriptor.
7477
        (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
7478
        instead of creating a pair of sockets for signalling here.
7479
 
7480
        * g-socthi.adb: Ditto.
7481
        Set the runtime process to ignore SIGPIPEs on platforms that support
7482
        neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
7483
 
7484
        * g-socthi-mingw.adb: Ditto.
7485
        (WS_Version): Use Windows 2.2.
7486
        Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
7487
 
7488
        * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
7489
        Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
7490
 
7491
        * Makefile.in: New libgnat pair g-stsifd.adb
7492
        added GNAT byte swapping facility
7493
        Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
7494
 
7495
        * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
7496
 
7497
        * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
7498
        New subprograms.
7499
        (__gnat_create_signalling_fds): New subprogram.
7500
        Set the runtime process to ignore SIGPIPEs on platforms that support
7501
        neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
7502
 
7503
2007-04-06  Hristian Kirtchev  
7504
            Vincent Celier  
7505
 
7506
        * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
7507
        New version of Ada.Calendar which supports the new upper bound of Ada
7508
        time (2399-12-31 86_399.999999999).
7509
        The following modifications have been made to the package:
7510
         - New representation of time as count of nanoseconds since the start of
7511
           Ada time (1901-1-1 0.0).
7512
         - Target independent Split and Time_Of routines which service both
7513
           Ada 95 and Ada 2005 code.
7514
         - Target independent interface to the Ada 2005 children of Calendar.
7515
         - Integrated leap seconds into Ada 95 and Ada 2005 mode.
7516
         - Handling of non-leap centenial years.
7517
         - Updated clock function.
7518
         - Updated arithmetic and comparison operators.
7519
 
7520
        * a-caldel.adb (To_Duration): Add call to target independent routine in
7521
        Ada.Calendar to handle the conversion of time to duration.
7522
 
7523
        * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
7524
        (UTC Offset).
7525
        If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
7526
        set off to 0.
7527
        (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
7528
        targets do not have a natural time zone, GMT is used as a default.
7529
        (__gnat_get_task_options): New.
7530
 
7531
        * a-direct.adb (Modification_Time): Add with and use clauses for
7532
        Ada.Calendar and Ada.
7533
        Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
7534
        since it is no longer needed.
7535
        (Duration_To_Time): Removed.
7536
        (OS_Time_To_Long_Integer): Removed.
7537
        (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
7538
        Formatting Time_Of routines which automatically handle time zones,
7539
        buffer periods and leap seconds.
7540
 
7541
        * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
7542
        target independent routines in Ada.Calendar.
7543
 
7544
        * a-calfor.ads, a-calfor.adb:
7545
        Code cleanup and addition of validity checks in various routines.
7546
        (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
7547
        Ada.Calendar.
7548
 
7549
        * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
7550
        independent routine in Ada.Calendar.
7551
 
7552
2007-04-06  Olivier Hainque  
7553
 
7554
        * adaint.c:
7555
        (convert_addresses): Adjust prototype and dummy definition to expect an
7556
         extra file_name argument.
7557
 
7558
        * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
7559
        filling the now expected file_name argument with the appropriate
7560
        argv[0] expansion.
7561
        (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
7562
        (tracebk): Array of void * instead of char *, corresponding to what
7563
         convert_addresses expects.
7564
        (exename): New static global, to hold the executable file name to be
7565
        used in all convert_addresses invocations.
7566
        (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
7567
        change.
7568
        (__gnat_gmem_a2l_initialize): Resolve exename.
7569
        (__gnat_convert_addresses): Use exename as the convert_addresses
7570
        file_name argument.
7571
 
7572
        * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
7573
        "convert_addresses", now expecting a filename argument. Import the
7574
        necessary entities to compute the filename to use and pass it to
7575
        convert_addresses.
7576
 
7577
2007-04-06  Matt Gingell  
7578
 
7579
        * system-aix.ads: Back out previous change.
7580
        (Functions_Return_By_DSP): Removed
7581
 
7582
2007-04-06  Pascal Obry  
7583
 
7584
        * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
7585
        or the monotonic used by Ada.Real_Time) to compute the sleep duration
7586
        on Windows.
7587
 
7588
2007-04-06  Jose Ruiz  
7589
 
7590
        * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
7591
        function. Its value changes in different VxWorks versions, and it is
7592
        now handled by the function __gnat_get_task_options.
7593
 
7594
        * s-taprop-vxworks.adb (Create_Task): Call the function
7595
        __gnat_get_task_options to get the required options for creating a task.
7596
 
7597
2007-04-06  Pascal Obry  
7598
            Thomas Quinot  
7599
 
7600
        * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
7601
        dealing with filename.
7602
        (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
7603
        filename from a standard string to a wide-string depending on the
7604
        encoding value.
7605
        (__gnat_freopen): Idem.
7606
        (__gnat_current_time): New function (wrapper for time(3) standard C
7607
        function).
7608
 
7609
        * g-os_lib.ads (Current_Time): New function. Returns the current
7610
        system time as an OS_Time value.
7611
 
7612
        * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
7613
        (Monotonic_Clock): Same.
7614
 
7615
2007-04-06  Quentin Ochem  
7616
 
7617
        * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
7618
        not on a natural.
7619
        (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
7620
 
7621
2007-04-06  Jose Ruiz  
7622
 
7623
        * a-retide.adb: Add elaboration code to ensure that the tasking run
7624
        time is initialized when using delay operations even when no task is
7625
        created.
7626
 
7627
2007-04-06  Javier Miranda  
7628
 
7629
        * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
7630
        component Num_Prim_Ops.
7631
        (Set_Num_Prim_Ops): Removed.
7632
        Remove all the assertions because all the routines of this
7633
        package are inline always.
7634
        (Get_Offset_Index): Add support to primary dispatch tables.
7635
        Move the documentation about the dispatch table to a-tags.ads
7636
        (Set_External_Tag): Removed
7637
        (Inherit_TSD): Removed.
7638
        (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
7639
        moved to a-tags.ads
7640
        (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
7641
        Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
7642
        of the TSD field "Table" because this field has been renamed to
7643
        "Ifaces_Table".
7644
        (Inherit_CPP_DT): Removed.
7645
        (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
7646
        Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
7647
        declarations have been moved to a-tags.ads
7648
        (Check_Size): Removed.
7649
        (Expanded_Name): Updated to get access to the new field of TSD
7650
        containing the address of the expanded name.
7651
        (Get_Access_Level/Set_Access_Level): Removed.
7652
        (Get_Predefined_Prim_Op_Address): Removed.
7653
        (Set_Predefined_Prim_Op_Address): Removed.
7654
        (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
7655
        (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
7656
        (Set_Expanded_Name): Removed.
7657
        (Inherit_DT): Removed.
7658
        (Inherit_CPP_DT): Removed.
7659
        (Set_RC_Offset): Removed.
7660
        (Set_TSD): Removed.
7661
        (Base_Address): New function that displaces "this" to point to the base
7662
        of the object (that is, to point to the primary tag of the object).
7663
 
7664
2007-04-06  Ed Schonberg  
7665
            Javier Miranda  
7666
 
7667
        * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
7668
        anonymous access component, do not create a master_id if type already
7669
        has one, as may happen if the type is a subcomponent of a packed array
7670
        type.
7671
        (Build_Init_Procedure, Component_Needs_Simple_Initialization,
7672
        Initialize_Tag): Remove code associated with the old CPP pragmas.
7673
        CPP_Virtual and CPP_Vtable are no longer supported.
7674
        (Build_Offset_To_Top_Internal): Add support for concurrent record types
7675
        (Build_Offset_To_Top_Functions): Add support for concurrent record types
7676
        (Freeze_Record_Type): Remove call to
7677
        Init_Predefined_Interface_Primitives.
7678
        (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
7679
        code required to initialize the tags of the secondary dispatch tables.
7680
        This leaves the algoritm more clear.
7681
        (Init_Secondary_Tags): Add support for concurrent record types
7682
        (Make_Predefined_Primitive_Specs): Code cleanup.
7683
        (Predefined_Primitive_Bodies): Code cleanup.
7684
        (Build_Master_Renaming): New local subprogram.
7685
        (Expand_N_Full_Type_Declaration): Build the master_id associated with
7686
        anonymous access to task type components.
7687
        (Expand_N_Subtype_Indication): The bounds of a range constraint in a
7688
        subtype indication are resolved during analysis, and must not be done
7689
        here.
7690
        (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
7691
 
7692
2007-04-06  Geert Bosch  
7693
            Ed Schonberg  
7694
            Javier Miranda  
7695
            Bob Duff  
7696
 
7697
        * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
7698
        for conversion of a Float_Type'Truncation to integer.
7699
 
7700
        * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
7701
        check if a node is an attribute that can be handled directly by the
7702
        back end.
7703
        (Expand_N_Attribute_Reference): Suppress expansion of floating-point
7704
        attributes that can be handled directly by the back end.
7705
        (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
7706
        use new predicate Is_Access_Protected_Subprogram_Type.
7707
        (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
7708
        and Unchecked_Union if it is generated as part of the default  Output
7709
        procedure for a type with default discriminants.
7710
        (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
7711
        if we are compiling under restriction No_Dispatching_Calls.
7712
        (Constrained): Use Underlying_Type, in case the type is private without
7713
        discriminants, but the full type has discriminants.
7714
        (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
7715
        call to Build_Get_Access_Level.
7716
        (Expand_N_Attribute_Reference): The use of 'Address with class-wide
7717
        interface objects requires a call to the run-time subprogram that
7718
        returns the base address of the object.
7719
        (Valid_Conversion): Improve error message on illegal attempt to store
7720
        an anonymous access to subprogram value into a record component.
7721
 
7722
        * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
7723
        null".
7724
        (Simplify_Type_Conversion): New procedure that performs simplification
7725
        of Int_Type (Float_Type'Truncation (X)).
7726
        (Resolve_Type_Conversion): Call above procedure after resolving operand
7727
        and before performing checks. This replaces the existing ineffective
7728
        code in Exp_Ch4.
7729
        (Set_String_Literal_Subtype): When creating the internal static lower
7730
        bound subtype for a string literal, use a newly created copy of the
7731
        subtree representing the lower bound.
7732
        (Resolve_Call): Exclude build-in-place function calls from transient
7733
        scope treatment. Update comments to describe this exception.
7734
        (Resolve_Equality_Op): In case of dispatching call check violation of
7735
        restriction No_Dispatching_Calls.
7736
        (Resolve_Call): If the call returns an array, the context imposes the
7737
        component type of the array, and the function has one non-defaulted
7738
        parameter, rewrite the call as the indexing of a call with a single
7739
        parameter, to handle an Ada 2005 syntactic ambiguity for calls written
7740
        in prefix form.
7741
        (Resolve_Actuals): If an actual is an allocator for an access parameter,
7742
        the master of the created object is the innermost enclosing statement.
7743
        (Remove_Conversions): For a binary operator, check if type of second
7744
        formal is numeric, to check if an abstract interpretation is present
7745
        in the case of exponentiation as well.
7746
 
7747
2007-04-06  Ed Schonberg  
7748
            Bob Duff  
7749
 
7750
        * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
7751
        copying a parameter list in a call, set properly the First_Named_Formal
7752
        and Next_Named_Formal fields in the new list and in the enclosing call.
7753
        (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
7754
        names, to ease typing in the debugger. Improve comments.
7755
        (Watch_Node): New variable, intended to be set in the debugger.
7756
        (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
7757
        called when the watched node is created.
7758
        (New_Node_Debugging_Output): Combined version of local procedures
7759
        New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
7760
        with a parameter so that conditional breakpoints like "if Node = 12345"
7761
        work.
7762
        (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
7763
        Add Elist1 function
7764
 
7765
2007-04-06  Thomas Quinot  
7766
            Ed Schonberg  
7767
            Gary Dismukes  
7768
 
7769
        * checks.ads, checks.adb (Selected_Range_Checks): No range check is
7770
        required for a conversion between two access-to-unconstrained-array
7771
        types.
7772
        (Expr_Known_Valid): Validity checks do not apply to discriminants, but
7773
        to discriminant constraints on discriminant objects. This rule must
7774
        apply as well to discriminants of protected types in private components.
7775
        (Null_Exclusion_Static_Checks): If No_Initialization is set on an
7776
        object of a null-excluding access type then don't require the
7777
        the object declaration to have an expression and don't emit a
7778
        run-time check.
7779
 
7780
2007-04-06  Arnaud Charlet  
7781
            Eric Botcazou  
7782
 
7783
        * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
7784
        and made constant.
7785
 
7786
        * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
7787
        Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
7788
        carry any.
7789
 
7790
        * fe.h (Compiler_Abort): Add third parameter.
7791
 
7792
        * misc.c (internal_error_function): Build third argument from current
7793
        input location and pass it to Compiler_Abort.
7794
 
7795
2007-04-06  Gary Dismukes  
7796
 
7797
        * cstand.adb (Create_Standard): When the target's storage unit size is
7798
        greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
7799
        Standard_String.
7800
 
7801
2007-04-06  Nicolas Roche  
7802
 
7803
        * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
7804
        absolute path can have the following form: device:/a/b. In this case
7805
        '/' should be inserted between the path and the filename.
7806
 
7807
2007-04-06  Olivier Hainque  
7808
            Eric Botcazou  
7809
 
7810
        * decl.c (gnat_to_gnu_entity) : Associate an external
7811
        VAR_DECL to a CONST_DECL we make for a public constant when we know the
7812
        corresponding definition has created the so made visible variable.
7813
        Handle anonymous access to protected subprogram.
7814
        (gnat_to_gnu_entity) : Do not make the underlying type of an
7815
        object with an address clause volatile.  Re-enable original fix.
7816
        : Set TYPE_REF_CAN_ALIAS_ALL on the reference type
7817
        too.
7818
        (gnat_to_gnu_entity) : Retrieve the TYPE_DECL
7819
        associated with either the Equivalent or Root type, instead of the
7820
        naked type node.
7821
        (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
7822
        subtree for every field of a global record type.
7823
        (gnat_to_gnu_entity) : If the subtype has
7824
        discriminants, invoke again variable_size on its newly computed sizes.
7825
 
7826
2007-04-06  Robert Dewar  
7827
            Thomas Quinot  
7828
            Ed Schonberg  
7829
            Bob Duff  
7830
 
7831
        * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
7832
        (Next_Component_Or_Discriminant): New function and procedure
7833
        (First_Index, First_Literal, Master_Id,
7834
        Set_First_Index, Set_First_Literal, Set_Master_Id):
7835
        Add missing Ekind assertions.
7836
        (Is_Access_Protected_Subprogram_Type): New predicate.
7837
        (Has_RACW): New entity flag, set on package entities to indicate that
7838
        the package contains the declaration of a remote accecss-to-classwide
7839
        type.
7840
        (E_Return_Statement): This node type has the Finalization_Chain_Entity
7841
        attribute, in case the result type has controlled parts.
7842
        (Requires_Overriding): Add this new flag, because "requires
7843
        overriding" is subtly different from "is abstract" (see AI-228).
7844
        (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
7845
        Is_Abstract_Type. Make sure these are called only when appropriate.
7846
        (Has_Pragma_Unreferenced_Objects): New flag
7847
 
7848
        * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
7849
        class-wide, the tag of the right-hand side must be an exact match, not
7850
        an ancestor of that of the object on left-hand side.
7851
        (Move_Activation_Chain): New procedure to create the call to
7852
        System.Tasking.Stages.Move_Activation_Chain.
7853
        (Expand_N_Extended_Return_Statement): Generate code to call
7854
        System.Finalization_Implementation.Move_Final_List at the end of a
7855
        return statement if the function's result type has controlled parts.
7856
        Move asserts to Build_In_Place_Formal.
7857
        (Move_Final_List): New function to create the call statement.
7858
        (Expand_N_Assignment_Statement): In case of assignment to a class-wide
7859
        tagged type, replace generation of call to the run-time subprogram
7860
        CW_Membership by call to Build_CW_Membership.
7861
        (Expand_N_Return_Statement): Replace generation of call to the run-time
7862
        subprogram Get_Access_Level by call to Build_Get_Access_Level.
7863
        (Expand_N_Simple_Function_Return): Replace generation of call to the
7864
        run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
7865
 
7866
        * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
7867
        Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
7868
        access to protected operations.
7869
        (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
7870
        master and chain actual parameters to a build-in-place function call
7871
        involving tasks.
7872
        (BIP_Formal_Suffix): Add new enumeration literals to complete the case
7873
        statement.
7874
        (Make_Build_In_Place_Call_In_Allocator,
7875
        Make_Build_In_Place_Call_In_Anonymous_Context,
7876
        Make_Build_In_Place_Call_In_Assignment,
7877
        Make_Build_In_Place_Call_In_Object_Declaration): Call
7878
        Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
7879
        (Expand_Inlined_Call): If the subprogram is a null procedure, or a
7880
        stubbed procedure with a null body, replace the call with a null
7881
        statement without using the full inlining machinery, for efficiency
7882
        and to avoid invalid values in source file table entries.
7883
 
7884
        * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
7885
        renamings of calls to build-in-place functions.
7886
 
7887
        * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
7888
        provides the functionality of RTE_Available to record components.
7889
        (RTU_Entity): The function Entity has been renamed to RTU_Entity
7890
        to avoid undesired overloading.
7891
        (Entity): New subprogram that returns the entity for the referened
7892
        unit. If this unit has not been loaded, it returns Empty.
7893
        (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
7894
        Remove no longer used entities.
7895
        (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
7896
        (RE_Type_Specific_Data): New entity.
7897
        (RE_Move_Any_Value): New entity.
7898
        (RE_TA_A, RE_Get_Any_Type): New entities.
7899
        (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
7900
         RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
7901
         RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
7902
        (Entity): New subprogram that returns the entity for the referened
7903
        unit. If this unit has not been loaded, it returns Empty.
7904
        (RTE): Addition of a new formal that extends the search to the scopes
7905
        of the record types found in the chain of the package.
7906
 
7907
        * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
7908
        "abstract subprograms must be visible" message, whether or not the type
7909
        is an interface; that is, remove the special case for interface types.
7910
        (Analyze_Function_Return): Remove error message "return of task objects
7911
        is not yet implemented" because this is now implemented.
7912
        (Create_Extra_Formals): Add the extra master and activation chain
7913
        formals in case the result type has tasks.
7914
        Remove error message "return of limited controlled objects is not yet
7915
        implemented".
7916
        (Create_Extra_Formals): Add the extra caller's finalization list formal
7917
        in case the result type has controlled parts.
7918
        (Process_Formals): In case of access formal types there is no need
7919
        to continue with the analysis of the formals if we already notified
7920
        errors.
7921
        (Check_Overriding_Indicator): Add code to check overriding of predefined
7922
        operators.
7923
        (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
7924
        flags for formals that do not require them,.
7925
        (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
7926
        hidden entity is use visible or directly visible.
7927
        (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
7928
        Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
7929
        Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
7930
        New_Overloaded_Entity): Split Is_Abstract flag into
7931
        Is_Abstract_Subprogram and Is_Abstract_Type.
7932
 
7933
        * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
7934
        a return statement's finalization list to the caller's list, used for
7935
        build-in-place functions with result type with controlled parts.
7936
        Remove no longer used entities.
7937
 
7938
        * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
7939
        longer needed, because the full type is now limited, and therefore a
7940
        pass-by-reference type.
7941
        (Foreign_Task_Level): New constant.
7942
 
7943
        * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
7944
        move tasks from the activation chain belonging to a return statement to
7945
        the one passed in by the caller, and update the master to the one
7946
        passed in by the caller.
7947
        (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
7948
        of unactivated tasks, so we don't kill the ones that are being returned
7949
        by a build-in-place function.
7950
        (Create_Task): Ignore AI-280 for foreign threads.
7951
 
7952
2007-04-06  Ed Schonberg  
7953
            Robert Dewar  
7954
            Bob Duff  
7955
            Gary Dismukes  
7956
 
7957
        * errout.adb (Unwind_Internal_Type): Use predicate
7958
        Is_Access__Protected_Subprogram_Type.
7959
 
7960
        * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
7961
        (Freeze_Entity, packed array case): Do not override explicitly set
7962
        alignment and size clauses.
7963
        (Freeze_Entity):  An entity declared in an outer scope can be frozen if
7964
        the enclosing subprogram is a child unit body that acts as a spec.
7965
        (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
7966
        (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
7967
        Remove all code for DSP option
7968
 
7969
        * layout.adb (Layout_Record_Type): Use First/
7970
        Next_Component_Or_Discriminant
7971
        (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
7972
        to handle properly the anonymous access case.
7973
 
7974
        * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
7975
        for all access attributes, because overload resolution should work the
7976
        same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
7977
        causes the error message for the ambiguous "X'Access = Y'Access" and
7978
        "X'Unrestricted_Access = Y'Access" and so forth to match.
7979
        (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
7980
        now that anonymous access to protected operations have their own kind.
7981
        (Resolve_Attribute): In case of dispatching call check the violation of
7982
        restriction No_Dispatching_Calls.
7983
        (Check_Array_Type): Check new -gnatyA array index style option
7984
 
7985
        * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
7986
        attempt to derive from a synchronized tagged type.
7987
        (Analyze_Type_Declaration): If there is a incomplete tagged view of the
7988
        type, inherit the class-wide type already created, because it may
7989
        already have been used in a self-referential anonymous access component.
7990
        (Mentions_T): Recognize self-referential anonymous access components
7991
        that use (a subtype of) the class-wide type of the enclosing type.
7992
        (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
7993
        Derived_Type for Prev formal on call to
7994
        Check_Anonymous_Access_Components rather than Empty.
7995
        (Make_Incomplete_Type_Declaration): Add test for case where the type has
7996
        a record extension in deciding whether to create a class-wide type,
7997
        rather than just checking Tagged_Present.
7998
        (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
7999
        to stand-alone object declarations as well as component declarations.
8000
        (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
8001
        prevent accidental overwriting when enclosing package appears in
8002
        a limited_with_clause.
8003
        (Array_Type_Declaration): If the component type is an anonymous access,
8004
        the associated_node for the itype is the type declaration itself.
8005
        (Add_Interface_Tag_Components): Modified to support concurrent
8006
        types with abstract interfaces.
8007
        (Check_Abstract_Interfaces): New subprogram that verifies the ARM
8008
        rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
8009
        (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
8010
        to complete the decoration of synchronized interface types. Add also
8011
        a call to Check_Abstract_Interfaces to verify the ARM rules.
8012
        (Derive_Interface_Subprograms): Modified to support concurrent types
8013
        with abstract interfaces.
8014
        (Analyze_Subtype_Indication): Resolve the range with the given subtype
8015
        mark, rather than delaying the full resolution depending on context.
8016
        (Analyze_Component_Declaration,Analyze_Interface_Declaration,
8017
        Analyze_Object_Declaration,Analyze_Subtype_Declaration,
8018
        Array_Type_Declaration,Build_Derived_Record_Type,
8019
        Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
8020
        Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
8021
        Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
8022
        Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
8023
        called only when appropriate.
8024
        (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
8025
        to private type.
8026
        (Analyze_Subtype_Declaration): For an access subtype declaration, create
8027
        an itype reference for the anonymous designated subtype, to prevent
8028
        scope anonmalies in gigi.
8029
        (Build_Itype_Reference): New utility, to simplify construction of such
8030
        references.
8031
 
8032
2007-04-06  Vincent Celier  
8033
 
8034
        * errutil.adb (Initialize): Initialize warnings table, if all warnings
8035
        are suppressed, supply an initial dummy entry covering all possible
8036
        source locations.
8037
 
8038
        * make.adb (Scan_Make_Arg): Reject options that should start with "--"
8039
        and start with only one, such as "-RTS=none".
8040
        (Collect_Arguments): Do not check for sources outside of projects.
8041
        Do not collect arguments if project is externally built.
8042
        (Compile_Sources): Do nothing, not even check if the source is up to
8043
        date, if its project is externally built.
8044
        (Compile): When compiling a predefined source, add -gnatpg
8045
        as the second switch, after -c.
8046
        (Compile_Sources): Allow compilation of Annex J renames without -a
8047
        (Is_In_Object_Directory): Check if the ALI file is in the object
8048
        even if there is no project extension.
8049
        (Create_Binder_Mapping_File): Only put a unit in the mapping file for
8050
        gnatbind if the ALI file effectively exists.
8051
        (Initialize): Add the directory where gnatmake is invoked in front of
8052
        the path if it is invoked from a bin directory, even without directory
8053
        information, so that the correct GNAT tools will be used when spawned
8054
        without directory information.
8055
 
8056
        * makeusg.adb: Change switch -S to -eS
8057
        Add lines for new switches -we, -wn and -ws
8058
        Add line for new switch -p
8059
 
8060
        * prj-proc.adb (Process): Set Success to False when Warning_Mode is
8061
        Treat_As_Error and there are warnings.
8062
 
8063
        * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
8064
        -gnatww Change gnatmake switch -S to -eS
8065
        (Scan_Make_Switches): Code reorganisation. Process separately multi
8066
        character switches and single character switches.
8067
        (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
8068
        False when switch is not recognized by gnatmake.
8069
        (Scan_Make_Switches): Set Setup_Projects True when -p or
8070
        --create-missing-dirs is specified.
8071
 
8072
        * fname.adb (Is_Predefined_File_Name): Return True for annex J
8073
        renamings Calendar, Machine_Code, Unchecked_Conversion and
8074
        Unchecked_Deallocation only when Renamings_Included is True.
8075
 
8076
        * par.adb: Allow library units Calendar, Machine_Code,
8077
        Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
8078
        when -gnatg is not specified.
8079
        (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
8080
        there is no need to generate always a record_definition_node in case
8081
        of synchronized interface types.
8082
        (SIS_Entry_Active): Initialize global variable to False
8083
        (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
8084
        indicate cases where AI-447 says "not null" is legal.
8085
 
8086
        * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
8087
 
8088
        * makegpr.adb (Check_Compilation_Needed): Take into account dependency
8089
        files with with several lines starting with the object fileb name.
8090
        (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
8091
        is specified.
8092
        (Initialize): Add the directory where gprmake is invoked in front of the
8093
        path, if it is invoked from a bin directory or with directory
8094
        information, so that the correct GNAT tools will be used when invoked
8095
        directly.
8096
        (Check_Compilation_Needed): Process correctly backslashes on Windows.
8097
 
8098
        * vms_data.ads: Update switches/qualifiers
8099
 
8100
2007-04-06  Ed Schonberg  
8101
            Thomas Quinot  
8102
 
8103
        * exp_aggr.adb:
8104
        If the array component is a discriminated record, the array aggregate
8105
        is non-static even if the component is given by an aggregate with
8106
        static components.
8107
        (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
8108
        (Convert_Aggr_In_Allocator): If the allocator is for an access
8109
        discriminant and the type is controlled. do not place on a finalization
8110
        list at this point. The proper list will be determined from the
8111
        enclosing object.
8112
        (Build_Record_Aggr_Code): If aggregate has box-initialized components,
8113
        initialize record controller if needed, before the components, to ensure
8114
        that they are properly finalized.
8115
        (Build_Record_Aggr_Code): For the case of an array component that has a
8116
        corresponding array aggregate in the record aggregate, perform sliding
8117
        if required.
8118
 
8119
2007-04-06  Javier Miranda  
8120
            Gary Dismukes  
8121
            Ed Schonberg  
8122
 
8123
        * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
8124
        run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
8125
 
8126
        * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
8127
        accessibility on class-wide allocators if the allocator occurs at the
8128
        same scope level as the allocator's type. The check is guaranteed to
8129
        succeed in that case, even when the expression originates from a
8130
        parameter of the containing subprogram.
8131
        (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
8132
        under No_Dispatching_Calls restriction. During the semantic analysis
8133
        we already notified such violation.
8134
        (Tagged_Membership): Constant folding. There is no need to check
8135
        the tag at run-time if the type of the right operand is non
8136
        class-wide abstract.
8137
        Replace call to Is_Ancestor by call to Is_Parent
8138
        to support concurrent types with interface types.
8139
        (Expand_N_Allocator): Add an assertion associated with the generation
8140
        of the master_id.
8141
        (Expand_N_Slice): Do not enable range check to nodes associated
8142
        with the frontend expansion of the dispatch table.
8143
        (Is_Local_Access_Discriminant): Subsidiary function to
8144
        Expand_N_Allocator.
8145
        (Tagged_Membership): Replace generation of call to the run-time
8146
        subprogram CW_Membership by call to Build_CW_Membership.
8147
        (Expand_Allocator_Expression): Replace generation of call to the
8148
        run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
8149
 
8150
        * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
8151
        initialize most the TSD components by means of an aggregate.
8152
        Modify the declaration of the object containing the TSD
8153
        because we now expand code that has a higher level of abstraction.
8154
        The TSD has a discriminant containing the Inheritance Depth Level,
8155
        value that is used in the membership test but also to fix the size
8156
        of the table of ancestors.
8157
        (Expand_Interface_Conversion): Insert function body at the closest place
8158
        to the conversion expression, to prevent access-before-elaboration
8159
        errors in the backend.
8160
        Code improved to reduce the size of the dispatch table if
8161
        compiling under restriction No_Dispatching_Calls plus code cleanup.
8162
        Code reorganization plus removal of calls to Set_Num_Prim_Ops
8163
        (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
8164
        (Expand_Dispatching_Call): Minor code reorganization plus addition of
8165
        code to return immediately if compiling under No_Dispatching_Calls
8166
        restriction.
8167
        (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
8168
        CPP_Virtual and CPP_Vtable are no longer supported.
8169
        (Expand_Interface_Conversion): Add missing support for interface type
8170
        derivations.
8171
        (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
8172
        Is_Parent to support concurrent types with interfaces.
8173
        (Init_Predefined_Interface_Primitives): Removed.
8174
        (Make_Secondary_DT): Modified to support concurrent record types.
8175
        (Set_All_DT_Position): Modified to support concurrent record types.
8176
        (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
8177
        with Get_External_Tag, Inherit_TSD, Set_External_Tag.
8178
        (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
8179
        with CW_Membership.
8180
        (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
8181
        with Get_Access_Level, Get_Predefined_Prim_Op_Address,
8182
        Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
8183
        Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
8184
        Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
8185
        (Expand_Dispatching_Call): Replace generation of call to the run-time
8186
        subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
8187
        calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
8188
        Address.
8189
        (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
8190
        the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
8191
        Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
8192
        Build_Set_Prim_Op_Address.
8193
        (Get_Remotely_Callable): Subprogram removed.
8194
        (Init_Predefined_Interface_Primitives): Replace generation of call to
8195
        the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
8196
        Prims.
8197
 
8198
        * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
8199
        First (Parameter_Associations ()) with the call to First_Actual that
8200
        returns an actual parameter expression for both named and positional
8201
        associations.
8202
 
8203
        * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
8204
        check violation of restriction No_Dispatching_Calls.
8205
        (Check_Controlling_Type): A formal of a tagged incomplete type is a
8206
        controlling argument.
8207
 
8208
        * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
8209
        First/Next_Component_Or_Discriminant
8210
        (Insert_Actions): Add entries for new N_Push and N_Pop nodes
8211
        (Find_Implemented_Interface): Removed. All the calls to this subprogram
8212
        specify Any_Limited_Interface, and this functionality is already
8213
        provided by the function Has_Abstract_Interfaces.
8214
        (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
8215
        support concurrent types implementing interfaces.
8216
        (Find_Implemented_Interface): Removed. All the calls to this subprogram
8217
        specify kind Any_Limited_Interface, and this functionality is already
8218
        provided by the function Has_Abstract_Interfaces.
8219
        (Remove_Side_Effects): replace Controlled_Type by
8220
        CW_Or_Controlled_Type whenever the issue is related to
8221
        using or not the secondary stack.
8222
 
8223
        * par-ch12.adb (P_Formal_Type_Definition): Update calls to
8224
        P_Interface_Type_Definition to fulfill the new interface (the formal
8225
        Is_Synchronized is no longer required).
8226
 
8227
        * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
8228
        Update dependencies.
8229
 
8230
        * exp_atag.ads, exp_atag.adb: New file
8231
 
8232
2007-04-06  Ed Schonberg  
8233
            Bob Duff  
8234
            Cyrille Comar  
8235
 
8236
        * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
8237
        anonymous, use finalization list of enclosing dynamic scope.
8238
        (Expand_N_Package_Declaration): For a library package declaration
8239
        without a corresponding body, generate RACW subprogram bodies in the
8240
        spec (just as we do for the task activation call).
8241
        (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
8242
        Is_Abstract_Type. Make sure these are called only when appropriate.
8243
        Remove all code for DSP option
8244
        (CW_Or_Controlled_Type): new subprogram.
8245
 
8246
2007-04-06  Eric Botcazou  
8247
            Ed Schonberg  
8248
            Gary Dismukes  
8249
 
8250
        * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
8251
        parameter. If it is set to true, return a result capped according to
8252
        the global upper bound for the index of an entry family.
8253
        (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
8254
        (Build_Find_Body_Index): Adjust for above change.
8255
        (Entry_Index_Expression): Likewise.
8256
        (Is_Potentially_Large_Family): New function extracted from...
8257
        (Collect_Entry_Families): ...here. Call it to detect whether the family
8258
        is potentially large.
8259
        (Build_Entry_Count_Expression): If the family is potentially large, call
8260
        Family_Size with 'Cap' set to true.
8261
        (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
8262
        a protected version of an operation declared in the private part of
8263
        a protected object, because they may be invoked through a callback.
8264
        (Set_Privals): If the type of a private component is an anonymous access
8265
        type, do not create a new itype for each protected body.
8266
        If the body of a protected operation creates
8267
        controlled types (including allocators for class-widetypes), the
8268
        body of the corresponding protected subprogram must include a
8269
        finalization list.
8270
        (Build_Activation_Chain_Entity): Build the chain entity for extended
8271
        return statements.
8272
        (Type_Conformant_Parameters): Use common predicate Conforming_Types
8273
        to determine whether operation overrides an inherited primitive.
8274
        (Build_Wrapper_Spec): Add code to examine the parents while looking
8275
        for a possible overriding candidate.
8276
        (Build_Simple_Entry_Call): Set No_Initialization on the object used to
8277
        hold an actual parameter value since its initialization is separated
8278
        from the the declaration. Prevents errors on null-excluding access
8279
        formals.
8280
 
8281
2007-04-06  Thomas Quinot  
8282
            Pablo Oliveira  
8283
 
8284
        * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
8285
        Do an Unchecked_Conversion to handle the passage from the Underlying
8286
        Type to the Base Type when calling Build_To_Any_Call and
8287
        Build_From_Any_Call.
8288
        (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
8289
        E_Constant, depending upon Variable formal.
8290
        (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8291
        PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
8292
        parameter that requires an extra constrained parameter, declare
8293
        temporary for actual as a variable, not a constant.
8294
        (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
8295
        the unit being compiled is the one that contains the stub type.
8296
        Change primitive operation name for the RACW associated with a RAS
8297
        from Call to _Call so it cannot clash with any legal identifier.
8298
        (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
8299
        Is_RAS.
8300
        (Append_RACW_Bodies): New subprogram.
8301
        (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
8302
        Add_Receiving_Stubs_To_Declarations functions.
8303
        When expanding a package body, this list correspond to the
8304
        statements in the HSS at the end of the pacakge.
8305
        When expanding a package spec, this list correspond to the
8306
        spec declarations.
8307
        (Add_Receiving_Stubs_To_Declarations): Append the function
8308
        registering the receiving stubs at the end of the 'Stmts' list.
8309
        (RCI_Package_Locator): Pass the new Version generic formal when
8310
        instantiating a RCI_Locator package.
8311
        (Build_From_Any_Function): To compute the High bound for an
8312
        unconstrained array actual, we add the Low bound with the length.
8313
        Thus we must convert the low bound and the length to an appropriate
8314
        type before doing the sum.
8315
        (Build_Subprogram_Receiving_Stubs, PolyORB):
8316
         * Retrieve the extra formals parameters at the
8317
           end of the parameter stream.
8318
         * Use Move_Any_Value to write back out parameters
8319
           after executing the request as it is more efficient
8320
           than Copy_Any_Value.
8321
         * Build the any containing Extra Formals with the
8322
           appropriate typecode.
8323
        (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
8324
        empty Component_List.
8325
        (Build_Actual_Object_Declaration): New subprogram. Build and insert into
8326
        the tree the declaration for an object that serves as actual parameter
8327
        in server-side stubs.
8328
        (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8329
        PolyORB_Support.Build_Subprogram_Receiving_Stubs):
8330
        Use Build_Actual_Object_Declaration to prepare the actuals.
8331
        (Add_Parameter_To_NVList): Set the parameter mode to In for
8332
        Extra Constrained Parameters.
8333
        (Build_General_Calling_Stubs): Set the parameter type to boolean for
8334
        Extra Constrained parameters.
8335
        (Build_To_Any_Function, Build_From_Any_Function,
8336
        Built_TypeCode_Function): When Typ is implicit, call the correct
8337
        function with the first not implicit parent type.
8338
        (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
8339
        (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
8340
        typecode from the Etype. Therefore we retrieve the correct typecode
8341
        with a call to Get_Any_Type.
8342
        (Copy_Specification): Do controlling formal type substitution based on
8343
        Is_Controlling_Formal flag, instead of caller-provided object type.
8344
        (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
8345
        a RACW primitive operation, we might get a subprogram declaration for an
8346
        ancestor of the RACW designated type (not for the designated type
8347
        itself), in the case where this operation is inherited. In this case we
8348
        have no easy means of determining the original tagged type for which
8349
        the primitive was declared, so instead we now rely on
8350
        Copy_Specification to use the Is_Controlling_Formal flag to determine
8351
        which formals require type substitution.
8352
 
8353
2007-04-06  Robert Dewar  
8354
            Ed Schonberg  
8355
 
8356
        * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
8357
        GNAT.Current_Exception are not allowed if pragma Restrictions
8358
        (No_Exception_Propagation) is set and in any case make the associated
8359
        handler unsuitable as a target for a local raise statement.
8360
        (Expand_Dispatching_Constructor_Call): Replace generation of call to the
8361
        run-time subprogram CW_Membership by call to Build_CW_Membership.
8362
        (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
8363
        by a function call, a temporary must be created before expanding the
8364
        Constructor_Call itself, to prevent out-of-order elaboration in the
8365
        back-end when stack checking is enabled..
8366
 
8367
2007-04-06  Ed Schonberg  
8368
 
8369
        * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
8370
        result are the bounds of the left operand, not the right.
8371
 
8372
2007-04-06  Ed Schonberg  
8373
 
8374
        * exp_strm.adb
8375
        (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
8376
         discriminant defaults.
8377
        (Build_Record_Or_Elementary_Output_Procedure): Ditto.
8378
        (Make_Component_List_Attributes): Ditto.
8379
 
8380
2007-04-06  Ed Schonberg  
8381
            Bob Duff  
8382
 
8383
        * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
8384
        an association with a box as providing a value even though the
8385
        initialization procedure for the type is not available.
8386
        (Resolve_Record_Aggregate): Check that a choice of an association with a
8387
        box corresponds to a component of the type.
8388
        (Resolve_Record_Aggregate): Split Is_Abstract flag into
8389
        Is_Abstract_Subprogram and Is_Abstract_Type.
8390
 
8391
        * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
8392
        assert.
8393
 
8394
        * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
8395
        Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
8396
        called only when appropriate.
8397
 
8398
2007-04-06  Olivier Hainque  
8399
 
8400
        * g-alleve.ads (Low Level Vector type definitions): Map each to the
8401
        associated vector view instead of all to the unsigned char view.
8402
 
8403
        * g-altcon.adb (Generic_Conversions): New internal generic package,
8404
        offering facilities for all the Vector/View conversion routines
8405
        implemented by this unit.
8406
        (To_View/To_Vector - all versions): Reimplemented in a systematic
8407
        manner, using the internal Generic_Conversions facilities.
8408
 
8409
2007-04-06  Pascal Obry  
8410
 
8411
        * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
8412
        string.
8413
        (Create): Free the source string before storing the new one.
8414
 
8415
2007-04-06  Vincent Celier  
8416
 
8417
        * g-debpoo.adb (Validity): New package with a complete new
8418
        implementation of subprograms Is_Valid and Set_Valid.
8419
        (Is_Valid): Move to local package Validity
8420
        (Set_Valid): Move to local package Validity
8421
 
8422
2007-04-06  Arnaud Charlet  
8423
            Pablo Oliveira  
8424
 
8425
        * g-expect.adb (Get_Command_Output): When expanding the output buffer
8426
        we must ensure that there is enough place for the new data we are going
8427
        to copy in.
8428
 
8429
2007-04-06  Thomas Quinot  
8430
 
8431
        * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
8432
        computation.
8433
 
8434
2007-04-06  Jose Ruiz  
8435
            Vincent Celier  
8436
 
8437
        * gnatcmd.adb (B_Start): Add prefix of binder generated file.
8438
        (Stack_String): Add this String that contains the name of the Stack
8439
        package in the project file.
8440
        (Packages_To_Check_By_Stack): Add this list that contains the packages
8441
        to be checked by gnatstack, which are the naming and the stack packages.
8442
        (Check_Files): If no .ci files were specified for gnatstack we add all
8443
        the .ci files belonging to the projects, including binder generated
8444
        files.
8445
        (Non_VMS_Usage): Document that gnatstack accept project file switches.
8446
        (GNATCmd): Update the B_Start variable if we are in a VMS environment.
8447
        Add gnatstack to the list of commands that use project file related
8448
        switches, and get the single attribute Switches from the stack package
8449
        in a project file when calling gnatstack. Parse the -U flag for
8450
        processing files belonging to all projects in the project tree.
8451
        Remove all processing for command Setup
8452
 
8453
        * prj-attr.adb: Add new package Stack with single attribute Switches
8454
 
8455
        * vms_conv.ads (Command_Type): Add command Stack.
8456
        Move to body declarations that are only used in the body: types Item_Id,
8457
        Translation_Type, Item_Ptr, Item and its subtypes.
8458
 
8459
        * vms_conv.adb: (Initialize): Add data for new command Stack.
8460
        Add declarations moved from the spec: types Item_Id, Translation_Type,
8461
        Item_Ptr, Item and its subtypes.
8462
        (Cargs_Buffer): New table
8463
        (Cargs): New Boolean global variable
8464
        (Process_Buffer): New procedure to create arguments
8465
        (Place): Put character in table Buffer or Cargs_Buffer depending on the
8466
         value of Cargs.
8467
        (Process_Argument): Set Cargs when processing qualifiers for GNAT
8468
        COMPILE
8469
        (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
8470
        empty, for table Cargs_Buffer.
8471
        (Initialize): Remove component Setup in Command_List
8472
 
8473
2007-04-06  Vincent Celier  
8474
 
8475
        * gprep.adb (Process_Files.Process_One_File): Use full file name when
8476
        issuing pragma Source_Reference.
8477
 
8478
2007-04-06  Emmanuel Briot  
8479
 
8480
        * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
8481
        [[:xdigit:]] character class.
8482
        Also raise an exception when an invalid character class is used.
8483
 
8484
2007-04-06  Pascal Obry  
8485
 
8486
        * i-cstrea.ads: (fopen): Add encoding parameter.
8487
        (freopen): Idem.
8488
        Change reference from a-sysdep.c to sysdep.c in comment.
8489
        Update copyright notice.
8490
        This set of patch add support for the encoding form parameter.
8491
 
8492
        * mingw32.h (S2WSU): New macro to convert from a string to a
8493
        wide-string using the UTF-8 encoding. The S2WS macro supports now only
8494
        standard 8bits encoding.
8495
        (WS2SU): As above but converting from wide-sring to string.
8496
        This is needed as it is necessary to have access to both versions in the
8497
        runtime for the form parameter encoding support.
8498
        This set of patch add support for the encoding form parameter.
8499
        (S2WS): Improve implementation to handle cases where the filename is not
8500
        UTF-8 encoded. In this case we default to using the current code page
8501
        for the conversion.
8502
 
8503
        * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
8504
        type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
8505
        the constants defined in adaint.h.
8506
        (fopen): Add encoding parameter.
8507
        (freopen): Idem.
8508
 
8509
        * s-ficobl.ads (AFCB): Add Encoding field to record the filename
8510
        encoding. This is needed for the Reset routine (freopen low level-call).
8511
 
8512
        * s-fileio.adb (Open): Decode encoding form parameter and set the
8513
        corresponding encoding value into AFCB structure.
8514
        (Reset): Pass the encoding value to freopen.
8515
        (Close): Move the call to Lock_Task to the beginning of the procedure.
8516
 
8517
2007-04-06  Geert Bosch  
8518
            Robert Dewar  
8519
 
8520
        * i-fortra.ads: Add Double_Complex type.
8521
 
8522
        * impunit.adb: (Is_Known_Unit): New function
8523
        Add Gnat.Byte_Swapping
8524
        Add GNAT.SHA1
8525
        Add new Ada 2005 units
8526
        Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
8527
        Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
8528
        Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
8529
        Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
8530
 
8531
        * impunit.ads (Is_Known_Unit): New function
8532
 
8533
        * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
8534
        a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
8535
        a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
8536
        g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
8537
        s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
8538
        s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
8539
        New files.
8540
 
8541
        * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
8542
 
8543
        * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
8544
 
8545
2007-04-06  Eric Botcazou  
8546
            Arnaud Charlet  
8547
 
8548
        * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
8549
        __gnat_adjust_context_for_raise.
8550
        (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
8551
        implementation of floating point operations as native x86 targets.
8552
        So the FPU should be initialized in the same way using finit. Fix
8553
        floating point operations accuracy issues.
8554
        (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
8555
        member in struct sigaction, so as to avoid warning for incompatible
8556
        pointer types.
8557
 
8558
2007-04-06 Serguei Rybin  
8559
 
8560
        * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
8561
        switches from previously loaded tree
8562
 
8563
2007-04-06  Thomas Quinot  
8564
 
8565
        * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
8566
        cases where a given dependency has a body or not.
8567
        (Write_With_File_Names): New subprogram, common code for the two cases
8568
        above.
8569
 
8570
2007-04-06  Ed Schonberg  
8571
            Javier Miranda  
8572
 
8573
        * lib-xref.ads, lib-xref.adb:
8574
        Modify the loop that collects type references, to include interface
8575
        types that the type implements. List each of these interfaces when
8576
        building the entry for the type.
8577
        (Generate_Definition): Initialize component Def and Typ of new entry
8578
        in table Xrefs, to avoid to have these components unitialized.
8579
        (Output_References): Split Is_Abstract flag into
8580
        Is_Abstract_Subprogram and Is_Abstract_Type.
8581
        (Generate_Reference): Add barrier to do not generate the warning
8582
        associated with Ada 2005 entities with entities generated by the
8583
        expander.
8584
 
8585
2007-04-06  Robert Dewar  
8586
            Arnaud Charlet  
8587
            Vincent Celier  
8588
 
8589
        * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
8590
        Update 'Exception Handling Control' chapter which was outdated.
8591
        Minor fix to documentation of -gnatwq
8592
        Remove section "Adapting the Run Time to a New C++ Compiler" because
8593
        it is now obsolete.
8594
        Add passage on need of -nostart-files in some non-ada-main cases.
8595
        Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
8596
        Update documentation about Interfacing with C++
8597
        Add documentation for new gnatmake switch -p
8598
        Add missing protocol part in URLs.
8599
        Document -gnatyA
8600
        Document pragma Compile_Time_Error
8601
        Add documentation for Object_Size indicating that stand alone
8602
        objects can have a larger size in some cases.
8603
        Add node for GNAT.Byte_Swapping, GNAT.SHA1
8604
        Update reference to the Ravenscar profile.
8605
        Document pragma Unreferenced_Objects
8606
 
8607
        * gnat-style.texi: Fix typo
8608
 
8609
2007-04-06  Vincent Celier  
8610
 
8611
        * mlib.adb (Building_Library): Only output "building a library..." in
8612
        verbose mode
8613
 
8614
        * mlib-prj.adb (Build_Library): Only output lists of object and ALI
8615
        files in verbose mode.
8616
 
8617
        * mlib-utl.adb (Ar): Only output the first object files when not in
8618
        verbose mode.
8619
        (Gcc): Do not display all the object files if not in verbose mode, only
8620
        the first one.
8621
 
8622
2007-04-06  Robert Dewar  
8623
 
8624
        * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
8625
        it no longer destroys the contents of Name_Buffer or Name_Len and
8626
        non-standard and invalid names are handled better.
8627
        (Get_Decoded_Name_String): Improve performance by using
8628
        Name_Has_No_Encodings flag in the name table.
8629
        (Is_Valid_Name): New function to determine whether a Name_Id is valid.
8630
        Used for debugging printouts.
8631
 
8632
2007-04-06  Robert Dewar  
8633
            Javier Miranda  
8634
            Bob Duff  
8635
 
8636
        * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
8637
        (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
8638
        there is no need to generate always a record_definition_node in case
8639
        of synchronized interface types.
8640
        (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
8641
        (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
8642
        illegal in Ada 95, in cases where it is legal. Change the warnings to
8643
        errors in other cases. Don't give the error unless the "not null"
8644
        parses properly. Correct the source position at which the error occurs.
8645
        (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
8646
        P_Null_Exclusion, to suppress "not null" warnings.
8647
        (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
8648
        associated goto statements.
8649
 
8650
        * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
8651
        of END RECORD
8652
 
8653
        * scans.ads (Type_Token_Location): New flag
8654
 
8655
        * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
8656
        (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
8657
        P_Null_Exclusion, to suppress "not null" warnings.
8658
 
8659
2007-04-06  Robert Dewar  
8660
            Javier Miranda  
8661
            Bob Duff  
8662
            Vincent Celier  
8663
 
8664
        * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
8665
        (Extensions_Allowed): No longer sets Ada_Version
8666
        Entry for pragma Unreferenced_Objects
8667
 
8668
        * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
8669
        system.tasking if pragma priority used in a procedure
8670
        (Analyze_Pragma, case Warning): Handle dot warning switches
8671
        (Process_Compile_Time_Warning_Or_Error): New procedure
8672
        (Analyze_Pragma): Add processing for Compile_Time_Error
8673
        Add support for extra arguments External_Name and Link_Name.
8674
        Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
8675
        (Process_Import_Or_Interface): Add support for the use of pragma Import
8676
        with tagged types.
8677
        (Extensions_Allowed): No longer affects Ada_Version
8678
        (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
8679
        Is_Abstract_Type. Make sure these are called only when appropriate.
8680
        Add processing for pragma Unreferenced_Objects
8681
 
8682
        * snames.h, snames.ads, snames.adb: Add entry for pragma
8683
        Compile_Time_Error
8684
        Add new standard name Minimum_Binder_Options for new gprmake
8685
        Add new standard names for gprmake: Archive_Suffix,
8686
        Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
8687
        Library_Support, Library_Version_Options,
8688
        Shared_Library_Minimum_Options,
8689
        Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
8690
        Change Name_Call to Name_uCall so that it cannot clash with a legal
8691
        subprogram name.
8692
        Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
8693
        Append C_Plus_Plus to convention identifiers as synonym for CPP
8694
        Add new standard names Stack and Builder_Switches
8695
        Add new standard names: Compiler_Minimum_Options, Global_Config_File,
8696
        Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
8697
        Run_Path_Option, Toolchain_Version.
8698
        Entry for pragma Unreferenced_Objects
8699
 
8700
        * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
8701
        switches, without repetition of "eD". Make sure that last character of
8702
        -gnatep= switch is not taken as -gnat switch character.
8703
        Complete rewrite of circuit for handling saving compilation options
8704
        Occasioned by need to support dot switchs for -gnatw, but cleans up
8705
        things in general.
8706
        -gnatX does not affect Ada_Version
8707
        Include -gnatyA in -gnatg style switches
8708
 
8709
        * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
8710
        warnings on return objects.
8711
        (Warn_On_Useless_Assignment): Exclude warnings on return objects
8712
        (Set_Dot_Warning_Switch): New procedure
8713
        (Check_References): Add missing case of test for
8714
        Has_Pragma_Unreferenced_Objects
8715
        (Output_Unreferenced_Messages): Implement effect of new pragma
8716
        Unreferenced_Objects, remove special casing of limited controlled
8717
        variables.
8718
 
8719
2007-04-06  Vincent Celier  
8720
 
8721
        * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
8722
        the default project path, initially done during elaboration of the
8723
        package.
8724
        If the prefix returned by Sdefault is null, get the prefix from a call
8725
        to Executable_Prefix_Path.
8726
        (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
8727
        null.
8728
 
8729
        * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
8730
        canonical directory name to open the directory from which files are
8731
        retrieved.
8732
        (Record_Other_Sources): Idem.
8733
        (Locate_Directory): Add the possibility to create automatically missing
8734
        directories when Setup_Projects is True.
8735
        Call Locate_Directory so that the directory will be created when
8736
        Setup_Projects is True, for object dir, library dir, library ALI dir,
8737
        library source copy dir and exec dir.
8738
 
8739
        * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
8740
        versions of GNAT.
8741
 
8742
2007-04-06  Robert Dewar  
8743
 
8744
        * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
8745
        Use First/Next_Component_Or_Discriminant
8746
        (Analyze_Record_Representation_Clause):
8747
        Use First/Next_Component_Or_Discriminant
8748
        (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
8749
        (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
8750
        definition if type is unconstrained.
8751
        (Adjust_Record_For_Reverse_Bit_Order): New procedure
8752
        (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
8753
        Is_Abstract_Subprogram and Is_Abstract_Type.
8754
        (Adjust_Record_For_Reverse_Bit_Order): New procedure
8755
 
8756
        * repinfo.adb (List_Record_Info): Use First/
8757
        Next_Component_Or_Discriminant.
8758
 
8759
        * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
8760
        New procedure.
8761
 
8762
        * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
8763
        Include -gnatyA in default switches
8764
 
8765
        * opt.ads: (Warn_On_Non_Local_Exception): New flag
8766
        (Warn_On_Reverse_Bit_Order): New flag
8767
        (Extensions_Allowed): Update the documentation.
8768
        (Warn_On_Questionable_Missing_Parens): Now on by default
8769
 
8770
        * usage.adb: Add documentation of -gnatw.x/X switches
8771
        Document new -gnatyA style switch
8772
        -gnatq warnings are on by default
8773
 
8774
2007-04-06  Ed Falis  
8775
 
8776
        * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
8777
        full word is no longer compared twice.
8778
 
8779
2007-04-06  Ed Schonberg  
8780
 
8781
        * sem_ch10.adb (Install_Limited_Context_Clauses.
8782
        Expand_Limited_With_Clause): Use a new copy of selector name in the
8783
        call to Make_With_Clause. This fixes the tree structure for ASIS
8784
        purposes. Nothing is changed in the compiler behaviour.
8785
        (Process_Body_Clauses): Handle properly use clauses whose prefix is
8786
        a package renaming.
8787
        (Install_Limited_With_Clauses): Do not install non-limited view when it
8788
        is still incomplete.
8789
 
8790
2007-04-06  Ed Schonberg  
8791
            Gary Dismukes  
8792
 
8793
        * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
8794
        when capturing size information, instead of base type, which for a
8795
        formal array type will be the unconstrained type.
8796
        (Analyze_Formal_Object_Declaration): Add check for illegal default
8797
        expressions for a formal in object of a limited type.
8798
        (Instantiate_Object): Ditto.
8799
        (Check_Formal_Package_Instance): Skip entities that are formal objects,
8800
        because they were defaulted in the formal package and no check applies
8801
        to them.
8802
        (Check_Formal_Package_Instance): Extend conformance check to other
8803
        discrete types beyond Integer.
8804
        (Process_Default): Copy directly the unmatched formal. A generic copy
8805
        has already been performed in Analyze_Formal_Package.
8806
        (Analyze_Associations): If a formal subprogram has no match, check for
8807
        partial parametrization before looking for a default, to prevent
8808
        spurious errors.
8809
        (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
8810
        not set the instantiation environment before analyzing the actuals.
8811
        Fixes regression on 8515-003 with implementation of AI-133.
8812
        Set_Instance_Env checks whether the generic unit is a predefined
8813
        unit, in which case the instance must be analyzed with the latest Ada
8814
        mode. This setting must take place after analysis of the actuals,
8815
        because the actuals must be analyzed and frozen in the Ada mode extant
8816
        outside of the current instantiation.
8817
        (Save_Env, Restore_Env): Preserve and restore the configuration
8818
        parameters so that predefined units can be compiled in the proper Ada
8819
        mode.
8820
        (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
8821
        Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
8822
        and Is_Abstract_Type.
8823
        (Analyze_Formal_Package): For better error recovery, Add exception
8824
        handler to catch Instantion_Error, which can be raised in
8825
        Analyze_Associations
8826
 
8827
2007-04-06  Ed Schonberg  
8828
            Bob Duff  
8829
            Gary Dismukes  
8830
 
8831
        * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
8832
        prefix type is a discriminated subtype of the type of the formal.
8833
        (Analyze_Allocator): Collect all coextensions regardless of the context.
8834
        Whether they can be allocated statically is determined in exp_ch4.
8835
        (Analyze_Selected_Component): If the prefix is a limited view and the
8836
        non-limited view is available, use the non-limited one.
8837
        (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
8838
        therefore illegal), suggest a qualified expression rather than a type
8839
        conversion, because a type conversion would be illegal in this context.
8840
        (Anayze_Allocator): Trace recursively all nested allocators so that all
8841
        coextensions are on the corresponding list for the root. Do no mark
8842
        coextensions if the root allocator is within a declaration for a stack-
8843
        allocated object, because the access discriminants will be allocated on
8844
        the stack as well.
8845
        (Analyze_Call): Remove restriction on calls to limited functions for the
8846
        cases of generic actuals for formal objects, defaults for formal objects
8847
        and defaults for record components.
8848
        (Analyze_Allocator): Before analysis, chain coextensions on the proper
8849
        element list. Their expansion is delayed until the enclosing allocator
8850
        is processed and its finalization list constructed.
8851
        (Try_Primitive_Operation): If the prefix is a concurrent type, looks
8852
        for an operation with the given name among the primitive operations of
8853
        the corresponding record type.
8854
        (Analyze_Selected_Component): If the prefix is a task type that
8855
        implements an interface, and there is no entry with the given name,
8856
        check whether there is another primitive operation (e.g. a function)
8857
        with that name.
8858
        (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
8859
        properly the indexing of a function call written in prefix form, where
8860
        the function returns an array type, and all parameters of the function
8861
        except the first have defaults.
8862
        (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
8863
        the original operands, rather than relocating them, for efficiency and
8864
        to work properly when an operand is overloaded.
8865
        (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
8866
        Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
8867
        (Analyze_Selected_Component): If the prefix is a private extension, only
8868
        scan the visible components, not those of the full view.
8869
        (Try_Primitive_Operation): If the operation is a procedure, collect all
8870
        possible interpretations, as for a function, because in the presence of
8871
        classwide parameters several primitive operations of the type can match
8872
        the given arguments.
8873
 
8874
2007-04-06  Ed Schonberg  
8875
            Robert Dewar  
8876
 
8877
        * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
8878
        tag-indeterminate call to an abstract function, when the left-hand side
8879
        is not classwide.
8880
        (Analyze_Loop_Statement): Improve detection of infinite loops
8881
 
8882
2007-04-06  Ed Schonberg  
8883
            Thomas Quinot  
8884
 
8885
        * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
8886
        out of Analyze_Package_Declaration, because processing must be applied
8887
        to package bodies as well, for deferred constants completed by pragmas.
8888
        (Analyze_Package_Declaration): When the package declaration being
8889
        analyzed does not require an explicit body, call Check_Completion.
8890
        (May_Need_Implicit_Body): An implicit body is required when a package
8891
        spec contains the declaration of a remote access-to-classwide type.
8892
        (Analyze_Package_Body): If the package contains RACWs, append the
8893
        pending subprogram bodies generated by exp_dist at the end of the body.
8894
        (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
8895
        Is_Abstract_Subprogram and Is_Abstract_Type.
8896
        (Preserve_Full_Attributes): The full entity list is not an attribute
8897
        that must be preserved from full to partial view.
8898
 
8899
        * sem_dist.adb (Add_RAS_Dereference_TSS):
8900
        Change primitive name to _Call so it cannot clash with any legal
8901
        identifier, and be special-cased in Check_Completion.
8902
        Mark the full view of the designated type for the RACW associated with
8903
        a RAS as Comes_From_Source to get proper view switching when installing
8904
        private declarations.
8905
        Provite a placeholder nested package body along with the nested spec
8906
        to have a place for Append_RACW_Bodies to generate the calling stubs
8907
        and stream attributes.
8908
 
8909
2007-04-06  Ed Schonberg  
8910
            Robert Dewar  
8911
 
8912
        * sem_ch8.adb (Has_Components): If the argument is an incomplete type
8913
        that is a limited view, check the non-limited view if available.
8914
        (Undefined): Refine error message for missing with of Text_IO
8915
        (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
8916
        to distinguish real missing with cases.
8917
        Fix format of all missing with messages
8918
        (Analyze_Subprogram_Renaming): Emit proper error message on illegal
8919
        renaming as body when renamed entity is abstract.
8920
 
8921
2007-04-06  Ed Schonberg  
8922
            Javier Miranda  
8923
 
8924
        * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
8925
        predicate recursive, to handle complex expressions on literals whose
8926
        spurious ambiguity comes from the abstract interpretation of some
8927
        subexpression.
8928
        (Interface_Present_In_Ancestor): Add support to concurrent record
8929
        types.
8930
        (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
8931
        Is_Abstract_Subprogram and Is_Abstract_Type.
8932
 
8933
2007-04-06  Ed Schonberg  
8934
            Javier Miranda  
8935
 
8936
        * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
8937
        dereference of a local object R created as a reference to another
8938
        object O, use the access level of O.
8939
        (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
8940
        rather than local Same_Formal_Type, to check whether protected operation
8941
        overrides an inherited one.
8942
        (Same_Formal_Type): New predicate, used when matching signatures of
8943
        overriding synchronized operations, to handle the case when a formal
8944
        has a type that is a generic actual.
8945
        (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
8946
        predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
8947
        (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
8948
        syntactic ambiguities involving indexing of function calls that return
8949
        arrays.
8950
        (Abstract_Interface_List): New subprogram that returns the list of
8951
        abstract interfaces associated with a concurrent type or a
8952
        concurrent record type.
8953
        (Interface_Present_In_Parent): New subprogram used to check if a
8954
        given type or some of its parents implement a given interface.
8955
        (Collect_Abstract_Interfaces): Add support for concurrent types
8956
        with interface types.
8957
        (Has_Abstract_Interfaces): Add support for concurrent types with
8958
        interface types.
8959
        (Is_Parent): New subprogram that determines whether E1 is a parent
8960
        of E2. For a concurrent type its parent is the first element of its
8961
        list of interface types; for other types this function provides the
8962
        same result than Is_Ancestor.
8963
        (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
8964
        (Collect_Synchronized_Interfaces): Removed because the subprogram
8965
        Collect_Abstract_Interfaces provides this functionality.
8966
        (Collect_Abstract_Interfaces): Minor update to give support to
8967
        concurrent types and thus avoid undesired code duplication.
8968
        (Get_Subprogram_Entity): Handle entry calls.
8969
        (May_Be_Lvalue): Include actuals that appear as in-out parameters in
8970
        entry calls.
8971
        (Enter_Name): Do not give -gnatwh hiding warning for record component
8972
        entities, they never result in hiding.
8973
 
8974
2007-04-06  Ed Schonberg  
8975
            Robert Dewar  
8976
 
8977
        * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
8978
        to chain nested components that are allocators for access discriminants
8979
        of the enclosing object.
8980
        Add N_Push and N_Pop nodes
8981
        New field Exception_Label added
8982
        (Local_Raise_Statements): New field in N_Exception_Handler_Node
8983
        (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
8984
        (Is_Coextension): New flag for allocators, to mark allocators that
8985
        correspond to access discriminants of dynamically allocated objects.
8986
        (N_Block_Statement): Document the fact that the corresponding entity
8987
        can be an E_Return_Statement.
8988
        (Is_Coextension): New flag for allocators.
8989
        Remove all code for DSP option
8990
 
8991
        * sprint.ads, sprint.adb: Display basic information for class_wide
8992
        subtypes. Add handling of N_Push and N_Pop nodes
8993
 
8994
2007-04-06  Arnaud Charlet  
8995
 
8996
        * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
8997
        before propagating exception.
8998
 
8999
2007-04-06  Olivier Hainque  
9000
 
9001
        * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
9002
        an address always within the call instruction from a return address.
9003
 
9004
2007-04-06  Olivier Hainque  
9005
            Eric Botcazou  
9006
 
9007
        * trans.c (call_to_gnu) : Return an
9008
        expression with a COMPOUND_EXPR including the call instead of emitting
9009
        the call directly here.
9010
        (gnat_to_gnu) : Do not return a non-constant low bound if the
9011
        high bound is constant and the slice is empty.  Tidy.
9012
        (tree_transform, case N_Op_Not): Handle properly the case where the
9013
        operation applies to a private type whose full view is a modular type.
9014
        (Case_Statement_To_gnu): If an alternative is an E_Constant with an
9015
        Address_Clause, use the associated Expression as the GNAT tree
9016
        representing the choice value to ensure the corresponding GCC tree is
9017
        of the proper kind.
9018
        (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
9019
        instead of just the operands, as the base GCC stabilize_reference does.
9020
        : New case. Directly stabilize the call if an lvalue is not
9021
        requested; otherwise fail.
9022
        (addressable_p) : Do not test DECL_NONADDRESSABLE_P.
9023
 
9024
2007-04-06  Thomas Quinot  
9025
 
9026
        * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
9027
        implementation of UI_Div.
9028
        (UI_Div): Reimplement as a call to UI_Div_Rem.
9029
        (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
9030
        remainder, avoiding the cost of a multiplication and a subtraction.
9031
        (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
9032
        provides both quotient and remainder in a single computation.
9033
        (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
9034
        functions for uint.
9035
        (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
9036
        is undefined if the given n is not inversible.
9037
 
9038
2007-04-06  Olivier Hainque  
9039
 
9040
        * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
9041
        BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
9042
        opcodes.
9043
 
9044
2007-04-06  Eric Botcazou  
9045
            Olivier Hainque  
9046
 
9047
        * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
9048
        when updating the contents of the old pointer to an unconstrained array.
9049
        (end_subprog_body): Set error_gnat_node to Empty.
9050
        (write_record_type_debug_info): Do not be unduly sparing with our bytes.
9051
        (unchecked_convert): For subtype to base type conversions, require that
9052
        the source be a subtype if it is an integer type.
9053
        (builtin_decls): New global, vector of available builtin functions.
9054
        (gnat_pushdecl): Add global builtin function declaration nodes to the
9055
        builtin_decls list.
9056
        (gnat_install_builtins): Adjust comments.
9057
        (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
9058
        calling gnat_pushdecl, so that it knows when it handed a builtin
9059
        function declaration node.
9060
        (builtin_decl_for): Search the builtin_decls list.
9061
 
9062
2007-04-06  Eric Botcazou  
9063
 
9064
        * s-stchop-vxworks.adb:
9065
        (Stack_Check): Raise Storage_Error if the argument has wrapped around.
9066
 
9067
2007-04-06  Robert Dewar  
9068
            Arnaud Charlet  
9069
 
9070
        * a-diroro.ads: Inserted the pragma Unimplemented_Unit
9071
 
9072
        * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
9073
        of files
9074
        Add mention of -Sev (set initialize_scalars option from environment
9075
        variable at run time) in gnatbind usage message.
9076
 
9077
        * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
9078
 
9079
        * fname-uf.ads: Minor comment fix
9080
 
9081
        * osint.ads: Change pragma Elaborate to Elaborate_All
9082
 
9083
        * par-load.adb: Add documentation.
9084
 
9085
        * sem_cat.ads, sem_cat.adb: Minor code reorganization
9086
 
9087
        * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
9088
 
9089
        * s-secsta.ads: Extra comments
9090
 
9091
        * s-soflin.ads: Minor comment fixes
9092
 
9093
        * s-stratt.ads (Block_Stream_Ops_OK): Removed.
9094
 
9095
        * s-wchcon.ads: Minor comment addition
9096
 
9097
        * treepr.adb: Minor change in message
9098
        (Print_Name,Print_Node): Make these debug printouts more robust: print
9099
        "no such..." instead of crashing on bad input.
9100
 
9101
2007-03-30  Rafael Ávila de Espíndola  
9102
 
9103
        * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
9104
        instead of gnat_signed_or_unsigned_type.
9105
        * utils.c (gnat_signed_or_unsigned_type): Remove.
9106
        * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
9107
        * gigi.h (gnat_signed_or_unsigned_type): Remove
9108
 
9109
2007-03-09  Roger Sayle  
9110
 
9111
        * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
9112
        fold with the result of buildN.
9113
        * decl.c (gnat_to_gnu_entity): Likewise.
9114
        * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
9115
        * utils.c (finish_record_type, merge_sizes, max_size, convert):
9116
        Likewise.
9117
        * utils2.c (gnat_truthvalue_conversion, compare_arrays,
9118
        nonbinary_modular_operation, build_binary_op, build_unary_op,
9119
        build_cond_expr): Likewise.
9120
 
9121
        * utils.c (convert): Use fold_build1 when casting values to void.
9122
        * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
9123
        fold_convert instead of convert when appropriate.
9124
 
9125
2007-03-01  Brooks Moses  
9126
 
9127
        * Make-lang.in: Add install-pdf target as copied from
9128
        automake v1.10 rules.
9129
 
9130
2007-02-28  Andreas Schwab  
9131
 
9132
        * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
9133
        $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
9134
        (doc/gnat-style.info): Likewise.
9135
 
9136
2007-02-26  Brooks Moses  
9137
 
9138
        * gnat-style.texi: Standardize title page.
9139
        * gnat_rm.texi: Likewise.
9140
        * gnat_ugn.texi: Likewise.
9141
 
9142
2007-02-25  Mark Mitchell  
9143
 
9144
        * decl.c (annotate_value): Adjust for refactoring of tree_map
9145
        hierarchy.
9146
 
9147
2007-02-24  Mark Mitchell  
9148
 
9149
        * decl.c (annotate_value): Adjust for refactoring of tree_map
9150
        hierarchy.
9151
 
9152
2007-02-21  Ed Schonberg  
9153
 
9154
        PR ada/18819
9155
        * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
9156
        untagged derived type, add hidden components to keep discriminant
9157
        layout consistent, when a given discriminant of the derived type
9158
        constraints several discriminants of the parent type.
9159
 
9160
2007-02-16  Eric Botcazou  
9161
            Sandra Loosemore  
9162
 
9163
        * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
9164
        build the call expression.
9165
        (gnat_stabilize_reference_1): Handle tcc_vl_exp.
9166
        * utils.c (max_size) : Delete.
9167
        : New case.
9168
        : Delete CALL_EXPR subcase.
9169
        (build_global_cdtor): Use build_call_nary instead of build3.
9170
        * utils2.c (build_call_1_expr): Likewise.
9171
        (build_call_2_expr): Likewise.
9172
        (build_call_0_expr): Likewise.
9173
        (build_call_alloc_dealloc): Likewise.
9174
 
9175
2007-02-07  Andreas Krebbel  
9176
 
9177
        * raise-gcc.c (get_region_description_for, get_call_site_action_for,
9178
        get_action_description_for): Replace _Unwind_Word with _uleb128_t
9179
        and _Unwind_SWord with _sleb128_t.
9180
 
9181
2007-02-06  Paolo Bonzini  
9182
 
9183
        * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
9184
        * decl.c: Include gt-ada-decl.h.
9185
        (annotate_value_cache): New.
9186
        (annotate_value): Use it instead of TREE_COMPLEXITY.
9187
 
9188
2007-02-03  Kazu Hirata  
9189
 
9190
        * misc.c, utils2.c: Fix comment typos.
9191
 
9192
2007-01-24  Roger Sayle  
9193
 
9194
        * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
9195
        TREE_CONSTANT_OVERFLOW.
9196
        (allocatable_size_p, annotate_value): Likewise.
9197
        * trans.c (gnat_to_gnu): Likewise.
9198
        * utils.c (unchecked_convert): Likewise.
9199
        * utils2.c (build_simple_component_ref): Likewise.
9200
 
9201
2007-01-23  Richard Guenther  
9202
 
9203
        PR bootstrap/30541
9204
        * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
9205
        (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
9206
        (gnatboot3): Likewise.
9207
        (GNATBIND): Do not define.
9208
        * Makefile.in (GNATBIND): Do not define.
9209
 
9210
2007-01-08  Richard Guenther  
9211
 
9212
        * cuintp.c (build_cst_from_int): Use built_int_cst_type.
9213
        * trans.c (gnat_to_gnu): Likewise.
9214
 
9215
 
9216
 
9217
Copyright (C) 2007 Free Software Foundation, Inc.
9218
 
9219
Copying and distribution of this file, with or without modification,
9220
are permitted in any medium without royalty provided the copyright
9221
notice and this notice are preserved.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.