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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [ada/] [ChangeLog-2008] - Blame information for rev 414

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 281 jeremybenn
2008-12-09  Jakub Jelinek  
2
 
3
        PR ada/38450
4
        * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
5
        * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
6
        Likewise.
7
 
8
2008-12-05  Sebastian Pop  
9
 
10
        PR bootstrap/38262
11
        * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
12
 
13
2008-11-29  Eric Botcazou  
14
 
15
        PR ada/30827
16
        * g-comver.adb (Ver_Len_Max): Fix inconsistency.
17
 
18
2008-11-27  Eric Botcazou  
19
 
20
        * gcc-interface/decl.c: Fix various nits.
21
 
22
2008-11-20  Eric Botcazou  
23
 
24
        * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
25
 
26
2008-11-16  Eric Botcazou  
27
 
28
        PR ada/38127
29
        * gcc-interface/decl.c (make_type_from_size) : Do not
30
        special-case boolean types.  Propagate  the name.
31
        * gcc-interface/targtyps.c: Tweak comment.
32
 
33
2008-11-15  Geert Bosch  
34
 
35
        * gcc-interface/trans.c (emit_check): Put back a final save_expr
36
        to prevent exponential expansion during gimplification.
37
 
38
2008-11-15  Eric Botcazou  
39
 
40
        * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
41
 
42
2008-11-15  Eric Botcazou  
43
 
44
        * gcc-interface/decl.c (gnat_to_gnu_entity) : Force constants
45
        initialized to a static constant to be statically allocated even if
46
        they are of a padding type, provided the original type also has
47
        constant size.
48
 
49
2008-11-15  Laurent Guerby  
50
 
51
        PR ada/37993
52
        * gcc-interface/Makefile.in: Add multilib handling for x86_64
53
        on darwin.
54
        * system-darwin-x86_64.ads: New file.
55
 
56
2008-11-13  Olivier Hainque  
57
 
58
        * gcc-interface/decl.c (gnat_to_gnu_entity) :
59
        Turn Ada Pure on subprograms back into GCC CONST when eh constructs
60
        are explicit to the middle-end.  Tidy.
61
 
62
2008-11-09  Eric Botcazou  
63
 
64
        * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
65
        (MINUS_NOMOD_EXPR): Likewise.
66
        * gcc-interface/utils2.c (build_binary_op) : Make
67
        unreachable.
68
        : New case.
69
        : Likewise.
70
        * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
71
        assignment statement instead of using an increment operator.
72
 
73
2008-11-07  Rainer Orth  
74
 
75
        * system-irix-n64.ads: New file.
76
        * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
77
        multilibs.
78
 
79
2008-11-07  Rainer Orth  
80
 
81
        PR ada/37681
82
        * system-solaris-x86_64.ads: New file.
83
        * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
84
 
85
2008-11-07  Bechir Zalila  
86
            Eric Botcazou  
87
 
88
        PR ada/34289
89
        * lib.ads: (Enable_Switch_Storing): Declare.
90
        * lib.adb: (Enable_Switch_Storing): New procedure.
91
        * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
92
        * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
93
        (Display): Never display -gnatea
94
        * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
95
 
96
2008-11-07  Thomas Quinot  
97
 
98
        * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
99
        for empty range in original base type, not converted result type.
100
 
101
2008-11-07  Geert Bosch  
102
 
103
        * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
104
        and result for call to __gnat_mulv64.
105
 
106
2008-11-07  Eric Botcazou  
107
 
108
        * gcc-interface/trans.c: Fix formatting nits.
109
 
110
2008-11-07  Geert Bosch  
111
 
112
        * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
113
        overflow check for constant result.
114
 
115
2008-11-07  Geert Bosch  
116
 
117
        * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
118
        overflow check for addition/subtraction if neither operand is constant.
119
 
120
2008-11-06  Eric Botcazou  
121
 
122
        * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
123
        files for the target-dependent part of the runtime.
124
        (SPARC/Linux): Likewise.
125
 
126
2008-11-06  Eric Botcazou  
127
 
128
        * gcc-interface/decl.c (gnat_to_gnu_entity) : If not
129
        optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
130
        purposes.
131
 
132
2008-11-06  Eric Botcazou  
133
 
134
        * gcc-interface/misc.c (gnat_printable_name): Always return a copy
135
        in GC memory.
136
 
137
2008-11-06  Eric Botcazou  
138
 
139
        PR ada/19419
140
        * gcc-interface/trans.c (gnat_to_gnu) :
141
        Generate a call to memmove for an assignment between overlapping
142
        array slices.
143
 
144
2008-11-02  Andreas Krebbel  
145
 
146
        PR target/37977
147
        * gcc-interface/Makefile.in: Add multilib handling for
148
        s390-linux and s390x-linux.
149
 
150
2008-10-24  Jakub Jelinek  
151
 
152
        * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
153
        check-acats-subtargets and check-gnat-subtargets.
154
        (check_acats_targets): New variable.
155
        (check-acats-subtargets, check-acats%): New targets.
156
        (check-acats): If -j is used and CHAPTERS is empty, run the testing
157
        in multiple make goals, possibly parallel, and afterwards run
158
        dg-extract-results.sh to merge the sum and log files.
159
 
160
2008-10-17  Geert Bosch  
161
 
162
        * gcc-interface/trans.c (gnat_to_gnu) : Simplify expansion
163
        to use only a single check instead of three, and avoid unnecessary
164
        COMPOUND_EXPR.
165
        (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
166
        creating more opportunities for optimizations.
167
 
168
2008-10-13  Jakub Jelinek  
169
 
170
        PR middle-end/37601
171
        * gcc-interface/utils.c (gnat_types_compatible_p): Handle
172
        NULL TYPE_DOMAIN.
173
 
174
2008-10-07  Eric Botcazou  
175
 
176
        * gcc-interface/decl.c (gnat_to_gnu_entity) : Move code
177
        dealing with volatileness to after code dealing with renaming.
178
 
179
2008-10-06  Eric Botcazou  
180
 
181
        * gcc-interface/decl.c (gnat_to_gnu_entity) : Minor tweaks.
182
        * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
183
 
184
2008-10-06  Eric Botcazou  
185
 
186
        * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
187
        (unchecked_convert): Use it to disable problematic folding with
188
        VIEW_CONVERT_EXPR in the general case.  Always disable it for the
189
        special VIEW_CONVERT_EXPR built for integral types and cope with
190
        its addressability issues by preserving the first conversion.
191
 
192
2008-10-01  Andreas Schwab  
193
 
194
        * system-linux-ppc64.ads: New file.
195
        * gcc-interface/Makefile.in: Add multilib handling for
196
        powerpc-linux.
197
 
198
2008-09-26  Eric Botcazou  
199
 
200
        * decl.c (gnat_to_gnu_entity) : Cap the alignment promotion
201
        to that of ptr_mode instead of word_mode.
202
 
203
2008-09-26  Eric Botcazou  
204
 
205
        PR ada/5911
206
        * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
207
 
208
2008-09-25  Samuel Tardieu  
209
 
210
        PR ada/37641
211
        * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
212
        instead of deprecated FILE_WRITE_PROPERTIES.
213
 
214
2008-09-22  Olivier Hainque  
215
 
216
        * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
217
        are never assigned, volatile entities are not constant for code
218
        generation purposes.
219
 
220
2008-09-21  Laurent Guerby  
221
 
222
        PR ada/5911
223
        * gcc-interface/Makefile.in: Add multilib handling for x86_64
224
        and sparc.
225
        * system-linux-sparcv9.ads: New file.
226
 
227
2008-09-20  Eric Botcazou  
228
 
229
        * exp_dbug.ads: Document new convention for the XVZ variable.
230
        * gcc-interface/decl.c (gnat_to_gnu_entity) : Generate
231
        debug info if necessary for the type padding the component type.
232
        : Likewise.
233
        (maybe_pad_type): Emit the XVZ variable in units.
234
        * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
235
        (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
236
        on statements generated to initialize the parameter attributes cache.
237
        Set the source line of the end label of the body on the special return
238
        statement built for a procedure with copy-in copy-out parameters.
239
 
240
2008-09-20  Eric Botcazou  
241
 
242
        PR ada/37585
243
        * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
244
        inlined external functions if they contain a nested function not
245
        declared inline.
246
 
247
2008-09-18  Jan Hubicka  
248
 
249
        * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
250
        (end_subprog_body): Do not set DECL_INLINE.
251
 
252
2008-09-17  Pascal Rigaux  
253
 
254
        PR ada/21327
255
        * gnat_ugn.texi: Use proper format in direntry.
256
 
257
2008-09-15  Eric Botcazou  
258
 
259
        * gcc-interface/trans.c (gigi): Declare the name of the compilation
260
        unit as the first global name.
261
 
262
2008-09-14  Jan Hubicka  
263
 
264
        * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
265
 
266
2008-09-14  Ralf Wildenhues  
267
 
268
        * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
269
        bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
270
        exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
271
        exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
272
        exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
273
        g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
274
        gcc-interface/gigi.h, gcc-interface/trans.c,
275
        lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
276
        opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
277
        s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
278
        s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
279
        sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
280
        sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
281
        sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
282
        sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
283
        comments.
284
        * gnathtml.pl: Fix typos.
285
 
286
2008-09-10  Joel Sherrill 
287
 
288
        * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
289
        * s-osinte-rtems.ads: Add shared hardware interrupt adapter
290
        layer. RTEMS binds to OS provided adapter routines so there are
291
        no modifications to s-osinte-rtems.adb.
292
 
293
2008-09-09  Arnaud Charlet  
294
            Joel Sherrill  
295
 
296
       * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
297
 
298
       * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
299
 
300
       * s-interr-hwint.adb: New file.
301
 
302
        * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
303
        needed by s-interr-hwint.adb.
304
 
305
        * s-osinte-vxworks-kernel.adb: New file.
306
 
307
2008-09-05  Joel Sherrill 
308
 
309
        * s-stchop-rtems.adb: Add file missed in early commit.  Already
310
        referenced in gcc-interface/Makefile.in.
311
 
312
2008-08-30  Thomas Quinot  
313
 
314
        * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
315
        be built even without a separate libada directory.
316
 
317
2008-08-22  Arnaud Charlet  
318
 
319
        * lib-xref.ads: Fix typo in subprogram reference definition.
320
 
321
2008-08-22  Robert Dewar  
322
 
323
        * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
324
        to avoid warning.
325
 
326
        * g-trasym.adb: Ditto
327
 
328
        * s-utf_32.adb (Get_Category): Fix obvious typo
329
 
330
        * s-wwdcha.adb: Minor code reorganization
331
        Remove dead code
332
 
333
2008-08-22  Robert Dewar  
334
 
335
        * checks.adb (Determine_Range): Deal with values that might be invalid
336
 
337
        * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
338
        configuration switches.
339
 
340
        * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
341
 
342
        * sem_prag.adb: Implement pragma Assume_No_Default_Values
343
 
344
        * snames.adb, snames.ads, snames.h:
345
        Add entries for pragma Assume_No_Invalid_Values
346
 
347
        * switch-c.adb: Add processing for -gnatB switch
348
 
349
        * usage.adb: Add entry for flag -gnatB (no bad invalid values)
350
 
351
2008-08-22  Javier Miranda  
352
 
353
        * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
354
        init procedure all the expanded code associated with the spec of
355
        task types and protected types.
356
 
357
2008-08-22  Gary Dismukes  
358
 
359
        * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
360
        component expression copies rather than directly setting Etype and
361
        Is_Static_Expression.
362
 
363
2008-08-22  Gary Dismukes  
364
 
365
        * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
366
        private types to allow for types derived from a private type with
367
        preelaborable initialization, but return False for a private extension
368
        (unless it has the pragma).
369
 
370
2008-08-22  Robert Dewar  
371
 
372
        * opt.ads: Minor code reorganization (put entries in alpha order)
373
 
374
2008-08-22  Pascal Obry  
375
 
376
        * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
377
        spawn.
378
 
379
2008-08-22  Geert Bosch  
380
 
381
        * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
382
        (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
383
 
384
2008-08-22  Doug Rupp  
385
 
386
        * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
387
        __gnat_set_features.
388
 
389
        * init.c
390
        (__gnat_set_features): New function.
391
        (__gnat_features_set): New tracking variable.
392
        (__gl_no_malloc_64): New feature global variable
393
 
394
2008-08-22  Ed Schonberg  
395
 
396
        * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
397
        use_type_clause in an instance.
398
 
399
2008-08-22  Bob Duff  
400
 
401
        * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
402
 
403
2008-08-22  Robert Dewar  
404
 
405
        * exp_ch6.adb: Minor reformatting
406
 
407
        * exp_ch7.adb: Minor reformatting
408
 
409
        * exp_ch7.ads: Put routines in proper alpha order
410
 
411
        * exp_dist.adb: Minor reformatting
412
 
413
2008-08-22  Vincent Celier  
414
 
415
        * prj.ads: Minor comment update
416
 
417
2008-08-22  Robert Dewar  
418
 
419
        * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
420
 
421
2008-08-22  Ed Schonberg  
422
 
423
        * exp_tss.adb:
424
        (Base_Init_Proc): For a protected subtype, use the base type of the
425
        corresponding record to locate the propoer initialization procedure.
426
 
427
2008-08-22  Robert Dewar  
428
 
429
        * checks.adb:
430
        (In_Subrange_Of): New calling sequence
431
        (Determine_Range): Prepare for new processing using base type
432
 
433
        * exp_ch4.adb:
434
        (Compile_Time_Compare): Use new calling sequence
435
 
436
        * exp_ch5.adb:
437
        (Compile_Time_Compare): Use new calling sequence
438
 
439
        * sem_eval.adb:
440
        (Compile_Time_Compare): New calling sequence allows dealing with
441
        invalid values.
442
        (In_Subrange_Of): Ditto
443
 
444
        * sem_eval.ads:
445
        (Compile_Time_Compare): New calling sequence allows dealing with
446
        invalid values.
447
        (In_Subrange_Of): Ditto
448
 
449
2008-08-22  Pascal Obry  
450
 
451
        * adaint.c: Fix possible race condition on win32_wait().
452
 
453
2008-08-22  Bob Duff  
454
 
455
        * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
456
        exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
457
        exp_intr.adb, exp_ch3.adb: Rename:
458
        Exp_Ch7.Controlled_Type => Needs_Finalization
459
        Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
460
        Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
461
         Has_Controlled_Parts
462
        (Has_Some_Controlled_Component): Fix bug in array case.
463
 
464
2008-08-22  Robert Dewar  
465
 
466
        * sem_ch8.adb: Minor reformatting
467
 
468
2008-08-22  Kevin Pouget  
469
 
470
        * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
471
        Shared_Var_Close procedure specifications from package spec to package body.
472
 
473
        * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
474
        RE_Shared_Var_WOpen entries.
475
 
476
        * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
477
        Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
478
 
479
2008-08-22  Eric Botcazou  
480
 
481
        * init.c: adjust EH support code on Alpha/Tru64 as well.
482
 
483
        * raise-gcc.c: Add back a couple of comments.
484
 
485
2008-08-22  Ed Schonberg  
486
 
487
        * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
488
        involved and the return type is class-wide, use the type of the expression
489
        for the generated access type. Suppress useless discriminant checks on the
490
        allocator.
491
 
492
2008-08-22  Bob Duff  
493
 
494
        * exp_ch7.adb: Minor comment fix
495
 
496
        * exp_ch6.ads: Minor comment fix
497
 
498
2008-08-22  Thomas Quinot  
499
 
500
        * sem_ch8.adb: Minor reformatting
501
        Minor code reorganization (introduce subprogram to factor duplicated
502
        code).
503
 
504
2008-08-22  Sergey Rybin  
505
 
506
        * gnat_ugn.texi: Change the description of gnatcheck default rule
507
        settings.
508
 
509
2008-08-22  Eric Botcazou  
510
 
511
        * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
512
        Solaris, FreeBSD, VxWorks and PowerPC/Linux.  For x86{-64}/Linux,
513
        do not adjust the PC anymore.
514
        (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
515
        on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
516
 
517
        * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
518
        instead of _Unwind_GetIP.
519
 
520
2008-08-22  Gary Dismukes  
521
 
522
        * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
523
        with a range is transformed into a positional aggregate, any copied
524
        component literals should be marked Is_Static_Expression.
525
 
526
        * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
527
        not being known at at compile time when Configurable_Run_Time_Mode is
528
        true.
529
 
530
2008-08-22  Robert Dewar  
531
 
532
        * exp_attr.adb:
533
        (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
534
        Read or Input attribute.
535
 
536
2008-08-22  Ed Schonberg  
537
 
538
        * sem_ch8.adb (Use_One_Type): when checking which of two use_type
539
        clauses in related units is redundant, if one of the units is a package
540
        instantiation, use its instance_spec to determine which unit is the
541
        ancestor of the other.
542
 
543
2008-08-22  Javier Miranda  
544
 
545
        * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
546
        attributes add missing support to handle designated types that come
547
        from the limited view.
548
 
549
        * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
550
 
551
2008-08-22  Sergey Rybin  
552
 
553
        * vms_data.ads: Add entry for new gnatcheck -mNNN option
554
 
555
        * gnat_ugn.texi: Add description for gnatcheck option '-m'
556
 
557
2008-08-22  Sergey Rybin  
558
 
559
        * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
560
        acoording to the latest changes in the metric rule interface
561
 
562
2008-08-22  Vincent Celier  
563
 
564
        * make.adb (Check.File_Not_A_Source_Of): New Boolean function
565
        (Check): Check if the file names registered in the ALI file for the
566
        spec, the body and each of the subunits are the ones expected.
567
 
568
2008-08-22  Robert Dewar  
569
 
570
        * g-catiio.adb: Code cleanup.
571
 
572
2008-08-20  Vincent Celier  
573
 
574
        * make.adb (Gnatmake): Remove extra space in version line
575
 
576
        * ali.adb:
577
        (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
578
        as the name may already have been entered in the table by the Project
579
        Manager.
580
 
581
2008-08-20  Jose Ruiz  
582
 
583
        * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
584
        weak symbols so we use the version provided by MaRTE when available.
585
 
586
2008-08-20  Emmanuel Briot  
587
 
588
        * g-catiio.ads, g-catiio.adb:
589
        (Value): Avoid an unnecessary system call to Clock in most cases.
590
        This call is only needed when only the time is provided in the string,
591
        and ignored in all other cases. This is more efficient.
592
 
593
2008-08-20  Eric Botcazou  
594
 
595
        * raise-gcc.c: Fix formatting nits.
596
 
597
2008-08-20  Robert Dewar  
598
 
599
        * sem_ch13.adb:
600
        (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
601
        non-existing component clause.
602
 
603
        * exp_ch5.adb: Minor reformatting
604
 
605
        * g-comlin.adb: Minor reformatting
606
 
607
        * make.adb: Minor reformatting
608
 
609
        * prj-proc.adb: Minor reformatting
610
 
611
        * stylesw.ads: Minor reformatting
612
 
613
2008-08-20  Vincent Celier  
614
 
615
        * make.adb (Gnatmake_Switch_Found): New Boolean global variable
616
        (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
617
        (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
618
         defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
619
        and a switch is not recognized by gnatmake.
620
        (Gnatmake): Implement new scheme for gnatmake switches and global
621
        compilation switches.
622
        (Switches_Of): Try successively Switches (),
623
        Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
624
 
625
2008-08-20  Ed Schonberg  
626
 
627
        * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
628
        implement style check that overriding operations are explicitly marked
629
        at such.
630
 
631
        * style.ads (Missing_Overriding): new procedure that provides interface
632
        to previous one.
633
 
634
        * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
635
        that the declaration or body of overriding operations carries an
636
        explicit overriding indicator.
637
 
638
        * sem_ch8.adb
639
        (Analyze_Subprogram_Renaming): if operation is overriding, check whether
640
        explicit indicator should be present.
641
 
642
        * sem_ch6.adb (Verify_Overriding_Indicator,
643
        Check_Overriding_Indicator): If operation is overriding, check whether
644
        declaration and/or body of subprogram should be present
645
 
646
2008-08-20  Vincent Celier  
647
 
648
        * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
649
        gprbuild when casing is MixedCase, whatever the casing of the letters
650
        in the file name.
651
 
652
2008-08-20  Gary Dismukes  
653
 
654
        * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
655
        creating dummy init proc.
656
        (Requires_Init_Proc): Return False in the case No_Default_Initialization
657
        is in force and the type does not have associated default
658
        initialization. Move test of Is_Public (with tests of restrictions
659
        No_Initialize_Scalars and No_Default_Initialization) to end, past tests
660
        for default initialization.
661
 
662
2008-08-20  Jerome Lambourg  
663
 
664
        * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
665
        of any alias or prefix but having attached parameters (as \"-O2\").
666
 
667
2008-08-20  Robert Dewar  
668
 
669
        * s-fileio.adb: Minor reformatting
670
 
671
2008-08-20  Thomas Quinot  
672
 
673
        * exp_strm.adb (Build_Elementary_Input_Call,
674
        Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
675
        selects the stream attribute routines for long float types.
676
 
677
2008-08-20  Vincent Celier  
678
 
679
        * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
680
 
681
        * prj.ads (Array_Data): Add a component Location
682
 
683
2008-08-20  Ed Schonberg  
684
 
685
        * sem_prag.adb:
686
        (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
687
        argument for ASIS and navigation use.
688
 
689
2008-08-20  Ed Schonberg  
690
 
691
        * einfo.ads: Add comment.
692
 
693
2008-08-20  Bob Duff  
694
 
695
        * sem_eval.ads: Minor comment fix.
696
 
697
2008-08-20  Bob Duff  
698
 
699
        * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
700
        folding. We were folding things like "False and then ...", but not
701
        "X and then ..." where X is a constant whose value is known at compile
702
        time.
703
 
704
2008-08-20  Hristian Kirtchev  
705
 
706
        * exp_ch5.adb (Controlled_Type): New routine.
707
        (Expand_N_Extended_Return_Statement): When generating a move of the
708
        final list in extended return statements, check the type of the
709
        function and in the case of double expanded return statements, the type
710
        of the returned object.
711
        (Expand_Simple_Function_Return): Perform an interface conversion when
712
        the type of the returned object is an interface and the context is an
713
        extended return statement.
714
 
715
2008-08-20  Ed Schonberg  
716
 
717
        * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
718
        and the full view is visible, set flag on full view as well.
719
 
720
2008-08-20  Thomas Quinot  
721
 
722
        * g-comlin.adb: Minor reformatting
723
        Minor code reorganization.
724
 
725
        * freeze.adb: Minor reformatting
726
 
727
2008-08-20  Vincent Celier  
728
 
729
        * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
730
        source of another project.
731
 
732
2008-08-20  Pascal Obry  
733
 
734
        * s-os_lib.ads: Minor reformatting.
735
 
736
2008-08-20  Arnaud Charlet  
737
 
738
        * gnatvsn.ads: Minor reformatting.
739
 
740
2008-08-20  Arnaud Charlet  
741
 
742
        * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
743
        system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
744
        g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
745
        mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
746
        exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
747
        g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
748
        s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
749
        sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
750
        s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
751
        g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
752
        g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
753
        g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
754
        live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
755
        g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
756
        s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
757
        g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
758
        s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
759
        g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
760
        osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
761
        system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
762
        i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
763
        s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
764
        a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
765
        s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
766
        a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
767
        g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
768
        a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
769
        a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
770
        lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
771
        s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
772
        par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
773
        a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
774
        system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
775
        s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
776
        a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
777
        mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
778
        s-poosiz.adb, link.c: Fix copyright notice.
779
 
780
2008-08-20  Arnaud Charlet  
781
 
782
        * g-comlin.ads: Update comments.
783
 
784
2008-08-20  Ed Schonberg  
785
 
786
        * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
787
 
788
2008-08-20  Gary Dismukes  
789
 
790
        * exp_ch11.adb:
791
        (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
792
        Make_Implicit_Exception_Handler when rewriting an exception handler with
793
        a choice parameter, and pass the handler's Sloc instead of that of the
794
        handled sequence of statements. Make_Implicit_Exception_Handler sets the
795
        Sloc to No_Location (unless debugging generated code), which we don't
796
        want for the case of a user handler.
797
 
798
2008-08-20  Robert Dewar  
799
 
800
        * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
801
 
802
        * sem_ch13.adb:
803
        (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
804
        now labeled as info msgs, not warnings.
805
 
806
        * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
807
 
808
        * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
809
 
810
        * a-textio.adb: Remove redundant test.
811
 
812
        * a-witeio.adb: Minor code reorganization
813
        Remove redundant test found working on another issue
814
 
815
        * a-ztexio.adb: Minor code reorganization
816
        Remove redundant test found working on another issue
817
 
818
2008-08-20  Thomas Quinot  
819
 
820
        * s-fileio.adb (Open) Use C helper function to determine whether a
821
        given errno value corresponds to a "file not found" error.
822
 
823
        * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
824
 
825
2008-08-20  Jose Ruiz  
826
 
827
        * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
828
        to get access to the per-task errno variable.
829
        (__set_errno for MaRTE): Do not redefine this function here since it is
830
        already defined in MaRTE.
831
 
832
2008-08-20  Tristan Gingold  
833
 
834
        * gnat_ugn.texi: Gcov is not supported on static library on AIX.
835
 
836
2008-08-20  Robert Dewar  
837
 
838
        * freeze.adb: Minor reformatting
839
 
840
        * g-comlin.adb: Minor reformatting
841
 
842
        * g-socket.adb: Minor reformatting
843
 
844
        * g-socthi-mingw.adb: Minor reformatting
845
 
846
        * g-stheme.adb: Minor reformatting
847
 
848
2008-08-20  Ed Schonberg  
849
 
850
        * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
851
        exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
852
        confusion between partial and full views of an ancestor of the context
853
        type when the parent is a private extension declared in a parent unit,
854
        and full views are available for the context type.
855
 
856
2008-08-18  Samuel Tardieu  
857
            Robert Dewar  
858
 
859
        PR ada/30827
860
        * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
861
        version string.
862
        Move comment in the right place.
863
        * g-comver.adb (Version): Look for a zero-termination in
864
        addition to a closing parenthesis.
865
 
866
2008-08-18  Samuel Tardieu  
867
 
868
        * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
869
        * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
870
        * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
871
        Is_Package_Or_Generic_Package instead of hand-crafted tests.
872
 
873
2008-08-18  Samuel Tardieu  
874
 
875
        PR ada/15808
876
        * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
877
        as well.
878
 
879
2008-08-17  Aaron W. LaFramboise  
880
 
881
        * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
882
 
883
2008-08-16  Eric Botcazou  
884
 
885
        * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
886
        for back-copy statements in lieu of that of the actual.
887
 
888
2008-08-16  Eric Botcazou  
889
 
890
        PR ada/20548
891
        * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
892
        setjmp test consistently.  Adjust for new behavior of flag_stack_check.
893
        * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
894
        test of flag_stack_check.  Adjust for new behavior of flag_stack_check.
895
 
896
2008-08-13  Samuel Tardieu  
897
 
898
        PR ada/36777
899
        * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
900
        * sem_attr.adb (Check_Type): The current instance of a protected
901
        object is not a type name.
902
        (Analyze_Access_Attribute): Accept instances of protected objects.
903
        (Analyze_Attribute, Attribute_Address clause): Ditto.
904
        * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
905
        the prefix as being the current instance if needed.
906
 
907
2008-08-12  Danny Smith  
908
 
909
        * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
910
        Remove duplicate s-win32.o. Add s-winext.o.
911
 
912
2008-08-12  Danny Smith  
913
 
914
        * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
915
        with SOSC.SOCK__STREAM.
916
        * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
917
        SOSC.MSG_OOB.
918
 
919
2008-08-11  Joel Sherrill  
920
 
921
        * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
922
        * gsocket.h, socket.c: Update to support RTEMS.
923
        * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
924
 
925
2008-08-10  Samuel Tardieu  
926
            Robert Dewar 
927
 
928
        * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
929
        left argument even when right argument is 0.
930
        (Expand_N_Op_Mod): Ditto when right argument is 1.
931
        (Expand_N_Op_Multiply): Ditto when any argument is 0.
932
        (Expand_N_Op_Rem): Ditto when right argument is 1.
933
 
934
2008-08-09  Manuel Lopez-Ibanez  
935
 
936
        * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
937
        by warn_unused.
938
 
939
2008-08-08  Ed Schonberg  
940
 
941
        * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
942
        from Freeze_Entity. Used to generate cross-reference information for
943
        types declared in generic packages.
944
 
945
2008-08-08  Thomas Quinot  
946
 
947
        * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
948
        compatibility shim.
949
 
950
2008-08-08  Thomas Quinot  
951
 
952
        * gsocket.h:
953
        On Windows, include  and redefine only selected errno values
954
        from their  definitions.
955
 
956
        * s-osinte-freebsd.ads: Minor reformatting
957
 
958
        * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
959
 
960
        * g-soccon.ads: New file.
961
 
962
        * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
963
        g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
964
        g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
965
        g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
966
        unit, to allow building software that depends on this internal unit
967
        with both older and newer compilers.
968
 
969
2008-08-08  Robert Dewar  
970
 
971
        * s-strxdr.adb: Minor reformatting
972
 
973
2008-08-08  Bob Duff  
974
 
975
        * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
976
        checking for integer operations (including division by zero)", which
977
        is wrong -- divide by zero is not part of overflow checking.
978
        Also added misc clarification about what check-suppression means.
979
 
980
        * gnat_rm.texi: Clarify the meaning of pragma Suppress.
981
 
982
2008-08-08  Jerome Lambourg  
983
 
984
        * g-comlin.adb (Add_Switch): Handle addition of switches at the
985
        begining of the command line.
986
        (Append, Add): Renaming of Append to Add as this now allows addition
987
        at the begining of the list.
988
 
989
        * g-comlin.ads (Add_Switch): Handle addition of switches at the
990
        begining of the command line.
991
 
992
2008-08-08  Thomas Quinot  
993
 
994
        * g-sercom.ads:
995
        (Name): Document application scope (only legacy PC serial ports on
996
        Linux and Windows).
997
 
998
2008-08-08  Thomas Quinot  
999
 
1000
        * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1001
        previous change, not needed after all.
1002
 
1003
2008-08-08  Ed Schonberg  
1004
 
1005
        * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1006
        exclusion indicator is present
1007
 
1008
2008-08-08  Robert Dewar  
1009
 
1010
        * g-comlin.adb: Minor code reorganization
1011
        Minor reformatting
1012
 
1013
        * g-comlin.ads: Minor reformatting
1014
 
1015
        * s-fileio.adb: Minor reformatting
1016
 
1017
        * sem_attr.adb: Minor code reorganization (use Nkind_In)
1018
        Minor reformatting
1019
 
1020
2008-08-06  Samuel Tardieu  
1021
 
1022
        * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
1023
        with s-oscons-tmplt.i.
1024
 
1025
2008-08-06  Samuel Tardieu  
1026
 
1027
        * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
1028
 
1029
2008-08-06  Ed Schonberg  
1030
 
1031
        * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
1032
        of incomplete type.
1033
 
1034
        * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
1035
        of a formal parameter of an incomplete type. Improve error message for
1036
        other improper uses of incomplete types.
1037
 
1038
2008-08-06  Robert Dewar  
1039
 
1040
        * gnat_ugn.texi: Clarify -gnato documentation
1041
 
1042
2008-08-06  Thomas Quinot  
1043
 
1044
        * gcc-interface/Makefile.in,
1045
        g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
1046
        g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
1047
        g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
1048
        g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
1049
        g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
1050
        g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
1051
        g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
1052
        g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
1053
        g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
1054
        Remove GNAT.Sockets.Constants. This internal package is replaced by
1055
        System.OS_Constants.
1056
 
1057
2008-08-06  Thomas Quinot  
1058
 
1059
        * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
1060
        Remove obsolete targets referencing gen-soccon
1061
        When generating s-oscons.ads, use a file name that includes the
1062
        THREAD_KIND, to ensure that the (potentially different) version from a
1063
        previous build with a different threads flavour does not get reused.
1064
 
1065
2008-08-06  Thomas Quinot  
1066
 
1067
        * sem_res.adb: Minor reformatting
1068
 
1069
        * s-fileio.adb (Open): When file open operation fails, raise Name_Error
1070
        only when the operating system reports a non-existing file or directory
1071
        (ENOENT), otherwise raise Name_Error.
1072
 
1073
        * exp_ch11.adb: Minor reformatting
1074
 
1075
2008-08-06  Ed Schonberg  
1076
 
1077
        * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
1078
        incomplete, add the access_to_subprogram type to the list of private
1079
        dependents only if the incomplete type will be completed in the current
1080
        scope.
1081
        (Build_Discriminant_Constraints): If the type of the discriminant is
1082
        access_to_variable, reject a constraint that is access_to_constant.
1083
 
1084
2008-08-06  Thomas Quinot  
1085
 
1086
        * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
1087
        g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
1088
        g-sttsne-dummy.ads: New files.
1089
 
1090
        * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
1091
        with pragma Unimplemented_Unit for sockets packages on Nucleus.
1092
 
1093
2008-08-06  Pascal Obry  
1094
 
1095
        * adaint.c: Another fix for ACL support on Windows.
1096
 
1097
2008-08-06  Javier Miranda  
1098
 
1099
        * exp_disp (Expand_Interface_Actuals): Adds missing support for
1100
        expansion of calls to subprograms using selected components.
1101
 
1102
2008-08-06  Ed Schonberg  
1103
 
1104
        * sem_res.adb (Resolve_Call): Use base type to determine whether a
1105
        dereference is needed because a subtype of an access_to_subprogram is
1106
        simply an access-subtype
1107
 
1108
2008-08-06  Jerome Lambourg  
1109
 
1110
        * g-comlin.adb (Set_Command_Line): Now that aliases can contain
1111
        parameters, always specify the expected separator.
1112
 
1113
2008-08-06  Thomas Quinot  
1114
 
1115
        * xnmake.adb: Use new XUtil package for platform independent text
1116
        output.
1117
 
1118
2008-08-06  Vincent Celier  
1119
 
1120
        * gnat_ugn.texi: Document compiler switch -gnateG
1121
 
1122
2008-08-06  Quentin Ochem  
1123
 
1124
        * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1125
        in the case of an empty pattern size.
1126
        (Compute_Result): Do not do any computation in the case of an empty
1127
        pattern size.
1128
        (Report_Result): Fixed computation of the overflow guard.
1129
 
1130
2008-08-06  Ed Schonberg  
1131
 
1132
        * g-awk.adb (Finalize): Do not use directly objects of the type in the
1133
        finalization routine to prevent elaboration order anomalies in new
1134
        finalization scheme.
1135
 
1136
2008-08-06  Ed Schonberg  
1137
 
1138
        * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1139
        declaration for the same type.
1140
 
1141
2008-08-06  Thomas Quinot  
1142
 
1143
        * sem.adb: Minor rewording (comment)
1144
 
1145
2008-08-06  Jerome Lambourg  
1146
 
1147
        * g-comlin.adb (Define_Switch, Get_Switches): New.
1148
        (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1149
        ungrouping switches.
1150
        (For_Each_Simple_Switch): Allow more control over parameters handling.
1151
        This generic method now allows ungrouping of switches with parameters
1152
        and switches with more than one letter after the prefix.
1153
        (Set_Command_Line): Take care of switches that are prefixed with a
1154
        switch handling parameters without delimiter (-gnatya and -gnaty3 for
1155
        example).
1156
        (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1157
        a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1158
        the operation.
1159
        (Start, Alias_Switches, Group_Switches): Take care of parameters
1160
        possibly present inside a group.
1161
 
1162
        * g-comlin.ads (Define_Switch): New method used to define a list of
1163
        expected switches, that are necessary for correctly ungrouping switches
1164
        with more that one character after the prefix.
1165
        (Get_Switches): Method that builds a getopt string from the list of
1166
        switches as set previously by Define_Switch.
1167
        (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1168
        status of the operation. Also allow the removal of switches with
1169
        parameters only.
1170
        (Command_Line_Configuration_Record): Maintain a list of expected
1171
        switches.
1172
 
1173
2008-08-06  Doug Rupp  
1174
 
1175
        * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1176
        TARGET_MALLOC64 clear.
1177
 
1178
        * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1179
        if TARGET_MALLOC64 clear.
1180
 
1181
        * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1182
        (TARGET_MALLC64): New macro. Default to clear.
1183
 
1184
2008-08-06  Doug Rupp  
1185
 
1186
        * gcc-interface/utils2.c (snames.h) Include
1187
        (TARGET_ABI_OPEN_VMS): Initialize.
1188
        (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1189
        for Convention C.
1190
 
1191
2008-08-06  Ed Schonberg  
1192
 
1193
        * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1194
        null exclusion in a discriminant declaration
1195
 
1196
        * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1197
        indicators when type is not an access type.
1198
 
1199
        * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1200
        indicators when type is not an access type.
1201
 
1202
2008-08-06  Javier Miranda  
1203
 
1204
        * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1205
        with the target interface before expanding the code of the interface
1206
        conversion.
1207
 
1208
2008-08-05  Ed Schonberg  
1209
 
1210
        * freeze.adb:
1211
        (Freeze_Entity): A deferred constant does not violate the restriction
1212
        No_Default_Initialization,
1213
 
1214
        * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1215
        can carry a null exclusion indicator, and on which an error may be
1216
        posted if the indicator is redundant.
1217
 
1218
        * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1219
        does not apply to a subtype mark that already excludes null.
1220
 
1221
        * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1222
        exclusion does not apply to a subtype mark that already excludes null.
1223
 
1224
2008-08-05  Thomas Quinot  
1225
 
1226
        * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1227
 
1228
2008-08-05  Doug Rupp  
1229
 
1230
        * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1231
 
1232
2008-08-05  Thomas Quinot  
1233
 
1234
        * gsocket.h: Make this file includable in a Nucleus environment, which
1235
        does not support sockets.
1236
 
1237
        * socket.c: Remove Nucleus-specific hack.
1238
 
1239
2008-08-05  Pascal Obry  
1240
 
1241
        * adaint.c: Remove support for readable attribute on vxworks and nucleus
1242
 
1243
2008-08-05  Ed Schonberg  
1244
 
1245
        * sem_attr.adb:
1246
        (Analyze_Attribute, case 'Result): handle properly the case where some
1247
        operand of the expression in a post-condition generates a transient
1248
        block.
1249
 
1250
        * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1251
        right-hand side when it is an anonymous access_to_subprogram, to force
1252
        static accessibility check when needed.
1253
 
1254
2008-08-05  Sergey Rybin  
1255
 
1256
        * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1257
        rule according to the change in the rule option.
1258
        Add documentation for -gnatw.b/-gnatw.B
1259
 
1260
2008-08-05  Robert Dewar  
1261
 
1262
        * ug_words: Add entries for -gnatw.b/-gnatw.B
1263
 
1264
        * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1265
 
1266
2008-08-05  Vincent Celier  
1267
 
1268
        * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1269
        (File).
1270
 
1271
        * a-ztdeio.adb: Ditto.
1272
 
1273
2008-08-05  Pascal Obry  
1274
 
1275
        * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1276
        readable attribute.
1277
 
1278
2008-08-05  Vincent Celier  
1279
 
1280
        * s-wchwts.adb:
1281
        (Wide_String_To_String): Returns a String with the same 'First as its
1282
        parameter S.
1283
        (Wide_Wide_String_To_String): Ditto
1284
 
1285
        * s-wchwts.ads:
1286
        (Wide_String_To_String): Document that the lowest index of the returned
1287
        String is equal to S'First.
1288
 
1289
2008-08-05  Thomas Quinot  
1290
 
1291
        * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1292
 
1293
        * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1294
        s-oscons.ads
1295
 
1296
2008-08-05  Robert Dewar  
1297
 
1298
        * opt.ads (Warn_On_Biased_Representation): New flag
1299
 
1300
        * sem_ch13.adb:
1301
        (Analyze_Attribute_Definition_Clause): Issue warning when biased
1302
        representation is required.
1303
        (Minimum_Size): Don't allow biasing if enum rep clause case
1304
 
1305
        * sem_warn.adb:
1306
        (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1307
        (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
1308
 
1309
        * usage.adb: Add lines for -gnatw.b/B switches
1310
 
1311
2008-08-05  Pascal Obry  
1312
 
1313
        * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1314
 
1315
        * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1316
 
1317
2008-08-05  Thomas Quinot  
1318
 
1319
        * socket.c: Minor reformatting.
1320
 
1321
2008-08-05  Robert Dewar  
1322
 
1323
        * sem_ch3.adb: Minor reformatting
1324
 
1325
        * prj-nmsc.adb: Minor reformatting
1326
 
1327
2008-08-05  Ed Schonberg  
1328
 
1329
        * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1330
        visibility check on the component type if the simple test fails.
1331
 
1332
2008-08-05  Jose Ruiz  
1333
 
1334
        * init.c (__gnat_install_handler for linux): If we are building the
1335
        Xenomai run time then we need to do two additional things: avoid
1336
        memory swapping and transform the Linux environment task into a native
1337
        Xenomai task.
1338
 
1339
        * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1340
        time): Use interface to Xenomai native skin and avoid linux-specific
1341
        way of setting CPU affinity.
1342
        (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1343
 
1344
2008-08-05  Bob Duff  
1345
 
1346
        * checks.ads: Minor comment fix
1347
 
1348
2008-08-05  Thomas Quinot  
1349
 
1350
        * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1351
        g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1352
        CS8.
1353
 
1354
2008-08-05  Robert Dewar  
1355
 
1356
        * mlib.adb: Minor code reorganization
1357
        Minor reformatting
1358
 
1359
        * make.adb: Minor reformatting
1360
 
1361
        * prj-attr.ads: Minor reformatting
1362
 
1363
        * s-os_lib.adb: Minor reformatting
1364
 
1365
        * s-fileio.adb: Minor code reorganization
1366
        Minor reformatting
1367
 
1368
        * prj.ads: Minor reformatting
1369
 
1370
2008-08-05  Bob Duff  
1371
 
1372
        * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1373
        unresolved initial value of "null", because it causes implicitly
1374
        generated "=" operators to be ambiguous, and because this type should
1375
        not be passed to gigi.
1376
 
1377
2008-08-05  Vincent Celier  
1378
 
1379
        * mlib.adb: Update comments.
1380
 
1381
        * make.adb (Switches_Of): Check for Switches (others), before checking
1382
        for Default_Switches ("Ada").
1383
        (Gnatmake): Use Builder'Switches (others) in preference to
1384
        Builder'Default_Switches ("Ada") if there are several mains.
1385
 
1386
        * prj-attr-pm.adb:
1387
        (Add_Attribute): Add component Others_Allowed in Attribute_Record
1388
        aggregate.
1389
 
1390
        * prj-attr.adb:
1391
        Add markers to indicates that attributes Switches allow others as index
1392
        (Others_Allowed_For): New Boolean function, returning True for
1393
        attributes with the mark.
1394
        (Initialize): Recognize optional letter 'O' as the marker for
1395
        associative array attributes where others is allowed as the index.
1396
 
1397
        * prj-attr.ads:
1398
        (Others_Allowed_For): New Boolean function
1399
        (Attribute_Record): New Boolean component Others_Allowed
1400
 
1401
        * prj-dect.adb:
1402
        (Parse_Attribute_Declaration): For associative array attribute where
1403
        others is allowed as the index, allow others as an index.
1404
 
1405
        * prj-nmsc.adb:
1406
        (Process_Binder): Skip associative array attributes with index others
1407
        (Process_Compiler): Ditto
1408
 
1409
        * prj-util.adb:
1410
        (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1411
        index is All_Other_Names.
1412
 
1413
        * prj.ads:
1414
        (All_Other_Names): New constant
1415
 
1416
        * prj-proc.adb:
1417
        (Process_Declarative_Items): Skip associative array attribute when index
1418
        is reserved word "others".
1419
 
1420
2008-08-05  Vasiliy Fofanov  
1421
 
1422
        * gen-oscons.c: Adapt for VMS where termios.h is not available.
1423
 
1424
2008-08-05  Thomas Quinot  
1425
 
1426
        * a-rttiev.adb: Minor reformatting (comments)
1427
 
1428
        * gen-soccon.c: Rename to gen-oscons.c
1429
 
1430
        * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1431
        GNAT.Sockets.Constants.
1432
        Add new constants for GNAT.Serial_Communications and System.File_IO.
1433
 
1434
2008-08-05  Javier Miranda  
1435
 
1436
        * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1437
        * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1438
        implementation of this routine has been simplified.
1439
 
1440
2008-08-05  Pascal Obry  
1441
 
1442
        * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1443
        Set_Read_Only Win32 implementation.
1444
 
1445
2008-08-05  Thomas Quinot  
1446
 
1447
        * exp_strm.adb: Minor reformatting (comments)
1448
 
1449
        * sem_ch12.adb: Minor reformatting.
1450
 
1451
2008-08-05  Robert Dewar  
1452
 
1453
        * sem_ch3.adb: Minor reformatting
1454
 
1455
        * checks.adb: Minor reformatting
1456
 
1457
2008-08-05  Thomas Quinot  
1458
 
1459
        * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1460
        restriction on Prefix.
1461
 
1462
2008-08-05  Jerome Lambourg  
1463
 
1464
        * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1465
        methods needed to handle switch sections when building a command line.
1466
        (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1467
        Current_Section): New public methods or methods modified to handle
1468
        building command lines with sections.
1469
        (Set_Command_Line): Take into account sections when analysing a switch
1470
        string.
1471
        (Start): Sort the switches by sections before iterating the command line
1472
        elements.
1473
 
1474
        * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1475
        Is_New_Section, Current_Section): New methods or methods modified to
1476
        handle building command lines with sections.
1477
 
1478
2008-08-05  Ed Schonberg  
1479
 
1480
        * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1481
        discriminants, indicate that the corresponding object declaration has
1482
        no initialization, to prevent spurious warnings when the access type is
1483
        null-excluding.
1484
 
1485
2008-08-05  Ed Schonberg  
1486
 
1487
        * sem_res.adb (Resolve_Call): If this is a call to the predefined
1488
        Abort_Task, warn if the call appears within a protected operation.
1489
 
1490
2008-08-04  Robert Dewar  
1491
 
1492
        * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1493
 
1494
2008-08-04  Ed Schonberg  
1495
 
1496
        * sem_ch3.adb:
1497
        (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1498
        anonymous access to protected subprogram that is the return type of the
1499
        specification of a subprogram body.
1500
 
1501
        * sem_ch6.adb:
1502
        (Analyze_Subprogram_Body): if the return type is an anonymous access to
1503
        subprogram, freeze it now to prevent access anomalies in the back-end.
1504
 
1505
        * exp_ch9.adb: Minor code cleanup.
1506
        Make sure that new declarations are inserted into the tree before
1507
        analysis (from code reading).
1508
 
1509
2008-08-04  Robert Dewar  
1510
 
1511
        * exp_ch5.adb:
1512
        (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1513
        at point of return.
1514
 
1515
2008-08-04  Thomas Quinot  
1516
 
1517
        * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1518
 
1519
2008-08-04  Vasiliy Fofanov  
1520
 
1521
        * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1522
 
1523
2008-08-04  Javier Miranda  
1524
 
1525
        * sem_prag.adb (Process_Convention): Add missing support for
1526
         N_Private_Extension_Declaration nodes.
1527
 
1528
2008-08-04  Robert Dewar  
1529
 
1530
        * exp_ch4.adb: Minor reformatting
1531
 
1532
2008-08-04  Pascal Obry  
1533
 
1534
        * adaint.h: Add missing prototype.
1535
 
1536
        * adaint.c: Refine support for Windows file attributes.
1537
 
1538
2008-08-04  Robert Dewar  
1539
 
1540
        * sem_res.adb:
1541
        (Valid_Conversion): Catch case of designated types having different
1542
        sizes, even though they statically match.
1543
 
1544
2008-08-04  Javier Miranda  
1545
 
1546
        * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1547
        added in previous patch to handle access to subprograms.
1548
 
1549
2008-08-04  Robert Dewar  
1550
 
1551
        * freeze.adb:
1552
        (Freeze_Entity): Only check No_Default_Initialization restriction for
1553
        constructs that come from source
1554
 
1555
2008-08-04  Thomas Quinot  
1556
 
1557
        * exp_ch6.adb: Minor comment fix.
1558
 
1559
        * sem_ch4.adb: Minor reformatting.
1560
 
1561
2008-08-04  Robert Dewar  
1562
 
1563
        * sem_res.adb: (Large_Storage_Type): Improve previous change.
1564
 
1565
2008-08-04  Pascal Obry  
1566
 
1567
        * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1568
        file attributes.
1569
 
1570
2008-08-04  Javier Miranda  
1571
 
1572
        * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1573
        for N_Formal_Object_Declaration nodes. Adding kludge required by
1574
        First_Formal to provide its functionality with access to functions.
1575
        (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1576
        for anonymous access types returned by functions.
1577
 
1578
        * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1579
        conversion of null-excluding access types (required only once to force
1580
        the generation of the required runtime check).
1581
 
1582
        * sem_type.adb (Covers): minor reformating
1583
 
1584
        * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1585
        with internally generated nodes. Avoid generating the error inside init
1586
        procs.
1587
 
1588
        * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1589
        (Resolve_Null): Generate the null-excluding check in case of assignment
1590
        to a null-excluding object.
1591
        (Valid_Conversion): Add missing support for anonymous access to
1592
        subprograms.
1593
 
1594
        * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1595
        anonymous access types whose designated type is an itype. This case
1596
        occurs with anonymous access to protected subprograms types.
1597
        (Analyze_Return_Type):  Add missing support for anonymous access to
1598
        protected subprogram.
1599
 
1600
        * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1601
        subprograms addition of missing check on matching convention. Required
1602
        to properly handle access to protected subprogram types.
1603
 
1604
        * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1605
        null excluding access types.
1606
 
1607
2008-08-04  Ed Schonberg  
1608
 
1609
        * sem_ch12.adb: Add comments
1610
 
1611
        * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1612
        access type and the allocator is not initialized, warn rather than
1613
        reporting an error.
1614
 
1615
2008-08-04  Robert Dewar  
1616
 
1617
        * exp_ch4.adb: Minor reformatting
1618
 
1619
        * exp_dist.adb: Minor reformatting
1620
 
1621
        * g-comlin.adb: Minor reformatting
1622
 
1623
2008-08-04  Gary Dismukes  
1624
 
1625
        * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1626
        target to the type of the aggregate in the case where the target object
1627
        is class-wide.
1628
 
1629
        * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1630
        result type is class-wide and inherently limited, and the expression
1631
        has a specific type, create a return object of the specific type, for
1632
        more efficient handling of returns of build-in-place aggregates (avoids
1633
        conversions of the class-wide return object to the specific type on
1634
        component assignments).
1635
 
1636
        * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1637
        about a type mismatch for a class-wide function with a return object
1638
        having a specific type when the object declaration doesn't come from
1639
        source. Such an object can result from the expansion of a simple return.
1640
 
1641
2008-08-04  Vasiliy Fofanov  
1642
 
1643
        * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1644
 
1645
        * gcc-interface/Makefile.in: Use 64bit-specific system files when
1646
        compiling for 64bit windows.
1647
 
1648
2008-08-04  Jerome Lambourg  
1649
 
1650
        * g-comlin.adb (Group_Switches): Preserve the switch order when
1651
        grouping and allow switch grouping of switches with more than one
1652
        character extension (e.g. gnatw.x).
1653
        (Args_From_Expanded): Remove this now obsolete method.
1654
 
1655
2008-08-04  Ed Schonberg  
1656
 
1657
        * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1658
        chain at once, to ensure that type is properly decorated for back-end,
1659
        when allocator appears within a loop.
1660
 
1661
2008-08-04  Kevin Pouget  
1662
 
1663
        * snames.h, snames.adb, snames.ads:
1664
        Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1665
 
1666
        * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1667
        Build_To_Any_Call and Build_TypeCode_Call procedures.
1668
 
1669
        * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1670
 
1671
        * rtsfind.ads: Add corresponding names.
1672
 
1673
        * tbuild.adb: Update prefix restrictions to allow '_' character.
1674
 
1675
2008-08-04  Doug Rupp  
1676
 
1677
        * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1678
        * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1679
        * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1680
        use it.  Calculate pointer range overflow using 64bit types.
1681
 
1682
2008-08-04  Ed Schonberg  
1683
 
1684
        * sem_ch3.adb (Access_Definition): A formal object declaration is a
1685
        legal context for an anonymous access to subprogram.
1686
 
1687
        * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
1688
        indirect call, report success to the caller to include possible
1689
        interpretation.
1690
 
1691
        * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
1692
        check when the type
1693
        of the extended return is an anonymous access_to_subprogram type.
1694
 
1695
        * sem_res.adb:
1696
        (Resolve_Call): Insert a dereference if the type of the subprogram is an
1697
        access_to_subprogram and the context requires its return type, and a
1698
        dereference has not been introduced previously.
1699
 
1700
2008-08-04  Arnaud Charlet  
1701
 
1702
        * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
1703
        gnatcheck support in GPS.
1704
 
1705
2008-08-04  Vincent Celier  
1706
 
1707
        * mlib.adb (Create_Sym_Links): Create relative symbolic links when
1708
        requested
1709
 
1710
2008-08-04  Vincent Celier  
1711
 
1712
        * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
1713
        variable, but don't check the resulting value as it has no impact on
1714
        the processing.
1715
 
1716
        * opt.ads:
1717
        (Generate_Processed_File): New Boolean flag, set to True in the compiler
1718
        when switch -gnateG is used.
1719
 
1720
        * prep.adb:
1721
        (Preprocess): new Boolean out parameter Source_Modified. Set it to True
1722
        when the source is modified by the preprocessor and there is no
1723
        preprocessing errors.
1724
 
1725
        * prep.ads (Preprocess): new Boolean out parameter Source_Modified
1726
 
1727
        * sinput-l.adb:
1728
        (Load_File): Output the result of preprocessing if the source text was
1729
        modified.
1730
 
1731
        * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
1732
 
1733
        * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
1734
 
1735
        * ug_words: Add VMS equivalent for -gnateG
1736
 
1737
        * vms_data.ads:
1738
        Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
1739
 
1740
2008-08-04  Doug Rupp  
1741
 
1742
        * gcc-interface/utils2.c:
1743
        (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
1744
        in 32bit descriptor.
1745
 
1746
2008-08-04  Robert Dewar  
1747
 
1748
        * par-ch10.adb: Minor reformatting
1749
 
1750
        * i-cobol.adb: Minor reformatting.
1751
 
1752
2008-08-04  Ed Schonberg  
1753
 
1754
        * sem_ch3.adb (Access_Definition): Create an itype reference for an
1755
        anonymous access return type of a regular function that is not a
1756
        compilation unit.
1757
 
1758
2008-08-04  Vincent Celier  
1759
 
1760
        * prj-attr.adb: New Builder attribute Global_Compilation_Switches
1761
 
1762
        * snames.adb: New standard name Global_Compilation_Switches
1763
 
1764
        * snames.ads: New standard name Global_Compilation_Switches
1765
 
1766
        * make.adb: Correct spelling error in comment
1767
 
1768
2008-08-04  Arnaud Charlet  
1769
 
1770
        * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
1771
        target.
1772
 
1773
2008-08-04  Thomas Quinot  
1774
 
1775
        * sem_ch10.adb: Minor comment fix.
1776
 
1777
2008-08-04  Robert Dewar  
1778
 
1779
        * restrict.adb: Improved messages for restriction warnings
1780
 
1781
        * restrict.ads: Improved messages for restriction messages
1782
 
1783
        * s-rident.ads (Profile_Name): Add No_Profile
1784
 
1785
2008-08-04  Robert Dewar  
1786
 
1787
        * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
1788
 
1789
2008-08-04  Robert Dewar  
1790
 
1791
        * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
1792
 
1793
2008-08-04  Vincent Celier  
1794
 
1795
        * prj-proc.adb:
1796
        (Copy_Package_Declarations): When inheriting package Naming from a
1797
        project being extended, do not inherit source exception names.
1798
 
1799
2008-08-04  Ed Schonberg  
1800
 
1801
        * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
1802
        list of declaration to find previous subprogram, do not go to the
1803
        original node of a generic unit.
1804
 
1805
2008-08-02  Eric Botcazou  
1806
 
1807
        * gcc-interface/utils2.c (build_binary_op) :
1808
        New case.  Convert BOOLEAN_TYPE operation to the default integer type.
1809
 
1810
2008-08-01  Eric Botcazou  
1811
 
1812
        * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
1813
        * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
1814
        and adjust for above renaming.
1815
        * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
1816
        gnu_expr_alt_type parameter.  Convert the expression to it instead
1817
        of changing its type in place.
1818
        (build_function_stub): Adjust call to above function.
1819
 
1820
2008-08-01  Eric Botcazou  
1821
 
1822
        * gcc-interface/decl.c (gnat_to_gnu_entity) : Remove dead
1823
        code.  Do not get full definition of deferred constants with address
1824
        clause for a use.  Do not ignore deferred constant definitions with
1825
        address clause.  Ignore constant definitions already marked with the
1826
        error node.
1827
        : Remove obsolete comment.  For a deferred constant with
1828
        address clause, get the initializer from the full view.
1829
        * gcc-interface/trans.c (gnat_to_gnu) :
1830
        Rework and remove obsolete comment.
1831
        : For a deferred constant with address clause,
1832
        mark the full view with the error node.
1833
        * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
1834
        formatting nits.
1835
 
1836
2008-08-01  Hristian Kirtchev  
1837
 
1838
        * rtsfind.ads: Add block IO versions of stream routines for Strings.
1839
 
1840
        * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
1841
        sem_prag.adb, snames.adb, snames.ads, snames.h,
1842
        par-prag.adb: Undo previous stream related changes.
1843
 
1844
        * s-rident.ads: Add new restriction No_Stream_Optimizations.
1845
 
1846
        * s-ststop.ads, s-ststop.adb: Comment reformatting.
1847
        Define enumeration type to designate different IO mechanisms.
1848
        Enchance generic package Stream_Ops_Internal to include an
1849
        implementation of Input and Output.
1850
 
1851
        * exp_attr.adb (Find_Stream_Subprogram): If restriction
1852
        No_Stream_Optimization is active, choose the default byte IO
1853
        implementations of stream attributes for Strings.
1854
        Otherwise use the corresponding block IO version.
1855
 
1856
2008-08-01  Olivier Hainque  
1857
 
1858
        * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not
1859
        turn Ada Pure into GCC const, now implicitely implying nothrow as well.
1860
 
1861
2008-08-01  Robert Dewar  
1862
 
1863
        * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
1864
        convert plain identifier into defining identifier.
1865
 
1866
2008-08-01  Robert Dewar  
1867
 
1868
        * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
1869
        warnings
1870
 
1871
        * lib-xref.adb: Add error defense.
1872
 
1873
2008-08-01  Bob Duff  
1874
 
1875
        * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
1876
 
1877
2008-08-01  Gary Dismukes  
1878
 
1879
        * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
1880
        correct accessibility levels. In the "when others" case, retrieve the
1881
        access level of the Etype of Prev rather than Prev_Orig, because the
1882
        original exression has not always been analyzed.
1883
 
1884
2008-08-01  Robert Dewar  
1885
 
1886
        * prj-nmsc.adb: Minor reformatting
1887
 
1888
        * sem_ch4.adb: Minor reformatting
1889
        Minor code reorganization
1890
 
1891
        * prj.ads: Minor reformatting
1892
 
1893
        * s-os_lib.adb: Minor reformatting
1894
 
1895
        * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
1896
        half encodings
1897
 
1898
        * scans.ads: Minor reformatting.
1899
 
1900
        * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
1901
        (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
1902
 
1903
        * sem_res.adb:
1904
        (Resolve_Call): Check violation of No_Specific_Termination_Handlers
1905
 
1906
        * sem_ch12.adb: Minor comment reformatting
1907
 
1908
        * par-ch3.adb (P_Type_Declaration): Properly handle missing type
1909
        keyword
1910
 
1911
2008-08-01  Robert Dewar  
1912
 
1913
        * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
1914
        generating code
1915
 
1916
2008-08-01  Ed Schonberg  
1917
 
1918
        * checks.adb (Apply_Float_Conversion_Check): If the expression to be
1919
        converted is a real literal and the target type has static bounds,
1920
        perform the conversion exactly to prevent floating-point anomalies on
1921
        some targets.
1922
 
1923
2008-08-01  Vincent Celier  
1924
 
1925
        * prj-attr.adb: New attribute Compiler'Name_Syntax ()
1926
 
1927
        * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
1928
 
1929
        * prj.adb (Object_Exist_For): Use Object_Generated, not
1930
        Objects_Generated that is removed and was never modified anyway.
1931
 
1932
        * prj.ads:
1933
        (Path_Syntax_Kind): New enumeration type
1934
        (Language_Config): New component Path_Syntax, defaulted to Host.
1935
        Components PIC_Option and Objects_Generated removed, as they are not
1936
        used.
1937
 
1938
        * snames.adb: New standard name Path_Syntax
1939
 
1940
        * snames.ads: New standard name Path_Syntax
1941
 
1942
2008-08-01  Vincent Celier  
1943
 
1944
        * mlib-utl.adb:
1945
        (Adalib_Path): New variable to store the path of the adalib directory
1946
        when procedure Specify_Adalib_Dir is called.
1947
        (Lib_Directory): If Adalib_Path is not null, return its value
1948
        (Specify_Adalib_Dir): New procedure
1949
 
1950
        * mlib-utl.ads (Specify_Adalib_Dir): New procedure
1951
 
1952
2008-08-01  Ed Schonberg  
1953
 
1954
        * sem_prag.adb:
1955
        (Check_Precondition_Postcondition): If not generating code, analyze the
1956
        expression in a postcondition that appears in a subprogram body, so that
1957
        it is properly decorated for ASIS use.
1958
 
1959
2008-08-01  Gary Dismukes  
1960
 
1961
        * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
1962
        Orig_Prev to Prev in the case where the actual is N_Function_Call or
1963
        N_Identifier. This was interfering with other cases that are rewritten
1964
        as N_Identifier, such as allocators, resulting in passing of the wrong
1965
        accessibility level, and based on testing this code is apparently no
1966
        longer needed at all.
1967
 
1968
2008-08-01  Ed Schonberg  
1969
 
1970
        * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
1971
        procedure call whose prefix
1972
        is a parameterless function call that returns an access_to_procedure.
1973
 
1974
2008-08-01  Jose Ruiz  
1975
 
1976
        * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
1977
        for RTX. Adding a suffix that is incremented at each iteration.
1978
 
1979
2008-08-01  Robert Dewar  
1980
 
1981
        * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
1982
        Raise_Exception
1983
 
1984
2008-08-01  Jerome Lambourg  
1985
 
1986
        * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
1987
        paths, which are authorized by Windows but can lead to errors when used
1988
        elsewhere.
1989
 
1990
2008-08-01  Ed Schonberg  
1991
 
1992
        * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
1993
        a pending instantiation for the body of a subprogram that is to be
1994
        inlined.
1995
 
1996
        * sem_ch12.adb:
1997
        (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
1998
 
1999
        * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2000
        create a pending instance for its body, so that calls to the subprogram
2001
        can be inlined by the back-end.
2002
 
2003
2008-08-01  Jose Ruiz  
2004
 
2005
        * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2006
        rts-rtx-w32).
2007
 
2008
2008-08-01  Robert Dewar  
2009
 
2010
        * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2011
 
2012
2008-08-01  Doug Rupp  
2013
 
2014
        * gnat_rm.texi: Document new mechanism Short_Descriptor.
2015
 
2016
        * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
2017
        mechanism values.
2018
 
2019
        * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2020
        mechanism and Short_Descriptor mechanism values.
2021
 
2022
        * snames.adb (preset_names): Add short_descriptor entry.
2023
 
2024
        * snames.ads: Add Name_Short_Descriptor.
2025
 
2026
        * types.h: Add new By_Short_Descriptor mechanism values.
2027
 
2028
        * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2029
        mechanism and Short_Descriptor mechanism values.
2030
 
2031
        * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
2032
        values.
2033
        (Descriptor_Codes): Modify range for new mechanism values.
2034
 
2035
        * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
2036
        mechanism values.
2037
 
2038
        * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
2039
        (gnat_to_gnu_param): Handle By_Short_Descriptor.
2040
 
2041
        * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
2042
        (build_vms_descriptor32): New prototype.
2043
        (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
2044
 
2045
        * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
2046
        argument in call fill_vms_descriptor.
2047
 
2048
        * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
2049
        build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
2050
        (build_vms_descriptor): Renamed from build_vms_descriptor64.
2051
        (convert_vms_descriptor32): New function.
2052
        (convert_vms_descriptor64): New function.
2053
        (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
2054
        descriptors.
2055
 
2056
        * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
2057
        no longer needed.
2058
 
2059
2008-08-01  Jose Ruiz  
2060
 
2061
        * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
2062
        nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2063
        name.
2064
 
2065
2008-08-01  Jose Ruiz  
2066
 
2067
        * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
2068
        current directory so only fully qualified names are allowed.
2069
 
2070
2008-08-01  Robert Dewar  
2071
 
2072
        * gnat_ugn.texi:
2073
        Minor editing, remove uncomfortable use of semicolon
2074
 
2075
        * s-ststop.adb: Add some ??? comments
2076
 
2077
        * sem_ch10.adb: Minor reformatting
2078
 
2079
        * snames.ads:
2080
        Minor comment fixes, some pragmas were not properly
2081
        categorized in the comments, documentation change only
2082
 
2083
        * xref_lib.adb: Minor reformatting
2084
 
2085
        * sinput.adb: Minor reformatting
2086
 
2087
        * gnatchop.adb: Minor reformatting
2088
 
2089
        * sem_util.ads: Minor reformatting.
2090
 
2091
        * opt.ads: Minor documentation fix
2092
 
2093
        * scng.adb: Minor reformatting
2094
 
2095
        * prj-part.adb: Update comments
2096
 
2097
2008-08-01  Ed Schonberg  
2098
 
2099
        * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
2100
        tagged synchronized type, use corresponding record type.
2101
 
2102
2008-08-01  Doug Rupp  
2103
 
2104
        * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
2105
        dummy transfer address for debugging.
2106
 
2107
        * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2108
 
2109
        * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
2110
 
2111
2008-07-31  Eric Botcazou  
2112
 
2113
        * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
2114
        * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2115
 
2116
2008-07-31  Pascal Obry  
2117
 
2118
        * prj-nmsc.adb: Keep Object and Exec directory casing.
2119
 
2120
2008-07-31  Jose Ruiz  
2121
 
2122
        * system-rtx-rtss.ads
2123
        Change the default stack size. It is important to set the commit part.
2124
 
2125
        * s-taprop-rtx.adb
2126
        (Initialize): Get the clock resolution.
2127
        (RT_Resolution): Return the clock resolution that is indicated by the
2128
        system.
2129
 
2130
        * s-parame-vxworks.adb
2131
        Document that this body is used for RTX in RTSS (kernel) mode.
2132
 
2133
        * gcc-interface/Makefile.in
2134
        (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2135
        s-parame-vxworks.adb body in order to have reasonable stack sizes in
2136
        RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2137
        cannot ask for too big values.
2138
 
2139
2008-07-31  Robert Dewar  
2140
 
2141
        * exp_aggr.adb: Minor reformatting
2142
 
2143
        * makeutl.adb: Minor reformatting
2144
 
2145
        * prj-env.adb: Minor reformatting
2146
 
2147
2008-07-31  Hristian Kirtchev  
2148
 
2149
        * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2150
        tagged type is completed by a concurrent type.
2151
 
2152
2008-07-31  Gary Dismukes  
2153
 
2154
        * sem_aggr.adb:
2155
        (Resolve_Record_Aggregate): Bypass error that a type without
2156
        components must have a "null record" aggregate when compiling for Ada
2157
        2005, since it's legal to give an aggregate of form (others => <>)
2158
        for such a type.
2159
 
2160
2008-07-31  Javier Miranda  
2161
 
2162
        * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2163
        handle synchronized types. Required to handle well the object.operation
2164
        notation applied to synchronized types.
2165
 
2166
2008-07-31  Quentin Ochem  
2167
 
2168
        * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2169
        anymore - just used internally.
2170
        Added handling of very small tasks - when the theoretical size is
2171
        already full at the point of the call.
2172
        (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2173
        not need to be added to the result.
2174
 
2175
2008-07-31  Hristian Kirtchev  
2176
 
2177
        * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2178
        corresponding spec is a primitive wrapper. Update comment.
2179
 
2180
2008-07-31  Hristian Kirtchev  
2181
 
2182
        * bindgen.adb Comment reformatting. Update the list of run-time globals.
2183
        (Gen_Adainit_Ada): Add the declaration, import and value set for
2184
        configuration flag Canonical_Streams.
2185
        (Gen_Adainit_C): Add the declaration and initial value of external
2186
        symbol __gl_canonical_streams.
2187
 
2188
        * init.c: Update the list of global values computed by the binder.
2189
 
2190
        * opt.ads: Add flag Canonical_Streams.
2191
 
2192
        * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2193
        semantically handled pragmas.
2194
 
2195
        * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2196
        (Analyze_Pragma): Add case for pragma Canonical_Streams.
2197
 
2198
        * snames.adb: Add character value for name Canonical_Streams.
2199
 
2200
        * snames.ads:
2201
        Add Name_Canonical_Streams to the list of configuration pragmas.
2202
        Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
2203
 
2204
        * snames.h: Add a definition for Pragma_Canonical_Streams.
2205
 
2206
        * s-ststop.adb:
2207
        Add a flag and import to seize the value of external symbol
2208
        __gl_canonical_streams. Update comment and initial value of constant
2209
        Use_Block_IO.
2210
 
2211
        * gnat_rm.texi: Add section of pragma Canonical_Streams.
2212
 
2213
        * gnat_ugn.texi:
2214
        Add pragma Canonical_Streams to the list of configuration pragmas.
2215
 
2216
2008-07-31  Ed Schonberg  
2217
 
2218
        * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2219
        has the form A.B.C and B is a unit renaming, analyze its compilation
2220
        unit and add a with_clause on A.b to the context.
2221
 
2222
2008-07-31  Vincent Celier  
2223
 
2224
        * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2225
        return the empty string, instead of raising Constraint_Error.
2226
 
2227
2008-07-31  Gary Dismukes  
2228
 
2229
        * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
2230
 
2231
        * checks.adb (Apply_Accessibility_Check): Insert the check on
2232
        Insert_Node.
2233
 
2234
        * exp_attr.adb:
2235
        (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2236
        to new parameter Insert_Node on call to Apply_Accessibility_Check.
2237
        Necessary to distinguish the insertion node because the dereferenced
2238
        formal may come from a rename, but the check must be inserted in
2239
        front of the attribute.
2240
 
2241
        * exp_ch4.adb:
2242
        (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2243
        call to Apply_Accessibility_Check.
2244
        (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2245
        on call to Apply_Accessibility_Check.
2246
        Minor reformatting
2247
 
2248
2008-07-31  Javier Miranda  
2249
 
2250
        * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2251
        types when the candidate type is a synchronized type.
2252
 
2253
        * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2254
        types, and complete management of synchronized types adding missing
2255
        code to handle formal that is a synchronized type.
2256
 
2257
        * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2258
        are not available and cause the compiler to blowup. Found compiling
2259
        test with switch -gnatc
2260
 
2261
        * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2262
        Has_Correct_Formal_Mode plus code cleanup.
2263
 
2264
2008-07-31  Bob Duff  
2265
 
2266
        * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2267
        recognized as two end-of-lines, but it should be just one.
2268
 
2269
2008-07-31  Thomas Quinot  
2270
 
2271
        * exp_ch9.adb: Minor reformatting
2272
 
2273
        * tbuild.ads: Fix several occurrences of incorrectly referring to
2274
        Name_Find as Find_Name.
2275
 
2276
2008-07-31  Ed Schonberg  
2277
 
2278
        * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2279
        and the context is an object declaration with non-static bounds, treat
2280
        the aggregate as non-static.
2281
 
2282
2008-07-31  Vincent Celier  
2283
 
2284
        * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2285
        Move back spec of Parse_Single_Project to body, as it is not called
2286
        outside of package Prj.Part.
2287
        (Project_Data): Remove components Linker_Name, Linker_Path and
2288
        Minimum_Linker_Options as they are no longer set.
2289
        Remove function There_Are_Ada_Sources from package Prj and move code
2290
        in the only place it was used, in Prj.Env.Set_Ada_Paths.
2291
 
2292
2008-07-31  Arnaud Charlet  
2293
 
2294
        * mlib-utl.ads: Fix typo.
2295
 
2296
2008-07-31  Robert Dewar  
2297
 
2298
        * sem_ch12.adb: Minor reformatting
2299
 
2300
2008-07-31  Sergey Rybin  
2301
 
2302
        * gnat_ugn.texi: Change the description of the
2303
        Overly_Nested_Control_Structures: now the rule always requires a
2304
        positive parameter for '+R' option
2305
 
2306
2008-07-31  Thomas Quinot  
2307
 
2308
        * g-pehage.adb: Minor reformatting
2309
 
2310
2008-07-31  Pascal Obry  
2311
 
2312
        * s-finimp.ads: Minor reformatting.
2313
 
2314
2008-07-31  Vincent Celier  
2315
 
2316
        * s-regexp.ads: Minor comment fix
2317
 
2318
2008-07-31  Arnaud Charlet  
2319
 
2320
        * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2321
        so that we can compile this file successfully with -gnatc.
2322
 
2323
2008-07-31  Hristian Kirtchev  
2324
 
2325
        * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2326
        of the type when looking for stream subprograms for type String,
2327
        Wide_String and Wide_Wide_String.
2328
 
2329
        * s-ststop.adb: Change the initialization expression of constant
2330
        Use_Block_IO.
2331
 
2332
2008-07-31  Geert Bosch  
2333
 
2334
        * arit64.c:
2335
        New file implementing __gnat_mulv64 signed integer multiplication with
2336
        overflow checking
2337
 
2338
        * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2339
 
2340
        * gcc-interface/gigi.h:
2341
        (standard_types): Add ADT_mulv64_decl
2342
        (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2343
 
2344
        * gcc-interface/utils.c:
2345
        (init_gigi_decls): Add initialization of mulv64_decl
2346
 
2347
        * gcc-interface/trans.c:
2348
        (build_unary_op_trapv): New function
2349
        (build_binary_op_trapv): New function
2350
        (gnat_to_gnu): Use the above functions instead of
2351
        build_{unary,binary}_op
2352
 
2353
        * gcc-interface/Makefile.in
2354
        (LIBGNAT_SRCS): Add arit64.c
2355
        (LIBGNAT_OBJS): Add arit64.o
2356
 
2357
2008-07-31  Vincent Celier  
2358
 
2359
        * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2360
        Linker'Default_Switches are declared. Warn if they are declared.
2361
 
2362
2008-07-31  Ed Schonberg  
2363
 
2364
        * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2365
        Insert_Actions to place the pointer declaration in the code, rather
2366
        than Insert_Before_And_Analyze, so that insertions of temporaries are
2367
        kept in the proper order when transient scopes are present.
2368
 
2369
 
2370
2008-07-31  Robert Dewar  
2371
 
2372
        * einfo.adb (Spec_PPC): Now defined for generic subprograms
2373
 
2374
        * einfo.ads (Spec_PPC): Now defined for generic subprograms
2375
 
2376
        * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2377
        subprogram case
2378
 
2379
2008-07-31  Vincent Celier  
2380
 
2381
        * s-os_lib.adb: Minor comment fix
2382
 
2383
2008-07-31  Ed Schonberg  
2384
 
2385
        * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2386
        transfer pre/postconditions from generic copy to original tree, so that
2387
        they will appear in each instance.
2388
        (Process_PPCs): Do not transform postconditions into a procedure in a
2389
        generic context, to prevent double expansion of check pragmas.
2390
 
2391
        * sem_attr.adb: In an instance, the prefix of the 'result attribute
2392
        can be the renaming of the
2393
        current instance, so check validity of the name accordingly.
2394
 
2395
2008-07-31  Robert Dewar  
2396
 
2397
        * mlib-utl.ads: Minor reformatting
2398
 
2399
2008-07-31  Ed Schonberg  
2400
 
2401
        sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2402
        from context. This attribute must be usable in Ada95 mode.
2403
        The attribute can appear in the body of a function marked
2404
        Inline_Always, but in this case the postocondition is not enforced.
2405
 
2406
        sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2407
        of an inlined call pre- and postconditions are legal
2408
 
2409
2008-07-31  Vincent Celier  
2410
 
2411
        * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2412
        were for gprmake only
2413
 
2414
2008-07-31  Robert Dewar  
2415
 
2416
        * gnat_ugn.texi: Update -gnatN documentation.
2417
 
2418
        * gnat_rm.texi: Add note about pre/postcondition
2419
        pragmas not checked in conjunction with front-end inlining.
2420
 
2421
2008-07-31  Robert Dewar  
2422
 
2423
        * g-pehage.adb, g-pehage.ads: Minor reformatting
2424
 
2425
2008-07-31  Arnaud Charlet  
2426
 
2427
        * mlib-utl.ads, prj-makr.ads: Add comments.
2428
 
2429
2008-07-30  Aaron W. LaFramboise  
2430
 
2431
        * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
2432
        [WINDOWS]: Add s-winext.o.
2433
 
2434
2008-07-30  Eric Botcazou  
2435
 
2436
        PR ada/36554
2437
        * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2438
        * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2439
        * gcc-interface/decl.c (gnat_to_gnu_entity) :
2440
        Set precision to 1 for subtype of BOOLEAN_TYPE.
2441
        (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2442
        (make_type_from_size): Deal with BOOLEAN_TYPE.
2443
        * gcc-interface/misc.c (gnat_print_type): Likewise.
2444
        * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2445
        Set boolean_type_node as its translation in the table, as well
2446
        as boolean_false_node for False and boolean_true_node for True.
2447
        * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2448
        8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2449
        (create_param_decl): Deal with BOOLEAN_TYPE.
2450
        (build_vms_descriptor): Likewise.
2451
        (build_vms_descriptor64): Likewise.
2452
        (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2453
 
2454
2008-07-30  Robert Dewar  
2455
 
2456
        * exp_ch9.adb: Minor reformatting
2457
 
2458
        * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2459
        if no primitive operation is found.
2460
 
2461
        * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2462
 
2463
        * sem_ch8.adb: Minor reformatting
2464
 
2465
2008-07-30  Laurent Pautet  
2466
 
2467
        * g-pehage.adb:
2468
        Remove a limitation on the length of the words handled by the minimal
2469
        perfect hash function generator.
2470
 
2471
        * g-pehage.ads:
2472
        Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2473
        Fix some typos.
2474
 
2475
2008-07-30  Robert Dewar  
2476
 
2477
        * gnatlink.adb: Minor reformatting
2478
 
2479
2008-07-30  Thomas Quinot  
2480
 
2481
        * rtsfind.adb (Check_RPC): Check version consistency even when not
2482
        generating RCI stubs. Provide more detailed error message in case of
2483
        mismatch.
2484
 
2485
2008-07-30  Ed Schonberg  
2486
 
2487
        * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2488
        as a actual in an instance, check for a missing attribute to prevent
2489
        program_error on an illegal program.
2490
 
2491
        * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2492
        error if primitive is not found, so that exception can be handled
2493
        elsewhere on illegal programs.
2494
 
2495
2008-07-30  Robert Dewar  
2496
 
2497
        * uintp.adb (UI_GCD): Fix potential overflow
2498
 
2499
2008-07-30  Hristian Kirtchev  
2500
 
2501
        * einfo.adb: Flag245 is now used.
2502
        (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2503
        check to include functions.
2504
        (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2505
        (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2506
        include functions.
2507
        (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2508
        to the list of displayed flags.
2509
 
2510
        * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2511
        Wrapped_Entity. These two flags are now present in functions.
2512
        New flag Is_Private_Primitive.
2513
        (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2514
 
2515
        * exp_ch9.adb:
2516
        (Build_Wrapper_Bodies): New subprogram.
2517
        (Build_Wrapper_Body): The spec and body have been moved to in
2518
        Build_Wrapper_ Bodies. Code cleanup.
2519
        (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2520
        Wrappers are now generated for primitives declared between the private
2521
        and full view of a concurrent type that implements an interface.
2522
        (Build_Wrapper_Specs): New subprogram.
2523
        (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2524
        creation mechanism with a call to Build_Wrapper_Bodies.
2525
        (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2526
        wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2527
        (Expand_N_Task_Body): Replace the wrapper body creation
2528
        mechanism with a call to Build_Wrapper_Bodies.
2529
        (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2530
        creation mechanism with a call to Build_Wrapper_Specs.
2531
        (Is_Private_Primitive_Subprogram): New subprogram.
2532
        (Overriding_Possible): Code cleanup.
2533
        (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2534
 
2535
        * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2536
 
2537
        * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2538
        (Process_Full_View): Build wrapper specs for all primitives
2539
        that belong to a private view completed by a concurrent type
2540
        implementing an interface.
2541
 
2542
        * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2543
        is a primitive of a
2544
        concurrent type with a private view that implements an interface, try to
2545
        find the proper spec.
2546
        (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2547
        primitive if the type of its first parameter is a non-generic tagged
2548
        private type.
2549
        (Analyze_Subprogram_Specification): Code reformatting.
2550
        (Disambiguate_Spec): New routine.
2551
        (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2552
        (Is_Private_Concurrent_Primitive): New routine.
2553
 
2554
        * sem_ch6.ads:
2555
        (Find_Corresponding_Spec): Add a formal to control the output of errors.
2556
 
2557
2008-07-30  Doug Rupp  
2558
 
2559
        * gigi.h (build_vms_descriptor64): New function prototype.
2560
        (fill_vms_descriptor): Modified function prototype.
2561
 
2562
        * utils.c (build_vms_descriptor64): New function.
2563
 
2564
        * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2565
 
2566
        * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2567
        argument.
2568
 
2569
        * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2570
        64bit and 32bit descriptor and save the 64bit version as an alternate
2571
        TREE_TYPE in the parameter.
2572
        (make_type_from_size) : Use the appropriate mode for the
2573
        thin pointer.
2574
 
2575
        * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2576
 
2577
2008-07-30  Robert Dewar  
2578
 
2579
        * make.adb: Minor reformatting
2580
 
2581
        * mlib-utl.adb: Minor reformatting
2582
 
2583
        * osint.ads: Minor reformatting
2584
 
2585
2008-07-30  Jose Ruiz  
2586
 
2587
        * adaint.c
2588
        (__gnat_file_exists): Do not use __gnat_stat for RTX.
2589
        (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2590
        avoid the use of this symbol from libgcc.a in RTX kernel mode.
2591
 
2592
        * cio.c
2593
        (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2594
        the function RtPrintf for console output.
2595
 
2596
        * argv.c Do not use the environ variable for RTX.
2597
 
2598
        * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2599
        been moved before the call to Osint.Add_Default_Search_Dirs in order
2600
        to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2601
        from the appropriate run time.
2602
 
2603
        * targparm.ads
2604
        (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2605
        target is a RTSS module for RTX.
2606
 
2607
        * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2608
        RTX_RTSS_Kernel_Module
2609
        (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2610
 
2611
        * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2612
        exception handling mechanism for Windows and RTX in Win32 mode, but
2613
        not for RTX in kernel mode (RTSS).
2614
        (LIBGNAT_SRCS): Remove ada.h
2615
 
2616
2008-07-30  Paolo Bonzini  
2617
 
2618
        * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2619
        T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2620
        (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2621
        * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2622
        X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2623
        ALL_ADA_CFLAGS): Remove.
2624
        (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2625
        replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2626
        (GCC_CFLAGS): Remove X_CFLAGS.
2627
        (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2628
        (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2629
        (ADA_CFLAGS): Substitute.
2630
 
2631
2008-07-30  Laurent Guerby  
2632
 
2633
        PR ada/5911
2634
        * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2635
        Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2636
        Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2637
        * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2638
        by stamp-gnatlib2-rts.
2639
 
2640
2008-07-30  Ralf Wildenhues  
2641
 
2642
        PR documentation/15479
2643
        * gnat-style.texi: Remove AdaCore copyright statement and GPL
2644
        statement for GNAT.  Add @copying stanza, use it.  Update to
2645
        GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
2646
        title as Front-Cover Text.
2647
        * gnat_rm.texi: Likewise.
2648
        * gnat_ugn.texi: Likewise.
2649
 
2650
2008-07-29  Jan Hubicka  
2651
 
2652
        * trans.c (process_inlined_subprograms): Remove tree_really_inline
2653
        check.
2654
 
2655
2008-07-29  Arnaud Charlet  
2656
 
2657
        * gcc-interface: New directory.
2658
 
2659
        * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2660
        utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2661
        config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2662
        to gcc-interface subdirectory.
2663
 
2664
2008-07-29  Aaron W. LaFramboise  
2665
 
2666
        * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2667
 
2668
2008-07-28  Jan Hubicka  
2669
 
2670
        * misc.c (gnat_post_options): Do not set flag_no_inline.
2671
 
2672
2008-07-28  Richard Guenther  
2673
 
2674
        Merge from gimple-tuples-branch.
2675
 
2676
        2008-07-22  Olivier Hainque  
2677
 
2678
        * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2679
        this is called for an elab proc to be discarded if empty.
2680
        * utils.c (end_subprog_body): Honor ELAB_P.
2681
        (build_function_stub): Adjust call to end_subprog_body.
2682
        * trans.c (Subprogram_Body_to_gnu): Likewise.
2683
        (gigi): Reorganize processing of elab procs to prevent
2684
        gimplifying twice, using the new end_subprog_body argument.
2685
 
2686
        2008-07-19  Richard Guenther  
2687
 
2688
        * Make-lang.in (trans.o): Add tree-iterator.h dependency.
2689
        (utils.o): Likewise.
2690
        * trans.c: Include tree-iterator.h.
2691
        (gnat_gimplify_expr): Adjust prototype.  Fix typo.
2692
        (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
2693
        (set_expr_location_from_node): Likewise.
2694
        (gigi): Tuplify.
2695
        * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
2696
        of GENERIC_NEXT.
2697
        * utils.c: Include tree-iterator.h.
2698
        * gigi.h (gnat_gimplify_expr): Adjust prototype.
2699
 
2700
        2008-07-18  Aldy Hernandez  
2701
 
2702
        * trans.c: Include gimple.h instead of tree-gimple.h.
2703
        * utils.c: Same.
2704
 
2705
        2008-07-14  Aldy Hernandez  
2706
 
2707
        * trans.c (gnat_gimplify_expr): Use gimplify_assign.
2708
 
2709
2008-07-25  Jan Hubicka  
2710
 
2711
        * utils.c (end_subprog_body): Remove inline trees check.
2712
        * misc.c (gnat_post_options): Do not set flag_inline_trees.
2713
 
2714
2008-07-25  Rainer Orth  
2715
 
2716
        * raise-gcc.c: Move tsystem.h before tm.h.
2717
 
2718
2008-07-20  Arnaud Charlet  
2719
 
2720
        * gnathtml.pl: New file.
2721
 
2722
2008-07-19  Olivier Hainque  
2723
 
2724
        * targtyps.c (get_target_default_allocator_alignment): Use
2725
        MALLOC_ABI_ALIGNMENT.
2726
 
2727
2008-07-17  Olivier Hainque  
2728
 
2729
        * adaint.c (__MINGW32__ section): Include ctype.h and define
2730
        a fallback ISALPHA if IN_RTS.
2731
        (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
2732
 
2733
2008-07-17  Olivier Hainque  
2734
 
2735
        * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
2736
        argument, to apply to references in addition to definitions.  Prevent
2737
        setting TREE_STATIC on externals.
2738
        (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
2739
 
2740
2008-07-14  Ralf Wildenhues  
2741
 
2742
        PR documentation/15479
2743
        * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
2744
        Replace backets around optional parameters with @ovar
2745
        where possible, use @r{[}, @r{]} otherwise.
2746
        Replace some @r, @i, and @emph with @var where appropriate.
2747
 
2748
2008-07-02  Eric Botcazou  
2749
 
2750
        * decl.c (make_type_from_size) : Fix typo and tidy up.
2751
 
2752
2008-06-27  Kaveh R. Ghazi  
2753
 
2754
        * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
2755
        -Wc++-compat warnings.
2756
        * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
2757
        __gnat_locate_exec_on_path): Likewise.
2758
        * decl.c (annotate_value): Likewise.
2759
        * misc.c (gnat_handle_option): Likewise.
2760
        * trans.c (gnat_to_gnu, extract_encoding, decode_name,
2761
        post_error_ne_tree): Likewise.
2762
 
2763
2008-06-27  Eric Botcazou  
2764
 
2765
        * utils.c (convert) : When converting it to a packable
2766
        version of its type, attempt to first convert its elements.
2767
 
2768
2008-06-26  Chris Proctor  
2769
 
2770
        * Makefile.in: Fix *86 kfreebsd target specific pairs.
2771
 
2772
2008-06-25  Samuel Tardieu  
2773
 
2774
        * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
2775
 
2776
2008-06-24  Eric Botcazou  
2777
 
2778
        * utils2.c (known_alignment): Derive the alignment from pointed-to
2779
        types only if it is otherwise unknown.
2780
        : Tidy.
2781
        : Likewise.
2782
        : If the alignment of the offset is unknown, use
2783
        that of the base.
2784
 
2785
2008-06-20  John David Anglin  
2786
 
2787
        PR ada/36573
2788
        * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
2789
 
2790
2008-06-15  Ralf Wildenhues  
2791
 
2792
        * gnat_rm.texi (Implementation Defined Characteristics)
2793
        (Standard Library Routines): Use @smallexample for indented
2794
        text.  Drop Indentation outside examples.
2795
        * gnat_ugn.texi: Likewise.
2796
 
2797
2008-06-13  Olivier Hainque  
2798
 
2799
        * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
2800
        if undefined.
2801
        (gnat_to_gnu_entity) : Request stack
2802
        realignment with force_align_arg_pointer attribute on foreign
2803
        convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
2804
 
2805
2008-06-13  Olivier Hainque  
2806
 
2807
        * utils.c (rest_of_record_type_compilation): When computing
2808
        encodings for the components of a variable size type, early
2809
        strip conversions on the current position expression to make
2810
        sure it's shape is visible.  Use remove_conversions for this
2811
        purpose.
2812
 
2813
2008-06-12  Eric Botcazou  
2814
 
2815
        * decl.c (gnat_to_gnu_entity) : In the case of a
2816
        constrained subtype of a discriminated type, discard the fields that
2817
        are beyond its limits according to its size.
2818
 
2819
2008-06-10  Olivier Hainque  
2820
 
2821
        * utils.c (create_subprog_decl): If this is for the 'main' entry
2822
        point according to the asm name, redirect main_identifier_node.
2823
 
2824
2008-06-09  Eric Botcazou  
2825
 
2826
        * decl.c (components_to_record): Adjust the packedness for the
2827
        qualified union as well.
2828
 
2829
2008-06-09  Arnaud Charlet  
2830
 
2831
        * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
2832
        checks non fatal.
2833
 
2834
2008-06-07  Samuel Tardieu  
2835
 
2836
        * sem_res.adb (Large_Storage_Type): A type is large if it
2837
        requires as many bits as Positive to store its values and its
2838
        bounds are known at compile time.
2839
        * sem_ch13.adb (Minimum_Size): Note that this function returns
2840
 
2841
 
2842
2008-06-06  Nicolas Setton  
2843
            Olivier Hainque  
2844
 
2845
        * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
2846
        attribute, parallel descriptive type attached to another
2847
        type for debug info generation purposes.
2848
        * utils.c (add_parallel_type): New function, register
2849
        parallel type to be attached to a type.
2850
        (get_parallel_type): New function, fetch a registered
2851
        parallel type, if any.
2852
        (rest_of_record_type_compilation): Register the parallel
2853
        type we make for variable size records.
2854
        * gigi.h (add_parallel_type, get_parallel_type): Declare.
2855
        * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
2856
        parallel debug types we make.
2857
        * trans.c (extract_encoding, decode_name): New functions.
2858
        (gigi): If the DWARF attribute extensions are available, setup
2859
        to use them.
2860
        * lang.opt: Register language specific processing request
2861
        for -gdwarf+.
2862
        * misc.c (gnat_dwarf_extensions): New global variable. How much
2863
        do we want of our DWARF extensions. 0 by default.
2864
        (gnat_handle_option) : Increment gnat_dwarf_extensions.
2865
        (gnat_post_options): Map gnat_dwarf_extensions to the
2866
        commonuse_gnu_debug_info_extensions for later processing.
2867
 
2868
2008-06-04  Samuel Tardieu  
2869
 
2870
        * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
2871
 
2872
2008-06-03  Ralf Wildenhues  
2873
 
2874
        * Makefile.in (common_tools): Fix typos in $(exeext) extension.
2875
        * gnat_ugn.texi (Style Checking)
2876
        (Adding the Results of Compiler Checks to gnatcheck Output)
2877
        (Example of Binder Output File): Fix typos.
2878
        * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
2879
        exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
2880
        s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
2881
        s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
2882
        sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
2883
        sinfo.ads, utils.c: Fix typos in comments.
2884
        * sem_ch6.adb, vms_data.ads: Fix typos in strings.
2885
 
2886
2008-05-29  Thomas Quinot  
2887
 
2888
        * sem_eval.adb: Minor reformatting
2889
 
2890
2008-05-29  Ed Schonberg  
2891
 
2892
        * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
2893
        is abstract, do not apply abstractness check on subprogram if this is
2894
        a renaming declaration.
2895
 
2896
2008-05-29  Arnaud Charlet  
2897
 
2898
        PR ada/864
2899
        * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
2900
        allow recognition of program suffix in addition to prefix.
2901
 
2902
        * gnatchop.adb (Locate_Executable): Add support for prefix.
2903
 
2904
        * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
2905
        mlib-utl.adb: Adjust calls to Program_Name.
2906
 
2907
2008-05-29  Robert Dewar  
2908
 
2909
        * sem_ch3.adb: Minor reformatting
2910
        * sem_prag.adb: Minor reformatting
2911
        * sem_res.adb: Minor reformatting
2912
        * sinput-p.ads: Minor reformatting
2913
 
2914
2008-05-29  Javier Miranda  
2915
 
2916
        * sem_util.adb:
2917
        (Abstract_Interface_List): Add missing support for full type-declaration
2918
        associated with synchronized types.
2919
 
2920
2008-05-29  Robert Dewar  
2921
 
2922
        * sem_eval.adb (Is_Same_Value): Take care of several more cases
2923
 
2924
2008-05-28  Ed Schonberg  
2925
 
2926
        * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
2927
        access type, wrap the expression in a conversion to force an
2928
        accessibility check.
2929
 
2930
        * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
2931
        accessibility checks even when expansion is disabled in order to
2932
        generate messages in the presence of previous errors or in
2933
        semantics-only mode.
2934
 
2935
2008-05-28  Eric Botcazou  
2936
 
2937
        * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
2938
        * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
2939
 
2940
2008-05-28  Vincent Celier  
2941
 
2942
        PR ada/34446
2943
        * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
2944
        preprocessing expressions
2945
 
2946
2008-05-28  Vincent Celier  
2947
 
2948
        * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
2949
        for preprocessing
2950
 
2951
        * sinput-p.ads: Minor comment update and reformatting
2952
 
2953
2008-05-28  Ed Schonberg  
2954
 
2955
        * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
2956
        type has a deeper level than any master only when it is the type of an
2957
        access parameter.
2958
 
2959
2008-05-28  Javier Miranda  
2960
 
2961
        * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
2962
 
2963
2008-05-28  Javier Miranda  
2964
 
2965
        * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
2966
        * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
2967
        * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
2968
        Add code that was previously located in
2969
        Find_Overridden_Synchronized_Primitive because it is only used here.
2970
 
2971
2008-05-28  Sergey Rybin  
2972
 
2973
        * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
2974
        Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
2975
 
2976
2008-05-28  Robert Dewar  
2977
 
2978
        * restrict.ads:
2979
        Add missing restrictions, and properly label all GNAT defined ones
2980
 
2981
        * rtsfind.ads:
2982
        Add entry for Ada_Real_Time.Timing_Events.Timing_Event
2983
        Add entry for Ada.Task_Termination.Set_Specific_Handler
2984
        Add entry for Ada.Task_Termination.Specific_Handler
2985
 
2986
        * s-rident.ads:
2987
        Add missing restrictions and properly mark all gnat defined ones
2988
 
2989
        * sem_ch3.adb:
2990
        (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
2991
 
2992
        * sem_res.adb:
2993
        (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2994
 
2995
        * gnat_rm.texi: Add missing restrictions, and properly label all
2996
        GNAT defined ones
2997
 
2998
2008-05-28  Robert Dewar  
2999
 
3000
        * restrict.adb:
3001
        (Check_Restriction): violation of restriction No_Finalization is
3002
        treated as a serious error to stop expansion
3003
 
3004
2008-05-28  Robert Dewar  
3005
 
3006
        * exp_util.adb: Minor reformatting
3007
        * exp_util.ads: Minor reformatting.
3008
 
3009
2008-05-28  Arnaud Charlet  
3010
 
3011
        * Make-lang.in: Remove gprmake.
3012
 
3013
        * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3014
 
3015
2008-05-28  Ed Schonberg  
3016
 
3017
        * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3018
        improper progenitor names, and avoid cascaded errors.
3019
 
3020
2008-05-28  Robert Dewar  
3021
 
3022
        * gnat_rm.texi: Add note on Old giving warning when applied to constant
3023
 
3024
        * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
3025
        a constant
3026
 
3027
2008-05-28  Robert Dewar  
3028
 
3029
        * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
3030
        size
3031
 
3032
2008-05-28  Robert Dewar  
3033
 
3034
        * exp_ch5.adb:
3035
        (Expand_Simple_Function_Return): Copy unaligned result into temporary
3036
 
3037
2008-05-28  Javier Miranda  
3038
 
3039
        * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
3040
        for user-defined predefined primitives.
3041
 
3042
        * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
3043
        (Find_Overridden_Synchronized_Primitive): Ditto.
3044
 
3045
        * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
3046
 
3047
2008-05-27  Arnaud Charlet  
3048
 
3049
        * a-ststio.adb, s-direio.adb:
3050
        Further code clean up of previous change.
3051
        Update comments.
3052
 
3053
2008-05-27  Vincent Celier  
3054
 
3055
        * prj-nmsc.adb: Minor reformatting
3056
 
3057
2008-05-27  Bob Duff  
3058
 
3059
        * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
3060
        untagged private type with a tagged full type, where the full type has
3061
        a self reference, create the corresponding class-wide type early, in
3062
        case the self reference is "access T'Class".
3063
 
3064
2008-05-27  Ed Schonberg  
3065
 
3066
        * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
3067
        tasks and context is an object declaration. create master entity before
3068
        expansion.
3069
 
3070
2008-05-27  Robert Dewar  
3071
 
3072
        * mlib-prj.adb: Minor reformatting
3073
 
3074
        * prj-part.adb: Minor reformatting
3075
 
3076
        * prj.ads: Minor reformatting
3077
 
3078
        * exp_ch3.adb: Minor reformatting.
3079
 
3080
        * sem_ch3.ads: Minor reformatting
3081
 
3082
        * sem_eval.adb: Minor reformatting
3083
 
3084
2008-05-27  Vincent Celier  
3085
 
3086
        * gnatcmd.adb:
3087
        -gnat stack spawns gnatstack, not -gnatstack
3088
 
3089
2008-05-27  Ed Schonberg  
3090
 
3091
        * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
3092
        tasks, create an activation chain now, before the expansion into
3093
        assignments and build-in-place calls that require the presence of an
3094
        activation chain.
3095
        (Backend_Processing_Possible): If the component type is inherently
3096
        limited, the aggregate must be expanded into individual built-in-place
3097
        assignments.
3098
 
3099
        * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
3100
        determine whether an allocation extra parameter must be built, to
3101
        handle case of a private type whose full type is a discriminated type
3102
        with defaults.
3103
 
3104
2008-05-27  Bob Duff  
3105
 
3106
        * gnat_rm.texi:
3107
        Document the new behavior regarding trampolines.
3108
 
3109
2008-05-27  Arnaud Charlet  
3110
 
3111
        * a-direio.adb, a-sequio.adb: Replace address clause by
3112
        unrestricted_access, simpler and compatible with .NET.
3113
 
3114
2008-05-27  Vincent Celier  
3115
 
3116
        * prj-part.adb:
3117
        (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
3118
        a project file, so that symbolic links are not resolved.
3119
 
3120
2008-05-27  Arnaud Charlet  
3121
 
3122
        * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3123
        Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3124
        portable across GNAT targets, since this kind of address clause is not
3125
        supported by VM back-ends (.NET/JGNAT).
3126
 
3127
2008-05-27  Arnaud Charlet  
3128
 
3129
        * bindgen.adb: Update comments.
3130
 
3131
        * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3132
 
3133
2008-05-27  Vincent Celier  
3134
 
3135
        * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3136
        prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3137
        mlib-tgt.adb, prj-env.adb, prj-env.ads:
3138
        (Path_Information): New record type
3139
        Use component of type Path_Information when there are two paths, one in
3140
        canonical format and one in display format.
3141
        Update the project manager to these new components.
3142
 
3143
2008-05-27  Robert Dewar  
3144
 
3145
        * makeutl.adb: Minor reformatting
3146
        * prj-nmsc.adb: Minor reformatting
3147
        * s-stausa.adb: Minor reformatting
3148
        * s-stausa.ads: Minor reformatting
3149
        * sem_ch6.adb: Minor reformatting
3150
 
3151
2008-05-27  Thomas Quinot  
3152
 
3153
        * sem_res.adb: Minor comment fixes
3154
 
3155
2008-05-27  Thomas Quinot  
3156
 
3157
        * makeutl.adb: Minor code reorganization
3158
 
3159
        * exp_aggr.adb: Add ??? comment
3160
        Fix typo
3161
 
3162
        * exp_ch6.adb: Minor reformatting
3163
 
3164
2008-05-27  Quentin Ochem  
3165
 
3166
        * s-stausa.adb (Initialize): Updated result initialization, and
3167
        initialization of environment stack.
3168
        (Fill_Stack): Improved computation of the pattern zone, taking into
3169
        account already filled at the calling point.
3170
        (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3171
        Measure and Overflow_Guard.
3172
        (Report_Result): Fixed computation of the result using new fields of
3173
        Stack_Analyzer.
3174
 
3175
        * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3176
        params by more explicit Stack_Size / Max_Pattern_Size params.
3177
        (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3178
        Added Stack_Used_When_Filling field.
3179
        (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3180
        Min_Measure and Max_Measure fields.
3181
 
3182
        * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3183
 
3184
2008-05-27  Vincent Celier  
3185
 
3186
        * prj-nmsc.adb:
3187
        (Check_File): Make sure that a unit that replaces the same unit in a
3188
         project being extended is properly processed.
3189
 
3190
2008-05-27  Ed Schonberg  
3191
 
3192
        * sem_ch3.adb:
3193
        (Get_Discr_Value): Remove obsolete code that failed to find the value
3194
        of a discriminant for an inherited task component appearing in a type
3195
        extension.
3196
 
3197
2008-05-27  Thomas Quinot  
3198
 
3199
        (System.File_IO.{Close, Delete, Reset}):
3200
        Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
3201
 
3202
        (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3203
        Pass File parameter by reference.
3204
 
3205
2008-05-27  Vincent Celier  
3206
 
3207
        * prj-nmsc.adb:
3208
        (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3209
        sources of the same project that have the same object file name.
3210
        (Find_Explicit_Sources): Always remove a source exception that was not
3211
        found.
3212
 
3213
2008-05-27  Thomas Quinot  
3214
 
3215
        * sem_ch3.adb: Minor reformatting
3216
 
3217
2008-05-27  Ed Schonberg  
3218
 
3219
        * sem_ch6.adb:
3220
        (Is_Interface_Conformant): Handle properly a primitive operation that
3221
        overrides an interface function with a controlling access result.
3222
        (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3223
        inherited and overriding operations, omit as well the conformance check
3224
        on result types, to prevent spurious errors.
3225
 
3226
2008-05-27  Vincent Celier  
3227
 
3228
        * makeutl.ads, makeutl.adb:
3229
        (Set_Location): New procedure
3230
        (Get_Location): New function
3231
        (Update_Main): New procedure
3232
 
3233
2008-05-27  Vincent Celier  
3234
 
3235
        * prj-nmsc.adb:
3236
        (Check_Library): Allow standard project to be extended as a static
3237
        library project.
3238
        (Get_Mains): Do not inherit attribute Main in an extending library
3239
        project.
3240
 
3241
2008-05-27  Eric Botcazou  
3242
 
3243
        * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3244
        * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3245
        * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3246
        * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3247
        * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3248
        * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3249
        * system-mingw.ads (Always_Compatible_Rep): Likewise.
3250
        * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3251
        * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3252
        * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
3253
 
3254
2008-05-27  Ed Schonberg  
3255
 
3256
        * sem_attr.adb: add guard to previous patch.
3257
 
3258
2008-05-27  Ed Schonberg  
3259
 
3260
        * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3261
        a synchronized tagged type, do not attempt to build dispatch table for
3262
        full view. The table is built for the corresponding record type, which
3263
        has its own declaration.
3264
 
3265
2008-05-27  Gary Dismukes  
3266
 
3267
        * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3268
        to the known type entity E, rather than setting it to Any_Type. Fixes
3269
        possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3270
        for objects whose type had an illegal constraint.
3271
 
3272
2008-05-27  Vincent Celier  
3273
 
3274
        * gnat_ugn.texi:
3275
        Add succinct documentation for attribute Excluded_Source_List_File
3276
 
3277
2008-05-27  Vincent Celier  
3278
 
3279
        * prj-attr.adb: Add new project level attribute Map_File_Option
3280
 
3281
        * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
3282
 
3283
        * prj.ads: Minor reformatting and comment update
3284
        (Project_Configuration): New component Map_File_Option
3285
 
3286
        * snames.adb: New standard name Map_File_Option
3287
 
3288
        * snames.ads: New standard name Map_File_Option
3289
 
3290
2008-05-27  Vincent Celier  
3291
 
3292
        * xsnames.adb: Remove unused variable Oname
3293
 
3294
2008-05-27  Doug Rupp  
3295
 
3296
        * exp_ch6.adb:
3297
        (Expand_N_Function_Call): Fix comments. Minor reformatting.
3298
 
3299
        * exp_vfpt.ads:
3300
        (Expand_Vax_Foreign_Return): Fix comments.
3301
 
3302
2008-05-27  Thomas Quinot  
3303
 
3304
        * exp_dist.adb: Minor reformating
3305
 
3306
2008-05-26  Gary Dismukes  
3307
 
3308
        * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3309
        No_Default_Initialization, which is now delayed until the freeze point
3310
        of the object. Add a comment about deferral of the check.
3311
 
3312
        * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3313
        on objects is moved here.
3314
 
3315
2008-05-26  Eric Botcazou  
3316
 
3317
        * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3318
        (Compare_Array_S16): Adjust for above change.
3319
        * s-casi32.adb (Uword): Likewise.
3320
        (Compare_Array_S32): Likewise.
3321
        * s-casi64.adb (Uword): Likewise.
3322
        (Compare_Array_S64): Likewise.
3323
        * s-caun16.adb (Uhalf): Likewise.
3324
        (Compare_Array_U16): Likewise.
3325
        * s-caun32.adb (Uword): Likewise.
3326
        (Compare_Array_U32): Likewise.
3327
        * s-caun64.adb (Uword): Likewise.
3328
        (Compare_Array_U64): Likewise.
3329
 
3330
2008-05-26  Robert Dewar  
3331
 
3332
        * exp_ch6.adb: Add ??? comment for previous change
3333
 
3334
        * exp_vfpt.adb: Minor reformatting
3335
 
3336
        * exp_vfpt.ads: Add ??? comment for last change
3337
 
3338
        * sem_attr.adb: Add some ??? comments for previous change
3339
 
3340
        * s-vaflop.ads: Add comments for previous change
3341
 
3342
2008-05-26  Doug Rupp  
3343
 
3344
        * s-vaflop-vms-alpha.adb:
3345
        Remove System.IO use clause, to prevent spurious ambiguities when
3346
        package is access through rtsfind.
3347
 
3348
2008-05-26  Sergey Rybin  
3349
 
3350
        * tree_io.ads (ASIS_Version_Number): Update because of the changes
3351
        made in front-end
3352
 
3353
2008-05-26  Ed Schonberg  
3354
 
3355
        * sem_attr.adb:
3356
        (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
3357
        converted to S (A)'address only if A .. B is known to be a non-null
3358
        range.
3359
 
3360
2008-05-26  Doug Rupp  
3361
 
3362
        * s-vaflop.adb:
3363
        (Return_D, Return_F, Return_G): New functions.
3364
 
3365
        * s-vaflop.ads:
3366
        (Return_D, Return_F, Return_G): New functions.
3367
 
3368
        * exp_vfpt.adb:
3369
        (Expand_Vax_Foreign_Return): New procedure
3370
 
3371
        * exp_vfpt.ads:
3372
        (Expand_Vax_Foreign_Return): New procedure
3373
 
3374
        * rtsfind.ads:
3375
        (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3376
        (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3377
 
3378
        * exp_ch6.adb:
3379
        Import Exp_Vfpt
3380
        (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3381
 
3382
        * s-vaflop-vms-alpha.adb:
3383
        (Return_D, Return_F, Return_G): New functions.
3384
 
3385
2008-05-26  Gary Dismukes  
3386
 
3387
        * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3388
        init proc entity when there is actual default initialization associated
3389
        with the component type, to avoid spurious errors on objects of scalar
3390
        array types that are marked Is_Public when No_Default_Initialization
3391
        applies.
3392
 
3393
2008-05-26  Thomas Quinot  
3394
 
3395
        * rtsfind.ads, rtsfind.adb:
3396
        (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3397
        (Check_RPC): Support per-PCS-kind API versioning.
3398
 
3399
        exp_dist.ads, exp_dist.adb:
3400
        (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3401
        (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3402
         library function Get_RACW.
3403
        (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3404
        library function Get_Reference.
3405
        (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3406
        through an intermediate Any.
3407
        (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3408
        going through an intermediate Any.
3409
 
3410
        * sem_dist.adb: Minor reformatting.
3411
 
3412
2008-05-26  Javier Miranda  
3413
 
3414
        * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3415
        (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3416
        (Is_Internal): Adding documentation on internal entities that have
3417
        attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3418
 
3419
        * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3420
        (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3421
        Added assertion to force entities with this attribute to have
3422
        attribute Is_Internal set to True.
3423
        (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3424
 
3425
        * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3426
        renamed as Derive_Progenitor_Subprograms. In addition, its code is
3427
        a new implementation.
3428
        (Add_Interface_Tag_Components): Remove special management of
3429
        synchronized interfaces.
3430
        (Analyze_Interface_Declaration): Minor reformating
3431
        (Build_Derived_Record_Type): Minor reformating
3432
        (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3433
        predefined primitive inherited from interface type because the body of
3434
        internally generated predefined primitives of tagged types are generated
3435
        later by Freeze_Type
3436
        (Derive_Subprogram): Avoid generating an internal name if the parent
3437
        subprogram overrides an interface primitive.
3438
        (Derive_Subprograms): New implementation that keeps separate the
3439
        management of tagged types not implementing interfaces, from tagged
3440
        types that implement interfaces.
3441
        (Is_Progenitor): New implementation.
3442
        (Process_Full_View): Add documentation
3443
        (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3444
        by call to Derive_Progenitor_Subprograms.
3445
 
3446
        * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3447
        (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3448
        Skip_Controlling_Formals.
3449
 
3450
        * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3451
        (Check_Conventions): New implementation. Remove local subprogram
3452
        Skip_Check. Remove formal Search_From of routine Check_Convention.
3453
        (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3454
        Skip_Controlling_Formals.
3455
        (New_Overloaded_Entity): Enable addition of predefined dispatching
3456
        operations.
3457
 
3458
        * sem_disp.ads
3459
        (Find_Primitive_Covering_Interface): New subprogram.
3460
 
3461
        * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3462
        the task body procedure as a primitive of the corresponding tagged
3463
        type.
3464
        (Check_Operation_From_Private_Type): Avoid adding twice an entity
3465
        to the list of primitives.
3466
        (Find_Primitive_Covering_Interface): New subprogram.
3467
        (Override_Dispatching_Operation): Add documentation.
3468
 
3469
        * sem_type.adb (Covers): Minor reformatings
3470
 
3471
        * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3472
        Collect_Interfaces.
3473
        Rename formal.
3474
        (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3475
        (Implements_Interface): New subprogram.
3476
        (Is_Parent): Removed.
3477
        (Primitive_Names_Match): New subprogram.
3478
        (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3479
        (Ultimate_Alias): New subprogram.
3480
 
3481
        * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3482
        Collect_Interfaces.
3483
        Remove special management for synchronized types. Rename formal. Remove
3484
        internal subprograms Interface_Present_In_Parent and Add_Interface.
3485
        (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3486
        on non-record types by code to return false in such case.
3487
        (Implements_Interface): New subprogram.
3488
        (Is_Parent): Removed. No special management is now required for
3489
        synchronized types covering interfaces.
3490
        (Primitive_Names_Match): New subprogram.
3491
        (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3492
        (Ultimate_Alias): New subprogram.
3493
 
3494
        * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3495
        Add internal entities associated with secondary dispatch tables to
3496
        the list of tagged type primitives that are not interfaces.
3497
        (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3498
        (Make_Predefined_Primitive_Specs): Code reorganization to improve
3499
        the management of predefined equality operator. In addition, if
3500
        the type has an equality function corresponding with a primitive
3501
        defined in an interface type, the inherited equality is abstract
3502
        as well, and no body can be created for it.
3503
 
3504
        * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3505
        exp_util to exp_disp.
3506
        (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3507
        an entity corresponds with one of the predefined primitives required
3508
        to implement interfaces.
3509
        Update copyright notice.
3510
 
3511
        * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3512
        final check on abstract subprograms all the primitives associated with
3513
        interface primitives because they must be visible in the public and
3514
        private part.
3515
        (Write_DT): Use Find_Dispatching_Type to locate the name of the
3516
        interface type. This allows the use of this routine, for debugging
3517
        purposes, when the tagged type is not fully decorated.
3518
        (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3519
        Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3520
        (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3521
        entity corresponds with one of the predefined primitives required to
3522
        implement interfaces.
3523
 
3524
        * exp_util.adb (Find_Interface_ADT): New implementation
3525
        (Find_Interface): Removed.
3526
 
3527
        * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3528
        list of interfaces associated with nodes
3529
        N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3530
 
3531
2008-05-26  Thomas Quinot  
3532
 
3533
        * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3534
        condition for assignment to temporary.
3535
 
3536
2008-05-26  Ed Schonberg  
3537
 
3538
        * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3539
        checks on the upper bound if the index type is a modular type, to
3540
        prevent wrap-around computations when size is close to upper bound of
3541
        type.
3542
 
3543
2008-05-26  Robert Dewar  
3544
 
3545
        * sem_ch3.adb: Minor reformatting
3546
 
3547
2008-05-26  Ed Schonberg  
3548
 
3549
        * sem_ch12.adb (Remove_Parent): Use specification of instance
3550
        to retrieve generic parent,
3551
        to handle properly the case where the instance is a child unit.
3552
        Add guard to handle properly wrapper packages.
3553
        Minor reformatting
3554
 
3555
2008-05-26  Thomas Quinot  
3556
 
3557
        * sinfo.ads: Minor reformatting
3558
 
3559
2008-05-26  Hristian Kirtchev  
3560
 
3561
        * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3562
        Generate a tag check when the result subtype of a function, defined by
3563
        an access definition, designates a specific tagged type.
3564
        (Make_Tag_Check): New routine.
3565
 
3566
2008-05-26  Arnaud Charlet  
3567
 
3568
        * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3569
 
3570
2008-05-26  Eric Botcazou  
3571
 
3572
        * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3573
        (builtin_decl_for): Likewise.
3574
        * trans.c (gigi): Likewise.
3575
        * utils.c (def_builtin_1): Fix formatting.
3576
 
3577
2008-05-26  Hristian Kirtchev  
3578
 
3579
        * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3580
        Create the statements which map a string name to protected or task
3581
        entry indix.
3582
 
3583
        * exp_ch9.adb: Add with and use clause for Stringt.
3584
        Minor code reformatting.
3585
        (Build_Entry_Names): New routine.
3586
        (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3587
        for flag Build_Entry_Names which controls the allocation of the data
3588
        structure for the string names of entries.
3589
 
3590
        * exp_ch9.ads (Build_Entry_Names): New subprogram.
3591
 
3592
        * exp_util.adb (Entry_Names_OK): New function.
3593
 
3594
        * exp_util.ads (Entry_Names_OK): New function.
3595
 
3596
        * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3597
        enumerations RE_Id and RE_Unit_Table.
3598
 
3599
        * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3600
        (Free_Entry_Names_Array): New routine.
3601
 
3602
        * s-taskin.ads: Comment reformatting.
3603
        Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3604
        Add component Entry_Names to record Ada_Task_Control_Block.
3605
        (Free_Entry_Names_Array): New routine.
3606
 
3607
        * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3608
        dynamically allocate an array
3609
        of string pointers. This structure holds string entry names.
3610
        (Free_Entry_Names): New routine.
3611
        (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3612
        (Set_Entry_Names): New routine.
3613
 
3614
        * s-tassta.ads:
3615
        (Create_Task): Add formal Build_Entry_Names. The flag is used to
3616
        control the allocation of the data structure which stores entry names.
3617
        (Set_Entry_Name): New routine.
3618
 
3619
        * s-tpoben.adb:
3620
        Add with and use clause for Ada.Unchecked_Conversion.
3621
        (Finalize): Deallocate the entry names array.
3622
        (Free_Entry_Names): New routine.
3623
        (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3624
        create an array of string pointers to hold the entry names.
3625
        (Set_Entry_Name): New routine.
3626
 
3627
        * s-tpoben.ads:
3628
        Add field Entry_Names to record Protection_Entries.
3629
        (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3630
        (Set_Entry_Name): New routine.
3631
 
3632
2008-05-26  Vincent Celier  
3633
 
3634
        * prj-nmsc.adb:
3635
        (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3636
 
3637
        * prj.ads:
3638
        (Project_Configuration): New component Shared_Lib_Driver
3639
 
3640
2008-05-26  Ed Schonberg  
3641
 
3642
        * inline.adb:
3643
        (Cleanup_Scopes): For a protected operation, transfer finalization list
3644
        to protected body subprogram, to force cleanup actions when needed.
3645
 
3646
2008-05-26  Robert Dewar  
3647
 
3648
        * sem_cat.adb: Minor reformatting
3649
 
3650
        * gnatname.adb: Minor reformatting
3651
 
3652
        * osint.ads: Minor reformatting
3653
 
3654
        * s-carun8.ads: Minor reformatting
3655
 
3656
        * g-heasor.ads: Minor comment fix (unit is now pure)
3657
 
3658
2008-05-26  Robert Dewar  
3659
 
3660
        * exp_ch2.adb:
3661
        (Expand_Current_Value): Properly type generated integer literal
3662
 
3663
2008-05-26  Sergey Rybin  
3664
 
3665
        * gnat_ugn.texi: Add description for the new gnatcheck rule -
3666
        Separate_Numeric_Error_Handlers.
3667
 
3668
2008-05-26  Pascal Obry  
3669
 
3670
        * sem_aggr.adb: Minor reformatting.
3671
 
3672
2008-05-26  Jose Ruiz  
3673
 
3674
        * s-osinte-aix.adb:
3675
        (To_Target_Priority): Setting the time slice value to 0 or greater sets
3676
        the scheduling policy to FIFO within priorities or round-robin
3677
        respectively.
3678
        Hence, the priority must be set in this case to the one selected by the
3679
        user.
3680
 
3681
2008-05-26  Ed Schonberg  
3682
 
3683
        * sem_ch12.adb:
3684
        (Remove_Parent): If the enclosing scope is an instance whose generic
3685
        parent is declared within some parent scope of the just completed
3686
        instance, make full views of the entities in that parent visible, when
3687
        applicable.
3688
 
3689
2008-05-26  Kai Tietz  
3690
 
3691
        * mingw32.h (STD_MINGW): Set to true for target w64.
3692
 
3693
2008-05-25  Eric Botcazou  
3694
 
3695
        * trans.c (Attribute_to_gnu) : Set TREE_NO_TRAMPOLINE
3696
        instead of TREE_STATIC on the ADDR_EXPR.
3697
 
3698
2008-05-24  Eric Botcazou  
3699
 
3700
        * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
3701
        (Sloc_to_locus): Do not overwrite known GCC locations when translating
3702
        GNAT standard locations.
3703
 
3704
2008-05-23  Eric Botcazou  
3705
 
3706
        * gigi.h (mark_visited): Declare.
3707
        * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
3708
        only the topmost node of expressions.
3709
        (elaborate_expression_1): Look deeper for read-only variables.
3710
        * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
3711
        (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
3712
        (mark_visited_r): New function.
3713
 
3714
2008-05-23  Vincent Celier  
3715
 
3716
        * snames.adb: New standard name Excluded_Source_List_File.
3717
 
3718
        * snames.ads: New standard name Excluded_Source_List_File.
3719
 
3720
        * prj-attr.adb: New project level attribute Excluded_Source_List_File.
3721
 
3722
        * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
3723
        Get excluded sources from
3724
        file indicated by attribute Excluded_Source_List_File, when present and
3725
        neither Excluded_Source_Files nor Locally_Removed_Files are declared.
3726
 
3727
2008-05-23  Robert Dewar  
3728
 
3729
        * exp_dist.adb: Minor reformatting
3730
 
3731
2008-05-23  Ed Schonberg  
3732
 
3733
        * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
3734
        slice, convert it to an indexed component, which is equivalent, more
3735
        efficient, and usable even if the slice itself is not addressable.
3736
 
3737
2008-05-23  Olivier Hainque  
3738
 
3739
        * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
3740
        convention also allows access to named compiler built-in subprograms
3741
        such as the GCC __builtin family.
3742
 
3743
2008-05-23  Vincent Celier  
3744
 
3745
        * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
3746
        sep. If there are several possibilities, choose the one with the
3747
        longer prefix.
3748
 
3749
2008-05-23  Vincent Celier  
3750
 
3751
        * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
3752
        back end switches when executable specified with --GCC= is same as
3753
        default, even if there are additional options.
3754
 
3755
        * gnat_ugn.texi:
3756
        Document when the back end switches from the ALI file are taken into
3757
        account when gnatlink is invoked with --GCC=
3758
 
3759
2008-05-23  Thomas Quinot  
3760
 
3761
        * s-os_lib.adb:
3762
        (copy_File): Do not open destination file if source file is unreadable.
3763
 
3764
2008-05-23  Eric Botcazou  
3765
 
3766
        * utils.c (handle_type_generic_attribute): Adjust to accept
3767
        fixed arguments before an elipsis.
3768
 
3769
2008-05-21  Thomas Quinot  
3770
 
3771
        * g-sothco.ads, g-sothco.adb: New files.
3772
 
3773
2008-05-20  Thomas Quinot  
3774
 
3775
        * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
3776
 
3777
        * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
3778
        Add missing "with" of Ada.Unchecked_Conversion
3779
 
3780
        * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
3781
        g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
3782
        g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3783
        g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3784
        g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
3785
        g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
3786
        Move common code out of GNAT.Sockets.Thin implementations and into
3787
        Thin_Common.
3788
        New constant SIZEOF_fd_set
3789
        New flag Has_Sockaddr_Len
3790
        New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3791
 
3792
        * g-stsifd-sockets.adb
3793
        (Create): Remove call to Set_Length; use Set_Family to set the family
3794
        and (on appropriate platforms) length fields in struct sockaddr.
3795
 
3796
        * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
3797
        g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
3798
        g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
3799
        Move common code out of GNAT.Sockets.Thin implementations and into
3800
        Thin_Common.
3801
 
3802
        * g-socket.ads, g-socket.adb:
3803
        Move common code out of GNAT.Sockets.Thin implementations and into
3804
        Thin_Common.
3805
        (Connect_Socket, Accept_Socket): Provide new versions of these two
3806
        routines that operate with a user specified timeout.
3807
        (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
3808
        this is now handled automatically by Set_Family on platforms that
3809
        require it.
3810
 
3811
        * gen-soccon.c:
3812
        Move common code out of GNAT.Sockets.Thin implementations and into
3813
        Thin_Common.
3814
        (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
3815
        this constant to 0 (not -1) because we use it to initialize an
3816
        unsigned_char value.
3817
        Align values for numeric constants only.
3818
        Handle the case of systems that do not support AF_INET6.
3819
        New constant SIZEOF_fd_set
3820
        New flag Has_Sockaddr_Len
3821
        New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3822
 
3823
        * gsocket.h: New flag Has_Sockaddr_Len
3824
        New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3825
 
3826
2008-05-20  Santiago Uruena  
3827
 
3828
        * i-cobol.ads: Interfaces.COBOL should be preelaborate.
3829
 
3830
2008-05-20  Arnaud Charlet  
3831
 
3832
        * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
3833
        the underlying issue with malloc/free has been fixed. Remove associated
3834
        comments.
3835
        Minor reformatting.
3836
        Related to PR ada/24533
3837
 
3838
2008-05-20  Robert Dewar  
3839
 
3840
        * ali.adb: Correct casing of ASCII.NUL
3841
 
3842
        * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
3843
        properly.
3844
 
3845
2008-05-20  Robert Dewar  
3846
            Gary Dismukes  
3847
 
3848
        * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
3849
        overflow if result converted to wider integer type.
3850
        (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
3851
        discriminated types when discriminant checks are suppressed.
3852
 
3853
2008-05-20  Vincent Celier  
3854
 
3855
        * cstand.adb (Print_Standard): Issue the correct Size clause for type
3856
        Wide_Wide_Character.
3857
 
3858
2008-05-20  Tristan Gingold  
3859
 
3860
        * decl.c: Do not emit a variable for a object that has an address
3861
        representation clause whose value is known at compile time.
3862
        When a variable has an address clause whose value is known at compile
3863
        time, refer to this variable by using directly the address instead of
3864
        dereferencing a pointer.
3865
 
3866
2008-05-20  Robert Dewar  
3867
 
3868
        PR ada/30740
3869
        * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
3870
        subtypes, always False for non-modular types.
3871
        Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
3872
        entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
3873
        for Shared_Storage package.
3874
        (Is_RACW_Stub_Type): New entity flag.
3875
 
3876
        * exp_ch4.adb
3877
        (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
3878
        case where we have a modular type with a non-binary modules.
3879
        Comments reformattings.
3880
 
3881
        * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
3882
        all types.
3883
 
3884
2008-05-20  Javier Miranda  
3885
 
3886
        * exp_aggr.adb
3887
        (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
3888
        tests did not covered the case in which the type of the aggregate has
3889
        no progenitors but some its parents has progenitors.
3890
 
3891
2008-05-20  Gary Dismukes  
3892
            Hristian Kirtchev  
3893
 
3894
        * exp_ch3.adb
3895
        (Expand_N_Object_Declaration): Correct the condition which triggers the
3896
        generation of a call to Displace when initializing a class-wide object.
3897
        (Build_Dcheck_Functions): Build discriminant-checking for null variants
3898
        when Frontend_Layout_On_Target is true to ensure that they're available
3899
        for calling when a record variant size function is built in Layout.
3900
 
3901
2008-05-20  Ed Schonberg  
3902
 
3903
        * exp_ch5.adb (Expand_Assign_Record): Within an initialization
3904
        procedure for a derived type retrieve the discriminant values from the
3905
        parent using the corresponding discriminant.
3906
        (Expand_N_Assignment_Statement): Skip generation of implicit
3907
        if-statement associated with controlled types if we are
3908
        compiling with restriction No_Finalization.
3909
 
3910
2008-05-20  Vincent Celier  
3911
 
3912
        * prj.adb (Hash (Project_Id)): New function
3913
        (Project_Empty): Add new component Interfaces_Defined
3914
 
3915
        * prj.ads (Source_Data): New component Object_Linked
3916
        (Language_Config): New components Object_Generated and Objects_Linked
3917
        (Hash (Project_Id)): New function
3918
        (Source_Data): New Boolean components In_Interfaces and
3919
        Declared_In_Interfaces.
3920
        (Project_Data): New Boolean component Interfaces_Defined
3921
 
3922
        * prj-attr.adb:
3923
        New project level attribute Object_Generated and Objects_Linked
3924
        Add new project level attribute Interfaces
3925
 
3926
        * prj-dect.adb: Use functions Present and No throughout
3927
        (Parse_Variable_Declaration): If a string type is specified as a simple
3928
        name and is not found in the current project, look for it also in the
3929
        ancestors of the project.
3930
 
3931
        * prj-makr.adb:
3932
        Replace procedure Make with procedures Initialize, Process and Finalize
3933
        to implement H414-023: process different directories with different
3934
        patterns.
3935
        Use functions Present and No throughout
3936
 
3937
        * prj-makr.ads:
3938
        Replace procedure Make with procedures Initialize, Process and Finalize
3939
 
3940
        * prj-nmsc.adb
3941
        (Add_Source): Set component Object_Exists and Object_Linked accordnig to
3942
        the language configuration.
3943
        (Process_Project_Level_Array_Attributes): Process new attributes
3944
        Object_Generated and Object_Linked.
3945
        (Report_No_Sources): New Boolean parameter Continuation, defaulted to
3946
        False, to indicate that the erreor/warning is a continuation.
3947
        (Check): Call Report_No_Sources with Contnuation = True after the first
3948
        call.
3949
        (Error_Msg): Process successively contnuation character and warning
3950
        character.
3951
        (Find_Explicit_Sources): Check that all declared sources have been found
3952
        (Check_File): Indicate in hash table Source_Names when a declared source
3953
        is found.
3954
        (Check_File): Set Other_Part when found
3955
        (Find_Explicit_Sources): In multi language mode, check if all exceptions
3956
        to the naming scheme have been found. For Ada, report an error if an
3957
        exception has not been found. Otherwise, disregard the exception.
3958
        (Check_Interfaces): New procedure
3959
        (Add_Source): When Other_Part is defined, set mutual pointers in spec
3960
        and body.
3961
        (Check): In multi-language mode, call Check_Interfaces
3962
        (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
3963
        for an excluded source.
3964
        (Remove_Source): A source replacing a source in the interfaces is also
3965
        in the interfaces.
3966
 
3967
        * prj-pars.adb: Use function Present
3968
 
3969
        * prj-part.adb: Use functions Present and No throughout
3970
        (Parse_Single_Project): Set the parent project for child projects
3971
        (Create_Virtual_Extending_Project): Register project with no qualifier
3972
        (Parse_Single_Project): Allow an abstract project to be extend several
3973
        times. Do not allow an abstract project to extend a non abstract
3974
        project.
3975
 
3976
        * prj-pp.adb: Use functions Present and No throughout
3977
        (Print): Take into account the full associative array attribute
3978
        declarations.
3979
 
3980
        * prj-proc.adb: Use functions Present and No throughout
3981
        (Expression): Call itself with the same From_Project_Node for the
3982
        default value of an external reference.
3983
 
3984
        * prj-strt.adb: Use functions Present and No throughout
3985
        (Parse_Variable_Reference): If a variable is specified as a simple name
3986
        and is not found in the current project, look for it also in the
3987
        ancestors of the project.
3988
 
3989
        * prj-tree.ads, prj-tree.adb (Present): New function
3990
        (No): New function
3991
        Use functions Present and No throughout
3992
        (Parent_Project_Of): New function
3993
        (Set_Parent_Project_Of): New procedure
3994
 
3995
        * snames.ads, snames.adb:
3996
        Add new standard names Object_Generated and Objects_Linked
3997
 
3998
2008-05-20  Hristian Kirtchev  
3999
 
4000
        * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4001
        and the derived type are of the same kind.
4002
        (Expand_Call): Generate type conversions for actuals of
4003
        record or array types when the parent and the derived types differ in
4004
        size and/or packed status.
4005
 
4006
2008-05-20  Javier Miranda  
4007
            Ed Schonberg  
4008
 
4009
        * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4010
        generating dispatch tables of locally defined tagged types statically.
4011
        Remove implicit if-statement that is no longer required.
4012
        (Expand_Dispatching_Call): If this is a call to an instance of the
4013
        generic dispatching constructor, the type of the first argument may be
4014
        a subtype of Tag, so always use the base type to recognize this case.
4015
 
4016
2008-05-20  Thomas Quinot  
4017
 
4018
        * exp_dist.adb
4019
        (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
4020
        and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
4021
        assigning NULL into the result, to avoid a spurious warning.
4022
        (Add_RACW_Features, case Same_Scope): Add assertion that designated type
4023
        is not frozen.
4024
        (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
4025
        type.
4026
        (Build_From_Any_Function, Build_To_Any_Function,
4027
        Build_TypeCode_Function): For a type that has user-specified stream
4028
        attributes, use an opaque sequence of octets as the representation.
4029
 
4030
2008-05-20  Kevin Pouget  
4031
 
4032
        * exp_smem.ads, exp_smem.adb: Construction of access and assign
4033
        routines has been replaced by an instantiation of
4034
        System.Shared_Storage.Shared_Var_Procs generic package, while expanding
4035
        shared variable declaration.
4036
        Calls to access and assign routines have been replaced by calls to
4037
        Read/Write routines of System.Shared_Storage.Shared_Var_Procs
4038
        instantiated package.
4039
 
4040
        * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
4041
        It identifies the new generic package added in s-shasto.
4042
 
4043
        * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
4044
        is instantiated for each shared passive variable. It provides
4045
        supporting procedures called upon each read or write access by the
4046
        expanded code.
4047
 
4048
        * sem_attr.adb:
4049
        For this runtime unit (always compiled in GNAT mode), we allow
4050
        stream attributes references for limited types for the case where
4051
        shared passive objects are implemented using stream attributes,
4052
        which is the default in GNAT's persistent storage implementation.
4053
 
4054
2008-05-20  Ed Schonberg  
4055
 
4056
        * freeze.adb
4057
        (Freeze_Enumeration_Type): For a subtype that inherits a foreign
4058
        convention from its base type, do not set the type to that of integer,
4059
        because it may inherit a size clause.
4060
        Warn on a size clause with a size different
4061
        from that of Integer, if the type has convention C.
4062
 
4063
2008-05-20  Vincent Celier  
4064
 
4065
        * gnatname.adb
4066
        (Scan_Args): Rewrite to take into account new switch --and to separate
4067
        arguments into sections.
4068
        (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
4069
        section, then Finalize.
4070
 
4071
2008-05-20  Tristan Gingold  
4072
 
4073
        * init.c: Enable stack probing on ppc-linux.
4074
 
4075
        * tracebak.c: Add symbolic traceback for ppc-linux.
4076
 
4077
        * system-linux-ppc.ads: Enable stack probing on ppc-linux.
4078
 
4079
2008-05-20  Arnaud Charlet  
4080
 
4081
        * Makefile.in
4082
        (common-tools): New rule, to avoid parallel build failure on gnat tools.
4083
        Reenable parallel builds on this Makefile.
4084
 
4085
        * Make-lang.in: Update dependencies.
4086
 
4087
2008-05-20  Robert Dewar  
4088
 
4089
        * opt.ads (Treat_Restrictions_As_Warnings): New switch
4090
 
4091
        * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
4092
        Treat_Restrictions_As_Warnings.
4093
 
4094
        * switch-c.adb: Recognize new switch -gnatr
4095
 
4096
        * usage.adb: Add line for -gnatr
4097
 
4098
2008-05-20  Hristian Kirtchev  
4099
 
4100
        * par-ch3.adb
4101
        (P_Access_Definition): Change the error message when parsing "access
4102
        all" in Ada 95 mode. The message no longer forces the user to recompile
4103
        in 05 mode only to discover that anonymous access types are not allowed
4104
        to have "all".
4105
 
4106
2008-05-20  Hristian Kirtchev  
4107
 
4108
        * par-ch9.adb
4109
        (P_Protected): Update the error message on missing "-gnat05" switch when
4110
        using interfaces in conjunction with protected types. Remove the
4111
        incorrect error message associated with the presence of "private" after
4112
        a "with".
4113
 
4114
2008-05-20  Ed Schonberg  
4115
 
4116
        * sem_aggr.adb: Update comments.
4117
        Improve previous change for PR ada/17985
4118
 
4119
2008-05-20  Thomas Quinot  
4120
 
4121
        * sem_cat.adb
4122
        (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4123
        the visible part of the spec of a remote types unit.
4124
        (Validate_Remote_Access_Object_Type_Declaration):
4125
        New local subprogram Is_Valid_Remote_Object_Type, replaces
4126
        Is_Recursively_Limited_Private.
4127
        (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4128
        non-controlling formals (and the return type, even though this is not
4129
        explicit in the standard) must support external streaming.
4130
        (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4131
        as above for of RAS types and RCI subprograms. (The return type is not
4132
        checked yet).
4133
        Update comments related to RACWs designating limited interfaces per
4134
        ARG ruling on AI05-060.
4135
 
4136
        * sem_util.ads, sem_util.adb
4137
        (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4138
        Is_Remote_Call_Interface to identify RACW types in a stable and
4139
        consistent way. We used to rely in this predicate on the privateness of
4140
        the designated type and its ancestors, but depending on the currently
4141
        visible private parts, this caused false negatives. We now uniformly
4142
        rely on checks made at the point where the RACW type is declared.
4143
        (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4144
 
4145
2008-05-20  Javier Miranda  
4146
            Ed Schonberg  
4147
            Hristian Kirtchev  
4148
 
4149
        * sem_ch3.adb
4150
        (Analyze_Object_Declaration): Fix over-conservative condition
4151
        restricting use of predefined assignment with tagged types that have
4152
        convention CPP.
4153
        (Analyze_Object_Declaration): Relax the check regarding deferred
4154
        constants declared in scopes other than packages since they can be
4155
        completed with pragma Import.
4156
        Add missing escaping of all-caps word 'CPP' in error messages.
4157
        (Build_Discriminated_Subtype): Do not inherit representation clauses
4158
        from parent type if subtype already carries them, because they are
4159
        inherited earlier during derivation and already include those that may
4160
        come from a partial view.
4161
 
4162
        * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4163
        Check the declarations of a subprogram body for proper deferred
4164
        constant completion.
4165
 
4166
        * sem_ch7.ads, sem_ch7.adb
4167
        (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4168
 
4169
2008-05-20  Ed Schonberg  
4170
            Thomas Quinot  
4171
 
4172
        * sem_ch4.adb
4173
        (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4174
        F is a parameterless function that returns an array, and S is a subtype
4175
        mark.
4176
        (Analyze_Call): Insert dereference when the prefix is a parameterless
4177
        function that returns an access to subprogram and the call has
4178
        parameters.
4179
        Reject a non-overloaded call whose name resolves to denote
4180
        a primitive operation of the stub type generated to support a remote
4181
        access-to-class-wide type.
4182
 
4183
2008-05-20  Ed Schonberg  
4184
 
4185
        * sem_ch8.adb
4186
        (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4187
        when there is a use clause for the same entity in the context.
4188
        (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4189
        created for a stream attribute of an abstract type or interface type.
4190
 
4191
2008-05-20  Thomas Quinot  
4192
 
4193
        * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4194
        subprogram.
4195
 
4196
        * sem_type.adb
4197
        (Add_One_Interp): Ignore any interpretation that is a primitive
4198
        operation of an RACW stub type (these primitives are only executed
4199
        through dispatching, never through static calls).
4200
        (Collect_Interps): When only one interpretation has been found, set N's
4201
        Entity and Etype to that interpretation, otherwise Entity and Etype may
4202
        still refer to an interpretation that was ignored by Add_One_Interp,
4203
        in which case would end up with being marked as not overloaded but with
4204
        an Entity attribute not pointing to its (unique) correct interpretation.
4205
 
4206
2008-05-20  Ed Schonberg  
4207
 
4208
        * sem_eval.adb
4209
        (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4210
        denotes the whole array of its prefix.
4211
 
4212
2008-05-20  Robert Dewar  
4213
 
4214
        * sem_res.adb (Resolve_Op_Not): Warn on double negation
4215
 
4216
2008-05-20  Ed Schonberg  
4217
 
4218
        * sprint.adb
4219
        (Print_Itype): Do not modify the sloc of the component type of a
4220
        (packed) array itype, because it is an unrelated type whose source
4221
        location is independent of the point of creation of the itype itself.
4222
 
4223
2008-05-20  Thomas Quinot  
4224
 
4225
        * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4226
        Append.
4227
 
4228
2008-05-20  Robert Dewar  
4229
            Vincent Celier  
4230
 
4231
        * vms_data.ads: Add entry for -gnatr
4232
        Put GNAT SYNC section in proper alpha order
4233
        Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4234
 
4235
        * gnat_ugn.texi: Add documentation for new gnatname switch --and
4236
        Update the style checks section
4237
        Add documentation of -gnatr
4238
        Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4239
        subsection the explanation how compiler checks should be disabled for
4240
        gnatcheck.
4241
        Update the list of Ada 95 reserved words used by in the project language
4242
        Add documentation for project qualifiers.
4243
        Document that abstract projects may be extended by different projects in
4244
        the same project tree.
4245
        Add documentation for gnatmake switch -d
4246
 
4247
        * ug_words: Add -gnatyy VMS equivalence string.
4248
        Add entry for -gnatr
4249
 
4250
2008-05-20  Bob Duff  
4251
 
4252
        * a-rttiev.adb
4253
        (Set_Handler): Remove code from both of these that implements
4254
        RM-D.15(15/2), because it causes a race condition and potential
4255
        deadlock.
4256
        (Process_Queued_Events): Add comment explaining "exception when others
4257
        => null". Add clarifying ".all", even though implicit .all is legal
4258
        here.
4259
 
4260
2008-05-20  Arnaud Charlet  
4261
 
4262
        * s-winext.ads: Replace representation clause by pragma Pack. Gives
4263
        equivalent representation, but has the advantage of allowing
4264
        compilation of this file under 64 bits platforms.
4265
 
4266
        * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4267
 
4268
        * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4269
 
4270
        * adaint.c:
4271
        Don't define dummy implementation of convert_addresses on ppc-linux.
4272
 
4273
2008-05-20  Ed Schonberg  
4274
 
4275
        * exp_ch7.adb
4276
        (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4277
        if expression is aggregate component.
4278
 
4279
2008-05-20  Robert Dewar  
4280
 
4281
        * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4282
        sem_ch12.adb: Update comments. Minor reformatting.
4283
 
4284
        * exp_ch2.adb: Typo
4285
 
4286
        * s-unstyp.ads: Fixed some typos in comments.
4287
 
4288
2008-05-20  Arnaud Charlet  
4289
 
4290
        * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4291
        type/constant.
4292
 
4293
        * g-socthi-vxworks.ads: Update to latest socket changes.
4294
 
4295
        * a-caldel-vms.adb: Resync with a-caldel spec.
4296
 
4297
        * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4298
        Update comments.
4299
 
4300
2008-05-17  Eric Botcazou  
4301
 
4302
        * trans.c (gnat_to_gnu) : Account
4303
        for dummy types pointed to by the converted pointer types.
4304
 
4305
2008-05-15  Eric Botcazou  
4306
 
4307
        * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4308
        of records and unions.
4309
        (gnat_to_gnu) : Fix formatting.
4310
 
4311
2008-05-14  Samuel Tardieu  
4312
            Robert Dewar 
4313
 
4314
        * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4315
        restrictions to the prefix of 'Old.
4316
        * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4317
        * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4318
        variables.
4319
 
4320
2008-05-13  Eric Botcazou  
4321
 
4322
        PR ada/24880
4323
        PR ada/26635
4324
        * utils.c (convert) : When converting an additive
4325
        expression to an integral type with lower precision, use NOP_EXPR
4326
        directly in a couple of special cases.
4327
 
4328
2008-05-12  Samuel Tardieu  
4329
            Ed Schonberg 
4330
 
4331
        * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
4332
        constraint expressions.
4333
 
4334
2008-05-12  Tomas Bily  
4335
 
4336
        * utils2.c (known_alignment, contains_save_expr_p)
4337
        (gnat_mark_addressable): Use CASE_CONVERT.
4338
        * decl.c (annotate_value): Likewise.
4339
        * trans.c (maybe_stabilize_reference): Likewise.
4340
        * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
4341
        * utils.c (rest_of_record_type_compilation): Likewise.
4342
        * trans.c (protect_multiple_eval, Attribute_to_gnu)
4343
        (protect_multiple_eval): Likewise.
4344
 
4345
2008-05-08  Andreas Schwab  
4346
 
4347
        * utils.c (handle_pure_attribute, init_gigi_decls): Rename
4348
        DECL_IS_PURE to DECL_PURE_P.
4349
 
4350
2008-05-05  Eric Botcazou  
4351
 
4352
        * decl.c (maybe_pad_type): Add ??? comment.
4353
 
4354
2008-05-03  Eric Botcazou  
4355
 
4356
        * decl.c (components_to_record): Zero the alignment of the qualified
4357
        union built for the variant part upon creating it.
4358
 
4359
2008-05-03  Eric Botcazou  
4360
 
4361
        * decl.c (maybe_pad_type): Try to get a form of the type with integral
4362
        mode even if the alignment is not a factor of the original size.  But
4363
        make sure to create the inner field with the original size.  Reorder.
4364
        * trans.c (addressable_p) : Treat the field of a padding
4365
        record as always addressable.
4366
        * utils.c (convert): Deal specially with conversions between original
4367
        and packable versions of a record type.
4368
        * utils2.c (build_binary_op) : Be more restrictive when
4369
        recognizing an assignment between padded objects.
4370
 
4371
2008-05-01  Eric Botcazou  
4372
 
4373
        * decl.c (make_packable_type): Resize the last component to its RM size
4374
        only if it is of an aggregate type.
4375
        * trans.c (call_to_gnu): Fix nit in comment.
4376
        (gnat_to_gnu): Likewise.
4377
 
4378
2008-04-30  Samuel Tardieu  
4379
 
4380
        * Makefile.in: Adapt sh4-linux target.
4381
 
4382
2008-04-29  Ed Schonberg  
4383
 
4384
        PR ada/35792
4385
        * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
4386
        tagged type by an untagged protected or task type.
4387
 
4388
2008-04-28  Eric Botcazou  
4389
            Tristan Gingold  
4390
 
4391
        PR ada/36007
4392
        * decl.c (gnat_to_gnu_entity) : Do not promote alignment
4393
        of aliased objects with an unconstrained nominal subtype.
4394
        Cap the promotion to the effective alignment of the word mode.
4395
 
4396
2008-04-28  Ralf Wildenhues  
4397
 
4398
        * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
4399
        (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
4400
        Use '&&' instead of ';'.
4401
 
4402
2008-04-24  Olivier Hainque  
4403
 
4404
        * trans.c (Attribute_to_gnu) : Length computation
4405
        doesn't require signed arithmetic anymore.
4406
 
4407
2008-04-23  Paolo Bonzini  
4408
 
4409
        * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
4410
        (call_to_gnu): Don't set TREE_INVARIANT.
4411
        * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
4412
 
4413
2008-04-22  Joel Sherrill 
4414
 
4415
        * s-osinte-rtems.adb: Add sigalstack function.
4416
        * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
4417
        function. Add Alternate_Stack and Alternate_Stack_Size.
4418
        Add missing process_shared field to pthread_condattr_t
4419
        and change ss_low_priority to int from timespec.
4420
 
4421
2008-04-22  Samuel Tardieu  
4422
 
4423
        * i-forbla.adb: Link against -llapack and -lblas by default
4424
        instead of the private -lgnalasup.
4425
 
4426
2008-04-21  Olivier Hainque  
4427
 
4428
        Access to most C builtins from Ada
4429
        * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
4430
        (handle_pure_attribute, handle_novops_attribute,
4431
        handle_nonnull_attribute, handle_sentinel_attribute,
4432
        handle_noreturn_attribute, handle_malloc_attribute,
4433
        handle_type_generic_attribute): New attribute handlers, from C fe.
4434
        (gnat_internal_attribute_table): Map the new handlers.
4435
        (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
4436
        (init_gigi_decls): ... here.
4437
        (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
4438
        Move to a section dedicated to builtins processing.
4439
        (build_void_list_node, builtin_type_for_size): New functions.
4440
        (def_fn_type, get_nonnull_operand): Likewise.
4441
        (install_builtin_elementary_type, install_builtin_function_types,
4442
        install_builtin_attributes): Likewise.
4443
        (fake_attribute_handler): Fake handler for attributes we don't
4444
        support in Ada.
4445
        (def_builtin_1): New function, worker for DEF_BUILTIN.
4446
        (install_builtin_functions): New function.
4447
        (gnat_install_builtins): Move to the builtins processing section.
4448
        Now calling the newly introduced installers.
4449
 
4450
2008-04-20  Eric Botcazou  
4451
 
4452
        * decl.c (gnat_to_gnu_entity) : Also promote the alignment of
4453
        constant objects, but not exceptions.
4454
        * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
4455
        compatibility test.
4456
        * utils.c (create_var_decl_1): Likewise.
4457
        * utils2.c (build_binary_op) : Also use the padded view of
4458
        the type when copying to padded object and the source is a constructor.
4459
 
4460
2008-04-18  Eric Botcazou  
4461
 
4462
        * decl.c (gnat_to_gnu_entity) : When trying to promote the
4463
        alignment, reset it to zero if it would end up not being greater
4464
        than that of the type.
4465
 
4466
2008-04-18  Eric Botcazou  
4467
 
4468
        * decl.c (maybe_pad_type): Only generate the XVS parallel type if
4469
        the padded type has a variable size.
4470
 
4471
2008-04-18  Eric Botcazou  
4472
 
4473
        * decl.c (gnat_to_gnu_entity) : Use the return by
4474
        target pointer mechanism as soon as the size is not constant.
4475
 
4476
2008-04-18  Eric Botcazou  
4477
 
4478
        * gigi.h (create_var_decl_1): Declare.
4479
        (create_var_decl): Turn into a macro invoking create_var_decl_1.
4480
        (create_true_var_decl): Likewise.
4481
        * utils.c (create_var_decl_1): Make global and reorder parameters.
4482
        (create_var_decl): Delete.
4483
        (create_true_var_decl): Likewise.
4484
 
4485
2008-04-17  Eric Botcazou  
4486
 
4487
        * decl.c (gnat_to_gnu_entity) : Promote the alignment of
4488
        objects by default.
4489
        * fe.h (Debug_Flag_Dot_A): Delete.
4490
        * debug.adb (-gnatd.a): Update documentation.
4491
 
4492
2008-04-17  Samuel Tardieu  
4493
 
4494
        * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
4495
        "not null" parameter.
4496
 
4497
2008-04-17  Samuel Tardieu  
4498
 
4499
        * g-socket.adb: Add a message "IPv6 not supported" to the
4500
        Socket_Error exception.
4501
 
4502
2008-04-16  Samuel Tardieu  
4503
 
4504
        PR ada/29015
4505
        * sem_ch12.adb (Instantiate_Type): Check whether the full view of
4506
        the type is known instead of the underlying type.
4507
 
4508
2008-04-15  Ed Schonberg  
4509
 
4510
        PR ada/22387
4511
        * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4512
        procedure for a derived type retrieve the discriminant values from
4513
        the parent using the corresponding discriminant.
4514
 
4515
2008-04-15  Samuel Tardieu  
4516
            Gary Dismukes  
4517
 
4518
        PR ada/28733
4519
        * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
4520
        which is not an entity (and hence not a package).
4521
        (End_Use_Package): Ditto.
4522
 
4523
2008-04-15  Ed Schonberg  
4524
 
4525
        PR ada/16086
4526
        * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
4527
        protected operation that matches the signature, not only an entry, a
4528
        regular subprogram or a literal.
4529
 
4530
2008-04-15  Eric Botcazou  
4531
 
4532
        * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
4533
        * decl.c (gnat_to_gnu_entity) : Call maybe_pad_type only
4534
        if a size or alignment is specified.  Do not take into account
4535
        alignment promotions for the computation of the object's size.
4536
        : Call maybe_pad_type only if a size or alignment is specified.
4537
        (maybe_pad_type): Really reuse the RM_Size of the original type if
4538
        requested.
4539
        * trans.c (Attribute_to_gnu): Fix a couple of nits.
4540
        * utils2.c (build_binary_op) : Merge related conditional
4541
        statements.  Use the padded view of the type when copying between
4542
        padded objects of the same underlying type.
4543
 
4544
2008-04-14  Ralf Wildenhues  
4545
 
4546
        * vms_data.ads: Fix typo in constant.
4547
        * gen-soccon.c: Fix typo in error string.
4548
        * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
4549
        Fix typos.
4550
        * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
4551
        bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
4552
        erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
4553
        exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
4554
        exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
4555
        g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
4556
        mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
4557
        s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
4558
        s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
4559
        sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
4560
        sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
4561
        sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
4562
        sinfo.ads: Fix typos in comments.
4563
 
4564
2008-04-14  Robert Dewar  
4565
 
4566
        * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
4567
        to every non-object and change error message.
4568
 
4569
2008-04-14  Robert Dewar  
4570
 
4571
        * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
4572
        * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
4573
        directly.
4574
 
4575
2008-04-14  Samuel Tardieu  
4576
 
4577
        PR ada/18680
4578
        * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
4579
        apply pragma Linker_Section on type.
4580
 
4581
2008-04-14  Samuel Tardieu  
4582
 
4583
        PR ada/16098
4584
        * sem_prag.adb (Error_Pragma_Ref): New.
4585
        (Process_Convention): Specialized message for non-local
4586
        subprogram renaming. Detect the problem in homonyms as well.
4587
 
4588
2008-04-14  Samuel Tardieu  
4589
 
4590
        PR ada/15915
4591
        * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
4592
        * sem_ch12.adb (Instantiate_Object): Use it.
4593
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
4594
        storage pool denotes a variable as per RM 13.11(15).
4595
 
4596
2008-04-14  Samuel Tardieu  
4597
 
4598
        * sem_util.ads, sem_util.adb (In_Subprogram): New function.
4599
        * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
4600
 
4601
2008-04-14  Rolf Ebert  
4602
 
4603
        PR ada/20822
4604
        * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
4605
        line endings even on non-Unix platforms.
4606
 
4607
2008-04-14  Samuel Tardieu  
4608
 
4609
        PR ada/35050
4610
        * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
4611
        renaming information.
4612
 
4613
2008-04-13  Samuel Tardieu  
4614
 
4615
        PR ada/17985
4616
        * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
4617
        itself.
4618
 
4619
2008-04-13  Ralf Wildenhues  
4620
 
4621
        * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
4622
        sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
4623
        snames.ads, sprint.adb, stand.ads, stringt.ads,
4624
        styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
4625
        switch.ads, sysdep.c, table.adb, table.ads,
4626
        targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
4627
        trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
4628
        uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
4629
        vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
4630
        widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
4631
        xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
4632
        Fix comment typos.
4633
 
4634
        * sem_ch10.adb, sem_ch10.ads,
4635
        sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
4636
        sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
4637
        sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
4638
        sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
4639
        sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
4640
        sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
4641
        sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
4642
        sem_warn.ads: Fix comment typos.
4643
 
4644
        * s-secsta.adb, s-sequio.ads, s-shasto.ads,
4645
        s-soflin.ads, s-stalib.ads, s-stausa.adb,
4646
        s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
4647
        s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
4648
        s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
4649
        s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
4650
        s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
4651
        s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
4652
        s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
4653
        s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
4654
        s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
4655
        s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
4656
        s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
4657
        s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
4658
        s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
4659
        scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
4660
        sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
4661
        sem_cat.adb, sem_cat.ads: Fix comment typos.
4662
 
4663
2008-04-12  Joel Sherrill  
4664
 
4665
        PR ada/35825
4666
        * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
4667
 
4668
2008-04-12  Arnaud Charlet  
4669
 
4670
        * s-linux-hppa.ads: Fix syntax errors.
4671
 
4672
2008-04-10  Ralf Wildenhues  
4673
 
4674
        * gnat_ugn.texi: Fix typos.
4675
        * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
4676
        restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
4677
        s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
4678
        s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
4679
        s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
4680
        s-finimp.adb, s-finroo.ads, s-fishfl.ads,
4681
        s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
4682
        s-hibaen.ads, s-htable.ads, s-imgcha.adb,
4683
        s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
4684
        s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
4685
        s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
4686
        s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
4687
        s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
4688
        s-osinte-darwin.ads, s-osinte-freebsd.ads,
4689
        s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
4690
        s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
4691
        s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
4692
        s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
4693
        s-parame-hpux.ads, s-parame-vms-alpha.ads,
4694
        s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
4695
        s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
4696
        s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
4697
        s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
4698
        s-rident.ads: Fix comment typos.
4699
 
4700
2008-04-09  Samuel Tardieu  
4701
 
4702
        PR ada/28305
4703
        * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
4704
        environment if generic instance is a top-level one.
4705
 
4706
2008-04-09  Doug Rupp  
4707
 
4708
        * decl.c (validate_size): Set minimum size for fat pointers same as
4709
        access types. Code clean ups.
4710
 
4711
        * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
4712
        (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
4713
 
4714
        * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
4715
 
4716
        * s-crtl.ads (malloc32) New function, alias for malloc
4717
        (realloc32) New function, alias for realloc
4718
 
4719
        * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
4720
 
4721
        * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
4722
        allocator size is 32 and default pointer size is 64.
4723
        (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
4724
        lhs type if smaller, whatever the modes.
4725
 
4726
        * gigi.h (malloc32_decl): New macro definition
4727
 
4728
        * utils.c (init_gigi_decls): New malloc32_decl
4729
        Various code clean ups.
4730
 
4731
        * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4732
        Task_Address vice System.Address.
4733
 
4734
        * s-taspri-vms.ads: Import System.Aux_DEC
4735
        (Task_Address): New subtype of System.Aux_DEC.Short_Address
4736
        (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
4737
 
4738
        * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4739
        Task_Address vice System.Address.
4740
 
4741
        * s-inmaop-vms.adb: Import System.Task_Primitives
4742
        (To_Address): Unchecked convert to Task_Address vice System.Address
4743
 
4744
        * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
4745
        expires now.
4746
        (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
4747
        (To_Address) Unchecked convert to Task_Address vice System.Address
4748
 
4749
        * s-tpopde-vms.adb: Remove unnecessary warning pragmas
4750
 
4751
        * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
4752
 
4753
2008-04-08  Eric Botcazou  
4754
 
4755
        * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
4756
        (fdesc_type_node): Define.
4757
        (null_fdesc_node): Likewise.
4758
        * decl.c (gnat_to_gnu_entity) : If the target
4759
        uses descriptors for vtables and the type comes from a dispatch table,
4760
        return the descriptor type.
4761
        * trans.c (Attribute_to_gnu) : If the target
4762
        uses descriptors for vtables and the type comes from a dispatch table,
4763
        build a descriptor in the static case and copy the existing one in the
4764
        non-static case.
4765
        (gnat_to_gnu) : If the target uses descriptors for vtables and
4766
        the type is a pointer-to-subprogram coming from a dispatch table,
4767
        return the null descriptor.
4768
        : If the target uses descriptors for
4769
        vtables, the source type is the descriptor type and the target type
4770
        is a pointer type, first build the pointer.
4771
        * utils.c (init_gigi_decls): If the target uses descriptors for vtables
4772
        build the descriptor type and the null descriptor.
4773
 
4774
2008-04-08  Eric Botcazou  
4775
 
4776
        * decl.c (prepend_attributes): Fix typo.
4777
        * trans.c (Pragma_to_gnu): Likewise.
4778
        * utils.c (gnat_genericize): Likewise.
4779
 
4780
2008-04-08  Eric Botcazou  
4781
            Richard Kenner  
4782
 
4783
        * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
4784
        * decl.c (gnat_to_gnu_entity): Adjust for above change.
4785
        : Try to get a better form of the component for
4786
        packing, even if it has an integral mode.
4787
        : Likewise.
4788
        * trans.c (gnat_to_gnu): Do not require BLKmode for the special
4789
        exception suppressing the final conversion between record types.
4790
 
4791
2008-04-08  Eric Botcazou  
4792
 
4793
        * decl.c (gnat_to_gnu_entity) : If -gnatd.a and not optimizing
4794
        alignment for space, promote the alignment of non-scalar variables with
4795
        no size and alignment.
4796
        * gigi.h (gnat_types_compatible_p): Declare.
4797
        * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
4798
        * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
4799
        * utils.c (gnat_types_compatible_p) : New predicate.
4800
        (convert): Use it throughout to test for cases where a mere view
4801
        conversion is sufficient.
4802
        * utils2.c (build_binary_op): Minor tweaks.
4803
        (build_unary_op): Likewise.
4804
 
4805
2008-04-08  Eric Botcazou  
4806
 
4807
        * decl.c (adjust_packed): Expand comment.
4808
 
4809
2008-04-08  Arnaud Charlet  
4810
 
4811
        * s-tasuti.ads: Use Task_Address instead of System.Address.
4812
 
4813
        * makeutl.adb (Path_Or_File_Name): New function
4814
 
4815
        * nlists.ads, itypes.ads: Update comments.
4816
 
4817
        * s-crtl.ads (malloc32, realloc32): New functions.
4818
 
4819
        * s-auxdec.ads (Short_Address_Size): New constant.
4820
 
4821
        * a-taside.adb, s-tasdeb.adb: Use Task_Address.
4822
 
4823
        * s-ststop.ads, s-ststop.adb: New file.
4824
 
4825
        * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
4826
        Minor reformatting.
4827
 
4828
2008-04-08  Pascal Obry  
4829
 
4830
        * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
4831
        (Stop_Bits_Number): New type.
4832
        (Parity_Check): Likewise.
4833
        (Set): Add parameter to set the number of stop bits and
4834
        the parity. Parameter timeout is now a duration instead
4835
        of a plain integer.
4836
 
4837
        * g-sercom-linux.adb:
4838
        Implement the stop bits and parity support for GNU/Linux.
4839
        Fix handling of timeout, it must be given in tenth of seconds.
4840
 
4841
        * g-sercom-mingw.adb:
4842
        Implement the stop bits and parity support for Windows.
4843
        Use new s-win32.ads unit instead of declaring Win32 services
4844
        directly into this body.
4845
        Update handling of timeout as now a duration.
4846
 
4847
        * s-win32.ads, s-winext.ads: New files.
4848
 
4849
2008-04-08  Eric Botcazou  
4850
            Arnaud Charlet  
4851
 
4852
        * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
4853
 
4854
        s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
4855
        s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
4856
 
4857
        * s-osinte-lynxos-3.ads,
4858
        (Alternate_Stack): Remove when not needed. Simplify declaration
4859
        otherwise.
4860
        (Alternate_Stack_Size): New constant.
4861
 
4862
        s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
4863
        'Unrestricted_Access.
4864
 
4865
        * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
4866
        s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
4867
        s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
4868
        s-osinte-solaris.ads, s-osinte-vms.ads
4869
        (SA_ONSTACK): New constant.
4870
        (stack_t): New record type.
4871
        (sigaltstack): New imported function.
4872
        (Alternate_Stack): New imported variable.
4873
        (Alternate_Stack_Size): New constant.
4874
 
4875
        * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
4876
 
4877
        * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
4878
        s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
4879
        s-taspri-vms.ads (Task_Address): New subtype of System.Address
4880
        (Task_Address_Size): New constant size of System.Address
4881
        (Alternate_Stack_Size): New constant.
4882
 
4883
        * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
4884
        (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
4885
        Establish the alternate stack if the platform makes use of n alternate
4886
        signal stack for stack overflows.
4887
        (Create_Task): Take into account the alternate stack in the stack size.
4888
        (Initialize): Save the address of the alternate stack into the ATCB for
4889
        the environment task.
4890
        (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
4891
 
4892
        * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
4893
 
4894
        * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
4895
 
4896
        * s-intman-posix.adb:
4897
        (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
4898
        alternate signal stack for stack overflows.
4899
 
4900
        * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
4901
        x86-64, adjust the saved value of the stack pointer if the signal was
4902
        raised by a stack checking probe.
4903
        (HP-UX section): Use global __gnat_alternate_stack as signal handler
4904
        stack and only for SIGSEGV.
4905
        (Linux section): Likewise on x86 and x86-64.
4906
        [VxWorks section]
4907
        (__gnat_map_signal): Now static.
4908
        (__gnat_error_handler): Not static any more.
4909
        (__gnat_adjust_context_for_raise): New function. Signal context
4910
        adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
4911
        propagation circuitry.
4912
        (__gnat_error_handler): Second argument of a sigaction handler is a
4913
        pointer, not an int, and is unused.
4914
        Adjust signal context before mapping to exception.
4915
        Install signal handlers for LynxOS case.
4916
 
4917
        * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
4918
        (Task_Id): Set size to Task_Address_Size
4919
        (To_Task_id): Unchecked convert from Task_Address vice System.Address
4920
        (To_Address): Unchecked convert to Task_Address vice System.Address
4921
 
4922
        * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
4923
        address into the ATCB if the platform makes use of an alternate signal
4924
        stack for stack overflows.
4925
        (Free_Task): Add call to Finalize_Attributes_Link.
4926
        Add argument Relative_Deadline to pass the value specified for
4927
        the task. This is not yet used for any target.
4928
 
4929
        * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
4930
        the value specified for the task.
4931
 
4932
2008-04-08  Arnaud Charlet  
4933
 
4934
        (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
4935
        (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
4936
        s-vxwext-rtp.adb): New files.
4937
 
4938
        * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
4939
        Minor updates to accomodate changes above.
4940
 
4941
2008-04-08  Pascal Obry  
4942
 
4943
        * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
4944
        s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
4945
        Use new s-win32.ads unit instead of declaration
4946
        from s-osinte-mingw.ads.
4947
 
4948
        * s-osinte-mingw.ads:
4949
        Move all non tasking based interface to s-win32.ads.
4950
 
4951
        * s-osprim-mingw.adb:
4952
        Remove duplicated declarations and use s-win32.ads
4953
        unit instead.
4954
 
4955
2008-04-08  Vincent Celier  
4956
            Arnaud Charlet  
4957
 
4958
        * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
4959
        mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
4960
        mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
4961
        mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
4962
        mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
4963
 
4964
        * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
4965
        mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
4966
        mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
4967
        mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
4968
        mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
4969
        mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
4970
        mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
4971
        mlib-tgt-specific-mingw.adb: New names.
4972
 
4973
        * Makefile.in:
4974
        On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
4975
        Get rid of gnatbl.
4976
        (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
4977
        Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
4978
        Minor updates for VMS
4979
 
4980
        * gnatbl.c: Removed.
4981
 
4982
2008-04-08  Thomas Quinot  
4983
 
4984
        * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
4985
        g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
4986
        gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
4987
        a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
4988
        s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
4989
        ASCII.NUL throughout.
4990
 
4991
2008-04-08  Arnaud Charlet  
4992
            Matthew Heaney  
4993
 
4994
        * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
4995
        renaming.
4996
 
4997
        * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
4998
        a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
4999
        to convention for non-RM specs.
5000
        Add descriptive header, and documented each operation
5001
        document each operation
5002
 
5003
2008-04-08  Robert Dewar  
5004
            Bob Duff  
5005
            Gary Dismukes  
5006
            Ed Schonberg  
5007
 
5008
        * alloc.ads: Add entries for Obsolescent_Warnings table
5009
 
5010
        * einfo.ads, einfo.adb: Minor reformatting.
5011
        (Is_Discriminal): New subprogram.
5012
        (Is_Prival): New subprogram.
5013
        (Is_Protected_Component): New subprogram.
5014
        (Is_Protected_Private): Removed.
5015
        (Object_Ref, Set_Object_Ref): Removed.
5016
        (Prival, Set_Prival): Change assertion.
5017
        (Privals_Chain, Set_Privals_Chain): Removed.
5018
        (Prival_Link, Set_Prival_Link): New subprogram.
5019
        (Protected_Operation, Set_Protected_Operation): Removed.
5020
        (Protection_Object, Set_Protection_Object): New subprogram.
5021
        (Write_Field17_Name): Remove case for Object_Ref.
5022
        (Write_Field20_Name): Add case for Prival_Link.
5023
        (Write_Field22_Name): Remove case for Protected_Operation,
5024
        Privals_Chain.
5025
        Add case for Protection_Object.
5026
        (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
5027
        so clients
5028
        (Overlays_Constant): New flag
5029
        (Is_Constant_Object): New predicate
5030
        (Is_Standard_Character_Type): New predicate
5031
        (Optimize_Alignment_Space): New flag
5032
        (Optimize_Alignment_Time): New flag
5033
        (Has_Postconditions): New flag
5034
        (Obsolescent_Warrning): Field removed
5035
        (Spec_PPC_List): New field
5036
        (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
5037
        subprograms to get and set the relative deadline associated to a task.
5038
 
5039
        * exp_attr.adb (May_Be_External_Call): Account for the case where the
5040
        Access attribute is part of a named parameter association.
5041
        (Expand_Access_To_Protected_Op): Test for the attribute occurring
5042
        within an init proc and use that directly as the scope rather than
5043
        traversing up to the protected operation's enclosing scope. Only apply
5044
        assertion on Is_Open_Scopes in the case the scope traversal is done.
5045
        For the init proc case use the address of the first formal (_init) as
5046
        the protected object reference.
5047
        Implement Invalid_Value attribute
5048
        (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
5049
        contents of the dispatch table there is no need to duplicate the
5050
        itypes associated with record types (i.e. the implicit full view
5051
        of private types).
5052
        Implement Enum_Val attribute
5053
        (Expand_N_Attribute_Reference, case Old): Properly handle appearence
5054
        within _Postconditions procedure
5055
        (Expand_N_Attribute_Reference, case Result): Implement new attribute
5056
 
5057
        * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
5058
        a return statement calls a function that is not available in
5059
        configurable runtime.
5060
        (Analyze_If_Statement): don't optimize simple True/False cases in -O0
5061
        (Expand_Non_Function_Return): Generate call to _Postconditions proc
5062
        (Expand_Simple_Function_Return): Ditto
5063
 
5064
        * frontend.adb: Add call to Sem_Aux.Initialize
5065
 
5066
        * sem_aux.ads, sem_aux.adb: New file.
5067
 
5068
        * par-prag.adb: Add entries for pragmas Precondition/Postcondition
5069
        Add new Pragma_Relative_Deadline.
5070
        Add support for pragmas Check and Check_Policy
5071
 
5072
        * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
5073
        (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
5074
        (Analyze_Attribute): In case of attributes 'Alignment and 'size add
5075
        missing check because they are not allowed in CPP tagged types.
5076
        Add Sure parameter to Note_Possible_Modification calls
5077
        Add implementation of Invalid_Value attribute
5078
        Implement new attribute Has_Tagged_Values
5079
        Implement Enum_Val attribute
5080
        (Analyze_Attribute, case Range): Set Name_Req True for prefix of
5081
        generated attributes.
5082
        (Analyze_Attribute, case Result): If prefix of the attribute is
5083
        overloaded, it always resolves to the enclosing function.
5084
        (Analyze_Attribute, case Result): Properly deal with analysis when
5085
        Postconditions are not active.
5086
        (Resolve_Attribute, case Result): Properly deal with appearence during
5087
        preanalysis in spec.
5088
        Add processing for attribute Result
5089
 
5090
        * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
5091
        for operators.
5092
        (Analyze_Subprogram_Body): Install private_with_clauses when the body
5093
        acts as a spec.
5094
        (Check_Inline_Pragma): recognize an inline pragma that appears within
5095
        the subprogram body to which it applies.
5096
        (Analyze_Function_Return): Check that type of the expression of a return
5097
        statement in a function with a class-wide result is not declared at a
5098
        deeper level than the function.
5099
        (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
5100
        (Verify_Overriding_Indicator): Handle properly subprogram bodies for
5101
        user- defined operators.
5102
        (Install_Formals): Moved to spec to allow use from Sem_Prag for
5103
        analysis of precondition/postcondition pragmas.
5104
        (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
5105
        Last_Formal, along with lots of comments on what this is about
5106
        (Analyze_Subprogram_Body): Fix case where we move entities from the
5107
        spec to the body when there are no body entities (now possible with
5108
        precondition and postcondition pragmas).
5109
        (Process_PPCs): New procedure
5110
        (Analyze_Subprogram_Body): Add call to Process_PPCs
5111
 
5112
        * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
5113
        clause.
5114
        (Pop_Scope): Restore Check_Policy_List on scope exit
5115
        (Push_Scope): Save Check_Policy_List on scope entry
5116
        Change name In_Default_Expression      => In_Spec_Expression
5117
        Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5118
        Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5119
        (Analyze_Object_Renaming): Allow 'Reference as object
5120
        (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5121
        (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5122
        of restriction identifier.
5123
        Add Sure parameter to Note_Possible_Modication calls
5124
 
5125
        * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5126
        Don't check for primitive operations when calling Rep_Item_Too_Late.
5127
        (Process_Import_Or_Interface): Do not place flag on formal
5128
        subprograms.
5129
        (Analyze_Pragma, case Export): If the entity is a deferred constant,
5130
        propagate information to full view, which is the one elaborated by the
5131
        back-end.
5132
        (Make_Inline): the pragma is effective if it applies to an internally
5133
        generated subprogram declaration for a body that carries the pragma.
5134
        (Analyze_Pragma, case Optimize_Alignment): Set new flag
5135
        Optimize_Alignment_Local.
5136
        (Analyze_PPC_In_Decl_Part): New procedure
5137
        (Get_Pragma_Arg): Moved to outer level
5138
        (Check_Precondition_Postcondition): Change to allow new visibility
5139
        rules for package spec
5140
        (Analyze_Pragma, case Check_Policy): Change placement rules to be
5141
        same as pragma Suppress/Unsuppress.
5142
        Change name In_Default_Expression      => In_Spec_Expression
5143
        Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5144
        Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5145
        (Check_Precondition_Postcondition): Do proper visibility preanalysis
5146
        for the case of these pragmas appearing in the spec.
5147
        (Check_Enabled): New function
5148
        (Initialize): New procedure
5149
        (Tree_Read): New procedure
5150
        (Tree_Write): New procedure
5151
        (Check_Precondition_Postcondition): New procedure
5152
        Implement pragmas Check and Check_Policy
5153
        Merge Assert processing with Check
5154
 
5155
        * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5156
        New warning flag -gnatw.e
5157
 
5158
        * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5159
        returning whether a task (or main procedure) has a pragma
5160
        Relative_Deadline.
5161
        (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5162
        (or main procedure) has a pragma Relative_Deadline.
5163
        Add Next_Pragma field to N_Pragma node
5164
        (PPC_Enabled): New flag
5165
        (Next_Pragma): Now used for Pre/Postcondition processing
5166
 
5167
        * snames.h, snames.ads, snames.adb: New standard name
5168
        Inherit_Source_Path
5169
        Add entry for 'Invalid_Value attribute
5170
        Add entry for new attribute Has_Tagged_Values
5171
        Add entry for Enum_Val attribute
5172
        Add new standard names Aggregate, Configuration and Library.
5173
        Add _Postconditions
5174
        Add _Result
5175
        Add Pragma_Precondition
5176
        Add Pragma_Postcondition
5177
        Add Attribute_Result
5178
        New standard name Archive_Builder_Append_Option
5179
        (Preset_Names): Add _relative_deadline and relative_deadline definitions
5180
        There was also a missing non_preemptive_within_priorities.
5181
        (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5182
        Relative_Deadline.
5183
        Add support for pragmas Check and Check_Policy
5184
 
5185
        * tree_gen.adb: Call Sem_Aux.Tree_Write
5186
 
5187
        * tree_in.adb: Call Sem_Aux.Tree_Read
5188
 
5189
        * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5190
        sequence
5191
 
5192
        * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5193
        sequence
5194
 
5195
        * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5196
        (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5197
        Relative_Deadline.
5198
        (Expand_Pragma_Check): New procedure
5199
 
5200
        * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5201
        buffer.
5202
 
5203
        * sinfo.adb (PPC_Enabled): New flag
5204
 
5205
2008-04-08  Robert Dewar  
5206
            Gary Dismukes  
5207
            Javier Miranda  
5208
            Ed Schonberg  
5209
 
5210
        * fe.h: Remove global Optimize_Alignment flag, no longer used
5211
 
5212
        * layout.adb: Test Optimize_Alignment flags rather than global switch
5213
 
5214
        * lib.ads, lib.adb: New OA_Setting field in library record
5215
 
5216
        * lib-load.adb: New OA_Setting field in library record
5217
 
5218
        * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5219
        units mentioned in limited_with_ clauses in the ali file, with an
5220
        'Y' marker.
5221
        New Ox fields in U line
5222
 
5223
        * opt.adb: New flag Optimize_Alignment_Local
5224
        (Check_Policy_List[_Config]): New flags
5225
 
5226
        * opt.ads (Invalid_Value_Used): New flag
5227
        New switch Optimize_Alignment_Local
5228
        (Warn_On_Parameter_Order): New flag
5229
        (Check_Policy_List[_Config]): New flags
5230
 
5231
        * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5232
        limited_with clauses.
5233
        New data structures for Optimize_Alignment
5234
 
5235
        * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5236
        New procedure
5237
        (Check_Consistent_Optimize_Alignment): Rework for new structure
5238
        (Check_Consistent_Restrictions): Fix incorrect error message
5239
 
5240
        sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5241
        created class-wide type (to the Parent field of the specific type).
5242
        (Install_Siblings): Handle properly private_with_clauses on subprogram
5243
        bodies and on generic units.
5244
        (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5245
        illegal limited_with_clause that names a non-existent package.
5246
        (Check_Body_Required): Determine whether a unit named a limited_with
5247
        clause needs a body.
5248
        (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5249
        Capture Optimize_Alignment settings to set new OA_Setting field in
5250
        library record.
5251
        (Build_Limited_Views): Include task and protected type declarations.
5252
 
5253
        * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5254
        case of a possible constant redeclaration where the current object is
5255
        an entry index constant.
5256
        (Analyze_Object_Declaration): Generate an error in case of CPP
5257
        class-wide object initialization.
5258
        (Analyze_Object_Declaration): Add extra information on warnings for
5259
        declaration of unconstrained objects.
5260
        (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5261
        conflicts with the setting of Stored_Constraint in the case where the
5262
        access type entity has already been created as an E_Incomplete_Type due
5263
        to a limited with clause.
5264
        Use new Is_Standard_Character_Type predicate
5265
        (Analyze_Object_Declaration): Apply access_constant check only after
5266
        expression has been resolved, given that it may be overloaded with
5267
        several access types.
5268
        (Constant_Redeclaration): Additional legality checks for deferred
5269
        constant declarations tha involve anonymous access types and/or null
5270
        exclusion indicators.
5271
        (Analyze_Type_Declaration): Set Optimize_Alignment flags
5272
        (Analyze_Subtype_Declaration): Ditto
5273
        (Analyze_Object_Declaration): Ditto
5274
        (Analyze_Object_Declaration): Don't count tasks in generics
5275
        Change name In_Default_Expression      => In_Spec_Expression
5276
        Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5277
        Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5278
        (Process_Discriminants): Additional check for illegal use of default
5279
        expressions in access discriminant specifications in a type that is not
5280
        explicitly limited.
5281
        (Check_Abstract_Overriding): If an inherited function dispaches on an
5282
        access result, it must be overridden, even if the type is a null
5283
        extension.
5284
        (Derive_Subprogram): The formals of the derived subprogram have the
5285
        names and defaults of the parent subprogram, even if the type is
5286
        obtained from the actual subprogram.
5287
        (Derive_Subprogram): In the presence of interfaces, a formal of an
5288
        inherited operation has the derived type not only if it descends from
5289
        the type of the formal of the parent operation, but also if it
5290
        implements it. This is relevant for the renamings created for the
5291
        primitive operations of the actual for a formal derived type.
5292
        (Is_Progenitor): New predicate, to determine whether the type of a
5293
        formal in the parent operation must be replaced by the derived type.
5294
 
5295
        * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5296
        predicate recursive to handle components that have a user-defined
5297
        Initialize procedure. Handle controlled derived types whose ancestor
5298
        has a user-defined Initialize procedured.
5299
        (Note_Possible_Modification): Add Sure parameter, generate warning if
5300
        sure modification of constant
5301
        Use new Is_Standard_Character_Type predicate
5302
        (Find_Parameter_Type): when determining whether a protected operation
5303
        implements an interface operation, retrieve the type of the formal from
5304
        the entity when the formal is an access parameter or an
5305
        anonymous-access-to-subprogram.
5306
        Move Copy_Parameter_List to sem_util, for use when building stubbed
5307
        subprogram bodies.
5308
        (Has_Access_Values): Tagged types now return False
5309
        (Within_HSS_Or_If): New procedure
5310
        (Set_Optimize_Alignment_Flags): New procedure
5311
        Change name In_Default_Expression      => In_Spec_Expression
5312
        Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5313
        Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5314
 
5315
2008-04-08  Tristan Gingold  
5316
 
5317
        * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5318
 
5319
2008-04-08  Tristan Gingold  
5320
 
5321
PR ada/10768
5322
 
5323
        * cuintp.c: Fix 16 bits issue for AVR.
5324
        On AVR, integer is 16 bits, so it can't be used to do math with
5325
        Base (=32768).
5326
        So use long_integer instead.
5327
 
5328
2008-04-08  Hristian Kirtchev  
5329
 
5330
        * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
5331
        System.OS_Primitives.
5332
        Change type of various constants, parameters and local variables from
5333
        Time to representation type OS_Time.
5334
        (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
5335
        Remove the declaration of constant Mili_F from several routines. New
5336
        body for internal package Conversions_Operations.
5337
        (Time_Of): Add default parameters for several formals.
5338
 
5339
        * a-caldel.adb: Minor reformatting
5340
 
5341
        * a-calend.ads, a-calend.adb: New body for internal package
5342
        Conversions_Operations.
5343
        (Time_Of): Add default parameters for several formals.
5344
 
5345
        * Makefile.rtl: Add a-ststop
5346
        Add Ada.Calendar.Conversions to the list of runtime files.
5347
        Add g-timsta
5348
 
5349
        * a-calcon.adb, a-calcon.ads: New files.
5350
 
5351
2008-04-08  Jose Ruiz  
5352
            Tristan Gingold  
5353
 
5354
        * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
5355
        (Install_Restricted_Handlers): New procedure
5356
        which is a simplified version of Install_Handlers that does not store
5357
        previously installed.
5358
 
5359
        * s-interr-vxworks.adb: Fix ACATS cxc3001
5360
        On VxWorks interrupts can't be detached.
5361
        (Install_Restricted_Handlers): New procedure.
5362
 
5363
        * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
5364
        procedure.
5365
 
5366
2008-04-08  Olivier Hainque  
5367
 
5368
        * s-intman-vxworks.ads, s-intman-vxworks.adb
5369
        (Map_And_Raise_Exception): Remove. Was an import of only part of the
5370
        required services already implemented elsewhere.
5371
        (Notify_Exception): Delete body, import __gnat_error_handler instead.
5372
        (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
5373
        argument passed to the handler, which we need for ZCX propagation
5374
        purposes.
5375
 
5376
2008-04-08  Hristian Kirtchev  
5377
 
5378
        * adaint.h, adaint.c (__gnat_current_time_string): New routine.
5379
 
5380
        * g-timsta.adb, g-timsta.ads: New files.
5381
 
5382
2008-04-08  Robert Dewar  
5383
 
5384
        * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
5385
        (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
5386
        (Raise_Exception_Always): Fix documentation accordingly
5387
 
5388
2008-04-08  Robert Dewar  
5389
 
5390
        * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
5391
        Stream_Convert)
5392
 
5393
        * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
5394
        FOnly
5395
 
5396
2008-04-08  Javier Miranda  
5397
            Robert Dewar  
5398
            Ed Schonberg  
5399
 
5400
        * a-tags.adb (Register_Interface_Offset): New subprogram.
5401
        (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
5402
        (To_Predef_Prims_Table_Ptr): Removed.
5403
        (Acc_Size): Removed.
5404
        (To_Acc_Size): Removed.
5405
        (Parent_Size): Modified to the call the subprogram returning the size of
5406
        the parent by means of the new TSD component Size_Func.
5407
 
5408
        * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
5409
        (DT_Offset_To_Top_Offset): New constant value that is used to generate
5410
        code referencing the Offset_To_Top component of the dispatch table's
5411
        prologue.
5412
        (Prim_Ptr): New declaration of access to procedure. Used to avoid the
5413
        use of 'address to initialize dispatch table slots.
5414
        (Size_Func): New component of the TSD. Used by the run-time to call the
5415
        size primitive of the tagged type.
5416
 
5417
        * checks.adb (Apply_Access_Check): Avoid check when accessing the
5418
        Offset_To_Top component of a dispatch table.
5419
        (Null_Exclusion_Static_Checks): If the non-null access type appears in a
5420
        deferred constant declaration. do not add a null expression, to prevent
5421
        spurious errors when full declaration is analyzed.
5422
        (Apply_Discriminant_Check): If both discriminant constraints share a
5423
        node which is not static but has no side effects, do not generate a
5424
        check for that discriminant.
5425
        (Generate_Index_Checks): Set Name_Req to true in call to duplicate
5426
        subexpr, since the prefix of an attribute is a name.
5427
 
5428
        * checks.ads: Fix nit in comment.
5429
 
5430
        * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
5431
        and body of predefined primitives in case of CPP tagged type
5432
        derivations.
5433
        (Freeze_Type): Deal properly with no storage pool case
5434
        (Make_Predefined_Primitive_Specs): Generate specification of abstract
5435
        primitive Deep_Adjust if a nonlimited interface is derived from a
5436
        limited interface.
5437
        (Build_Dcheck_Functions): Create discriminant-checking functions only
5438
        for variants that have some component(s).
5439
        (Build_Slice_Assignment): In expanded code for slice assignment, handle
5440
        properly the case where the slice bounds extend to the last value of the
5441
        underlying representation.
5442
        (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
5443
        (Is_Variable_Size_Record): An array component has a static size if
5444
        index bounds are enumeration literals.
5445
 
5446
        * exp_disp.adb (Make_DT): Use the first subtype to determine whether
5447
        an external tag has been specified for the type.
5448
        (Building_Static_DT): Add missing support for private types.
5449
        (Make_DT): Add declaration of Parent_Typ to ensure consistent access
5450
        to the entity associated with the parent of Typ. This is done to
5451
        avoid wrong access when the parent is a private type.
5452
        (Expand_Interface_Conversion): Improve error message when the
5453
        configurable runtime has no support for dynamic interface conversion.
5454
        (Expand_Interface_Thunk): Add missing support to interface types in
5455
        configurable runtime.
5456
        (Expand_Dispatching_Call): remove obsolete code.
5457
        (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
5458
        ensure that all subtypes and aggregates associated with dispatch
5459
        tables have the attribute Is_Dispatch_Table_Entity set to true.
5460
        (Register_Primitive): Rename one variable to improve code reading.
5461
        Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
5462
        of the pointer to the 'size primitive in the TSD.
5463
 
5464
        * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
5465
        (RE_Offset_To_Top_Ptr): New entity.
5466
        (RE_Register_Interface_Offset): New entity.
5467
        (RE_Set_Dynamic_Offset_To_Top): New entity.
5468
        (RE_Set_Offset_To_Top): Removed entity.
5469
        (RE_Prim_Ptr): New entity
5470
        (RE_Size_Func): New entity
5471
        (RE_Size_Ptr): New entity
5472
        (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
5473
        (Ada_Dispatching_Child): Define this new subrange.
5474
        (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
5475
         RE_Time_Span, and RE_Time_Span_Zero).
5476
        (RE_Unit_Table): Add new required run-time calls
5477
 
5478
        * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
5479
        children.
5480
 
5481
        * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
5482
        (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
5483
         initializes the Offset_To_Top component of a dispatch table.
5484
        (Build_Predef_Prims): Removed.
5485
        (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
5486
         its actual code.
5487
        (Build_Set_Size_Function): New subprogram.
5488
 
5489
        * exp_ch13.adb: Do not generate storage variable for storage_size zero
5490
        (Expand): Handle setting/restoring flag Inside_Freezing_Actions
5491
 
5492
2008-04-08  Robert Dewar  
5493
 
5494
        * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
5495
        computing Fore when Exp > 0
5496
 
5497
2008-04-08  Robert Dewar  
5498
 
5499
        * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
5500
 
5501
        * errout.adb: Remove Big_String_Ptr declarations (now in Types)
5502
        Change name Is_Style_Msg to Is_Style_Or_Info_Msg
5503
 
5504
        * fmap.adb: Remove Big_String declarations (now in Types)
5505
        (No_Mapping_File): New Boolean global variable
5506
        (Initialize): When mapping file cannot be read, set No_Mapping_File to
5507
        False.
5508
        (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
5509
        tables were empty before adding entries, open the mapping file
5510
        with Truncate = True, instead of delete/re-create.
5511
 
5512
        * fname-sf.adb: Remove Big_String declarations (now in Types)
5513
 
5514
        * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
5515
        s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
5516
        big pointer types
5517
 
5518
        * table.ads: Add for Table_Ptr'Storage_Size use 0
5519
 
5520
        * types.ads: Add Big_String declarations
5521
        Add Size_Clause of zero for big pointer types
5522
 
5523
2008-04-08  Vincent Celier  
5524
 
5525
        * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
5526
        (Usage): Add line for switch --subdirs=
5527
        Add new switch -eL, to follow symbolic links when processing project
5528
        files.
5529
 
5530
        * gnatcmd.adb: Process switches -eL and --subdirs=
5531
        (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
5532
        Program_Name to get proper tool names when AAMP_On_Target is set.
5533
        (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
5534
        AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
5535
        Osint.Program_Name).
5536
 
5537
        * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
5538
        (Usage): Add lines for switches -eL and --subdirs=
5539
 
5540
        * makeusg.adb: Add line for switch --subdirs=
5541
 
5542
        * prj.ads:
5543
        (Source_Data): New Boolean component Compiled, defaulted to True
5544
        (Empty_File_Name: New global variable in private part, initialized in
5545
        procedure Initialize.
5546
        (Subdirs_Option): New constant string
5547
        (Subdirs): New String_Ptr global variable
5548
        (Language_Config): New component Include_Compatible_Languages
5549
        (Project_Qualifier): New type for project qualifiers
5550
        (Project_Data): New component Qualifier
5551
        (Project_Configuration): New component Archive_Builder_Append_Option
5552
 
5553
        * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
5554
        another imported project indicate the name of this imported project.
5555
        (Check_File): When a unit is in two project files, indicate the project
5556
        names and the paths of the source files for each project.
5557
        (Add_Source): Set Compiled to False if compiler driver is empty. Only
5558
        set object, dependency and switches file names if Compiled is True.
5559
        (Process_Compiler): Allow the empty string for value of attribute Driver
5560
        (Get_Directories): When Subdirs is not null and Object_Dir is not
5561
         specified, locate and create if necessary the actual object dir.
5562
        (Locate_Directory): When Subdirs is not empty and Create is not the
5563
        empty string, locate and create if necessary the actual directory
5564
        as a subdirectory of directory Name.
5565
        (Check_Library_Attributes.Check_Library): Allow a project where the only
5566
        "sources" are header files of file based languages to be imported by
5567
        library projects, in multi-language mode (gprbuild).
5568
        (Check_Library_Attributes.Check_Library): In multi-language mode
5569
        (gprbuild), allow a library project to import a project with no
5570
        sources, even when this is not declared explicitly.
5571
        (Check_If_Externally_Built): A virtual project extending an externally
5572
        built project is also externally built.
5573
        (Check_Library_Attributes): For a virtual project extending a library
5574
        project, inherit the library directory.
5575
        (Process_Project_Level_Array_Attributes): Process new attribute
5576
        Inherit_Source_Path.
5577
        For projects with specified qualifiers "standard", "library" or
5578
        "abstract", check that the project conforms to the qualifier.
5579
        (Process_Project_Level_Simple_Attributes): Process new attribute
5580
         Archive_Builder_Append_Option.
5581
 
5582
        * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
5583
        (Normalize_Compiler_Switches): Only keep compiler switches that are
5584
        passed to gnat1 by the gcc driver and that are stored in the ALI file
5585
        by gnat1.
5586
        Do not take into account switc -save-temps
5587
 
5588
        * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
5589
        gprmake is called with -eL.
5590
        (Scan_Arg): Recognize switch -eL
5591
        (Usage): Add line for switch -eL
5592
 
5593
        * prj.adb (Initialize): Initialize Empty_File_Name
5594
        (Project_Empty): New component Qualifier
5595
 
5596
        * prj-attr.ads, prj-attr.adb: New project level attribute
5597
        Inherit_Source_Path.
5598
        New project level attribute Archive_Builder_Append_Option
5599
 
5600
        * prj-dect.adb: Replace System.Strings by GNAT.Strings.
5601
 
5602
        * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
5603
        /lib/gnat in the project path, after /share/gpr, for
5604
        upward compatibility.
5605
 
5606
        * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
5607
        each Trying ..." on different lines.
5608
        (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
5609
        is "configuration" when not in configuration. Fail when in configuration
5610
        when a specified qualifier is other than "configuration".
5611
 
5612
        * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
5613
        full associative array together.
5614
        (Recursive_Process): Put the project qualifier in the project data
5615
 
5616
        * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
5617
        (Set_Project_Qualifier_Of): New procedure
5618
 
5619
2008-04-08  Robert Dewar  
5620
 
5621
        * errout.ads: Update comments for new handling of info: messages
5622
 
5623
        * erroutc.adb (Matches): New procedure
5624
        (Warning_Specifically_Suppressed): Modified to handle multiple * chars
5625
        (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
5626
         info messages as well as style messages.
5627
 
5628
        * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
5629
 
5630
        * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
5631
        subprograms.
5632
        (Check_A_Call): Special "info: " warnings now have ? in the text
5633
        (Elab_Warning): Use info message in static case
5634
 
5635
2008-04-08  Ed Schonberg  
5636
 
5637
        * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
5638
        whether an array aggregate with static bounds and scalar components
5639
        should be expanded into a static constant.
5640
 
5641
2008-04-08  Gary Dismukes  
5642
            Ed Schonberg  
5643
            Robert Dewar  
5644
 
5645
        * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
5646
        Has_Stream_Attribute_ Definition when checking for available stream
5647
        attributes on parameters of a limited type in Ada 2005. Necessary for
5648
        proper recognition of visible stream attribute clauses.
5649
        (Has_Stream_Attribute_Definition): If the type is derived from a
5650
        private type, then use the derived type's underlying type for checking
5651
        whether it has stream attributes.
5652
        (Validate_Object_Declaration): The check for a user-defined Initialize
5653
        procedure applies also to types with controlled components or a
5654
        controlled ancestor.
5655
        Reject an object declaration in a preelaborated unit if the type is a
5656
        controlled type with an overriding Initialize procedure.
5657
        (Validate_Remote_Access_To_Class_Wide_Type): Return without further
5658
        checking when the parent of a dereference is a selected component and
5659
        the name has not been analyzed.
5660
 
5661
        * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
5662
        prefixes that are invalid explicit dereferences of remote
5663
        access-to-class-wide values, first checking whether the selected
5664
        component is a prefixed form of call to a tagged operation.
5665
        (Analyze_Call): Remove code that issues an error for limited function
5666
        calls in illegal contexts, as we now support all of the contexts that
5667
        were forbidden here.
5668
        Allow a function call that returns a task.and appears as the
5669
        prefix of a selected component.
5670
        (Analyze_Reference): Give error message if we try to make a 'Reference
5671
        for an object that is atomic/aliased without its type having the
5672
        corresponding attribute.
5673
        (Analyze_Call): Remove condition checking for attributes to allow
5674
        calls to functions with inherently limited results as prefixes of
5675
        attributes. Remove related comment about Class attributes.
5676
        (Analyze_Selected_Component): If the prefix is a remote type, check
5677
        whether this is a prefixed call before reporting an error.
5678
        (Complete_Object_Operation): If the controlling formal is an access to
5679
        variable reject an actual that is a constant or an access to one.
5680
        (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5681
        primitive operations from base type.
5682
 
5683
        * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
5684
        build-in-place
5685
        function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5686
        (Expand_N_Selected_Component): Test for prefix that is a build-in-place
5687
        function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5688
        (Expand_N_Slice): Test for prefix that is a build-in-place function call
5689
        and call Make_Build_In_Place_Call_In_Anonymous_Context.
5690
        (Analyze_Call): Remove code that issues an error for limited function
5691
        calls in illegal contexts, as we now support all of the contexts that
5692
        were forbidden here.
5693
        New calling sequence for Get_Simple_Init_Val
5694
        (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
5695
        (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
5696
 
5697
2008-04-08  Hristian Kirtchev  
5698
            Ed Schonberg  
5699
            Robert Dewar  
5700
 
5701
        * exp_ch2.adb: Minor reformatting.
5702
        (Expand_Entry_Index_Parameter): Set the type of the identifier.
5703
        (Expand_Entry_Reference): Add call to Expand_Protected_Component.
5704
        (Expand_Protected_Component): New routine.
5705
        (Expand_Protected_Private): Removed.
5706
        Add Sure parameter to Note_Possible_Modification calls
5707
 
5708
        * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
5709
        generated subprogram declaration must inherit the overriding indicator
5710
        from the instantiation node.
5711
        (Validate_Access_Type_Instance): If the designated type of the actual is
5712
        a limited view, use the available view in all cases, not only if the
5713
        type is an incomplete type.
5714
        (Instantiate_Object):  Actual is illegal if the formal is null-excluding
5715
        and the actual subtype does not exclude null.
5716
        (Process_Default): Handle properly abstract formal subprograms.
5717
        (Check_Formal_Package_Instance): Handle properly defaulted formal
5718
        subprograms in a partially parameterized formal package.
5719
        Add Sure parameter to Note_Possible_Modification calls
5720
        (Validate_Derived_Type_Instance): if the formal is non-limited, the
5721
        actual cannot be limited.
5722
        (Collect_Previous_Instances): Generate instance bodies for subprograms
5723
        as well.
5724
 
5725
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
5726
        try to set RM_Size.
5727
        Add Sure parameter to Note_Possible_Modification calls
5728
        (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
5729
        (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
5730
        constant overlaid by variable and issue warning.
5731
        Use new Is_Standard_Character_Type predicate
5732
        (Analyze_Record_Representation_Clause): Check that the specified
5733
        Last_Bit is not less than First_Bit - 1.
5734
        (Analyze_Attribute_Definition_Clause, case Address): Check for
5735
        self-referential address clause
5736
 
5737
        * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
5738
        detection mechanism when the lhs is a prival.
5739
        (Analyze_Assignment): Call Check_Unprotected_Access to detect
5740
        assignment of a pointer to protected data, to an object declared
5741
        outside of the protected object.
5742
        (Analyze_Loop_Statement): Check for unreachable code after loop
5743
        Add Sure parameter to Note_Possible_Modication calls
5744
        Protect analysis from previous syntax error such as a scope mismatch
5745
        or a missing begin.
5746
        (Analyze_Assignment_Statement): The assignment is illegal if the
5747
        left-hand is an interface.
5748
 
5749
        * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
5750
        violation of restriction No_Implicit_Conditionals
5751
        Add Sure parameter to Note_Possible_Modication calls
5752
        Use new Is_Standard_Character_Type predicate
5753
        (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
5754
        call as operator. Fixes problems (e.g. validity checking) which
5755
        come from the result looking as though it does not come from source).
5756
        (Resolve_Call): Check case of name in named parameter if style checks
5757
        are enabled.
5758
        (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
5759
        from the checking that such calls should not occur from an entry body.
5760
        (Resolve_Call): If the return type of an Inline_Always function
5761
        requires the secondary stack, create a transient scope for the call
5762
        if the body of the function is not available for inlining.
5763
        (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
5764
        that are actuals for in-out formals.
5765
        (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5766
        primitive operations from base type.
5767
        (Analyze_Selected_Component): If the context is a call to a protected
5768
        operation the parent may be an indexed component prior to expansion.
5769
        (Resolve_Actuals): If an actual is of a protected subtype, use its
5770
        base type to determine whether a conversion to the corresponding record
5771
        is needed.
5772
        (Resolve_Short_Circuit): Handle pragma Check
5773
 
5774
        * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
5775
        Use new Is_Standard_Character_Type predicate
5776
        (Eval_Relational_Op): Catch more cases of string comparison
5777
 
5778
2008-04-08  Robert Dewar  
5779
            Gary Dismukes  
5780
 
5781
        * s-rident.ads: Add No_Default_Initialization restriction
5782
 
5783
        * exp_tss.adb:
5784
        (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
5785
        (Set_TSS): Handle No_Default_Initialization case
5786
 
5787
        * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
5788
        No_Default_Initialization
5789
        (Expand_N_Subprogram_Body): Remove redundant initialization of out
5790
        parameters when Normalize_Scalars is active.
5791
        (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
5792
        Fix casing error in formal parameter name in call
5793
        (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
5794
        (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5795
        dispatching call on VM targets.
5796
 
5797
2008-04-08  Gary Dismukes  
5798
            Thomas Quinot  
5799
 
5800
        * exp_ch7.adb (Find_Final_List): Change the test for generating a
5801
        selected component from an access type's Associated_Final_Chain to
5802
        check for the presence of that field, rather than assuming it exists
5803
        for all named access types.
5804
        (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
5805
        procedure to call at the end of the generated cleanup procedure.
5806
        (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
5807
        and an At_End_Proc already exists in the handled sequence of statements
5808
        for which cleanup actions are being expanded, the original cleanup
5809
        action must be preserved.
5810
 
5811
2008-04-08  Hristian Kirtchev  
5812
            Ed Schonberg  
5813
            Robert Dewar  
5814
            Gary Dismukes  
5815
 
5816
        * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
5817
        Build_Unprotected_Subprogram_Body): Generate debug info for
5818
        declarations related to the handling of private data in task and
5819
        protected types.
5820
        (Debug_Private_Data_Declarations): New subprogram.
5821
        (Install_Private_Data_Declarations): Remove all debug info flagging.
5822
        This is now done by Debug_Private_Data_Declarations at the correct
5823
        stage of expansion.
5824
        (Build_Simple_Entry_Call): If the task name is a function call, expand
5825
        the prefix into an object declaration, and make the surrounding block a
5826
        task master.
5827
        (Build_Master_Entity): An internal block is a master if it wraps a call.
5828
        Code reformatting, update comments. Code clean up.
5829
        (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
5830
        (Replicate_Entry_Formals): If the formal is an access parameter or
5831
        anonymous access to subprogram, copy the original tree to create new
5832
        entities for the formals of the subprogram.
5833
        (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
5834
        for tasks to store the value passed using pragma Relative_Deadline.
5835
        (Make_Task_Create_Call): Add the Relative_Deadline argument to the
5836
        run-time call to create a task.
5837
        (Build_Wrapper_Spec): If the controlling argument of the interface
5838
        operation is an access parameter with a non-null indicator, use the
5839
        non-null indicator on the wrapper.
5840
 
5841
        * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
5842
        present, which it may not be in the case where the type entity is an
5843
        incomplete view brought in by a limited with.
5844
        (Analyze_Task_Type): Only retrieve the full view when present, which it
5845
        may not be in the case where the type entity is an incomplete view brought
5846
        in by a limited with.
5847
        (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
5848
        private components of a protected type, to prevent the generation of freeze
5849
        nodes for which there is no proper scope of elaboration.
5850
 
5851
        * exp_util.ads, exp_util.adb
5852
        (Remove_Side_Effects): If the expression is a function call that returns a
5853
        task, expand into a declaration to invoke the build_in_place machinery.
5854
        (Find_Protection_Object): New routine.
5855
        (Remove_Side_Effects): Also make a copy of the value
5856
        for attributes whose result is of an elementary type.
5857
        (Silly_Boolean_Array_Not_Test): New procedure
5858
        (Silly_Boolean_Array_Xor_Test): New procedure
5859
        (Is_Volatile_Reference): New function
5860
        (Remove_Side_Effects): Use Is_Volatile_Reference
5861
        (Possible_Bit_Aligned_Component): Handle slice case properly
5862
 
5863
        * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
5864
        case test to Exp_Util
5865
        (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
5866
 
5867
2008-04-08  Thomas Quinot  
5868
 
5869
        * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
5870
        in call
5871
        (Add_RACW_Features): When processing an RACW in another unit than the
5872
        main unit, set Body_Decls to No_List to indicate that the bodies of
5873
        the type's TSS must not be generated.
5874
        (GARLIC_Support.Add_RACW_Read_Attribute,
5875
        GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
5876
        Body_Decls is No_List.
5877
        (PolyORB_Support.Add_RACW_Read_Attribute,
5878
        PolyORB_Support.Add_RACW_Write_Attribute,
5879
        PolyORB_Support.Add_RACW_From_Any,
5880
        PolyORB_Support.Add_RACW_To_Any,
5881
        PolyORB_Support.Add_RACW_TypeCode): Same.
5882
        (Transmit_As_Unconstrained): New function.
5883
        (Build_Ordered_Parameters_List): Use the above to order parameters.
5884
        (GARLIC_Support.Build_General_Calling_Stubs):
5885
        Use the above to determine which parameters to unmarshall using 'Input
5886
        at the point where their temporary is declared (as opposed to later on
5887
        with a 'Read call).
5888
        (PolyORB_Support.Build_General_Calling_Stubs):
5889
        Use the above to determine which parameters to unmarshall using From_Any
5890
        at the point where their temporary is declared (as opposed to later on
5891
        with an assignment).
5892
 
5893
2008-04-08  Ed Schonberg  
5894
 
5895
        * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
5896
        an Input function for an access type, do not perform default
5897
        initialization on the local variable that receives the value, to
5898
        prevent spurious warnings when the type is null-excluding.
5899
 
5900
2008-04-08  Robert Dewar  
5901
            Ed Schonberg  
5902
 
5903
        * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
5904
        units.
5905
        (Size_Known): Generic formal scalar types have known at compile
5906
        time size, so remove check.
5907
        Fix casing error in formal parameter name in call
5908
        (Freeze_Subprogram): If the subprogram is a user-defined operator,
5909
        recheck its overriding indication.
5910
 
5911
2008-04-08  Vincent Celier  
5912
 
5913
        * gnat1drv.adb: Send all messages indicating an error to standard error
5914
 
5915
2008-04-08  Robert Dewar  
5916
 
5917
        * gnatbind.adb (Restriction_Could_Be_Set): New procedure
5918
        (List_Applicable_Restrictions): Do not list existing restrictions
5919
 
5920
2008-04-08  Thomas Quinot  
5921
 
5922
        * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
5923
        add a pointer to generic sockets literature
5924
        do not mention that the given example is "typical" usage.
5925
        Remove obsolete comment about multicast not being supported on Windows.
5926
        (Connect_Socket): Make Server mode IN rather than IN OUT
5927
        since this formal is never modified.
5928
 
5929
2008-04-08  Robert Dewar  
5930
 
5931
        * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
5932
        the declaration for some different entity.
5933
        (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
5934
        list is precent (following the parent subtype indication), display
5935
        appropriate "and" keyword.
5936
 
5937
        * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
5938
        Remove unnecessary calls to Init_Size_Align and Init_Esize.
5939
        Add notes on use of Parent field of an Itype
5940
 
5941
2008-04-08  Ed Schonberg  
5942
            Robert Dewar  
5943
            Gary Dismukes  
5944
 
5945
        * lib-xref.adb (Is_On_LHS): Remove dead code
5946
        (Output_Overriden_Op): If the overridden operation is itself inherited,
5947
        list the ancestor operation, which is the one whose body or absstract
5948
        specification is actually being overridden. For source navigation
5949
        purposes.
5950
 
5951
        * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
5952
        operation is primitive for the type.
5953
        (Declare_Inherited_Private_Subprograms): If the new operation overrides
5954
        an inherited private subprogram, set properly the Overridden_Operation
5955
        attribute, for better cross-reference information.
5956
        (Analyze_Package_Specification): Do late analysis of spec PPCs
5957
        (Install_Private_Declaration, Uninstall_Declarations): Save/restore
5958
        properly the full view and underlying full views of a private type in a
5959
        child unit, whose full view is derived from a private type in a parent
5960
        unit, and whose own full view becomes visible in the child body.
5961
 
5962
        * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
5963
        primitive operation after the type has been frozen, add an explicit
5964
        reference to the type and the operation, because other primitive
5965
        references have been emitted already.
5966
        (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5967
        dispatching call on VM targets.
5968
 
5969
2008-04-08  Vincent Celier  
5970
            Thomas Quinot  
5971
 
5972
        * make.adb: (Gnatmake_Called): Remove, no longer necessary
5973
        (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
5974
        is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
5975
        (Insert_Project_Sources): Take into account index in multi-unit source
5976
        files.
5977
        After building a library project, delete all temporary files.
5978
        (Initialize): Reset current output after parsing project file.
5979
        (Collect_Arguments_And_Compile): Never insert in the queue the sources
5980
        of library projects that are externally built.
5981
        Put file name in error and inform messages if -df is used
5982
        (Display): If invoked with -d7, do not display path names, but only
5983
        file names.
5984
 
5985
        * makeutl.ads (Path_Or_File_Name): New function
5986
        (Path_Or_File_Name): New function
5987
 
5988
2008-04-08  Arnaud Charlet  
5989
 
5990
        * Make-lang.in: Disable warnings during first stage of bootstrap
5991
        Get rid of gnatbl.
5992
        Update dependencies.
5993
 
5994
2008-04-08  Vincent Celier  
5995
 
5996
        * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
5997
        case to decide if ALI object file is included in library.
5998
        (Build_Library): Never attempt to build a library if the project is
5999
        externally built.
6000
 
6001
2008-04-08  Thomas Quinot  
6002
 
6003
        * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6004
        (No_List) is defined to return Empty.
6005
 
6006
2008-04-08  Jose Ruiz  
6007
 
6008
        * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6009
        documentation.
6010
        Update comments.
6011
        (Read_Default_Search_Dirs): Do not consider spaces as path separators
6012
        because spaces may be part of legal paths.
6013
 
6014
2008-04-08  Robert Dewar  
6015
 
6016
        * par-ch11.adb (P_Exception_Handler): Check indentation level for
6017
        handler
6018
 
6019
2008-04-08  Ed Schonberg  
6020
 
6021
        * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
6022
        in a type declaration, if this is not an interface declaration or
6023
        private type extension.
6024
 
6025
2008-04-08  Vincent Celier  
6026
 
6027
        * prj-util.adb (Executable_Of): New String parameter Language. When
6028
        Ada_Main is False and Language is not empty, attempt to remove the body
6029
        suffix or the spec suffix of the language to get the base of the
6030
        executable file name.
6031
        (Put): New Boolean parameter Lower_Case, defauilted to False. When
6032
        Lower_Case is True, put the value in lower case in the name list.
6033
        (Executable_Of): If there is no executable suffix in the configuration,
6034
        then do not modify Executable_Extension_On_Target.
6035
 
6036
        * prj-util.ads (Executable_Of): New String parameter Language,
6037
        defaulted to the empty string.
6038
        (Put): New Boolean parameter Lower_Case, defauilted to False
6039
 
6040
2008-04-08  Robert Dewar  
6041
 
6042
        * scng.adb (Scan_Identifier): Handle case of identifier starting with
6043
        wide character using UTF-8 encoding.
6044
 
6045
2008-04-08  Javier Miranda  
6046
 
6047
        * sem.adb (Analyze): Consider case in which we analyze an empty node
6048
        that was generated by a call to a runtime function that is not
6049
        available under the configurable runtime.
6050
 
6051
        * sem.ads (Inside_Freezing_Actions): New flag.
6052
        (Save_Check_Policy_List): New field in scope stack entry
6053
 
6054
2008-04-08  Ed Schonberg  
6055
            Robert Dewar  
6056
 
6057
        * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
6058
        the ancestor part of an extension aggregate for a limited type.
6059
        (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
6060
        enumeration index bounds.
6061
        (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
6062
        when array is too short.
6063
        (Check_Expr_OK_In_Limited_Aggregate): Move function
6064
        Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
6065
        change name).
6066
        (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
6067
        Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
6068
        component associations.
6069
        (Check_Non_Limited_Type): Moved to outer level and renamed.
6070
        (Resolve_Record_Aggregate): In an extension aggregate, an association
6071
        with a box initialization can only designate a component of the
6072
        extension, not a component inherited from the given ancestor
6073
 
6074
        * sem_case.adb: Use new Is_Standard_Character_Type predicate
6075
 
6076
2008-04-08  Robert Dewar  
6077
 
6078
        * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
6079
        negative scale
6080
        (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
6081
        Properly handle case where Aft > Scale and input number is less than
6082
        one.
6083
 
6084
2008-04-08  Hristian Kirtchev  
6085
 
6086
        * s-stoele.ads, s-soflin.ads: Move the location of
6087
        Dummy_Communication_Block from System.Storage_Elements to
6088
        System.Soft_Links.
6089
 
6090
        * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
6091
        emulate Communication_Block in certain scenarios.
6092
 
6093
2008-04-08  Hristian Kirtchev  
6094
 
6095
        * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
6096
        subprogram.
6097
        Add new subtype S_WWC, unchecked conversion routines From_WWC and
6098
        To_WWC.
6099
        (I_WWC, O_WWC): New routines for input and output of
6100
        Wide_Wide_Character.
6101
 
6102
2008-04-08  Robert Dewar  
6103
 
6104
        * stringt.adb (Write_String_Table_Entry): Handle wide characters
6105
        properly
6106
 
6107
2008-04-08  Robert Dewar  
6108
 
6109
        * styleg.adb (Check_Comment): Allow special char after -- in
6110
        non-end-of-line case
6111
 
6112
2008-04-08  Robert Dewar  
6113
 
6114
        * stylesw.adb: Implement -gnaty + - y options
6115
        (Set_GNAT_Style_Check_Options): Includ I in style check string
6116
 
6117
        * stylesw.ads: Add comments for new style switch options
6118
 
6119
2008-04-08  Sergey Rybin  
6120
 
6121
        * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6122
        to the set of the GNAT components needed by ASIS.
6123
 
6124
2008-04-08  Bob Duff  
6125
 
6126
        * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6127
 
6128
2008-04-08  Tristan Gingold  
6129
 
6130
        * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6131
        Improve error message generation.
6132
 
6133
2008-04-08  Vincent Celier  
6134
 
6135
        * a-direct.adb (Start_Search): Check for Name_Error before checking for
6136
        Use_Error, as specified in the RM. Check if directory is open and raise
6137
        Use_Error if it is not.
6138
 
6139
2008-04-08  Vincent Celier  
6140
            Robert Dewar  
6141
 
6142
        * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6143
        AAMP_On_Target is set.
6144
 
6145
        * vms_data.ads: Add NOxxx to style check switch list
6146
        Add entry COMPONENTS for -gnatVe
6147
        Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6148
        (/SUBDIRS=).
6149
        (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6150
        Add qualifiers for gnatmetric coupling options
6151
        Add note that -gnata enables all checks
6152
        Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6153
        Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6154
        New warning flag -gnatw.e
6155
 
6156
        * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6157
        Add entry for -gnatyN (forgotten before)
6158
        Line for new warning switch -gnatw.p
6159
        New warning flag -gnatw.e
6160
 
6161
        * gnat_ugn.texi: Add documentation fpr project file switch -aP
6162
        Document -gnaty - + y
6163
        Replace occurences of "package specification" with "package spec"
6164
        Define preprocessing symbols in documentation of gnatprep
6165
        Clarify reason for distinguishing overflow checking
6166
        Add documentation for project-aware tool switches -eL and --subdirs=
6167
        Complete list of configuration pragmas
6168
        Specify that, even when gnatmake switch -x is used, mains on the command
6169
        line need to be sources of project files.
6170
        Editing of gnatcheck/gnatmetric doc.
6171
        Add documentation for -gnatw.p/-gnatw.P
6172
        Add missing documentation for -fno-inline-functions.
6173
        Add documentation for -gnatw.e
6174
 
6175
        * gnat_rm.texi: Add documentation for No_Default_Initialization
6176
        Replace occurences of "package specification" with "package spec"
6177
        Document use of * in Warnings Off string
6178
        Update documentation of alignment/component clauses.
6179
        Add documentation for Invalid_Value
6180
        Document new consistency rule for Optimize_Alignment
6181
        Add documentation for Precondition and Postcondition pragmas
6182
        Add documentation for Check and Check_Policy pragmas
6183
        Document new Enum_Val attribute
6184
        Remove requirement for static string in pragma Assert
6185
        Add documentation on GNAT.Time_Stamp
6186
 
6187
        * ug_words: add entry for -gnatVe
6188
        Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6189
        Add entry for -gnatw.e
6190
 
6191
        * debug.adb: Add missing documentation for d.a flag
6192
        Document new -gnatd.a switch.
6193
        Add documentation for new gnatmake debug switch -df
6194
 
6195
2008-04-08  Thomas Quinot  
6196
 
6197
        * gen-soccon.c: Bump year in copyright notices.
6198
 
6199
        * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6200
 
6201
2008-04-08  Eric Botcazou  
6202
 
6203
        * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6204
        Minor reformatting.
6205
 
6206
2008-04-08  Robert Dewar  
6207
            Bob Duff  
6208
 
6209
        * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6210
        Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6211
 
6212
        * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6213
 
6214
        * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6215
 
6216
        * g-trasym.ads: Minor comment improvements
6217
 
6218
        * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6219
 
6220
        * a-sequio.ads, a-direio.ads: improve message for tagged type
6221
 
6222
        * a-strunb.ads: Minor reformatting
6223
 
6224
        * a-tifiio.adb: Minor reformatting
6225
 
6226
        * atree.adb (Fix_Parents): Use clearer names for formals
6227
        Cleanup and simplify code
6228
        Use named notation in calls
6229
 
6230
        * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6231
        confusing calls
6232
 
6233
        * uintp.adb: Used named notation for some confusing calls
6234
 
6235
        * bindusg.adb: Minor change in one line of output
6236
 
6237
        * cstand.adb: Minor reformatting of src representation of Standard
6238
 
6239
        * a-assert.ads: Add comment.
6240
 
6241
        * g-decstr.adb: Fix bad indentation
6242
 
6243
        * expander.ads, expander.adb: Code clean up.
6244
 
6245
        * sem_dist.ads: Minor comment improvement
6246
 
6247
        * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6248
        s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6249
 
6250
        * i-cstrin.adb: Fix casing error in formal parameter name in call
6251
 
6252
2008-04-08  Ed Schonberg  
6253
 
6254
        * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6255
        mentioned in limited_with_clauses to do create semantic dependencies
6256
        even though they appear in the ali file.
6257
 
6258
2008-04-08  Emmanuel Briot  
6259
 
6260
        * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6261
        statement.
6262
        (Get_Configuration): New subprogram.
6263
 
6264
        * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6265
        These optional parameters help preserve the casing of the project's name
6266
        when pretty-printing.
6267
 
6268
2008-04-08  Jerome Lambourg  
6269
            Arnaud Charlet  
6270
 
6271
        * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6272
        then use __gnat_set_exit_status to report the returned status code.
6273
 
6274
        * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6275
        messages on .NET, since some constructs of the language are not
6276
        properly supported.
6277
 
6278
        * gnatlink.adb (Gnatlink): In case the command line is too long for the
6279
        .NET linker, gnatlink now concatenate all .il files and pass this to
6280
        ilasm.
6281
 
6282
2008-04-07  Aurelien Jarno  
6283
            Xavier Grave  
6284
 
6285
        * Makefile.in: Add make ifeq define for mips/mipsel support.
6286
        * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
6287
        system-linux-mips.ads: New files.
6288
 
6289
2008-04-07  Aurelien Jarno  
6290
 
6291
        * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
6292
        detect systems using GNU libc.
6293
        * gsocket.h: ditto.
6294
        * socket.c: ditto.
6295
        * adaint.c: ditto.
6296
        * link.c: ditto.
6297
 
6298
2008-04-07  Aurelien Jarno  
6299
 
6300
        * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
6301
        constant constant for sysconf call.
6302
        (bit_field): New packed boolean type used by cpu_set_t.
6303
        (cpu_set_t): New type corresponding to the C type with
6304
        the same name. Note that on the Ada side we use a bit
6305
        field array for the affinity mask. There is not need
6306
        for the C macro for setting individual bit.
6307
        (pthread_setaffinity_np): New imported routine.
6308
        * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6309
        on GNU/kFreeBSD.
6310
 
6311
2008-04-07  Eric Botcazou  
6312
 
6313
        * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6314
 
6315
2008-04-07  Eric Botcazou  
6316
 
6317
        * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6318
        * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6319
        * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
6320
        * trans.c (gnat_to_gnu) : Remove code dealing with
6321
        Return by Depressed Stack Pointer.
6322
 
6323
2008-04-06  Eric Botcazou  
6324
 
6325
        * decl.c (is_variable_size): Do not unconditionally return false
6326
        on non-strict alignment platforms.
6327
 
6328
2008-04-06  Eric Botcazou  
6329
 
6330
        * decl.c (rest_of_type_decl_compilation_no_defer): New local function
6331
        used to process all the variants of the specified type.
6332
        (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
6333
        types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
6334
        (rest_of_type_decl_compilation): Likewise.
6335
        * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
6336
 
6337
2008-04-03  Paolo Bonzini  
6338
 
6339
        * gigi.h (insert_block): Kill.
6340
        * utils.c (insert_block): Kill.
6341
 
6342
2008-04-02  Eric Botcazou  
6343
 
6344
        * decl.c (gnat_to_gnu_entity) : For a constant object whose
6345
        type has self-referential size, get the size from the initializing
6346
        expression directly if it is also a constant whose nominal type
6347
        has self-referential size.
6348
 
6349
2008-04-01  John David Anglin  
6350
 
6351
        PR ada/33688
6352
        * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
6353
 
6354
        PR ada/33857
6355
        * env.c: Always include crt_externs.h if __APPLE__ is defined.
6356
        (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
6357
 
6358
2008-04-01  Andreas Jaeger  
6359
 
6360
        * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
6361
        IP_PKTINFO.
6362
 
6363
2008-03-31  Ralf Wildenhues  
6364
 
6365
        * g-table.adb, g-tasloc.adb, g-traceb.ads,
6366
        g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
6367
        gnatbind.adb, gnatchop.adb, gnatcmd.adb,
6368
        gnatcmd.ads, gnatdll.adb, gnatfind.adb,
6369
        gnatlink.adb, gnatmem.adb, gprep.adb,
6370
        i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
6371
        i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
6372
        layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
6373
        lib-xref.ads, lib.adb, link.c, live.ads,
6374
        make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
6375
        mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
6376
        misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
6377
        mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
6378
        namet.adb, namet.h, nlists.adb, nlists.ads,
6379
        nlists.h, opt.ads, osint-b.ads, osint-c.adb,
6380
        osint-c.ads, osint.adb, osint.ads, output.ads,
6381
        par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
6382
        par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
6383
        par-endh.adb, par-labl.adb, par-prag.adb,
6384
        par-sync.adb, par-tchk.adb, par-util.adb,
6385
        par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
6386
        prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
6387
        prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
6388
        prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
6389
 
6390
2008-03-31  Eric Botcazou  
6391
 
6392
        * decl.c (gnat_to_gnu_entity) : Do not force a non-null
6393
        size if it has overflowed.
6394
 
6395
2008-03-31  Olivier Hainque  
6396
            Eric Botcazou  
6397
 
6398
        * utils2.c (find_common_type): Document assumption on t1/t2 vs
6399
        lhs/rhs. Force use of lhs type if smaller, whatever the modes.
6400
 
6401
2008-03-30  Ralf Wildenhues  
6402
 
6403
        * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
6404
        einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
6405
        exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
6406
        exp_pakd.ads, exp_prag.adb, exp_smem.adb,
6407
        exp_tss.ads, exp_util.adb, exp_util.ads,
6408
        exp_vfpt.adb, freeze.adb, freeze.ads,
6409
        frontend.adb, g-alleve.adb, g-altcon.adb,
6410
        g-altive.ads, g-alveop.ads, g-alvevi.ads,
6411
        g-arrspl.adb, g-busorg.ads, g-calend.adb,
6412
        g-calend.ads, g-casuti.ads, g-cgideb.adb,
6413
        g-comlin.adb, g-comlin.ads, g-curexc.ads,
6414
        g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
6415
        g-dirope.adb, g-dirope.ads, g-dynhta.ads,
6416
        g-dyntab.adb, g-encstr.ads, g-excact.ads,
6417
        g-except.ads, g-expect.ads, g-heasor.adb,
6418
        g-hesora.adb, g-hesorg.adb, g-htable.ads,
6419
        g-locfil.ads, g-md5.adb, g-md5.ads,
6420
        g-memdum.ads, g-moreex.ads, g-os_lib.adb,
6421
        g-pehage.adb, g-pehage.ads, g-regexp.adb,
6422
        g-regexp.ads, g-regpat.adb, g-regpat.ads,
6423
        g-soccon-aix.ads, g-soccon-darwin.ads,
6424
        g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
6425
        g-soccon-hpux.ads, g-soccon-irix.ads,
6426
        g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
6427
        g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
6428
        g-soccon-mingw.ads, g-soccon-solaris-64.ads,
6429
        g-soccon-solaris.ads, g-soccon-tru64.ads,
6430
        g-soccon-vms.ads, g-soccon-vxworks.ads,
6431
        g-soccon.ads, g-socket.adb, g-socket.ads,
6432
        g-socthi-mingw.adb, g-socthi-vms.adb,
6433
        g-socthi-vxworks.adb, g-soliop-mingw.ads,
6434
        g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
6435
        g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
6436
        typos.
6437
 
6438
2008-03-27  Eric Botcazou  
6439
 
6440
        * decl.c (gnat_to_gnu_entity) : Also set the public flag
6441
        if the procedure is imported.
6442
 
6443
2008-03-26  Arnaud Charlet  
6444
 
6445
        * adaint.c: Fix warnings.
6446
 
6447
2008-03-26  Arnaud Charlet  
6448
 
6449
        * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
6450
 
6451
2008-03-26  Arnaud Charlet  
6452
 
6453
        * a-witeio.adb: Fix problem with Current_Output (introduce Self).
6454
        Fix problem of status check for null file
6455
 
6456
2008-03-26  Arnaud Charlet  
6457
 
6458
        * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
6459
        s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
6460
        s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6461
        i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
6462
        s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
6463
        comments.
6464
 
6465
2008-03-26  Thomas Quinot  
6466
 
6467
        PR ada/33688
6468
        * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
6469
        Get_Socket_Option): Add support for Receive_Packet_Info.
6470
 
6471
        * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
6472
        g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
6473
        g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
6474
        g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
6475
        g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
6476
        new constants SO_REUSEPORT and IP_PKTINFO
6477
 
6478
2008-03-26  Robert Dewar  
6479
 
6480
        * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
6481
        a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6482
        a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
6483
        a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
6484
        a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
6485
        a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
6486
        s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
6487
        s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
6488
        a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
6489
        s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
6490
        s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
6491
        s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
6492
        s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
6493
        s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
6494
        s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
6495
        s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
6496
        s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
6497
        s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
6498
        s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
6499
        s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
6500
        a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
6501
        a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
6502
        s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
6503
        s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
6504
        s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
6505
        s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
6506
        s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
6507
        a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
6508
        a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
6509
        s-tasloc.adb: Minor reformatting.
6510
        Update comments.
6511
        Remove "used for" sections from comments.
6512
 
6513
2008-03-26  Robert Dewar  
6514
 
6515
        * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
6516
        s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
6517
        s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
6518
        s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
6519
        s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
6520
        a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6521
        a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
6522
        a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
6523
        a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
6524
        a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
6525
        a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
6526
        i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
6527
        a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
6528
        s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
6529
        s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
6530
        double spaced if it fits on one line and otherwise single spaced.
6531
 
6532
2008-03-26  Arnaud Charlet  
6533
 
6534
        * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
6535
        s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
6536
        s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
6537
        or task info if the thread could not be created.
6538
 
6539
2008-03-26  Arnaud Charlet  
6540
 
6541
        * gnatvsn.ads (Library_Version): Bump to 4.4.
6542
        (Current_Year): Bump to 2008.
6543
 
6544
2008-03-26  Robert Dewar  
6545
 
6546
        * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
6547
 
6548
        * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
6549
 
6550
        * debug.adb: Add debug flags d.r and d.v
6551
        Add debug flag .T (Optimize_Alignment (Time))
6552
        Add debug flag .S (Optimize_Alignment (Space))
6553
 
6554
        * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
6555
        depending on setting of relevant debug flags.
6556
        Replace use of Warnings_Off by Has_Warnings_Off
6557
        (Freeze_Entity): In circuit for warning on suspicious convention
6558
        actuals, do not give warning if subprogram has same entity as formal
6559
        type, or if subprogram does not come from source.
6560
        (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
6561
        if Optimize_Alignment set to Space.
6562
 
6563
        * frontend.adb: Add call to Sem_Warn.Initialize
6564
        Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
6565
        Reset Optimize_Alignment mode from debug switches .S and .T
6566
 
6567
        * layout.adb (Layout_Composite_Object): Rewritten for
6568
        Optimize_Aligment pragma.
6569
 
6570
        * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
6571
        mode.
6572
 
6573
        * opt.ads, opt.adb: (Optimize_Alignment): New global switch
6574
 
6575
        * par-prag.adb (N_Pragma): Chars field removed, use Chars
6576
        (Pragma_Identifier (..  instead, adjustments throughout to accomodate
6577
        this change. Add entry for pragma Optimize_Alignment
6578
 
6579
        * sem_prag.adb (N_Pragma): Chars field removed, use Chars
6580
        (Pragma_Identifier (..
6581
        instead, adjustments throughout to accomodate this change.
6582
        (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
6583
        (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
6584
        Add implementation of pragma Optimize_Alignment
6585
 
6586
2008-03-26  Vincent Celier  
6587
 
6588
        * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
6589
        Improve memory usage to avoid use of stack.
6590
 
6591
2008-03-26  Robert Dewar  
6592
 
6593
        * a-teioed.ads: Correct value of Default_Fill
6594
 
6595
        * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
6596
 
6597
2008-03-26  Robert Dewar  
6598
 
6599
        * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
6600
        with Current_Output (introduce Self).
6601
 
6602
2008-03-26  Robert Dewar  
6603
 
6604
        * checks.adb (Ensure_Valid): Capture valid status if possible
6605
        (eliminate checks)
6606
 
6607
2008-03-26  Robert Dewar  
6608
 
6609
        * stand.ads: Deal with reordering of package standard declarations
6610
 
6611
        * cstand.adb: Put package Standard declarations in proper order
6612
 
6613
2008-03-26  Robert Dewar  
6614
 
6615
        * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
6616
        (Pragma_Identifier (.. instead.
6617
        (OK_To_Reorder_Components): New flag
6618
        (Has_Entries): Code cleanup.
6619
        (Warnings_Off_Used): New flag
6620
        (Warnings_Off_Used_Unmodified): New flag
6621
        (Warnings_Off_Used_Unreferenced): New flag
6622
        (Has_Warnings_Off): New function
6623
        (Has_Unmodified): New function
6624
        (Has_Unreferenced): New function
6625
        (Is_Trivial_Subprogram): New flag
6626
        (Is_Static_Dispatch_Table_Entity): New attribute.
6627
        Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
6628
        (more consistent with other similar names)
6629
        (Access_Subprogram_Type): New classification function
6630
 
6631
2008-03-26  Robert Dewar  
6632
 
6633
        * errout.ads: Document new !! insertion sequence
6634
 
6635
        * errout.adb (N_Pragma): Chars field removed, use Chars
6636
        (Pragma_Identifier (..  instead.
6637
        Replace use of Warnings_Off by Has_Warnings_Off
6638
        (Error_Msg_Internal): Don't delete warning ending in !!
6639
 
6640
2008-03-26  Robert Dewar  
6641
 
6642
        * par.adb (Check_No_Right_Paren): Removed no longer used
6643
 
6644
        * par-ch10.adb (N_Pragma): Chars field removed, use Chars
6645
        (Pragma_Identifier (..  instead.
6646
 
6647
        * par-ch10.adb (P_Subunit): Improvement in error recovery and message
6648
 
6649
        * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
6650
        par-ch4.adb: Minor improvements in error recovery and messages.
6651
 
6652
        * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
6653
        non-serious
6654
 
6655
        * par-ch9.adb: Minor improvements in error recovery and messages
6656
        (P_Protected): Better error recovery for "protected type x;"
6657
 
6658
        * par-util.adb: Minor improvements in error recovery and messages
6659
        (Check_No_Right_Paren): Removed no longer used
6660
 
6661
2008-03-26  Ed Schonberg  
6662
 
6663
        * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
6664
        that the prefix of an attribute is the type of the aggregate being
6665
        expanded.
6666
 
6667
2008-03-26  Javier Miranda  
6668
            Robert Dewar  
6669
 
6670
        * exp_attr.adb (N_Pragma): Chars field removed.
6671
        (Expand_N_Attribute_Reference): If the designated type associated with
6672
        attribute 'Unrestricted_Access is a subprogram entity then replace it
6673
        by an E_Subprogram_Type itype.
6674
        Implement attribute Old
6675
 
6676
        * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
6677
 
6678
        * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
6679
        Replace call to
6680
        New_Internal_Entity by call to Create_Itype to centralize calls
6681
        building itypes, ad propagate the convention of the designated
6682
        subprogram. In addition, disable the machinery cleaning constant
6683
        indications from all entities in current scope when 'Unrestricted_Access
6684
        corresponds with a node initializing a dispatch table slot.
6685
        (Analyze_Attribute): Parameterless attributes returning a string or a
6686
        type will not be called with improper arguments, so we can remove junk
6687
        code that was dealing with this case.
6688
        Implement attribute Old
6689
 
6690
        * snames.ads, snames.h, snames.adb: Add entries for attribute Old
6691
        Add entry for pragma Optimize_Alignment
6692
        New standard names Sync and Synchronize
6693
 
6694
2008-03-26  Robert Dewar  
6695
            Arnaud Charlet  
6696
 
6697
        * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
6698
        stmt.
6699
        (No_Exception_Propagation_Active): New function.
6700
        (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6701
        Update comments, and review all uses of No_Exception_Propagation, which
6702
        are now correct and in sync with what gigi expects.
6703
 
6704
        * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
6705
        function.
6706
        (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6707
        Update comments, and review all uses of No_Exception_Propagation, which
6708
        are now correct and in sync with what gigi expects.
6709
 
6710
2008-03-26  Ed Schonberg  
6711
 
6712
        * sem_ch3.adb (Access_Definition): If the access type is the return
6713
        result of a protected function, create an itype reference for it
6714
        because usage will be in an inner scope from the point of declaration.
6715
        (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
6716
        OK_To_Reorder_Components.
6717
        (Make_Index): If an overloaded range includes a universal integer
6718
        interpretation, resolve to Standard.Integer.
6719
        (Analyze_Subtype_Indication): Copy Convention to subtype
6720
        (Check_Abstract_Interfaces): Complete semantic checks on the legality of
6721
        limited an synchronized progenitors in type declaration and private
6722
        extension declarations.
6723
 
6724
        * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
6725
        protected subprogram body, determine proper scope from subprogram
6726
        declaration.
6727
 
6728
2008-03-26  Robert Dewar  
6729
 
6730
        * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
6731
        No_Run_Time_Mode
6732
 
6733
2008-03-26  Gary Dismukes  
6734
 
6735
        * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
6736
        of a heap allocator for a limited unconstrained function return when
6737
        resstriction No_Allocators is active.
6738
        (Analyze_Allocator): The restriction No_Allocators is now only checked
6739
        on allocators that have Comes_From_Source set, as per RM-H.4(7).
6740
 
6741
        * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
6742
        of a heap allocator for a limited unconstrained function return when
6743
        resstriction No_Allocators is active.
6744
        (Analyze_Allocator): The restriction No_Allocators is now only checked
6745
        on allocators that have Comes_From_Source set, as per RM-H.4(7).
6746
        (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
6747
        operands are fixed-point types, the universal_fixed predefined operation
6748
        is used, regardless of whether the operand type (s) have a primitive
6749
        operation of the same name.
6750
 
6751
2008-03-26  Javier Miranda  
6752
 
6753
        * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
6754
        Is_Static_Dispatch_Table
6755
        (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
6756
        to Exchange_Declarations to exchange the private and full-view. Bug
6757
        found working in this issue.
6758
        (Expand_Dispatching_Call): Propagate the convention of the subprogram
6759
        to the subprogram pointer type.
6760
        (Make_Secondary_DT): Replace generation of Prim'Address by
6761
        Address (Prim'Unrestricted_Access)
6762
        (Make_DT): Replace generation of Prim'Address by
6763
        Address (Prim'Unrestricted_Access)
6764
        (Make_Disp_*_Bodies): When compiling for a restricted profile, use
6765
        simple call form for single entry.
6766
        (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
6767
        tables of predefined primitives).
6768
        (Make_Secondary_DT): Add support to handle access to dispatch tables of
6769
        predefined primitives.
6770
        (Make_Tags): Add entities to Access_Dispatch_Table associated with
6771
        access to dispatch tables containing predefined primitives.
6772
 
6773
        * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
6774
        (Pragma_Identifier (..  instead, adjustments throughout to accomodate
6775
        this change.
6776
        (Register_Predefined_DT_Entry): Updated to handle the new contents
6777
        of attribute Access_Disp_Table (pointers to dispatch tables containing
6778
        predefined primitives).
6779
 
6780
        * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
6781
        subprogram.
6782
        (Find_Interface_ADT): Updated to skip the new contents of attribute
6783
        Access_Dispatch_Table (pointers to dispatch tables containing predefined
6784
        primitives).
6785
 
6786
        * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
6787
        concurrent types.
6788
        (Set_Convention): Use new function Is_Access_Subprogram_Type
6789
        (Collect_Interfaces_Info): Updated to skip the new contents of attribute
6790
        Access_Dispatch_Table (pointers to dispatch tables containing predefined
6791
        primitives).
6792
 
6793
        * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
6794
        expanded code avoiding calls to Build_Predef_Prims.
6795
        (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
6796
        call to Build_Get_Predefined_Prim_Op_Address.
6797
 
6798
2008-03-26  Javier Miranda  
6799
 
6800
        * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
6801
        subprogram Corresponding_Runtime_Package to know the runtime package
6802
        that will provide support to a given protected type.
6803
 
6804
        * exp_ch9.adb (Add_Private_Declarations,
6805
        Build_Protected_Subprogram_Call,
6806
        Build_Protected_Entry, Build_Simple_Entry_Call,
6807
        Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
6808
        Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
6809
        cleanup using the new centralized subprogram Corresponding_Runtime
6810
        Package to know the runtime package that provides support to
6811
        a given protected type.
6812
 
6813
2008-03-26  Ed Schonberg  
6814
 
6815
        * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
6816
        assignment is within the initialization procedure for a packed array,
6817
        and Initialize_Scalars is enabled, compile right-hand side with checks
6818
        off, because the value is purposely out of range.
6819
 
6820
2008-03-26  Vincent Celier  
6821
 
6822
        * gnatcmd.adb: Add processing for GNAT SYNC
6823
 
6824
        * vms_conv.ads: (Command_Type): Add command Sync
6825
 
6826
        * vms_conv.adb (Initialize): Add Command_List data for new command Sync
6827
 
6828
        * vms_data.ads: Add entries for -gnatw.w
6829
        Add qualifier for gnatstub --header-file option
6830
        Add switches for GNAT SYNC
6831
 
6832
        * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
6833
        (Add_Package_Name): New procedure
6834
        (Package_Name_List): New function
6835
        (Initialize): Add known package names to the list
6836
        (Register_New_Package): Add the new package name to the list
6837
 
6838
2008-03-26  Robert Dewar  
6839
 
6840
        * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
6841
        s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
6842
        Raise_Exception by "raise with" construct.
6843
 
6844
2008-03-26  Pascal Obry  
6845
 
6846
        * Makefile.in: Add proper GNAT.Serial_Communications implementation on
6847
        supported platforms.
6848
 
6849
        * Makefile.rtl: Add g-sercom.o.
6850
 
6851
        * impunit.adb: Add g-sercom.adb.
6852
 
6853
        * s-crtl.ads (open): New routine.
6854
        (close): Likewise.
6855
        (write): Likewise.
6856
 
6857
        * s-osinte-mingw.ads (BYTE): New type.
6858
        (CHAR): Likewise.
6859
        (OVERLAPPED): Likewise.
6860
        (GENERIC_READ): New constant.
6861
        (GENERIC_WRITE): Likewise.
6862
        (OPEN_EXISTING): Likewise.
6863
        (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
6864
        type instead.
6865
        (CreateFile): New routine.
6866
        (WriteFile): Likewise.
6867
        (ReadFile): Likewise.
6868
        (CloseHandle): Move next to the other file oriented routines.
6869
 
6870
        * g-sercom.ads: New unit.
6871
 
6872
        * g-sercom.adb: Default implementation, calls to this unit will raise
6873
        a program error exception.
6874
 
6875
        * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
6876
        GNU/Linux implementations.
6877
 
6878
2008-03-26  Robert Dewar  
6879
 
6880
        * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
6881
 
6882
        * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
6883
        unchecked conversion for different conventions only for subprogram
6884
        pointers or on VMS.
6885
 
6886
2008-03-26  Vincent Celier  
6887
 
6888
        * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
6889
        to check if the specified object file is correct.
6890
 
6891
2008-03-26  Thomas Quinot  
6892
 
6893
        * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
6894
        Comes_From_Source to exclude primitives from being checked. We want to
6895
        exclude predefined primitives only, so use the appropriate specific
6896
        predicate. Also, flag a formal parameter of an anonymous
6897
        access-to-subprogram type as illegal for a primitive operation of a
6898
        remote access to class-wide type.
6899
 
6900
2008-03-26  Vincent Celier  
6901
 
6902
        * prj-dect.adb (Parse_Package_Declaration): When a package name is not
6903
        known, check if it may be a missspelling of a known package name. In
6904
        not verbose, not mode, issue warnings only if the package name is a
6905
        possible misspelling.
6906
        In verbose mode, always issue a warning for a not known package name,
6907
        plus a warning if the name is a misspelling of a known package name.
6908
 
6909
        * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
6910
        limited withs or limited withs are parse during one call.
6911
        (Parse_Single_Project): Post parse context clause in two passes: non
6912
        limited withs before current project and limited withs after current
6913
        project.
6914
 
6915
        * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
6916
        project with the name With_Name, even if it is only extended indirectly.
6917
        (Recursive_Process): Process projects in order: first single withs, then
6918
        current project, then limited withs.
6919
 
6920
        * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
6921
        project with the name With_Name, even if it is only extended indirectly.
6922
 
6923
2008-03-26  Robert Dewar  
6924
 
6925
        * scn.adb (Initialize_Scanner): Format messages belong on standard error
6926
 
6927
2008-03-26  Ed Schonberg  
6928
 
6929
        * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
6930
        a generic subprogram that is imported, do not attempt to compile
6931
        non-existent body.
6932
 
6933
        * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
6934
        imported, do not generate a raise_program_error for the non-existent
6935
        body.
6936
        (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
6937
        perform minimal name resolution on the generic to avoid spurious
6938
        warnings.
6939
        (Find_Actual_Type): the designated type of the actual in a child unit
6940
        may be declared in a parent unit without being an actual.
6941
 
6942
2008-03-26  Robert Dewar  
6943
 
6944
        * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
6945
        * sinfo.ads, sinfo.adb (From_At_End): New flag
6946
 
6947
2008-03-26  Ed Schonberg  
6948
 
6949
        * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
6950
        operations that have an interface parameter.
6951
        (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
6952
        Don't treat No_Return call as raise.
6953
 
6954
        * sem_disp.adb (Check_Dispatching_Operations): apply check for
6955
        non-primitive interface primitives to access parameters, not to all
6956
        parameters of an access type.
6957
 
6958
2008-03-26  Ed Schonberg  
6959
 
6960
        * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
6961
        declarations of a parent unit are made visible when compiling a child
6962
        instance, the parent is not a hidden open scope, even though it may
6963
        contain other pending instance.
6964
 
6965
        * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
6966
        hidden open scope for some child instance, it does affect the
6967
        visibility status of other stach entries.
6968
        (Analyze_Object_Renaming): Check that a class-wide object cannot be
6969
        renamed as an object of a specific type.
6970
 
6971
2008-03-26  Robert Dewar  
6972
 
6973
        * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
6974
        recursion and raise SE directly.
6975
        (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
6976
        set for formal type for IN mode parameter.
6977
 
6978
2008-03-26  Robert Dewar  
6979
 
6980
        * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
6981
        (Initialize): New procedure
6982
        (Output_Warnings_Off_Warnings): New procedure
6983
        (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
6984
        (Output_Non_Modifed_In_Out_Warnings): Ditto
6985
        (Warn_On_Unreferenced_Entity): Ditto
6986
 
6987
2008-03-26  Vincent Celier  
6988
 
6989
        * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
6990
        readable.
6991
 
6992
2008-03-26  Matthew Heaney  
6993
 
6994
        * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
6995
        a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
6996
        Marked with clauses as private, and controlled operations as overriding
6997
 
6998
2008-03-26  Robert Dewar  
6999
 
7000
        * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7001
 
7002
2008-03-26  Robert Dewar  
7003
 
7004
        * back_end.adb, back_end.ads: Minor reformatting
7005
 
7006
        * bindgen.adb: Minor clarification of comments
7007
 
7008
        * fname.ads: Minor comment fixes
7009
 
7010
        * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7011
        prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7012
 
7013
        * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7014
        xsnames.adb: Remove warnings off pragma no longer needed
7015
 
7016
        * a-catizo.ads, a-calari.ads, a-calfor.adb,
7017
        a-calfor.ads: Fix header.
7018
 
7019
2008-03-26  Tristan Gingold  
7020
 
7021
        * init.c: Do not adjust pc for HPARITH on alpha/vms.
7022
 
7023
2008-03-26  Robert Dewar  
7024
 
7025
        * lib-xref.adb: (OK_To_Set_Reference): New function
7026
        (Generate_Reference): Don't set referenced from occurrence in Warnings,
7027
        Unmodified, or Unreferenced pragma
7028
 
7029
2008-03-26  Robert Dewar  
7030
 
7031
        * alloc.ads: Add entries for Warnings_Off_Pragmas table
7032
 
7033
2008-03-26  GNAT Script  
7034
 
7035
        * Make-lang.in: Makefile automatically updated
7036
 
7037
2008-03-26  Robert Dewar  
7038
 
7039
        * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
7040
        par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
7041
        removed, use Chars (Pragma_Identifier (..  instead, adjustments
7042
        throughout to accomodate this change.
7043
 
7044
        * s-pooglo.ads, s-pooloc.ads: Minor comment updates
7045
 
7046
        * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
7047
        Einfo.Set_Needs_Debug_Info)
7048
 
7049
2008-03-26  Robert Dewar  
7050
 
7051
        * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
7052
        Add description for the new gnatstub option '--header-file'
7053
        clarification of -gnatwz/-gnatwZ
7054
        Add a "Irix-Specific Considerations" section to document the need to
7055
        set LD_LIBRARY_PATH when using the default shared runtime library.
7056
        Added documentation for both gcov and gprof.
7057
 
7058
        * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
7059
        messages that are not suppressed when clients are compiled.
7060
        Add documentation of s-pooglo s-pooloc
7061
        Document the new GNAT.Serial_Communications API.
7062
        Add documentation for 'Old attribute
7063
        Add description of pragma Optimize_Alignment
7064
 
7065
        * ug_words: Add entries for -gnatw.w -gnatw.W
7066
 
7067
        * usage.adb: Add line for -gnatw.w (warn on warnings off)
7068
 
7069
2008-03-25  Eric Botcazou  
7070
 
7071
        Revert
7072
        2008-03-05  Eric Botcazou  
7073
        PR ada/35186
7074
        * decl.c (maybe_pad_type): Avoid padding an integral type when
7075
        bumping its alignment is sufficient.
7076
 
7077
2008-03-25  Arnaud Charlet  
7078
 
7079
        * exp_ch6.adb, exp_disp.adb: Update copyright notice.
7080
        Fix wrong formatting (lines too long)
7081
 
7082
2008-03-24  Ralf Wildenhues  
7083
 
7084
        * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
7085
        a-calend-vms.adb, a-calend.adb, a-calend.ads,
7086
        a-calfor.adb, a-chahan.ads, a-chtgke.adb,
7087
        a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
7088
        a-cohama.ads, a-comlin.ads, a-coorse.adb,
7089
        a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
7090
        a-except-2005.ads, a-except.adb, a-except.ads,
7091
        a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
7092
        a-exextr.adb, a-filico.ads, a-finali.ads,
7093
        a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
7094
        a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
7095
        a-sequio.ads, a-strbou.ads, a-strfix.adb,
7096
        checks.adb, exp_ch3.adb, exp_ch4.adb,
7097
        exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
7098
        exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
7099
        exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
7100
        exp_dbug.ads, exp_disp.adb, exp_dist.adb,
7101
        exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
7102
 
7103
2008-03-24  Robert Dewar  
7104
 
7105
        * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7106
        s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7107
        s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7108
        s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7109
        s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7110
        a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7111
        a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7112
        a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7113
        a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7114
        a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7115
        a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7116
        i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7117
        a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7118
        s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7119
        s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7120
        double spaced if it fits on one line and otherwise single spaced.
7121
 
7122
2008-03-24  Ralf Wildenhues  
7123
 
7124
        PR documentation/15479
7125
        * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7126
        (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7127
        (doc/gnat_ugn.info): Renamed from ...
7128
        (doc/gnat_ugn_unw.info): ... this.
7129
        (doc/gnat_ugn.dvi): Renamed from ...
7130
        (doc/gnat_ugn_unw.dvi): ... this.
7131
        (doc/gnat_ugn.pdf): Renamed from ...
7132
        (doc/gnat_ugn_unw.pdf): ... this.
7133
        (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7134
        Adjusted.
7135
        * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7136
        unconditionally to gnat_ugn.info.  Fix cross references to the
7137
        GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
7138
        and GNU make manuals to be proper texinfo links.
7139
        * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7140
 
7141
2008-03-21  Olivier Hainque  
7142
 
7143
        * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7144
        ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7145
 
7146
2008-03-21  Eric Botcazou  
7147
 
7148
        * trans.c (addressable_p): Add notes on addressability issues.
7149
 
7150
2008-03-21  Olivier Hainque  
7151
            Ed Schonberg  
7152
 
7153
        * trans.c (addressable_p): Accept COND_EXPR when both arms
7154
        are addressable.
7155
        (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7156
        (call_to_gnu): Do not use name reference in the error message
7157
        for a misaligned by_reference_parameter. The actual may be a
7158
        general expression.
7159
 
7160
2008-03-18  Paolo Bonzini  
7161
 
7162
        * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7163
 
7164
2008-03-15  Ralf Wildenhues  
7165
 
7166
        * gnat_rm.texi (Implementation Defined Characteristics)
7167
        (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7168
        appropriate.
7169
        * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7170
        (Switches for gnatchop, Installing a library): Likewise.
7171
 
7172
2008-03-10  Eric Botcazou  
7173
 
7174
        * trans.c (emit_range_check): Do not emit the check if the base type
7175
        of the expression is the type against which its range must be checked.
7176
 
7177
2008-03-08  Eric Botcazou  
7178
 
7179
        * decl.c (maybe_pad_type): Use value_factor_p.
7180
 
7181
2008-03-08  Eric Botcazou  
7182
 
7183
        * lang.opt (nostdlib): Move around.
7184
        * misc.c (gnat_handle_option): Fix formatting.
7185
        (gnat_dwarf_name): Move around.
7186
        * trans.c (Case_Statement_to_gnu): Fix formatting.
7187
        (gnat_to_gnu): Likewise.
7188
        * utils.c (aggregate_type_contains_array_p): Likewise.
7189
        (create_subprog_decl): Likewise.
7190
 
7191
2008-03-08  Eric Botcazou  
7192
 
7193
        * decl.c (gnat_to_gnu_entity) : Do not
7194
        bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7195
 
7196
2008-03-08  Eric Botcazou  
7197
 
7198
        * decl.c (gnat_to_gnu_entity) : Do not force
7199
        BIGGEST_ALIGNMENT when capping the alignment of records with
7200
        strict alignment and size clause.
7201
 
7202
2008-03-08  Eric Botcazou  
7203
 
7204
        * lang-specs.h: Pass -gnatwa if -Wall is passed.
7205
        * misc.c (gnat_handle_option) : Expand into -Wunused
7206
        and -Wuninitialized.
7207
        (gnat_post_options): Clear warn_unused_parameter.
7208
 
7209
2008-03-08  Eric Botcazou  
7210
 
7211
        * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7212
        aligned bit-fields, bumping the alignment of the record type if deemed
7213
        profitable.
7214
        (value_factor_p): Return false instead of 0.
7215
 
7216
2008-03-08  Eric Botcazou  
7217
 
7218
        * decl.c (gnat_to_gnu_entity) : Add support
7219
        for scalar types with small alignment.
7220
 
7221
2008-03-08  Eric Botcazou  
7222
 
7223
        * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7224
        from that of the front-end's end label.
7225
        (gnat_gimplify_stmt) : Set the SLOC of the backward goto
7226
        from that of the loop label.
7227
 
7228
2008-03-07  Eric Botcazou  
7229
 
7230
        * decl.c (gnat_to_gnu_entity) : Add
7231
        comment for the packed array type case.
7232
        * utils.c (build_template): Use a loop to strip padding or
7233
        containing records for justified modular types.
7234
 
7235
2008-03-07  Eric Botcazou  
7236
 
7237
        * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7238
        large alignments specified for types.
7239
        (validate_alignment): Minor cleanup.
7240
 
7241
2008-03-07  Eric Botcazou  
7242
 
7243
        * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7244
        (gnat_to_gnu_entity) : Try to get a smaller form of
7245
        the component for packing, if possible, as well as if a component
7246
        size clause is specified.
7247
        : For an array type used to implement a packed
7248
        array, get the component type from the original array type.
7249
        Try to get a smaller form of the component for packing, if possible,
7250
        as well as if a component size clause is specified.
7251
        (round_up_to_align): New function.
7252
        (make_packable_type): Add in_record parameter.
7253
        For a padding record, preserve the size.  If not in_record and the
7254
        size is too large for an integral mode, attempt to shrink the size
7255
        by lowering the alignment.
7256
        Ditch the padding bits of the last component.
7257
        Compute sizes and mode manually, and propagate the RM size.
7258
        Return a BLKmode record type if its size has shrunk.
7259
        (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7260
        Use Original_Array_Type to retrieve the type in case of an error.
7261
        Adjust call to make_packable_type.
7262
        (gnat_to_gnu_field): Likewise.
7263
        (concat_id_with_name): Minor tweak.
7264
        * trans.c (larger_record_type_p): New predicate.
7265
        (call_to_gnu): Compute the nominal type of the object only if the
7266
        parameter is by-reference.  Do the conversion actual type -> nominal
7267
        type if the nominal type is a larger record.
7268
        (gnat_to_gnu): Do not require integral modes on the source type to
7269
        avoid the conversion for types with identical names.
7270
        (addressable_p): Add gnu_type parameter.  If it is specified, do not
7271
        return true if the expression is not addressable in gnu_type.
7272
        Adjust recursive calls.
7273
        * utils.c (finish_record_type): Remove dead code.
7274
 
7275
2008-03-05  Eric Botcazou  
7276
 
7277
        PR ada/35186
7278
        * decl.c (maybe_pad_type): Avoid padding an integral type when
7279
        bumping its alignment is sufficient.
7280
 
7281
2008-03-02  Ralf Wildenhues  
7282
 
7283
        * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7284
        * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7285
        statement.
7286
        * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7287
        gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7288
        sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7289
        code output strings.
7290
        * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7291
        system-vms_64.ads: Fix typos in ada source code comments.
7292
        * sinfo-cn.adb: Remove incomplete sentence.
7293
 
7294
        PR documentation/15479
7295
        * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7296
 
7297
2008-02-27  Samuel Tardieu  
7298
 
7299
        PR ada/22255
7300
        * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7301
 
7302
2008-02-27  Samuel Tardieu  
7303
 
7304
        PR ada/34799
7305
        * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7306
        that underlying type is present.
7307
 
7308
2008-02-26  Tom Tromey  
7309
 
7310
        * misc.c (internal_error_function): Remove test of
7311
        USE_MAPPED_LOCATION.
7312
        * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7313
        (Sloc_to_locus): Remove old location code.
7314
 
7315
2008-02-25  Ralf Wildenhues  
7316
 
7317
        * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7318
        `i.e.' by adding comma or `@:' as appropriate.
7319
        * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
7320
        plain characters `C', use `@samp{C}'.
7321
        * gnat_ugn.texi (File Naming Rules, About gnatkr)
7322
        (Krunching Method): Likewise.
7323
 
7324
        * gnat_ugn.texi (Conventions): List environment variables and
7325
        metasyntactic variables.
7326
        (Compiling Programs): Fix notation of metasyntactic variables.
7327
        Add @file where appropriate.  Use @file for file extensions,
7328
        @samp for strings.
7329
        * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
7330
        instead of @file, @env instead of @code.
7331
 
7332
2008-02-24  Ralf Wildenhues  
7333
 
7334
        PR documentation/15479
7335
        * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
7336
        and `...' with `@dots{}' or `@enddots{}'.
7337
 
7338
        PR documentation/15479
7339
        * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
7340
        use @command instead of @code, @option instead of @samp or @code,
7341
        @code instead of @var, @samp instead of @file.
7342
 
7343
        PR documentation/15479
7344
        * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
7345
        in Makefile rules, by using `&&' rather than `;'.
7346
 
7347
2008-02-17  Ralf Wildenhues  
7348
 
7349
        PR documentation/15479
7350
        * gnat_ugn.texi: In non-code, avoid space before colon.
7351
        (Regular Expressions in gnatfind and gnatxref): Fix indentation.
7352
        (Examples of gnatxref Usage): Use @command{vi} instead of
7353
        @file{vi}.
7354
        (Character Set Control): Do not use @code for UTF-8.
7355
        (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
7356
        use @code for IEEE.
7357
        * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
7358
        sample.
7359
        * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
7360
 
7361
2008-02-11  Joel Sherrill  
7362
 
7363
        PR ada/35143
7364
        * env.c: Add __rtems__ to if defined.
7365
        * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
7366
        * s-osinte-rtems.ads: Add To_Target_Priority prototype and
7367
        PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
7368
        pragma Convention as required.
7369
        * gsocket.h: Make compile in and out of RTS.
7370
        * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
7371
        Use g-soccon-rtems.ads.
7372
        * g-soccon-rtems.ads, system-rtems.ads: New files.
7373
 
7374
2008-02-06  Kaveh R. Ghazi  
7375
 
7376
        PR other/35107
7377
        * Make-lang.in (gnat1): Add $(GMPLIBS).
7378
 
7379
2008-01-26  Eric Botcazou  
7380
 
7381
        * decl.c (components_to_record): Improve comment.
7382
 
7383
2008-01-22  Eric Botcazou  
7384
 
7385
        * decl.c (components_to_record): Do not reuse the empty union type
7386
        if there is a representation clause on the record.
7387
        * trans.c (addressable_p): Return true for INTEGER_CST.
7388
 
7389
2008-01-21  Eric Botcazou  
7390
 
7391
        * trans.c (gnat_to_gnu) : Use POINTER_PLUS_EXPR
7392
        in pointer arithmetics.
7393
        * utils2.c (build_allocator): Likewise.
7394
 
7395
2008-01-17  Eric Botcazou  
7396
 
7397
        * utils.c (build_function_stub): Properly build the call expression.
7398
 
7399
2008-01-14  Eric Botcazou  
7400
 
7401
        * decl.c (gnat_to_gnu_entity) : Process renamings
7402
        before converting the expression to the type of the object.
7403
        * trans.c (maybe_stabilize_reference) : New case.
7404
        Stabilize constructors for special wrapping types.
7405
 
7406
2008-01-13  Eric Botcazou  
7407
 
7408
        * trans.c (call_to_gnu): Invoke the addressable_p predicate only
7409
        when necessary.  Merge some conditional statements.  Update comments.
7410
        Rename unchecked_convert_p local variable to suppress_type_conversion.
7411
        Do not suppress conversions in the In case.
7412
        (addressable_p) : Do not take alignment issues
7413
        into account on non strict-alignment platforms.
7414
 
7415
2008-01-12  Eric Botcazou  
7416
 
7417
        * utils.c (aggregate_type_contains_array_p): New predicate.
7418
        (create_field_decl): In a packed record, force byte alignment
7419
        for fields without specified position that contain an array.
7420
 
7421
2008-01-12  Eric Botcazou  
7422
 
7423
        * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
7424
 
7425
2008-01-10  John David Anglin  
7426
 
7427
        PR ada/34466
7428
        * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
7429
        sysconf call.
7430
        (bit_field): New packed boolean type used by cpu_set_t.
7431
        (cpu_set_t): New type corresponding to the C type with
7432
        the same name. Note that on the Ada side we use a bit
7433
        field array for the affinity mask. There is not need
7434
        for the C macro for setting individual bit.
7435
        (pthread_setaffinity_np): New imported routine.
7436
 
7437
2008-01-03  Tero Koskinen  
7438
 
7439
        PR ada/34647
7440
        * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7441
        on OpenBSD as is done on other BSD systems.
7442
 
7443
        PR ada/34645
7444
        * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
7445
        getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
7446
        I/O.
7447
 
7448
        PR ada/34644
7449
        * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
7450
        clearenv().
7451
 
7452
        PR ada/34646
7453
        * init.c (__gnat_error_handler, __gnat_install_handler,
7454
        __gnat_init_float): Define for OpenBSD.
7455
 
7456
        * initialize.c (__gnat_initialize): Define for OpenBSD.
7457
 
7458
 
7459
 
7460
Copyright (C) 2008 Free Software Foundation, Inc.
7461
 
7462
Copying and distribution of this file, with or without modification,
7463
are permitted in any medium without royalty provided the copyright
7464
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.