OSDN Git Service

2008-08-08 Thomas Quinot <quinot@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-08-08  Thomas Quinot  <quinot@adacore.com>
2
3         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
4         previous change, not needed after all.
5
6 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
7
8         * exp_ch4.adb (Expand_Allocator_Expression): add check if null
9         exclusion indicator is present
10
11 2008-08-08  Robert Dewar  <dewar@adacore.com>
12
13         * g-comlin.adb: Minor code reorganization
14         Minor reformatting
15
16         * g-comlin.ads: Minor reformatting
17
18         * s-fileio.adb: Minor reformatting
19
20         * sem_attr.adb: Minor code reorganization (use Nkind_In)
21         Minor reformatting
22
23 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
24
25         * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
26         with s-oscons-tmplt.i.
27
28 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
29
30         * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
31
32 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
33
34         * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
35         of incomplete type.
36
37         * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
38         of a formal parameter of an incomplete type. Improve error message for
39         other improper uses of incomplete types.
40
41 2008-08-06  Robert Dewar  <dewar@adacore.com>
42
43         * gnat_ugn.texi: Clarify -gnato documentation
44
45 2008-08-06  Thomas Quinot  <quinot@adacore.com>
46
47         * gcc-interface/Makefile.in,
48         g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
49         g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
50         g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
51         g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
52         g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
53         g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
54         g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
55         g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
56         g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
57         Remove GNAT.Sockets.Constants. This internal package is replaced by
58         System.OS_Constants.
59
60 2008-08-06  Thomas Quinot  <quinot@adacore.com>
61
62         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
63         Remove obsolete targets referencing gen-soccon
64         When generating s-oscons.ads, use a file name that includes the
65         THREAD_KIND, to ensure that the (potentially different) version from a
66         previous build with a different threads flavour does not get reused.
67
68 2008-08-06  Thomas Quinot  <quinot@adacore.com>
69
70         * sem_res.adb: Minor reformatting
71
72         * s-fileio.adb (Open): When file open operation fails, raise Name_Error
73         only when the operating system reports a non-existing file or directory
74         (ENOENT), otherwise raise Name_Error.
75
76         * exp_ch11.adb: Minor reformatting
77
78 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
79
80         * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
81         incomplete, add the access_to_subprogram type to the list of private
82         dependents only if the incomplete type will be completed in the current
83         scope.
84         (Build_Discriminant_Constraints): If the type of the discriminant is
85         access_to_variable, reject a constraint that is access_to_constant.
86
87 2008-08-06  Thomas Quinot  <quinot@adacore.com>
88
89         * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
90         g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
91         g-sttsne-dummy.ads: New files.
92
93         * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
94         with pragma Unimplemented_Unit for sockets packages on Nucleus.
95
96 2008-08-06  Pascal Obry  <obry@adacore.com>
97
98         * adaint.c: Another fix for ACL support on Windows.
99
100 2008-08-06  Javier Miranda  <miranda@adacore.com>
101
102         * exp_disp (Expand_Interface_Actuals): Adds missing support for
103         expansion of calls to subprograms using selected components.
104
105 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
106
107         * sem_res.adb (Resolve_Call): Use base type to determine whether a
108         dereference is needed because a subtype of an access_to_subprogram is
109         simply an access-subtype
110
111 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
112
113         * g-comlin.adb (Set_Command_Line): Now that aliases can contain
114         parameters, always specify the expected separator.
115
116 2008-08-06  Thomas Quinot  <quinot@adacore.com>
117
118         * xnmake.adb: Use new XUtil package for platform independent text
119         output.
120
121 2008-08-06  Vincent Celier  <celier@adacore.com>
122
123         * gnat_ugn.texi: Document compiler switch -gnateG
124
125 2008-08-06  Quentin Ochem  <ochem@adacore.com>
126
127         * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
128         in the case of an empty pattern size.
129         (Compute_Result): Do not do any computation in the case of an empty
130         pattern size.
131         (Report_Result): Fixed computation of the overflow guard.
132
133 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
134
135         * g-awk.adb (Finalize): Do not use directly objects of the type in the
136         finalization routine to prevent elaboration order anomalies in new
137         finalization scheme.
138
139 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
140
141         * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
142         declaration for the same type.
143
144 2008-08-06  Thomas Quinot  <quinot@adacore.com>
145
146         * sem.adb: Minor rewording (comment)
147
148 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
149
150         * g-comlin.adb (Define_Switch, Get_Switches): New.
151         (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
152         ungrouping switches.
153         (For_Each_Simple_Switch): Allow more control over parameters handling.
154         This generic method now allows ungrouping of switches with parameters
155         and switches with more than one letter after the prefix.
156         (Set_Command_Line): Take care of switches that are prefixed with a
157         switch handling parameters without delimiter (-gnatya and -gnaty3 for
158         example).
159         (Add_Switch, Remove_Switch): Handle parameters possibly present inside
160         a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
161         the operation.
162         (Start, Alias_Switches, Group_Switches): Take care of parameters
163         possibly present inside a group.
164
165         * g-comlin.ads (Define_Switch): New method used to define a list of
166         expected switches, that are necessary for correctly ungrouping switches
167         with more that one character after the prefix.
168         (Get_Switches): Method that builds a getopt string from the list of
169         switches as set previously by Define_Switch.
170         (Add_Switch, Remove_Switch): New versions of the methods, reporting the
171         status of the operation. Also allow the removal of switches with
172         parameters only.
173         (Command_Line_Configuration_Record): Maintain a list of expected
174         switches.
175
176 2008-08-06  Doug Rupp  <rupp@adacore.com>
177
178         * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
179         TARGET_MALLOC64 clear.
180
181         * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
182         if TARGET_MALLOC64 clear.
183
184         * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
185         (TARGET_MALLC64): New macro. Default to clear.
186
187 2008-08-06  Doug Rupp  <rupp@adacore.com>
188
189         * gcc-interface/utils2.c (snames.h) Include
190         (TARGET_ABI_OPEN_VMS): Initialize.
191         (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
192         for Convention C.
193
194 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
195
196         * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
197         null exclusion in a discriminant declaration
198
199         * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
200         indicators when type is not an access type.
201
202         * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
203         indicators when type is not an access type.
204
205 2008-08-06  Javier Miranda  <miranda@adacore.com>
206
207         * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
208         with the target interface before expanding the code of the interface
209         conversion.
210
211 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
212
213         * freeze.adb:
214         (Freeze_Entity): A deferred constant does not violate the restriction
215         No_Default_Initialization, 
216
217         * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
218         can carry a null exclusion indicator, and on which an error may be
219         posted if the indicator is redundant.
220
221         * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
222         does not apply to a subtype mark that already excludes null.
223
224         * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
225         exclusion does not apply to a subtype mark that already excludes null.
226
227 2008-08-05  Thomas Quinot  <quinot@adacore.com>
228
229         * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
230
231 2008-08-05  Doug Rupp  <rupp@adacore.com>
232
233         * vms_data.ads: Translation for /POINTER_SIZE qualifier.
234
235 2008-08-05  Thomas Quinot  <quinot@adacore.com>
236
237         * gsocket.h: Make this file includable in a Nucleus environment, which
238         does not support sockets.
239
240         * socket.c: Remove Nucleus-specific hack.
241
242 2008-08-05  Pascal Obry  <obry@adacore.com>
243
244         * adaint.c: Remove support for readable attribute on vxworks and nucleus
245
246 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
247
248         * sem_attr.adb:
249         (Analyze_Attribute, case 'Result): handle properly the case where some
250         operand of the expression in a post-condition generates a transient
251         block.
252
253         * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
254         right-hand side when it is an anonymous access_to_subprogram, to force
255         static accessibility check when needed.
256
257 2008-08-05  Sergey Rybin  <rybin@adacore.com>
258
259         * gnat_ugn.texi: Changing the description of the gnatcheck metrics
260         rule according to the change in the rule option.
261         Add documentation for -gnatw.b/-gnatw.B
262
263 2008-08-05  Robert Dewar  <dewar@adacore.com>
264
265         * ug_words: Add entries for -gnatw.b/-gnatw.B
266
267         * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
268
269 2008-08-05  Vincent Celier  <celier@adacore.com>
270
271         * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
272         (File).
273         
274         * a-ztdeio.adb: Ditto.
275
276 2008-08-05  Pascal Obry  <obry@adacore.com>
277
278         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
279         readable attribute.
280
281 2008-08-05  Vincent Celier  <celier@adacore.com>
282
283         * s-wchwts.adb:
284         (Wide_String_To_String): Returns a String with the same 'First as its
285         parameter S.
286         (Wide_Wide_String_To_String): Ditto
287         
288         * s-wchwts.ads:
289         (Wide_String_To_String): Document that the lowest index of the returned
290         String is equal to S'First.
291
292 2008-08-05  Thomas Quinot  <quinot@adacore.com>
293
294         * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
295
296         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
297         s-oscons.ads
298
299 2008-08-05  Robert Dewar  <dewar@adacore.com>
300
301         * opt.ads (Warn_On_Biased_Representation): New flag
302         
303         * sem_ch13.adb:
304         (Analyze_Attribute_Definition_Clause): Issue warning when biased
305         representation is required.
306         (Minimum_Size): Don't allow biasing if enum rep clause case
307         
308         * sem_warn.adb:
309         (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
310         (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
311         
312         * usage.adb: Add lines for -gnatw.b/B switches
313
314 2008-08-05  Pascal Obry  <obry@adacore.com>
315
316         * a-coinve.adb: Reorder the code to avoid uninitialized warning.
317
318         * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
319
320 2008-08-05  Thomas Quinot  <quinot@adacore.com>
321
322         * socket.c: Minor reformatting.
323
324 2008-08-05  Robert Dewar  <dewar@adacore.com>
325
326         * sem_ch3.adb: Minor reformatting
327
328         * prj-nmsc.adb: Minor reformatting
329
330 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
331
332         * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
333         visibility check on the component type if the simple test fails.
334
335 2008-08-05  Jose Ruiz  <ruiz@adacore.com>
336
337         * init.c (__gnat_install_handler for linux): If we are building the
338         Xenomai run time then we need to do two additional things: avoid
339         memory swapping and transform the Linux environment task into a native
340         Xenomai task.
341
342         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
343         time): Use interface to Xenomai native skin and avoid linux-specific
344         way of setting CPU affinity.
345         (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
346
347 2008-08-05  Bob Duff  <duff@adacore.com>
348
349         * checks.ads: Minor comment fix
350
351 2008-08-05  Thomas Quinot  <quinot@adacore.com>
352
353         * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
354         g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
355         CS8.
356
357 2008-08-05  Robert Dewar  <dewar@adacore.com>
358
359         * mlib.adb: Minor code reorganization
360         Minor reformatting
361
362         * make.adb: Minor reformatting
363
364         * prj-attr.ads: Minor reformatting
365
366         * s-os_lib.adb: Minor reformatting
367
368         * s-fileio.adb: Minor code reorganization
369         Minor reformatting
370
371         * prj.ads: Minor reformatting
372
373 2008-08-05  Bob Duff  <duff@adacore.com>
374
375         * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
376         unresolved initial value of "null", because it causes implicitly
377         generated "=" operators to be ambiguous, and because this type should
378         not be passed to gigi.
379
380 2008-08-05  Vincent Celier  <celier@adacore.com>
381
382         * mlib.adb: Update comments.
383
384         * make.adb (Switches_Of): Check for Switches (others), before checking
385         for Default_Switches ("Ada").
386         (Gnatmake): Use Builder'Switches (others) in preference to
387         Builder'Default_Switches ("Ada") if there are several mains.
388
389         * prj-attr-pm.adb:
390         (Add_Attribute): Add component Others_Allowed in Attribute_Record
391         aggregate.
392
393         * prj-attr.adb:
394         Add markers to indicates that attributes Switches allow others as index
395         (Others_Allowed_For): New Boolean function, returning True for
396         attributes with the mark.
397         (Initialize): Recognize optional letter 'O' as the marker for
398         associative array attributes where others is allowed as the index.
399
400         * prj-attr.ads:
401         (Others_Allowed_For): New Boolean function
402         (Attribute_Record): New Boolean component Others_Allowed
403         
404         * prj-dect.adb:
405         (Parse_Attribute_Declaration): For associative array attribute where
406         others is allowed as the index, allow others as an index.
407
408         * prj-nmsc.adb:
409         (Process_Binder): Skip associative array attributes with index others
410         (Process_Compiler): Ditto
411
412         * prj-util.adb:
413         (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
414         index is All_Other_Names.
415
416         * prj.ads:
417         (All_Other_Names): New constant
418
419         * prj-proc.adb:
420         (Process_Declarative_Items): Skip associative array attribute when index
421         is reserved word "others".
422
423 2008-08-05  Vasiliy Fofanov  <fofanov@adacore.com>
424
425         * gen-oscons.c: Adapt for VMS where termios.h is not available.
426
427 2008-08-05  Thomas Quinot  <quinot@adacore.com>
428
429         * a-rttiev.adb: Minor reformatting (comments)
430
431         * gen-soccon.c: Rename to gen-oscons.c
432
433         * gen-oscons.c: New file. Now generate System.OS_Constants instead of
434         GNAT.Sockets.Constants.
435         Add new constants for GNAT.Serial_Communications and System.File_IO.
436
437 2008-08-05  Javier Miranda  <miranda@adacore.com>
438
439         * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
440         * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
441         implementation of this routine has been simplified.
442
443 2008-08-05  Pascal Obry  <obry@adacore.com>
444
445         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
446         Set_Read_Only Win32 implementation.
447
448 2008-08-05  Thomas Quinot  <quinot@adacore.com>
449
450         * exp_strm.adb: Minor reformatting (comments)
451
452         * sem_ch12.adb: Minor reformatting.
453
454 2008-08-05  Robert Dewar  <dewar@adacore.com>
455
456         * sem_ch3.adb: Minor reformatting
457
458         * checks.adb: Minor reformatting
459
460 2008-08-05  Thomas Quinot  <quinot@adacore.com>
461
462         * tbuild.ads (New_External_Name): Update spec to reflect relaxed
463         restriction on Prefix.
464
465 2008-08-05  Jerome Lambourg  <lambourg@adacore.com>
466
467         * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
468         methods needed to handle switch sections when building a command line.
469         (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
470         Current_Section): New public methods or methods modified to handle
471         building command lines with sections.
472         (Set_Command_Line): Take into account sections when analysing a switch
473         string.
474         (Start): Sort the switches by sections before iterating the command line
475         elements.
476         
477         * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
478         Is_New_Section, Current_Section): New methods or methods modified to
479         handle building command lines with sections.
480
481 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
482
483         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
484         discriminants, indicate that the corresponding object declaration has
485         no initialization, to prevent spurious warnings when the access type is
486         null-excluding.
487
488 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
489
490         * sem_res.adb (Resolve_Call): If this is a call to the predefined
491         Abort_Task, warn if the call appears within a protected operation.
492
493 2008-08-04  Robert Dewar  <dewar@adacore.com>
494
495         * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
496
497 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
498
499         * sem_ch3.adb:
500         (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
501         anonymous access to protected subprogram that is the return type of the
502         specification of a subprogram body.
503
504         * sem_ch6.adb:
505         (Analyze_Subprogram_Body): if the return type is an anonymous access to
506         subprogram, freeze it now to prevent access anomalies in the back-end.
507
508         * exp_ch9.adb: Minor code cleanup.
509         Make sure that new declarations are inserted into the tree before
510         analysis (from code reading).
511
512 2008-08-04  Robert Dewar  <dewar@adacore.com>
513
514         * exp_ch5.adb:
515         (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
516         at point of return.
517
518 2008-08-04  Thomas Quinot  <quinot@adacore.com>
519
520         * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
521
522 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
523
524         * g-soccon-mingw.ads: Fix value for MSG_WAITALL
525
526 2008-08-04  Javier Miranda  <miranda@adacore.com>
527
528         * sem_prag.adb (Process_Convention): Add missing support for
529          N_Private_Extension_Declaration nodes.
530
531 2008-08-04  Robert Dewar  <dewar@adacore.com>
532
533         * exp_ch4.adb: Minor reformatting
534
535 2008-08-04  Pascal Obry  <obry@adacore.com>
536
537         * adaint.h: Add missing prototype.
538
539         * adaint.c: Refine support for Windows file attributes.
540
541 2008-08-04  Robert Dewar  <dewar@adacore.com>
542
543         * sem_res.adb:
544         (Valid_Conversion): Catch case of designated types having different
545         sizes, even though they statically match.
546
547 2008-08-04  Javier Miranda  <miranda@adacore.com>
548
549         * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
550         added in previous patch to handle access to subprograms.
551
552 2008-08-04  Robert Dewar  <dewar@adacore.com>
553
554         * freeze.adb:
555         (Freeze_Entity): Only check No_Default_Initialization restriction for
556         constructs that come from source
557
558 2008-08-04  Thomas Quinot  <quinot@adacore.com>
559
560         * exp_ch6.adb: Minor comment fix.
561
562         * sem_ch4.adb: Minor reformatting.
563
564 2008-08-04  Robert Dewar  <dewar@adacore.com>
565
566         * sem_res.adb: (Large_Storage_Type): Improve previous change.
567
568 2008-08-04  Pascal Obry  <obry@adacore.com>
569
570         * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
571         file attributes.
572
573 2008-08-04  Javier Miranda  <miranda@adacore.com>
574
575         * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
576         for N_Formal_Object_Declaration nodes. Adding kludge required by
577         First_Formal to provide its functionality with access to functions.
578         (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
579         for anonymous access types returned by functions.
580
581         * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
582         conversion of null-excluding access types (required only once to force
583         the generation of the required runtime check).
584
585         * sem_type.adb (Covers): minor reformating
586
587         * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
588         with internally generated nodes. Avoid generating the error inside init
589         procs.
590
591         * sem_res.adb (Resolve_Membership_Test): Minor reformating.
592         (Resolve_Null): Generate the null-excluding check in case of assignment
593         to a null-excluding object.
594         (Valid_Conversion): Add missing support for anonymous access to
595         subprograms.
596
597         * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
598         anonymous access types whose designated type is an itype. This case
599         occurs with anonymous access to protected subprograms types.
600         (Analyze_Return_Type):  Add missing support for anonymous access to
601         protected subprogram.
602
603         * sem_eval.adb (Subtypes_Statically_Match): In case of access to
604         subprograms addition of missing check on matching convention. Required
605         to properly handle access to protected subprogram types.
606
607         * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
608         null excluding access types.
609
610 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
611
612         * sem_ch12.adb: Add comments
613
614         * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
615         access type and the allocator is not initialized, warn rather than
616         reporting an error.
617
618 2008-08-04  Robert Dewar  <dewar@adacore.com>
619
620         * exp_ch4.adb: Minor reformatting
621
622         * exp_dist.adb: Minor reformatting
623
624         * g-comlin.adb: Minor reformatting
625
626 2008-08-04  Gary Dismukes  <dismukes@adacore.com>
627
628         * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
629         target to the type of the aggregate in the case where the target object
630         is class-wide.
631
632         * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
633         result type is class-wide and inherently limited, and the expression
634         has a specific type, create a return object of the specific type, for
635         more efficient handling of returns of build-in-place aggregates (avoids
636         conversions of the class-wide return object to the specific type on
637         component assignments).
638
639         * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
640         about a type mismatch for a class-wide function with a return object
641         having a specific type when the object declaration doesn't come from
642         source. Such an object can result from the expansion of a simple return.
643
644 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
645
646         * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
647
648         * gcc-interface/Makefile.in: Use 64bit-specific system files when
649         compiling for 64bit windows.
650
651 2008-08-04  Jerome Lambourg  <lambourg@adacore.com>
652
653         * g-comlin.adb (Group_Switches): Preserve the switch order when
654         grouping and allow switch grouping of switches with more than one
655         character extension (e.g. gnatw.x).
656         (Args_From_Expanded): Remove this now obsolete method.
657
658 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
659
660         * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
661         chain at once, to ensure that type is properly decorated for back-end,
662         when allocator appears within a loop.
663
664 2008-08-04  Kevin Pouget  <pouget@adacore.com>
665
666         * snames.h, snames.adb, snames.ads:
667         Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
668
669         * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
670         Build_To_Any_Call and Build_TypeCode_Call procedures.
671
672         * exp_attr.adb, sem_attr.adb: Add corresponding cases.
673
674         * rtsfind.ads: Add corresponding names.
675
676         * tbuild.adb: Update prefix restrictions to allow '_' character.
677
678 2008-08-04  Doug Rupp  <rupp@adacore.com>
679
680         * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
681         * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
682         * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
683         use it.  Calculate pointer range overflow using 64bit types.
684
685 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
686
687         * sem_ch3.adb (Access_Definition): A formal object declaration is a
688         legal context for an anonymous access to subprogram.
689
690         * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
691         indirect call, report success to the caller to include possible
692         interpretation.
693
694         * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
695         check when the type
696         of the extended return is an anonymous access_to_subprogram type.
697
698         * sem_res.adb:
699         (Resolve_Call): Insert a dereference if the type of the subprogram is an
700         access_to_subprogram and the context requires its return type, and a
701         dereference has not been introduced previously.
702
703 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
704
705         * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
706         gnatcheck support in GPS.
707
708 2008-08-04  Vincent Celier  <celier@adacore.com>
709
710         * mlib.adb (Create_Sym_Links): Create relative symbolic links when
711         requested
712
713 2008-08-04  Vincent Celier  <celier@adacore.com>
714
715         * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
716         variable, but don't check the resulting value as it has no impact on
717         the processing.
718         
719         * opt.ads:
720         (Generate_Processed_File): New Boolean flag, set to True in the compiler
721         when switch -gnateG is used.
722         
723         * prep.adb:
724         (Preprocess): new Boolean out parameter Source_Modified. Set it to True
725         when the source is modified by the preprocessor and there is no
726         preprocessing errors.
727         
728         * prep.ads (Preprocess): new Boolean out parameter Source_Modified
729         
730         * sinput-l.adb:
731         (Load_File): Output the result of preprocessing if the source text was
732         modified.
733         
734         * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
735         
736         * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
737         
738         * ug_words: Add VMS equivalent for -gnateG
739         
740         * vms_data.ads:
741         Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
742
743 2008-08-04  Doug Rupp  <rupp@adacore.com>
744
745         * gcc-interface/utils2.c:
746         (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
747         in 32bit descriptor.
748
749 2008-08-04  Robert Dewar  <dewar@adacore.com>
750
751         * par-ch10.adb: Minor reformatting
752
753         * i-cobol.adb: Minor reformatting.
754
755 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
756
757         * sem_ch3.adb (Access_Definition): Create an itype reference for an
758         anonymous access return type of a regular function that is not a
759         compilation unit.
760
761 2008-08-04  Vincent Celier  <celier@adacore.com>
762
763         * prj-attr.adb: New Builder attribute Global_Compilation_Switches
764         
765         * snames.adb: New standard name Global_Compilation_Switches
766         
767         * snames.ads: New standard name Global_Compilation_Switches
768
769         * make.adb: Correct spelling error in comment
770
771 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
772
773         * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
774         target.
775
776 2008-08-04  Thomas Quinot  <quinot@adacore.com>
777
778         * sem_ch10.adb: Minor comment fix.
779
780 2008-08-04  Robert Dewar  <dewar@adacore.com>
781
782         * restrict.adb: Improved messages for restriction warnings
783
784         * restrict.ads: Improved messages for restriction messages
785
786         * s-rident.ads (Profile_Name): Add No_Profile
787
788 2008-08-04  Robert Dewar  <dewar@adacore.com>
789
790         * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
791
792 2008-08-04  Robert Dewar  <dewar@adacore.com>
793
794         * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
795
796 2008-08-04  Vincent Celier  <celier@adacore.com>
797
798         * prj-proc.adb:
799         (Copy_Package_Declarations): When inheriting package Naming from a
800         project being extended, do not inherit source exception names.
801
802 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
803
804         * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
805         list of declaration to find previous subprogram, do not go to the
806         original node of a generic unit.
807
808 2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>
809
810         * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
811         New case.  Convert BOOLEAN_TYPE operation to the default integer type.
812
813 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
814
815         * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
816         * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
817         and adjust for above renaming.
818         * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
819         gnu_expr_alt_type parameter.  Convert the expression to it instead
820         of changing its type in place.
821         (build_function_stub): Adjust call to above function.
822
823 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
824
825         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
826         code.  Do not get full definition of deferred constants with address
827         clause for a use.  Do not ignore deferred constant definitions with
828         address clause.  Ignore constant definitions already marked with the
829         error node.
830         <object>: Remove obsolete comment.  For a deferred constant with
831         address clause, get the initializer from the full view.
832         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
833         Rework and remove obsolete comment.
834         <N_Object_Declaration>: For a deferred constant with address clause,
835         mark the full view with the error node.
836         * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
837         formatting nits.
838
839 2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
840
841         * rtsfind.ads: Add block IO versions of stream routines for Strings.
842         
843         * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
844         sem_prag.adb, snames.adb, snames.ads, snames.h,
845         par-prag.adb: Undo previous stream related changes.
846         
847         * s-rident.ads: Add new restriction No_Stream_Optimizations.
848         
849         * s-ststop.ads, s-ststop.adb: Comment reformatting.
850         Define enumeration type to designate different IO mechanisms.
851         Enchance generic package Stream_Ops_Internal to include an
852         implementation of Input and Output.
853
854         * exp_attr.adb (Find_Stream_Subprogram): If restriction
855         No_Stream_Optimization is active, choose the default byte IO
856         implementations of stream attributes for Strings.
857         Otherwise use the corresponding block IO version.
858
859 2008-08-01  Olivier Hainque  <hainque@adacore.com>
860         
861         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
862         turn Ada Pure into GCC const, now implicitely implying nothrow as well.
863
864 2008-08-01  Robert Dewar  <dewar@adacore.com>
865
866         * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
867         convert plain identifier into defining identifier.
868
869 2008-08-01  Robert Dewar  <dewar@adacore.com>
870
871         * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
872         warnings
873
874         * lib-xref.adb: Add error defense.
875
876 2008-08-01  Bob Duff  <duff@adacore.com>
877
878         * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
879
880 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
881
882         * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
883         correct accessibility levels. In the "when others" case, retrieve the
884         access level of the Etype of Prev rather than Prev_Orig, because the
885         original exression has not always been analyzed.
886
887 2008-08-01  Robert Dewar  <dewar@adacore.com>
888
889         * prj-nmsc.adb: Minor reformatting
890
891         * sem_ch4.adb: Minor reformatting
892         Minor code reorganization
893
894         * prj.ads: Minor reformatting
895
896         * s-os_lib.adb: Minor reformatting
897
898         * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
899         half encodings
900
901         * scans.ads: Minor reformatting.
902
903         * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
904         (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
905
906         * sem_res.adb:
907         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
908
909         * sem_ch12.adb: Minor comment reformatting
910
911         * par-ch3.adb (P_Type_Declaration): Properly handle missing type
912         keyword
913
914 2008-08-01  Robert Dewar  <dewar@adacore.com>
915
916         * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
917         generating code
918
919 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
920
921         * checks.adb (Apply_Float_Conversion_Check): If the expression to be
922         converted is a real literal and the target type has static bounds,
923         perform the conversion exactly to prevent floating-point anomalies on
924         some targets.
925
926 2008-08-01  Vincent Celier  <celier@adacore.com>
927
928         * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
929         
930         * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
931         
932         * prj.adb (Object_Exist_For): Use Object_Generated, not
933         Objects_Generated that is removed and was never modified anyway.
934
935         * prj.ads:
936         (Path_Syntax_Kind): New enumeration type
937         (Language_Config): New component Path_Syntax, defaulted to Host.
938         Components PIC_Option and Objects_Generated removed, as they are not
939         used.
940
941         * snames.adb: New standard name Path_Syntax
942         
943         * snames.ads: New standard name Path_Syntax
944
945 2008-08-01  Vincent Celier  <celier@adacore.com>
946
947         * mlib-utl.adb:
948         (Adalib_Path): New variable to store the path of the adalib directory
949         when procedure Specify_Adalib_Dir is called.
950         (Lib_Directory): If Adalib_Path is not null, return its value
951         (Specify_Adalib_Dir): New procedure
952         
953         * mlib-utl.ads (Specify_Adalib_Dir): New procedure
954
955 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
956
957         * sem_prag.adb:
958         (Check_Precondition_Postcondition): If not generating code, analyze the
959         expression in a postcondition that appears in a subprogram body, so that
960         it is properly decorated for ASIS use.
961
962 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
963
964         * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
965         Orig_Prev to Prev in the case where the actual is N_Function_Call or
966         N_Identifier. This was interfering with other cases that are rewritten
967         as N_Identifier, such as allocators, resulting in passing of the wrong
968         accessibility level, and based on testing this code is apparently no
969         longer needed at all.
970
971 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
972
973         * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
974         procedure call whose prefix
975         is a parameterless function call that returns an access_to_procedure.
976
977 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
978
979         * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
980         for RTX. Adding a suffix that is incremented at each iteration.
981
982 2008-08-01  Robert Dewar  <dewar@adacore.com>
983
984         * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
985         Raise_Exception
986
987 2008-08-01  Jerome Lambourg  <lambourg@adacore.com>
988
989         * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
990         paths, which are authorized by Windows but can lead to errors when used
991         elsewhere.
992
993 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
994
995         * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
996         a pending instantiation for the body of a subprogram that is to be
997         inlined.
998
999         * sem_ch12.adb:
1000         (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
1001
1002         * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
1003         create a pending instance for its body, so that calls to the subprogram
1004         can be inlined by the back-end.
1005
1006 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
1007
1008         * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
1009         rts-rtx-w32).
1010
1011 2008-08-01  Robert Dewar  <dewar@adacore.com>
1012
1013         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
1014
1015 2008-08-01  Doug Rupp  <rupp@adacore.com>
1016
1017         * gnat_rm.texi: Document new mechanism Short_Descriptor.
1018         
1019         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
1020         mechanism values.
1021
1022         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
1023         mechanism and Short_Descriptor mechanism values.
1024
1025         * snames.adb (preset_names): Add short_descriptor entry.
1026
1027         * snames.ads: Add Name_Short_Descriptor.
1028
1029         * types.h: Add new By_Short_Descriptor mechanism values.
1030
1031         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
1032         mechanism and Short_Descriptor mechanism values.
1033
1034         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
1035         values.
1036         (Descriptor_Codes): Modify range for new mechanism values.
1037
1038         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
1039         mechanism values.
1040
1041         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
1042         (gnat_to_gnu_param): Handle By_Short_Descriptor.
1043
1044         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
1045         (build_vms_descriptor32): New prototype.
1046         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
1047
1048         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
1049         argument in call fill_vms_descriptor.
1050
1051         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
1052         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
1053         (build_vms_descriptor): Renamed from build_vms_descriptor64. 
1054         (convert_vms_descriptor32): New function.
1055         (convert_vms_descriptor64): New function.
1056         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
1057         descriptors.
1058
1059         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
1060         no longer needed.
1061
1062 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
1063
1064         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
1065         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
1066         name.
1067
1068 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
1069
1070         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
1071         current directory so only fully qualified names are allowed.
1072
1073 2008-08-01  Robert Dewar  <dewar@adacore.com>
1074
1075         * gnat_ugn.texi:
1076         Minor editing, remove uncomfortable use of semicolon
1077
1078         * s-ststop.adb: Add some ??? comments
1079
1080         * sem_ch10.adb: Minor reformatting
1081
1082         * snames.ads:
1083         Minor comment fixes, some pragmas were not properly
1084         categorized in the comments, documentation change only
1085
1086         * xref_lib.adb: Minor reformatting
1087
1088         * sinput.adb: Minor reformatting
1089
1090         * gnatchop.adb: Minor reformatting
1091
1092         * sem_util.ads: Minor reformatting.
1093
1094         * opt.ads: Minor documentation fix
1095
1096         * scng.adb: Minor reformatting
1097
1098         * prj-part.adb: Update comments
1099
1100 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1101
1102         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
1103         tagged synchronized type, use corresponding record type.
1104
1105 2008-08-01  Doug Rupp  <rupp@adacore.com>
1106
1107         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
1108         dummy transfer address for debugging.
1109         
1110         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
1111
1112         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
1113
1114 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
1115
1116         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
1117         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
1118
1119 2008-07-31  Pascal Obry  <obry@adacore.com>
1120
1121         * prj-nmsc.adb: Keep Object and Exec directory casing.
1122
1123 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
1124
1125         * system-rtx-rtss.ads
1126         Change the default stack size. It is important to set the commit part.
1127         
1128         * s-taprop-rtx.adb
1129         (Initialize): Get the clock resolution.
1130         (RT_Resolution): Return the clock resolution that is indicated by the
1131         system.
1132
1133         * s-parame-vxworks.adb
1134         Document that this body is used for RTX in RTSS (kernel) mode.
1135
1136         * gcc-interface/Makefile.in
1137         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
1138         s-parame-vxworks.adb body in order to have reasonable stack sizes in
1139         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
1140         cannot ask for too big values.
1141
1142 2008-07-31  Robert Dewar  <dewar@adacore.com>
1143
1144         * exp_aggr.adb: Minor reformatting
1145
1146         * makeutl.adb: Minor reformatting
1147
1148         * prj-env.adb: Minor reformatting
1149
1150 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
1151
1152         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
1153         tagged type is completed by a concurrent type.
1154
1155 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
1156
1157         * sem_aggr.adb:
1158         (Resolve_Record_Aggregate): Bypass error that a type without
1159         components must have a "null record" aggregate when compiling for Ada
1160         2005, since it's legal to give an aggregate of form (others => <>)
1161         for such a type.
1162
1163 2008-07-31  Javier Miranda  <miranda@adacore.com>
1164
1165         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
1166         handle synchronized types. Required to handle well the object.operation
1167         notation applied to synchronized types.
1168
1169 2008-07-31  Quentin Ochem  <ochem@adacore.com>
1170
1171         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
1172         anymore - just used internally.
1173         Added handling of very small tasks - when the theoretical size is
1174         already full at the point of the call.
1175         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
1176         not need to be added to the result.
1177
1178 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
1179
1180         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
1181         corresponding spec is a primitive wrapper. Update comment.
1182
1183 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
1184
1185         * bindgen.adb Comment reformatting. Update the list of run-time globals.
1186         (Gen_Adainit_Ada): Add the declaration, import and value set for
1187         configuration flag Canonical_Streams.
1188         (Gen_Adainit_C): Add the declaration and initial value of external
1189         symbol __gl_canonical_streams.
1190         
1191         * init.c: Update the list of global values computed by the binder.
1192         
1193         * opt.ads: Add flag Canonical_Streams.
1194         
1195         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
1196         semantically handled pragmas.
1197         
1198         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
1199         (Analyze_Pragma): Add case for pragma Canonical_Streams.
1200         
1201         * snames.adb: Add character value for name Canonical_Streams.
1202         
1203         * snames.ads:
1204         Add Name_Canonical_Streams to the list of configuration pragmas.
1205         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
1206         
1207         * snames.h: Add a definition for Pragma_Canonical_Streams.
1208         
1209         * s-ststop.adb:
1210         Add a flag and import to seize the value of external symbol
1211         __gl_canonical_streams. Update comment and initial value of constant
1212         Use_Block_IO.
1213         
1214         * gnat_rm.texi: Add section of pragma Canonical_Streams.
1215         
1216         * gnat_ugn.texi:
1217         Add pragma Canonical_Streams to the list of configuration pragmas.
1218
1219 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
1220
1221         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
1222         has the form A.B.C and B is a unit renaming, analyze its compilation
1223         unit and add a with_clause on A.b to the context.
1224
1225 2008-07-31  Vincent Celier  <celier@adacore.com>
1226
1227         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
1228         return the empty string, instead of raising Constraint_Error.
1229
1230 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
1231
1232         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
1233         
1234         * checks.adb (Apply_Accessibility_Check): Insert the check on
1235         Insert_Node.
1236         
1237         * exp_attr.adb:
1238         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
1239         to new parameter Insert_Node on call to Apply_Accessibility_Check.
1240         Necessary to distinguish the insertion node because the dereferenced
1241         formal may come from a rename, but the check must be inserted in
1242         front of the attribute.
1243         
1244         * exp_ch4.adb:
1245         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
1246         call to Apply_Accessibility_Check.
1247         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
1248         on call to Apply_Accessibility_Check.
1249         Minor reformatting
1250
1251 2008-07-31  Javier Miranda  <miranda@adacore.com>
1252
1253         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
1254         types when the candidate type is a synchronized type.
1255         
1256         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
1257         types, and complete management of synchronized types adding missing
1258         code to handle formal that is a synchronized type.
1259         
1260         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
1261         are not available and cause the compiler to blowup. Found compiling
1262         test with switch -gnatc
1263         
1264         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
1265         Has_Correct_Formal_Mode plus code cleanup.
1266
1267 2008-07-31  Bob Duff  <duff@adacore.com>
1268
1269         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
1270         recognized as two end-of-lines, but it should be just one.
1271
1272 2008-07-31  Thomas Quinot  <quinot@adacore.com>
1273
1274         * exp_ch9.adb: Minor reformatting
1275
1276         * tbuild.ads: Fix several occurrences of incorrectly referring to
1277         Name_Find as Find_Name.
1278
1279 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
1280
1281         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
1282         and the context is an object declaration with non-static bounds, treat
1283         the aggregate as non-static.
1284
1285 2008-07-31  Vincent Celier  <celier@adacore.com>
1286
1287         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
1288         Move back spec of Parse_Single_Project to body, as it is not called
1289         outside of package Prj.Part.
1290         (Project_Data): Remove components Linker_Name, Linker_Path and
1291         Minimum_Linker_Options as they are no longer set.
1292         Remove function There_Are_Ada_Sources from package Prj and move code
1293         in the only place it was used, in Prj.Env.Set_Ada_Paths.
1294
1295 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
1296
1297         * mlib-utl.ads: Fix typo.
1298
1299 2008-07-31  Robert Dewar  <dewar@adacore.com>
1300
1301         * sem_ch12.adb: Minor reformatting
1302
1303 2008-07-31  Sergey Rybin  <rybin@adacore.com>
1304
1305         * gnat_ugn.texi: Change the description of the
1306         Overly_Nested_Control_Structures: now the rule always requires a
1307         positive parameter for '+R' option
1308
1309 2008-07-31  Thomas Quinot  <quinot@adacore.com>
1310
1311         * g-pehage.adb: Minor reformatting
1312
1313 2008-07-31  Pascal Obry  <obry@adacore.com>
1314
1315         * s-finimp.ads: Minor reformatting.
1316
1317 2008-07-31  Vincent Celier  <celier@adacore.com>
1318
1319         * s-regexp.ads: Minor comment fix
1320
1321 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
1322
1323         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
1324         so that we can compile this file successfully with -gnatc.
1325
1326 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
1327
1328         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
1329         of the type when looking for stream subprograms for type String,
1330         Wide_String and Wide_Wide_String.
1331         
1332         * s-ststop.adb: Change the initialization expression of constant
1333         Use_Block_IO.
1334
1335 2008-07-31  Geert Bosch  <bosch@adacore.com>
1336
1337         * arit64.c:
1338         New file implementing __gnat_mulv64 signed integer multiplication with
1339         overflow checking
1340
1341         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
1342
1343         * gcc-interface/gigi.h:
1344         (standard_types): Add ADT_mulv64_decl
1345         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
1346
1347         * gcc-interface/utils.c:
1348         (init_gigi_decls): Add initialization of mulv64_decl
1349
1350         * gcc-interface/trans.c:
1351         (build_unary_op_trapv): New function
1352         (build_binary_op_trapv): New function
1353         (gnat_to_gnu): Use the above functions instead of
1354         build_{unary,binary}_op
1355
1356         * gcc-interface/Makefile.in
1357         (LIBGNAT_SRCS): Add arit64.c
1358         (LIBGNAT_OBJS): Add arit64.o
1359
1360 2008-07-31  Vincent Celier  <celier@adacore.com>
1361
1362         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
1363         Linker'Default_Switches are declared. Warn if they are declared.
1364
1365 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
1366
1367         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
1368         Insert_Actions to place the pointer declaration in the code, rather
1369         than Insert_Before_And_Analyze, so that insertions of temporaries are
1370         kept in the proper order when transient scopes are present.
1371
1372
1373 2008-07-31  Robert Dewar  <dewar@adacore.com>
1374
1375         * einfo.adb (Spec_PPC): Now defined for generic subprograms
1376         
1377         * einfo.ads (Spec_PPC): Now defined for generic subprograms
1378         
1379         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
1380         subprogram case
1381
1382 2008-07-31  Vincent Celier  <celier@adacore.com>
1383
1384         * s-os_lib.adb: Minor comment fix
1385
1386 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
1387
1388         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
1389         transfer pre/postconditions from generic copy to original tree, so that
1390         they will appear in each instance.
1391         (Process_PPCs): Do not transform postconditions into a procedure in a
1392         generic context, to prevent double expansion of check pragmas.
1393         
1394         * sem_attr.adb: In an instance, the prefix of the 'result attribute
1395         can be the renaming of the
1396         current instance, so check validity of the name accordingly.
1397
1398 2008-07-31  Robert Dewar  <dewar@adacore.com>
1399
1400         * mlib-utl.ads: Minor reformatting
1401
1402 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
1403
1404         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
1405         from context. This attribute must be usable in Ada95 mode.
1406         The attribute can appear in the body of a function marked
1407         Inline_Always, but in this case the postocondition is not enforced.
1408         
1409         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
1410         of an inlined call pre- and postconditions are legal
1411
1412 2008-07-31  Vincent Celier  <celier@adacore.com>
1413
1414         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
1415         were for gprmake only
1416
1417 2008-07-31  Robert Dewar  <dewar@adacore.com>
1418
1419         * gnat_ugn.texi: Update -gnatN documentation.
1420
1421         * gnat_rm.texi: Add note about pre/postcondition
1422         pragmas not checked in conjunction with front-end inlining.
1423
1424 2008-07-31  Robert Dewar  <dewar@adacore.com>
1425
1426         * g-pehage.adb, g-pehage.ads: Minor reformatting
1427
1428 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
1429
1430         * mlib-utl.ads, prj-makr.ads: Add comments.
1431
1432 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1433
1434         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) 
1435         [WINDOWS]: Add s-winext.o.
1436
1437 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
1438
1439         PR ada/36554
1440         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
1441         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
1442         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
1443         Set precision to 1 for subtype of BOOLEAN_TYPE.
1444         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
1445         (make_type_from_size): Deal with BOOLEAN_TYPE.
1446         * gcc-interface/misc.c (gnat_print_type): Likewise.
1447         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
1448         Set boolean_type_node as its translation in the table, as well
1449         as boolean_false_node for False and boolean_true_node for True.
1450         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
1451         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
1452         (create_param_decl): Deal with BOOLEAN_TYPE.
1453         (build_vms_descriptor): Likewise.
1454         (build_vms_descriptor64): Likewise.
1455         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
1456
1457 2008-07-30  Robert Dewar  <dewar@adacore.com>
1458
1459         * exp_ch9.adb: Minor reformatting
1460
1461         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
1462         if no primitive operation is found.
1463
1464         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
1465
1466         * sem_ch8.adb: Minor reformatting
1467
1468 2008-07-30  Laurent Pautet  <pautet@adacore.com>
1469
1470         * g-pehage.adb:
1471         Remove a limitation on the length of the words handled by the minimal
1472         perfect hash function generator.
1473
1474         * g-pehage.ads:
1475         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
1476         Fix some typos.
1477
1478 2008-07-30  Robert Dewar  <dewar@adacore.com>
1479
1480         * gnatlink.adb: Minor reformatting
1481
1482 2008-07-30  Thomas Quinot  <quinot@adacore.com>
1483
1484         * rtsfind.adb (Check_RPC): Check version consistency even when not
1485         generating RCI stubs. Provide more detailed error message in case of
1486         mismatch.
1487
1488 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
1489
1490         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
1491         as a actual in an instance, check for a missing attribute to prevent
1492         program_error on an illegal program.
1493         
1494         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
1495         error if primitive is not found, so that exception can be handled
1496         elsewhere on illegal programs.
1497
1498 2008-07-30  Robert Dewar  <dewar@adacore.com>
1499
1500         * uintp.adb (UI_GCD): Fix potential overflow
1501
1502 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
1503
1504         * einfo.adb: Flag245 is now used.
1505         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
1506         check to include functions.
1507         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
1508         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
1509         include functions.
1510         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
1511         to the list of displayed flags.
1512
1513         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
1514         Wrapped_Entity. These two flags are now present in functions.
1515         New flag Is_Private_Primitive.
1516         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
1517
1518         * exp_ch9.adb:
1519         (Build_Wrapper_Bodies): New subprogram.
1520         (Build_Wrapper_Body): The spec and body have been moved to in
1521         Build_Wrapper_ Bodies. Code cleanup.
1522         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
1523         Wrappers are now generated for primitives declared between the private
1524         and full view of a concurrent type that implements an interface.
1525         (Build_Wrapper_Specs): New subprogram.
1526         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
1527         creation mechanism with a call to Build_Wrapper_Bodies.
1528         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
1529         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
1530         (Expand_N_Task_Body): Replace the wrapper body creation
1531         mechanism with a call to Build_Wrapper_Bodies.
1532         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
1533         creation mechanism with a call to Build_Wrapper_Specs.
1534         (Is_Private_Primitive_Subprogram): New subprogram.
1535         (Overriding_Possible): Code cleanup.
1536         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
1537
1538         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
1539
1540         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
1541         (Process_Full_View): Build wrapper specs for all primitives
1542         that belong to a private view completed by a concurrent type
1543         implementing an interface.
1544         
1545         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
1546         is a primitive of a
1547         concurrent type with a private view that implements an interface, try to
1548         find the proper spec.
1549         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
1550         primitive if the type of its first parameter is a non-generic tagged
1551         private type.
1552         (Analyze_Subprogram_Specification): Code reformatting.
1553         (Disambiguate_Spec): New routine.
1554         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
1555         (Is_Private_Concurrent_Primitive): New routine.
1556
1557         * sem_ch6.ads:
1558         (Find_Corresponding_Spec): Add a formal to control the output of errors.
1559
1560 2008-07-30  Doug Rupp  <rupp@adacore.com>
1561
1562         * gigi.h (build_vms_descriptor64): New function prototype.
1563         (fill_vms_descriptor): Modified function prototype.
1564
1565         * utils.c (build_vms_descriptor64): New function.
1566
1567         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
1568
1569         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
1570         argument.
1571
1572         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
1573         64bit and 32bit descriptor and save the 64bit version as an alternate
1574         TREE_TYPE in the parameter.
1575         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
1576         thin pointer.
1577
1578         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
1579
1580 2008-07-30  Robert Dewar  <dewar@adacore.com>
1581
1582         * make.adb: Minor reformatting
1583
1584         * mlib-utl.adb: Minor reformatting
1585
1586         * osint.ads: Minor reformatting
1587
1588 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
1589
1590         * adaint.c
1591         (__gnat_file_exists): Do not use __gnat_stat for RTX.
1592         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
1593         avoid the use of this symbol from libgcc.a in RTX kernel mode.
1594
1595         * cio.c
1596         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
1597         the function RtPrintf for console output.
1598         
1599         * argv.c Do not use the environ variable for RTX.
1600         
1601         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
1602         been moved before the call to Osint.Add_Default_Search_Dirs in order
1603         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
1604         from the appropriate run time.
1605         
1606         * targparm.ads
1607         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
1608         target is a RTSS module for RTX.
1609         
1610         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
1611         RTX_RTSS_Kernel_Module
1612         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
1613
1614         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
1615         exception handling mechanism for Windows and RTX in Win32 mode, but
1616         not for RTX in kernel mode (RTSS).
1617         (LIBGNAT_SRCS): Remove ada.h
1618
1619 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
1620
1621         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
1622         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
1623         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
1624         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
1625         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
1626         ALL_ADA_CFLAGS): Remove.
1627         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
1628         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
1629         (GCC_CFLAGS): Remove X_CFLAGS.
1630         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
1631         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
1632         (ADA_CFLAGS): Substitute.
1633
1634 2008-07-30  Laurent Guerby  <laurent@guerby.net>
1635
1636         PR ada/5911
1637         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
1638         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
1639         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
1640         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
1641         by stamp-gnatlib2-rts.
1642         
1643 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1644
1645         PR documentation/15479
1646         * gnat-style.texi: Remove AdaCore copyright statement and GPL
1647         statement for GNAT.  Add @copying stanza, use it.  Update to
1648         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
1649         title as Front-Cover Text.
1650         * gnat_rm.texi: Likewise.
1651         * gnat_ugn.texi: Likewise.
1652
1653 2008-07-29  Jan Hubicka  <jh@suse.cz>
1654
1655         * trans.c (process_inlined_subprograms): Remove tree_really_inline
1656         check.
1657
1658 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
1659
1660         * gcc-interface: New directory.
1661
1662         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
1663         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
1664         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
1665         to gcc-interface subdirectory.
1666
1667 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1668
1669         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
1670
1671 2008-07-28  Jan Hubicka  <jh@suse.cz>
1672
1673         * misc.c (gnat_post_options): Do not set flag_no_inline.
1674
1675 2008-07-28  Richard Guenther  <rguenther@suse.de>
1676
1677         Merge from gimple-tuples-branch.
1678
1679         2008-07-22  Olivier Hainque  <hainque@adacore.com>
1680
1681         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
1682         this is called for an elab proc to be discarded if empty.
1683         * utils.c (end_subprog_body): Honor ELAB_P.
1684         (build_function_stub): Adjust call to end_subprog_body.
1685         * trans.c (Subprogram_Body_to_gnu): Likewise.
1686         (gigi): Reorganize processing of elab procs to prevent
1687         gimplifying twice, using the new end_subprog_body argument.
1688
1689         2008-07-19  Richard Guenther  <rguenther@suse.de>
1690
1691         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
1692         (utils.o): Likewise.
1693         * trans.c: Include tree-iterator.h.
1694         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
1695         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
1696         (set_expr_location_from_node): Likewise.
1697         (gigi): Tuplify.
1698         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
1699         of GENERIC_NEXT.
1700         * utils.c: Include tree-iterator.h.
1701         * gigi.h (gnat_gimplify_expr): Adjust prototype.
1702
1703         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
1704
1705         * trans.c: Include gimple.h instead of tree-gimple.h.
1706         * utils.c: Same.
1707
1708         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
1709
1710         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
1711
1712 2008-07-25  Jan Hubicka  <jh@suse.cz>
1713
1714         * utils.c (end_subprog_body): Remove inline trees check.
1715         * misc.c (gnat_post_options): Do not set flag_inline_trees.
1716
1717 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1718
1719         * raise-gcc.c: Move tsystem.h before tm.h.
1720
1721 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
1722
1723         * gnathtml.pl: New file.
1724
1725 2008-07-19  Olivier Hainque  <hainque@adacore.com>
1726
1727         * targtyps.c (get_target_default_allocator_alignment): Use
1728         MALLOC_ABI_ALIGNMENT.
1729
1730 2008-07-17  Olivier Hainque  <hainque@adacore.com>
1731
1732         * adaint.c (__MINGW32__ section): Include ctype.h and define
1733         a fallback ISALPHA if IN_RTS.
1734         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha. 
1735
1736 2008-07-17  Olivier Hainque  <hainque@adacore.com>
1737
1738         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
1739         argument, to apply to references in addition to definitions.  Prevent
1740         setting TREE_STATIC on externals.
1741         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
1742
1743 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1744
1745         PR documentation/15479
1746         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
1747         Replace backets around optional parameters with @ovar
1748         where possible, use @r{[}, @r{]} otherwise.
1749         Replace some @r, @i, and @emph with @var where appropriate.
1750
1751 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1752
1753         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
1754
1755 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1756
1757         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
1758         -Wc++-compat warnings.
1759         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
1760         __gnat_locate_exec_on_path): Likewise.
1761         * decl.c (annotate_value): Likewise.
1762         * misc.c (gnat_handle_option): Likewise.
1763         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
1764         post_error_ne_tree): Likewise.
1765
1766 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1767
1768         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
1769         version of its type, attempt to first convert its elements.
1770
1771 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
1772
1773         * Makefile.in: Fix *86 kfreebsd target specific pairs.
1774
1775 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
1776
1777         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
1778
1779 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
1780
1781         * utils2.c (known_alignment): Derive the alignment from pointed-to
1782         types only if it is otherwise unknown.
1783         <INTEGER_CST>: Tidy.
1784         <MULT_EXPR>: Likewise.
1785         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
1786         that of the base.
1787
1788 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1789
1790         PR ada/36573
1791         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
1792
1793 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1794
1795         * gnat_rm.texi (Implementation Defined Characteristics)
1796         (Standard Library Routines): Use @smallexample for indented
1797         text.  Drop Indentation outside examples.
1798         * gnat_ugn.texi: Likewise.
1799
1800 2008-06-13  Olivier Hainque  <hainque@adacore.com>
1801
1802         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
1803         if undefined.
1804         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
1805         realignment with force_align_arg_pointer attribute on foreign
1806         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
1807         
1808 2008-06-13  Olivier Hainque  <hainque@adacore.com>
1809
1810         * utils.c (rest_of_record_type_compilation): When computing
1811         encodings for the components of a variable size type, early
1812         strip conversions on the current position expression to make
1813         sure it's shape is visible.  Use remove_conversions for this
1814         purpose.
1815
1816 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1817
1818         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
1819         constrained subtype of a discriminated type, discard the fields that
1820         are beyond its limits according to its size.
1821
1822 2008-06-10  Olivier Hainque  <hainque@adacore.com>
1823
1824         * utils.c (create_subprog_decl): If this is for the 'main' entry
1825         point according to the asm name, redirect main_identifier_node.
1826
1827 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
1828
1829         * decl.c (components_to_record): Adjust the packedness for the
1830         qualified union as well.
1831
1832 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
1833
1834         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
1835         checks non fatal.
1836
1837 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
1838
1839         * sem_res.adb (Large_Storage_Type): A type is large if it
1840         requires as many bits as Positive to store its values and its
1841         bounds are known at compile time.
1842         * sem_ch13.adb (Minimum_Size): Note that this function returns
1843         0 if the size is not known at compile time.
1844
1845 2008-06-06  Nicolas Setton  <setton@adacore.com>
1846             Olivier Hainque  <hainque@adacore.com>
1847
1848         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
1849         attribute, parallel descriptive type attached to another
1850         type for debug info generation purposes.
1851         * utils.c (add_parallel_type): New function, register
1852         parallel type to be attached to a type.
1853         (get_parallel_type): New function, fetch a registered
1854         parallel type, if any.
1855         (rest_of_record_type_compilation): Register the parallel
1856         type we make for variable size records.
1857         * gigi.h (add_parallel_type, get_parallel_type): Declare.
1858         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
1859         parallel debug types we make.
1860         * trans.c (extract_encoding, decode_name): New functions.
1861         (gigi): If the DWARF attribute extensions are available, setup
1862         to use them.
1863         * lang.opt: Register language specific processing request
1864         for -gdwarf+.
1865         * misc.c (gnat_dwarf_extensions): New global variable. How much
1866         do we want of our DWARF extensions. 0 by default.
1867         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
1868         (gnat_post_options): Map gnat_dwarf_extensions to the
1869         commonuse_gnu_debug_info_extensions for later processing.
1870         
1871 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
1872
1873         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
1874
1875 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1876
1877         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
1878         * gnat_ugn.texi (Style Checking)
1879         (Adding the Results of Compiler Checks to gnatcheck Output)
1880         (Example of Binder Output File): Fix typos.
1881         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
1882         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
1883         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
1884         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
1885         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
1886         sinfo.ads, utils.c: Fix typos in comments.
1887         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
1888
1889 2008-05-29  Thomas Quinot  <quinot@adacore.com>
1890
1891         * sem_eval.adb: Minor reformatting
1892
1893 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
1894
1895         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
1896         is abstract, do not apply abstractness check on subprogram if this is
1897         a renaming declaration.
1898
1899 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
1900
1901         PR ada/864
1902         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
1903         allow recognition of program suffix in addition to prefix.
1904         
1905         * gnatchop.adb (Locate_Executable): Add support for prefix.
1906         
1907         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
1908         mlib-utl.adb: Adjust calls to Program_Name.
1909
1910 2008-05-29  Robert Dewar  <dewar@adacore.com>
1911
1912         * sem_ch3.adb: Minor reformatting
1913         * sem_prag.adb: Minor reformatting
1914         * sem_res.adb: Minor reformatting
1915         * sinput-p.ads: Minor reformatting
1916
1917 2008-05-29  Javier Miranda  <miranda@adacore.com>
1918
1919         * sem_util.adb:
1920         (Abstract_Interface_List): Add missing support for full type-declaration
1921         associated with synchronized types.
1922
1923 2008-05-29  Robert Dewar  <dewar@adacore.com>
1924
1925         * sem_eval.adb (Is_Same_Value): Take care of several more cases
1926
1927 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
1928
1929         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
1930         access type, wrap the expression in a conversion to force an
1931         accessibility check.
1932
1933         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
1934         accessibility checks even when expansion is disabled in order to
1935         generate messages in the presence of previous errors or in
1936         semantics-only mode.
1937
1938 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1939
1940         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
1941         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
1942
1943 2008-05-28  Vincent Celier  <celier@adacore.com>
1944
1945         PR ada/34446
1946         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
1947         preprocessing expressions
1948
1949 2008-05-28  Vincent Celier  <celier@adacore.com>
1950
1951         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
1952         for preprocessing
1953         
1954         * sinput-p.ads: Minor comment update and reformatting
1955
1956 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
1957
1958         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
1959         type has a deeper level than any master only when it is the type of an
1960         access parameter.
1961
1962 2008-05-28  Javier Miranda  <miranda@adacore.com>
1963
1964         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
1965
1966 2008-05-28  Javier Miranda  <miranda@adacore.com>
1967
1968         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
1969         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
1970         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
1971         Add code that was previously located in
1972         Find_Overridden_Synchronized_Primitive because it is only used here.
1973
1974 2008-05-28  Sergey Rybin  <rybin@adacore.com>
1975
1976         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
1977         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
1978
1979 2008-05-28  Robert Dewar  <dewar@adacore.com>
1980
1981         * restrict.ads:
1982         Add missing restrictions, and properly label all GNAT defined ones
1983         
1984         * rtsfind.ads:
1985         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
1986         Add entry for Ada.Task_Termination.Set_Specific_Handler
1987         Add entry for Ada.Task_Termination.Specific_Handler
1988         
1989         * s-rident.ads:
1990         Add missing restrictions and properly mark all gnat defined ones
1991         
1992         * sem_ch3.adb:
1993         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
1994         
1995         * sem_res.adb:
1996         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
1997
1998         * gnat_rm.texi: Add missing restrictions, and properly label all
1999         GNAT defined ones
2000
2001 2008-05-28  Robert Dewar  <dewar@adacore.com>
2002
2003         * restrict.adb:
2004         (Check_Restriction): violation of restriction No_Finalization is
2005         treated as a serious error to stop expansion
2006
2007 2008-05-28  Robert Dewar  <dewar@adacore.com>
2008
2009         * exp_util.adb: Minor reformatting
2010         * exp_util.ads: Minor reformatting.
2011
2012 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
2013
2014         * Make-lang.in: Remove gprmake.
2015
2016         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
2017
2018 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
2019
2020         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
2021         improper progenitor names, and avoid cascaded errors.
2022
2023 2008-05-28  Robert Dewar  <dewar@adacore.com>
2024
2025         * gnat_rm.texi: Add note on Old giving warning when applied to constant
2026
2027         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
2028         a constant
2029
2030 2008-05-28  Robert Dewar  <dewar@adacore.com>
2031
2032         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
2033         size
2034
2035 2008-05-28  Robert Dewar  <dewar@adacore.com>
2036
2037         * exp_ch5.adb:
2038         (Expand_Simple_Function_Return): Copy unaligned result into temporary
2039
2040 2008-05-28  Javier Miranda  <miranda@adacore.com>
2041
2042         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
2043         for user-defined predefined primitives.
2044         
2045         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
2046         (Find_Overridden_Synchronized_Primitive): Ditto.
2047
2048         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
2049
2050 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
2051
2052         * a-ststio.adb, s-direio.adb:
2053         Further code clean up of previous change.
2054         Update comments.
2055
2056 2008-05-27  Vincent Celier  <celier@adacore.com>
2057
2058         * prj-nmsc.adb: Minor reformatting
2059
2060 2008-05-27  Bob Duff  <duff@adacore.com>
2061
2062         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
2063         untagged private type with a tagged full type, where the full type has
2064         a self reference, create the corresponding class-wide type early, in
2065         case the self reference is "access T'Class".
2066
2067 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
2068
2069         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
2070         tasks and context is an object declaration. create master entity before
2071         expansion.
2072
2073 2008-05-27  Robert Dewar  <dewar@adacore.com>
2074
2075         * mlib-prj.adb: Minor reformatting
2076
2077         * prj-part.adb: Minor reformatting
2078
2079         * prj.ads: Minor reformatting
2080
2081         * exp_ch3.adb: Minor reformatting.
2082
2083         * sem_ch3.ads: Minor reformatting
2084
2085         * sem_eval.adb: Minor reformatting
2086
2087 2008-05-27  Vincent Celier  <celier@adacore.com>
2088
2089         * gnatcmd.adb:
2090         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
2091
2092 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
2093
2094         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
2095         tasks, create an activation chain now, before the expansion into
2096         assignments and build-in-place calls that require the presence of an
2097         activation chain.
2098         (Backend_Processing_Possible): If the component type is inherently
2099         limited, the aggregate must be expanded into individual built-in-place
2100         assignments.
2101
2102         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
2103         determine whether an allocation extra parameter must be built, to
2104         handle case of a private type whose full type is a discriminated type
2105         with defaults.
2106
2107 2008-05-27  Bob Duff  <duff@adacore.com>
2108
2109         * gnat_rm.texi:
2110         Document the new behavior regarding trampolines.
2111
2112 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
2113
2114         * a-direio.adb, a-sequio.adb: Replace address clause by
2115         unrestricted_access, simpler and compatible with .NET.
2116
2117 2008-05-27  Vincent Celier  <celier@adacore.com>
2118
2119         * prj-part.adb:
2120         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
2121         a project file, so that symbolic links are not resolved.
2122
2123 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
2124
2125         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
2126         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
2127         portable across GNAT targets, since this kind of address clause is not
2128         supported by VM back-ends (.NET/JGNAT).
2129
2130 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
2131
2132         * bindgen.adb: Update comments.
2133         
2134         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
2135
2136 2008-05-27  Vincent Celier  <celier@adacore.com>
2137
2138         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
2139         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
2140         mlib-tgt.adb, prj-env.adb, prj-env.ads:
2141         (Path_Information): New record type
2142         Use component of type Path_Information when there are two paths, one in
2143         canonical format and one in display format.
2144         Update the project manager to these new components.
2145
2146 2008-05-27  Robert Dewar  <dewar@adacore.com>
2147
2148         * makeutl.adb: Minor reformatting
2149         * prj-nmsc.adb: Minor reformatting
2150         * s-stausa.adb: Minor reformatting
2151         * s-stausa.ads: Minor reformatting
2152         * sem_ch6.adb: Minor reformatting
2153
2154 2008-05-27  Thomas Quinot  <quinot@adacore.com>
2155
2156         * sem_res.adb: Minor comment fixes
2157
2158 2008-05-27  Thomas Quinot  <quinot@adacore.com>
2159
2160         * makeutl.adb: Minor code reorganization
2161
2162         * exp_aggr.adb: Add ??? comment
2163         Fix typo
2164
2165         * exp_ch6.adb: Minor reformatting
2166
2167 2008-05-27  Quentin Ochem  <ochem@adacore.com>
2168
2169         * s-stausa.adb (Initialize): Updated result initialization, and
2170         initialization of environment stack.
2171         (Fill_Stack): Improved computation of the pattern zone, taking into
2172         account already filled at the calling point.
2173         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
2174         Measure and Overflow_Guard.
2175         (Report_Result): Fixed computation of the result using new fields of
2176         Stack_Analyzer.
2177         
2178         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
2179         params by more explicit Stack_Size / Max_Pattern_Size params.
2180         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
2181         Added Stack_Used_When_Filling field.
2182         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
2183         Min_Measure and Max_Measure fields.
2184         
2185         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
2186
2187 2008-05-27  Vincent Celier  <celier@adacore.com>
2188
2189         * prj-nmsc.adb:
2190         (Check_File): Make sure that a unit that replaces the same unit in a
2191          project being extended is properly processed.
2192
2193 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
2194
2195         * sem_ch3.adb:
2196         (Get_Discr_Value): Remove obsolete code that failed to find the value
2197         of a discriminant for an inherited task component appearing in a type
2198         extension.
2199
2200 2008-05-27  Thomas Quinot  <quinot@adacore.com>
2201
2202         (System.File_IO.{Close, Delete, Reset}):
2203         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
2204         
2205         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
2206         Pass File parameter by reference.
2207
2208 2008-05-27  Vincent Celier  <celier@adacore.com>
2209
2210         * prj-nmsc.adb:
2211         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
2212         sources of the same project that have the same object file name.
2213         (Find_Explicit_Sources): Always remove a source exception that was not
2214         found.
2215
2216 2008-05-27  Thomas Quinot  <quinot@adacore.com>
2217
2218         * sem_ch3.adb: Minor reformatting
2219
2220 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
2221
2222         * sem_ch6.adb:
2223         (Is_Interface_Conformant): Handle properly a primitive operation that
2224         overrides an interface function with a controlling access result.
2225         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
2226         inherited and overriding operations, omit as well the conformance check
2227         on result types, to prevent spurious errors.
2228
2229 2008-05-27  Vincent Celier  <celier@adacore.com>
2230
2231         * makeutl.ads, makeutl.adb:
2232         (Set_Location): New procedure
2233         (Get_Location): New function
2234         (Update_Main): New procedure
2235
2236 2008-05-27  Vincent Celier  <celier@adacore.com>
2237
2238         * prj-nmsc.adb:
2239         (Check_Library): Allow standard project to be extended as a static
2240         library project.
2241         (Get_Mains): Do not inherit attribute Main in an extending library
2242         project.
2243
2244 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2245
2246         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
2247         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
2248         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
2249         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
2250         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
2251         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
2252         * system-mingw.ads (Always_Compatible_Rep): Likewise.
2253         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
2254         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
2255         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
2256         
2257 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
2258
2259         * sem_attr.adb: add guard to previous patch.
2260
2261 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
2262
2263         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
2264         a synchronized tagged type, do not attempt to build dispatch table for
2265         full view. The table is built for the corresponding record type, which
2266         has its own declaration.
2267
2268 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
2269
2270         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
2271         to the known type entity E, rather than setting it to Any_Type. Fixes
2272         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
2273         for objects whose type had an illegal constraint.
2274
2275 2008-05-27  Vincent Celier  <celier@adacore.com>
2276
2277         * gnat_ugn.texi:
2278         Add succinct documentation for attribute Excluded_Source_List_File
2279
2280 2008-05-27  Vincent Celier  <celier@adacore.com>
2281
2282         * prj-attr.adb: Add new project level attribute Map_File_Option
2283         
2284         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
2285         
2286         * prj.ads: Minor reformatting and comment update
2287         (Project_Configuration): New component Map_File_Option
2288         
2289         * snames.adb: New standard name Map_File_Option
2290         
2291         * snames.ads: New standard name Map_File_Option
2292
2293 2008-05-27  Vincent Celier  <celier@adacore.com>
2294
2295         * xsnames.adb: Remove unused variable Oname
2296
2297 2008-05-27  Doug Rupp  <rupp@adacore.com>
2298
2299         * exp_ch6.adb:
2300         (Expand_N_Function_Call): Fix comments. Minor reformatting.
2301
2302         * exp_vfpt.ads:
2303         (Expand_Vax_Foreign_Return): Fix comments.
2304
2305 2008-05-27  Thomas Quinot  <quinot@adacore.com>
2306
2307         * exp_dist.adb: Minor reformating
2308
2309 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
2310
2311         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
2312         No_Default_Initialization, which is now delayed until the freeze point
2313         of the object. Add a comment about deferral of the check.
2314         
2315         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
2316         on objects is moved here.
2317
2318 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2319
2320         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
2321         (Compare_Array_S16): Adjust for above change.
2322         * s-casi32.adb (Uword): Likewise.
2323         (Compare_Array_S32): Likewise.
2324         * s-casi64.adb (Uword): Likewise.
2325         (Compare_Array_S64): Likewise.
2326         * s-caun16.adb (Uhalf): Likewise.
2327         (Compare_Array_U16): Likewise.
2328         * s-caun32.adb (Uword): Likewise.
2329         (Compare_Array_U32): Likewise.
2330         * s-caun64.adb (Uword): Likewise.
2331         (Compare_Array_U64): Likewise.
2332         
2333 2008-05-26  Robert Dewar  <dewar@adacore.com>
2334
2335         * exp_ch6.adb: Add ??? comment for previous change
2336
2337         * exp_vfpt.adb: Minor reformatting
2338
2339         * exp_vfpt.ads: Add ??? comment for last change
2340
2341         * sem_attr.adb: Add some ??? comments for previous change
2342
2343         * s-vaflop.ads: Add comments for previous change
2344
2345 2008-05-26  Doug Rupp  <rupp@adacore.com>
2346
2347         * s-vaflop-vms-alpha.adb:
2348         Remove System.IO use clause, to prevent spurious ambiguities when
2349         package is access through rtsfind.
2350
2351 2008-05-26  Sergey Rybin  <rybin@adacore.com>
2352
2353         * tree_io.ads (ASIS_Version_Number): Update because of the changes
2354         made in front-end
2355
2356 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
2357
2358         * sem_attr.adb:
2359         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
2360         converted to S (A)'address only if A .. B is known to be a non-null
2361         range.
2362
2363 2008-05-26  Doug Rupp  <rupp@adacore.com>
2364
2365         * s-vaflop.adb:
2366         (Return_D, Return_F, Return_G): New functions.
2367
2368         * s-vaflop.ads:
2369         (Return_D, Return_F, Return_G): New functions.
2370
2371         * exp_vfpt.adb:
2372         (Expand_Vax_Foreign_Return): New procedure
2373
2374         * exp_vfpt.ads:
2375         (Expand_Vax_Foreign_Return): New procedure
2376
2377         * rtsfind.ads:
2378         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
2379         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
2380
2381         * exp_ch6.adb:
2382         Import Exp_Vfpt
2383         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
2384
2385         * s-vaflop-vms-alpha.adb:
2386         (Return_D, Return_F, Return_G): New functions.
2387
2388 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
2389
2390         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
2391         init proc entity when there is actual default initialization associated
2392         with the component type, to avoid spurious errors on objects of scalar
2393         array types that are marked Is_Public when No_Default_Initialization
2394         applies.
2395
2396 2008-05-26  Thomas Quinot  <quinot@adacore.com>
2397
2398         * rtsfind.ads, rtsfind.adb:
2399         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
2400         (Check_RPC): Support per-PCS-kind API versioning.
2401         
2402         exp_dist.ads, exp_dist.adb:
2403         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
2404         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
2405          library function Get_RACW.
2406         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
2407         library function Get_Reference.
2408         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
2409         through an intermediate Any.
2410         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
2411         going through an intermediate Any.
2412         
2413         * sem_dist.adb: Minor reformatting.
2414
2415 2008-05-26  Javier Miranda  <miranda@adacore.com>
2416
2417         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
2418         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
2419         (Is_Internal): Adding documentation on internal entities that have
2420         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
2421
2422         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
2423         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
2424         Added assertion to force entities with this attribute to have
2425         attribute Is_Internal set to True.
2426         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
2427
2428         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
2429         renamed as Derive_Progenitor_Subprograms. In addition, its code is
2430         a new implementation.
2431         (Add_Interface_Tag_Components): Remove special management of
2432         synchronized interfaces.
2433         (Analyze_Interface_Declaration): Minor reformating
2434         (Build_Derived_Record_Type): Minor reformating
2435         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
2436         predefined primitive inherited from interface type because the body of
2437         internally generated predefined primitives of tagged types are generated
2438         later by Freeze_Type
2439         (Derive_Subprogram): Avoid generating an internal name if the parent
2440         subprogram overrides an interface primitive.
2441         (Derive_Subprograms): New implementation that keeps separate the
2442         management of tagged types not implementing interfaces, from tagged
2443         types that implement interfaces.
2444         (Is_Progenitor): New implementation.
2445         (Process_Full_View): Add documentation
2446         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
2447         by call to Derive_Progenitor_Subprograms.
2448
2449         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
2450         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
2451         Skip_Controlling_Formals.
2452
2453         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
2454         (Check_Conventions): New implementation. Remove local subprogram
2455         Skip_Check. Remove formal Search_From of routine Check_Convention.
2456         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
2457         Skip_Controlling_Formals.
2458         (New_Overloaded_Entity): Enable addition of predefined dispatching
2459         operations.
2460
2461         * sem_disp.ads
2462         (Find_Primitive_Covering_Interface): New subprogram.
2463
2464         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
2465         the task body procedure as a primitive of the corresponding tagged
2466         type.
2467         (Check_Operation_From_Private_Type): Avoid adding twice an entity
2468         to the list of primitives.
2469         (Find_Primitive_Covering_Interface): New subprogram.
2470         (Override_Dispatching_Operation): Add documentation.
2471
2472         * sem_type.adb (Covers): Minor reformatings
2473
2474         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
2475         Collect_Interfaces.
2476         Rename formal.
2477         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
2478         (Implements_Interface): New subprogram.
2479         (Is_Parent): Removed.
2480         (Primitive_Names_Match): New subprogram.
2481         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
2482         (Ultimate_Alias): New subprogram.
2483
2484         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
2485         Collect_Interfaces.
2486         Remove special management for synchronized types. Rename formal. Remove
2487         internal subprograms Interface_Present_In_Parent and Add_Interface.
2488         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
2489         on non-record types by code to return false in such case.
2490         (Implements_Interface): New subprogram.
2491         (Is_Parent): Removed. No special management is now required for
2492         synchronized types covering interfaces.
2493         (Primitive_Names_Match): New subprogram.
2494         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
2495         (Ultimate_Alias): New subprogram.
2496
2497         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
2498         Add internal entities associated with secondary dispatch tables to
2499         the list of tagged type primitives that are not interfaces.
2500         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
2501         (Make_Predefined_Primitive_Specs): Code reorganization to improve
2502         the management of predefined equality operator. In addition, if
2503         the type has an equality function corresponding with a primitive
2504         defined in an interface type, the inherited equality is abstract
2505         as well, and no body can be created for it.
2506
2507         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
2508         exp_util to exp_disp.
2509         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
2510         an entity corresponds with one of the predefined primitives required
2511         to implement interfaces.
2512         Update copyright notice.
2513
2514         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
2515         final check on abstract subprograms all the primitives associated with
2516         interface primitives because they must be visible in the public and
2517         private part.
2518         (Write_DT): Use Find_Dispatching_Type to locate the name of the
2519         interface type. This allows the use of this routine, for debugging
2520         purposes, when the tagged type is not fully decorated.
2521         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
2522         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
2523         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
2524         entity corresponds with one of the predefined primitives required to
2525         implement interfaces.
2526
2527         * exp_util.adb (Find_Interface_ADT): New implementation
2528         (Find_Interface): Removed.
2529
2530         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
2531         list of interfaces associated with nodes
2532         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
2533
2534 2008-05-26  Thomas Quinot  <quinot@adacore.com>
2535
2536         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
2537         condition for assignment to temporary.
2538
2539 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
2540
2541         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
2542         checks on the upper bound if the index type is a modular type, to
2543         prevent wrap-around computations when size is close to upper bound of
2544         type.
2545
2546 2008-05-26  Robert Dewar  <dewar@adacore.com>
2547
2548         * sem_ch3.adb: Minor reformatting
2549
2550 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
2551
2552         * sem_ch12.adb (Remove_Parent): Use specification of instance
2553         to retrieve generic parent,
2554         to handle properly the case where the instance is a child unit.
2555         Add guard to handle properly wrapper packages.
2556         Minor reformatting
2557
2558 2008-05-26  Thomas Quinot  <quinot@adacore.com>
2559
2560         * sinfo.ads: Minor reformatting
2561
2562 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
2563
2564         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
2565         Generate a tag check when the result subtype of a function, defined by
2566         an access definition, designates a specific tagged type.
2567         (Make_Tag_Check): New routine.
2568
2569 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
2570
2571         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
2572
2573 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2574
2575         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
2576         (builtin_decl_for): Likewise.
2577         * trans.c (gigi): Likewise.
2578         * utils.c (def_builtin_1): Fix formatting.
2579
2580 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
2581
2582         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
2583         Create the statements which map a string name to protected or task
2584         entry indix.
2585
2586         * exp_ch9.adb: Add with and use clause for Stringt.
2587         Minor code reformatting.
2588         (Build_Entry_Names): New routine.
2589         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
2590         for flag Build_Entry_Names which controls the allocation of the data
2591         structure for the string names of entries.
2592
2593         * exp_ch9.ads (Build_Entry_Names): New subprogram.
2594
2595         * exp_util.adb (Entry_Names_OK): New function.
2596
2597         * exp_util.ads (Entry_Names_OK): New function.
2598
2599         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
2600         enumerations RE_Id and RE_Unit_Table.
2601
2602         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
2603         (Free_Entry_Names_Array): New routine.
2604
2605         * s-taskin.ads: Comment reformatting.
2606         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
2607         Add component Entry_Names to record Ada_Task_Control_Block.
2608         (Free_Entry_Names_Array): New routine.
2609
2610         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
2611         dynamically allocate an array
2612         of string pointers. This structure holds string entry names.
2613         (Free_Entry_Names): New routine.
2614         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
2615         (Set_Entry_Names): New routine.
2616
2617         * s-tassta.ads:
2618         (Create_Task): Add formal Build_Entry_Names. The flag is used to
2619         control the allocation of the data structure which stores entry names.
2620         (Set_Entry_Name): New routine.
2621
2622         * s-tpoben.adb:
2623         Add with and use clause for Ada.Unchecked_Conversion.
2624         (Finalize): Deallocate the entry names array.
2625         (Free_Entry_Names): New routine.
2626         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
2627         create an array of string pointers to hold the entry names.
2628         (Set_Entry_Name): New routine.
2629
2630         * s-tpoben.ads:
2631         Add field Entry_Names to record Protection_Entries.
2632         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
2633         (Set_Entry_Name): New routine.
2634
2635 2008-05-26  Vincent Celier  <celier@adacore.com>
2636
2637         * prj-nmsc.adb:
2638         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
2639
2640         * prj.ads:
2641         (Project_Configuration): New component Shared_Lib_Driver
2642
2643 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
2644
2645         * inline.adb:
2646         (Cleanup_Scopes): For a protected operation, transfer finalization list
2647         to protected body subprogram, to force cleanup actions when needed.
2648
2649 2008-05-26  Robert Dewar  <dewar@adacore.com>
2650
2651         * sem_cat.adb: Minor reformatting
2652
2653         * gnatname.adb: Minor reformatting
2654
2655         * osint.ads: Minor reformatting
2656
2657         * s-carun8.ads: Minor reformatting
2658
2659         * g-heasor.ads: Minor comment fix (unit is now pure)
2660
2661 2008-05-26  Robert Dewar  <dewar@adacore.com>
2662
2663         * exp_ch2.adb:
2664         (Expand_Current_Value): Properly type generated integer literal
2665
2666 2008-05-26  Sergey Rybin  <rybin@adacore.com>
2667
2668         * gnat_ugn.texi: Add description for the new gnatcheck rule -
2669         Separate_Numeric_Error_Handlers.
2670
2671 2008-05-26  Pascal Obry  <obry@adacore.com>
2672
2673         * sem_aggr.adb: Minor reformatting.
2674
2675 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
2676
2677         * s-osinte-aix.adb:
2678         (To_Target_Priority): Setting the time slice value to 0 or greater sets
2679         the scheduling policy to FIFO within priorities or round-robin
2680         respectively.
2681         Hence, the priority must be set in this case to the one selected by the
2682         user.
2683         
2684 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
2685
2686         * sem_ch12.adb:
2687         (Remove_Parent): If the enclosing scope is an instance whose generic
2688         parent is declared within some parent scope of the just completed
2689         instance, make full views of the entities in that parent visible, when
2690         applicable.
2691         
2692 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
2693
2694         * mingw32.h (STD_MINGW): Set to true for target w64.
2695
2696 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2697
2698         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
2699         instead of TREE_STATIC on the ADDR_EXPR.
2700
2701 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
2702
2703         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
2704         (Sloc_to_locus): Do not overwrite known GCC locations when translating
2705         GNAT standard locations.
2706
2707 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2708
2709         * gigi.h (mark_visited): Declare.
2710         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
2711         only the topmost node of expressions.
2712         (elaborate_expression_1): Look deeper for read-only variables.
2713         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
2714         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
2715         (mark_visited_r): New function.
2716
2717 2008-05-23  Vincent Celier  <celier@adacore.com>
2718
2719         * snames.adb: New standard name Excluded_Source_List_File.
2720
2721         * snames.ads: New standard name Excluded_Source_List_File.
2722
2723         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
2724
2725         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
2726         Get excluded sources from
2727         file indicated by attribute Excluded_Source_List_File, when present and
2728         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
2729
2730 2008-05-23  Robert Dewar  <dewar@adacore.com>
2731
2732         * exp_dist.adb: Minor reformatting
2733
2734 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
2735
2736         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
2737         slice, convert it to an indexed component, which is equivalent, more
2738         efficient, and usable even if the slice itself is not addressable.
2739
2740 2008-05-23  Olivier Hainque  <hainque@adacore.com>
2741
2742         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
2743         convention also allows access to named compiler built-in subprograms
2744         such as the GCC __builtin family.
2745
2746 2008-05-23  Vincent Celier  <celier@adacore.com>
2747
2748         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
2749         sep. If there are several possibilities, choose the one with the
2750         longer prefix.
2751
2752 2008-05-23  Vincent Celier  <celier@adacore.com>
2753
2754         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
2755         back end switches when executable specified with --GCC= is same as
2756         default, even if there are additional options.
2757
2758         * gnat_ugn.texi:
2759         Document when the back end switches from the ALI file are taken into
2760         account when gnatlink is invoked with --GCC=
2761
2762 2008-05-23  Thomas Quinot  <quinot@adacore.com>
2763
2764         * s-os_lib.adb:
2765         (copy_File): Do not open destination file if source file is unreadable.
2766
2767 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2768
2769         * utils.c (handle_type_generic_attribute): Adjust to accept
2770         fixed arguments before an elipsis.
2771
2772 2008-05-21  Thomas Quinot  <quinot@adacore.com>
2773
2774         * g-sothco.ads, g-sothco.adb: New files.
2775
2776 2008-05-20  Thomas Quinot  <quinot@adacore.com>
2777
2778         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
2779
2780         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
2781         Add missing "with" of Ada.Unchecked_Conversion
2782
2783         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads, 
2784         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads, 
2785         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads, 
2786         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, 
2787         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, 
2788         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads: 
2789         Move common code out of GNAT.Sockets.Thin implementations and into
2790         Thin_Common.
2791         New constant SIZEOF_fd_set
2792         New flag Has_Sockaddr_Len
2793         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
2794
2795         * g-stsifd-sockets.adb
2796         (Create): Remove call to Set_Length; use Set_Family to set the family
2797         and (on appropriate platforms) length fields in struct sockaddr.
2798
2799         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb, 
2800         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb, 
2801         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
2802         Move common code out of GNAT.Sockets.Thin implementations and into
2803         Thin_Common.
2804
2805         * g-socket.ads, g-socket.adb: 
2806         Move common code out of GNAT.Sockets.Thin implementations and into
2807         Thin_Common.
2808         (Connect_Socket, Accept_Socket): Provide new versions of these two
2809         routines that operate with a user specified timeout.
2810         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
2811         this is now handled automatically by Set_Family on platforms that
2812         require it.
2813
2814         * gen-soccon.c: 
2815         Move common code out of GNAT.Sockets.Thin implementations and into
2816         Thin_Common.
2817         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
2818         this constant to 0 (not -1) because we use it to initialize an
2819         unsigned_char value.
2820         Align values for numeric constants only.
2821         Handle the case of systems that do not support AF_INET6.
2822         New constant SIZEOF_fd_set
2823         New flag Has_Sockaddr_Len
2824         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
2825
2826         * gsocket.h: New flag Has_Sockaddr_Len
2827         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
2828
2829 2008-05-20  Santiago Uruena  <uruena@adacore.com>
2830
2831         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
2832
2833 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
2834
2835         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
2836         the underlying issue with malloc/free has been fixed. Remove associated
2837         comments.
2838         Minor reformatting.
2839         Related to PR ada/24533
2840
2841 2008-05-20  Robert Dewar  <dewar@adacore.com>
2842
2843         * ali.adb: Correct casing of ASCII.NUL
2844
2845         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
2846         properly.
2847
2848 2008-05-20  Robert Dewar  <dewar@adacore.com>
2849             Gary Dismukes  <dismukes@adacore.com>
2850
2851         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
2852         overflow if result converted to wider integer type.
2853         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
2854         discriminated types when discriminant checks are suppressed.
2855
2856 2008-05-20  Vincent Celier  <celier@adacore.com>
2857
2858         * cstand.adb (Print_Standard): Issue the correct Size clause for type
2859         Wide_Wide_Character.
2860
2861 2008-05-20  Tristan Gingold  <gingold@adacore.com>
2862
2863         * decl.c: Do not emit a variable for a object that has an address
2864         representation clause whose value is known at compile time.
2865         When a variable has an address clause whose value is known at compile
2866         time, refer to this variable by using directly the address instead of
2867         dereferencing a pointer.
2868
2869 2008-05-20  Robert Dewar  <dewar@adacore.com>
2870
2871         PR ada/30740
2872         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
2873         subtypes, always False for non-modular types.
2874         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
2875         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
2876         for Shared_Storage package.
2877         (Is_RACW_Stub_Type): New entity flag.
2878
2879         * exp_ch4.adb
2880         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
2881         case where we have a modular type with a non-binary modules.
2882         Comments reformattings.
2883
2884         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
2885         all types.
2886
2887 2008-05-20  Javier Miranda  <miranda@adacore.com>
2888
2889         * exp_aggr.adb
2890         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
2891         tests did not covered the case in which the type of the aggregate has
2892         no progenitors but some its parents has progenitors.
2893
2894 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
2895             Hristian Kirtchev  <kirtchev@adacore.com>
2896
2897         * exp_ch3.adb
2898         (Expand_N_Object_Declaration): Correct the condition which triggers the
2899         generation of a call to Displace when initializing a class-wide object.
2900         (Build_Dcheck_Functions): Build discriminant-checking for null variants
2901         when Frontend_Layout_On_Target is true to ensure that they're available
2902         for calling when a record variant size function is built in Layout.
2903
2904 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2905
2906         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
2907         procedure for a derived type retrieve the discriminant values from the
2908         parent using the corresponding discriminant.
2909         (Expand_N_Assignment_Statement): Skip generation of implicit
2910         if-statement associated with controlled types if we are
2911         compiling with restriction No_Finalization.
2912
2913 2008-05-20  Vincent Celier  <celier@adacore.com>
2914
2915         * prj.adb (Hash (Project_Id)): New function
2916         (Project_Empty): Add new component Interfaces_Defined
2917
2918         * prj.ads (Source_Data): New component Object_Linked
2919         (Language_Config): New components Object_Generated and Objects_Linked
2920         (Hash (Project_Id)): New function
2921         (Source_Data): New Boolean components In_Interfaces and
2922         Declared_In_Interfaces.
2923         (Project_Data): New Boolean component Interfaces_Defined
2924
2925         * prj-attr.adb: 
2926         New project level attribute Object_Generated and Objects_Linked
2927         Add new project level attribute Interfaces
2928
2929         * prj-dect.adb: Use functions Present and No throughout
2930         (Parse_Variable_Declaration): If a string type is specified as a simple
2931         name and is not found in the current project, look for it also in the
2932         ancestors of the project.
2933
2934         * prj-makr.adb: 
2935         Replace procedure Make with procedures Initialize, Process and Finalize
2936         to implement H414-023: process different directories with different
2937         patterns.
2938         Use functions Present and No throughout
2939
2940         * prj-makr.ads: 
2941         Replace procedure Make with procedures Initialize, Process and Finalize
2942
2943         * prj-nmsc.adb
2944         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
2945         the language configuration.
2946         (Process_Project_Level_Array_Attributes): Process new attributes
2947         Object_Generated and Object_Linked.
2948         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
2949         False, to indicate that the erreor/warning is a continuation.
2950         (Check): Call Report_No_Sources with Contnuation = True after the first
2951         call.
2952         (Error_Msg): Process successively contnuation character and warning
2953         character.
2954         (Find_Explicit_Sources): Check that all declared sources have been found
2955         (Check_File): Indicate in hash table Source_Names when a declared source
2956         is found.
2957         (Check_File): Set Other_Part when found
2958         (Find_Explicit_Sources): In multi language mode, check if all exceptions
2959         to the naming scheme have been found. For Ada, report an error if an
2960         exception has not been found. Otherwise, disregard the exception.
2961         (Check_Interfaces): New procedure
2962         (Add_Source): When Other_Part is defined, set mutual pointers in spec
2963         and body.
2964         (Check): In multi-language mode, call Check_Interfaces
2965         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
2966         for an excluded source.
2967         (Remove_Source): A source replacing a source in the interfaces is also
2968         in the interfaces.
2969
2970         * prj-pars.adb: Use function Present
2971
2972         * prj-part.adb: Use functions Present and No throughout
2973         (Parse_Single_Project): Set the parent project for child projects
2974         (Create_Virtual_Extending_Project): Register project with no qualifier
2975         (Parse_Single_Project): Allow an abstract project to be extend several
2976         times. Do not allow an abstract project to extend a non abstract
2977         project.
2978
2979         * prj-pp.adb: Use functions Present and No throughout
2980         (Print): Take into account the full associative array attribute
2981         declarations.
2982
2983         * prj-proc.adb: Use functions Present and No throughout
2984         (Expression): Call itself with the same From_Project_Node for the
2985         default value of an external reference.
2986
2987         * prj-strt.adb: Use functions Present and No throughout
2988         (Parse_Variable_Reference): If a variable is specified as a simple name
2989         and is not found in the current project, look for it also in the
2990         ancestors of the project.
2991
2992         * prj-tree.ads, prj-tree.adb (Present): New function
2993         (No): New function
2994         Use functions Present and No throughout
2995         (Parent_Project_Of): New function
2996         (Set_Parent_Project_Of): New procedure
2997
2998         * snames.ads, snames.adb: 
2999         Add new standard names Object_Generated and Objects_Linked
3000
3001 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
3002
3003         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
3004         and the derived type are of the same kind.
3005         (Expand_Call): Generate type conversions for actuals of
3006         record or array types when the parent and the derived types differ in
3007         size and/or packed status.
3008
3009 2008-05-20  Javier Miranda  <miranda@adacore.com>
3010             Ed Schonberg  <schonberg@adacore.com>
3011
3012         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
3013         generating dispatch tables of locally defined tagged types statically.
3014         Remove implicit if-statement that is no longer required.
3015         (Expand_Dispatching_Call): If this is a call to an instance of the
3016         generic dispatching constructor, the type of the first argument may be
3017         a subtype of Tag, so always use the base type to recognize this case.
3018
3019 2008-05-20  Thomas Quinot  <quinot@adacore.com>
3020
3021         * exp_dist.adb
3022         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
3023         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
3024         assigning NULL into the result, to avoid a spurious warning.
3025         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
3026         is not frozen.
3027         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
3028         type.
3029         (Build_From_Any_Function, Build_To_Any_Function,
3030         Build_TypeCode_Function): For a type that has user-specified stream
3031         attributes, use an opaque sequence of octets as the representation.
3032
3033 2008-05-20  Kevin Pouget  <pouget@adacore.com>
3034
3035         * exp_smem.ads, exp_smem.adb: Construction of access and assign
3036         routines has been replaced by an instantiation of
3037         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
3038         shared variable declaration.
3039         Calls to access and assign routines have been replaced by calls to
3040         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
3041         instantiated package.
3042         
3043         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
3044         It identifies the new generic package added in s-shasto.
3045
3046         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
3047         is instantiated for each shared passive variable. It provides
3048         supporting procedures called upon each read or write access by the
3049         expanded code.
3050
3051         * sem_attr.adb:
3052         For this runtime unit (always compiled in GNAT mode), we allow
3053         stream attributes references for limited types for the case where
3054         shared passive objects are implemented using stream attributes,
3055         which is the default in GNAT's persistent storage implementation.
3056
3057 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3058
3059         * freeze.adb
3060         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
3061         convention from its base type, do not set the type to that of integer,
3062         because it may inherit a size clause.
3063         Warn on a size clause with a size different
3064         from that of Integer, if the type has convention C.
3065
3066 2008-05-20  Vincent Celier  <celier@adacore.com>
3067
3068         * gnatname.adb
3069         (Scan_Args): Rewrite to take into account new switch --and to separate
3070         arguments into sections.
3071         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
3072         section, then Finalize.
3073
3074 2008-05-20  Tristan Gingold  <gingold@adacore.com>
3075
3076         * init.c: Enable stack probing on ppc-linux.
3077
3078         * tracebak.c: Add symbolic traceback for ppc-linux.
3079
3080         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
3081
3082 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
3083
3084         * Makefile.in
3085         (common-tools): New rule, to avoid parallel build failure on gnat tools.
3086         Reenable parallel builds on this Makefile.
3087
3088         * Make-lang.in: Update dependencies.
3089
3090 2008-05-20  Robert Dewar  <dewar@adacore.com>
3091
3092         * opt.ads (Treat_Restrictions_As_Warnings): New switch
3093
3094         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
3095         Treat_Restrictions_As_Warnings.
3096
3097         * switch-c.adb: Recognize new switch -gnatr
3098
3099         * usage.adb: Add line for -gnatr
3100
3101 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
3102
3103         * par-ch3.adb
3104         (P_Access_Definition): Change the error message when parsing "access
3105         all" in Ada 95 mode. The message no longer forces the user to recompile
3106         in 05 mode only to discover that anonymous access types are not allowed
3107         to have "all".
3108
3109 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
3110
3111         * par-ch9.adb
3112         (P_Protected): Update the error message on missing "-gnat05" switch when
3113         using interfaces in conjunction with protected types. Remove the
3114         incorrect error message associated with the presence of "private" after
3115         a "with".
3116
3117 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3118
3119         * sem_aggr.adb: Update comments.
3120         Improve previous change for PR ada/17985
3121
3122 2008-05-20  Thomas Quinot  <quinot@adacore.com>
3123
3124         * sem_cat.adb
3125         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
3126         the visible part of the spec of a remote types unit.
3127         (Validate_Remote_Access_Object_Type_Declaration):
3128         New local subprogram Is_Valid_Remote_Object_Type, replaces
3129         Is_Recursively_Limited_Private.
3130         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
3131         non-controlling formals (and the return type, even though this is not
3132         explicit in the standard) must support external streaming.
3133         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
3134         as above for of RAS types and RCI subprograms. (The return type is not
3135         checked yet).
3136         Update comments related to RACWs designating limited interfaces per
3137         ARG ruling on AI05-060.
3138
3139         * sem_util.ads, sem_util.adb
3140         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
3141         Is_Remote_Call_Interface to identify RACW types in a stable and
3142         consistent way. We used to rely in this predicate on the privateness of
3143         the designated type and its ancestors, but depending on the currently
3144         visible private parts, this caused false negatives. We now uniformly
3145         rely on checks made at the point where the RACW type is declared.
3146         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
3147
3148 2008-05-20  Javier Miranda  <miranda@adacore.com>
3149             Ed Schonberg  <schonberg@adacore.com>
3150             Hristian Kirtchev  <kirtchev@adacore.com>
3151
3152         * sem_ch3.adb
3153         (Analyze_Object_Declaration): Fix over-conservative condition
3154         restricting use of predefined assignment with tagged types that have
3155         convention CPP.
3156         (Analyze_Object_Declaration): Relax the check regarding deferred
3157         constants declared in scopes other than packages since they can be
3158         completed with pragma Import.
3159         Add missing escaping of all-caps word 'CPP' in error messages.
3160         (Build_Discriminated_Subtype): Do not inherit representation clauses
3161         from parent type if subtype already carries them, because they are
3162         inherited earlier during derivation and already include those that may
3163         come from a partial view.
3164
3165         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
3166         Check the declarations of a subprogram body for proper deferred
3167         constant completion.
3168
3169         * sem_ch7.ads, sem_ch7.adb
3170         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
3171
3172 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3173             Thomas Quinot  <quinot@adacore.com>
3174
3175         * sem_ch4.adb
3176         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
3177         F is a parameterless function that returns an array, and S is a subtype
3178         mark.
3179         (Analyze_Call): Insert dereference when the prefix is a parameterless
3180         function that returns an access to subprogram and the call has
3181         parameters.
3182         Reject a non-overloaded call whose name resolves to denote
3183         a primitive operation of the stub type generated to support a remote
3184         access-to-class-wide type.
3185
3186 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3187
3188         * sem_ch8.adb
3189         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
3190         when there is a use clause for the same entity in the context.
3191         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
3192         created for a stream attribute of an abstract type or interface type.
3193
3194 2008-05-20  Thomas Quinot  <quinot@adacore.com>
3195
3196         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
3197         subprogram.
3198
3199         * sem_type.adb
3200         (Add_One_Interp): Ignore any interpretation that is a primitive
3201         operation of an RACW stub type (these primitives are only executed
3202         through dispatching, never through static calls).
3203         (Collect_Interps): When only one interpretation has been found, set N's
3204         Entity and Etype to that interpretation, otherwise Entity and Etype may
3205         still refer to an interpretation that was ignored by Add_One_Interp,
3206         in which case would end up with being marked as not overloaded but with
3207         an Entity attribute not pointing to its (unique) correct interpretation.
3208
3209 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3210
3211         * sem_eval.adb
3212         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
3213         denotes the whole array of its prefix.
3214
3215 2008-05-20  Robert Dewar  <dewar@adacore.com>
3216
3217         * sem_res.adb (Resolve_Op_Not): Warn on double negation
3218
3219 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3220
3221         * sprint.adb
3222         (Print_Itype): Do not modify the sloc of the component type of a
3223         (packed) array itype, because it is an unrelated type whose source
3224         location is independent of the point of creation of the itype itself.
3225
3226 2008-05-20  Thomas Quinot  <quinot@adacore.com>
3227
3228         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
3229         Append.
3230
3231 2008-05-20  Robert Dewar  <dewar@adacore.com>
3232             Vincent Celier  <celier@adacore.com>
3233
3234         * vms_data.ads: Add entry for -gnatr
3235         Put GNAT SYNC section in proper alpha order
3236         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
3237
3238         * gnat_ugn.texi: Add documentation for new gnatname switch --and
3239         Update the style checks section
3240         Add documentation of -gnatr
3241         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
3242         subsection the explanation how compiler checks should be disabled for
3243         gnatcheck.
3244         Update the list of Ada 95 reserved words used by in the project language
3245         Add documentation for project qualifiers.
3246         Document that abstract projects may be extended by different projects in
3247         the same project tree.
3248         Add documentation for gnatmake switch -d
3249
3250         * ug_words: Add -gnatyy VMS equivalence string.
3251         Add entry for -gnatr
3252
3253 2008-05-20  Bob Duff  <duff@adacore.com>
3254
3255         * a-rttiev.adb
3256         (Set_Handler): Remove code from both of these that implements
3257         RM-D.15(15/2), because it causes a race condition and potential
3258         deadlock.
3259         (Process_Queued_Events): Add comment explaining "exception when others
3260         => null". Add clarifying ".all", even though implicit .all is legal
3261         here.
3262
3263 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
3264
3265         * s-winext.ads: Replace representation clause by pragma Pack. Gives
3266         equivalent representation, but has the advantage of allowing
3267         compilation of this file under 64 bits platforms.
3268
3269         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
3270
3271         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
3272
3273         * adaint.c: 
3274         Don't define dummy implementation of convert_addresses on ppc-linux.
3275
3276 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3277
3278         * exp_ch7.adb
3279         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
3280         if expression is aggregate component.
3281
3282 2008-05-20  Robert Dewar  <dewar@adacore.com>
3283
3284         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
3285         sem_ch12.adb: Update comments. Minor reformatting.
3286
3287         * exp_ch2.adb: Typo
3288
3289         * s-unstyp.ads: Fixed some typos in comments.
3290
3291 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
3292
3293         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
3294         type/constant.
3295
3296         * g-socthi-vxworks.ads: Update to latest socket changes.
3297
3298         * a-caldel-vms.adb: Resync with a-caldel spec.
3299
3300         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
3301         Update comments.
3302
3303 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3304
3305         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
3306         for dummy types pointed to by the converted pointer types.
3307
3308 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
3309
3310         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
3311         of records and unions.
3312         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
3313
3314 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
3315             Robert Dewar <dewar@adacore.com>
3316
3317         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
3318         restrictions to the prefix of 'Old.
3319         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
3320         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
3321         variables.
3322
3323 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
3324
3325         PR ada/24880
3326         PR ada/26635
3327         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
3328         expression to an integral type with lower precision, use NOP_EXPR
3329         directly in a couple of special cases.
3330
3331 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
3332             Ed Schonberg <schonberg@adacore.com>
3333
3334         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
3335         constraint expressions.
3336
3337 2008-05-12  Tomas Bily  <tbily@suse.cz>
3338
3339         * utils2.c (known_alignment, contains_save_expr_p)
3340         (gnat_mark_addressable): Use CASE_CONVERT.
3341         * decl.c (annotate_value): Likewise.
3342         * trans.c (maybe_stabilize_reference): Likewise.
3343         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
3344         * utils.c (rest_of_record_type_compilation): Likewise.
3345         * trans.c (protect_multiple_eval, Attribute_to_gnu)
3346         (protect_multiple_eval): Likewise.
3347
3348 2008-05-08  Andreas Schwab  <schwab@suse.de>
3349
3350         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
3351         DECL_IS_PURE to DECL_PURE_P.
3352
3353 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3354
3355         * decl.c (maybe_pad_type): Add ??? comment.
3356
3357 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
3358
3359         * decl.c (components_to_record): Zero the alignment of the qualified
3360         union built for the variant part upon creating it.
3361
3362 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
3363
3364         * decl.c (maybe_pad_type): Try to get a form of the type with integral
3365         mode even if the alignment is not a factor of the original size.  But
3366         make sure to create the inner field with the original size.  Reorder.
3367         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
3368         record as always addressable.
3369         * utils.c (convert): Deal specially with conversions between original
3370         and packable versions of a record type.
3371         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
3372         recognizing an assignment between padded objects.
3373
3374 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3375
3376         * decl.c (make_packable_type): Resize the last component to its RM size
3377         only if it is of an aggregate type.
3378         * trans.c (call_to_gnu): Fix nit in comment.
3379         (gnat_to_gnu): Likewise.
3380
3381 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
3382
3383         * Makefile.in: Adapt sh4-linux target.
3384
3385 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
3386
3387         PR ada/35792
3388         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
3389         tagged type by an untagged protected or task type.
3390
3391 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3392             Tristan Gingold  <gingold@adacore.com>
3393
3394         PR ada/36007
3395         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
3396         of aliased objects with an unconstrained nominal subtype.
3397         Cap the promotion to the effective alignment of the word mode.
3398
3399 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3400
3401         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
3402         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
3403         Use '&&' instead of ';'.
3404
3405 2008-04-24  Olivier Hainque  <hainque@adacore.com>
3406
3407         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
3408         doesn't require signed arithmetic anymore.
3409
3410 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3411
3412         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
3413         (call_to_gnu): Don't set TREE_INVARIANT.
3414         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
3415
3416 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
3417
3418         * s-osinte-rtems.adb: Add sigalstack function.
3419         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
3420         function. Add Alternate_Stack and Alternate_Stack_Size.
3421         Add missing process_shared field to pthread_condattr_t
3422         and change ss_low_priority to int from timespec.
3423
3424 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
3425
3426         * i-forbla.adb: Link against -llapack and -lblas by default
3427         instead of the private -lgnalasup.
3428
3429 2008-04-21  Olivier Hainque  <hainque@adacore.com>
3430
3431         Access to most C builtins from Ada
3432         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
3433         (handle_pure_attribute, handle_novops_attribute,
3434         handle_nonnull_attribute, handle_sentinel_attribute,
3435         handle_noreturn_attribute, handle_malloc_attribute,