diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-22 06:44:39 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-22 06:44:39 +0000 |
commit | 13239963ab938c607b27bee4408ea09b76b5fe61 (patch) | |
tree | 790ef9ad07c07dd0cf03d9fda433afa92e689dd1 /gcc/ada/ChangeLog-2008 | |
parent | 2ea77971ee058ff5608c1f4dd45f410a87a5152c (diff) | |
download | gcc-13239963ab938c607b27bee4408ea09b76b5fe61.tar.gz |
Split ChangeLog
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146545 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/ChangeLog-2008')
-rw-r--r-- | gcc/ada/ChangeLog-2008 | 7464 |
1 files changed, 7464 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog-2008 b/gcc/ada/ChangeLog-2008 new file mode 100644 index 00000000000..4e34213ea80 --- /dev/null +++ b/gcc/ada/ChangeLog-2008 @@ -0,0 +1,7464 @@ +2008-12-09 Jakub Jelinek <jakub@redhat.com> + + PR ada/38450 + * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE. + * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type): + Likewise. + +2008-12-05 Sebastian Pop <sebastian.pop@amd.com> + + PR bootstrap/38262 + * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS. + +2008-11-29 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/30827 + * g-comver.adb (Ver_Len_Max): Fix inconsistency. + +2008-11-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c: Fix various nits. + +2008-11-20 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch. + +2008-11-16 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/38127 + * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not + special-case boolean types. Propagate the name. + * gcc-interface/targtyps.c: Tweak comment. + +2008-11-15 Geert Bosch <bosch@adacore.com> + + * gcc-interface/trans.c (emit_check): Put back a final save_expr + to prevent exponential expansion during gimplification. + +2008-11-15 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/lang-specs.h: Expand -coverage and reorder switches. + +2008-11-15 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants + initialized to a static constant to be statically allocated even if + they are of a padding type, provided the original type also has + constant size. + +2008-11-15 Laurent Guerby <laurent@guerby.net> + + PR ada/37993 + * gcc-interface/Makefile.in: Add multilib handling for x86_64 + on darwin. + * system-darwin-x86_64.ads: New file. + +2008-11-13 Olivier Hainque <hainque@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: + Turn Ada Pure on subprograms back into GCC CONST when eh constructs + are explicit to the middle-end. Tidy. + +2008-11-09 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code. + (MINUS_NOMOD_EXPR): Likewise. + * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make + unreachable. + <PLUS_NOMOD_EXPR>: New case. + <MINUS_NOMOD_EXPR>: Likewise. + * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and- + assignment statement instead of using an increment operator. + +2008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + * system-irix-n64.ads: New file. + * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64 + multilibs. + +2008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + PR ada/37681 + * system-solaris-x86_64.ads: New file. + * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib. + +2008-11-07 Bechir Zalila <bechir.zalila@gmail.com> + Eric Botcazou <ebotcazou@adacore.com> + + PR ada/34289 + * lib.ads: (Enable_Switch_Storing): Declare. + * lib.adb: (Enable_Switch_Storing): New procedure. + * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea. + * make.adb: (Compile_Sources.Compile): Add -gnatea as first option. + (Display): Never display -gnatea + * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez. + +2008-11-07 Thomas Quinot <quinot@adacore.com> + + * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check + for empty range in original base type, not converted result type. + +2008-11-07 Geert Bosch <bosch@adacore.com> + + * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments + and result for call to __gnat_mulv64. + +2008-11-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c: Fix formatting nits. + +2008-11-07 Geert Bosch <bosch@adacore.com> + + * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting + overflow check for constant result. + +2008-11-07 Geert Bosch <bosch@adacore.com> + + * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient + overflow check for addition/subtraction if neither operand is constant. + +2008-11-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of + files for the target-dependent part of the runtime. + (SPARC/Linux): Likewise. + +2008-11-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not + optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging + purposes. + +2008-11-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/misc.c (gnat_printable_name): Always return a copy + in GC memory. + +2008-11-06 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/19419 + * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: + Generate a call to memmove for an assignment between overlapping + array slices. + +2008-11-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> + + PR target/37977 + * gcc-interface/Makefile.in: Add multilib handling for + s390-linux and s390x-linux. + +2008-10-24 Jakub Jelinek <jakub@redhat.com> + + * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on + check-acats-subtargets and check-gnat-subtargets. + (check_acats_targets): New variable. + (check-acats-subtargets, check-acats%): New targets. + (check-acats): If -j is used and CHAPTERS is empty, run the testing + in multiple make goals, possibly parallel, and afterwards run + dg-extract-results.sh to merge the sum and log files. + +2008-10-17 Geert Bosch <bosch@adacore.com> + + * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion + to use only a single check instead of three, and avoid unnecessary + COMPOUND_EXPR. + (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes + creating more opportunities for optimizations. + +2008-10-13 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/37601 + * gcc-interface/utils.c (gnat_types_compatible_p): Handle + NULL TYPE_DOMAIN. + +2008-10-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code + dealing with volatileness to after code dealing with renaming. + +2008-10-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks. + * gcc-interface/trans.c (Pragma_to_gnu): Likewise. + +2008-10-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate. + (unchecked_convert): Use it to disable problematic folding with + VIEW_CONVERT_EXPR in the general case. Always disable it for the + special VIEW_CONVERT_EXPR built for integral types and cope with + its addressability issues by preserving the first conversion. + +2008-10-01 Andreas Schwab <schwab@suse.de> + + * system-linux-ppc64.ads: New file. + * gcc-interface/Makefile.in: Add multilib handling for + powerpc-linux. + +2008-09-26 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion + to that of ptr_mode instead of word_mode. + +2008-09-26 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/5911 + * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support. + +2008-09-25 Samuel Tardieu <sam@rfc1149.net> + + PR ada/37641 + * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA + instead of deprecated FILE_WRITE_PROPERTIES. + +2008-09-22 Olivier Hainque <hainque@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they + are never assigned, volatile entities are not constant for code + generation purposes. + +2008-09-21 Laurent Guerby <laurent@guerby.net> + + PR ada/5911 + * gcc-interface/Makefile.in: Add multilib handling for x86_64 + and sparc. + * system-linux-sparcv9.ads: New file. + +2008-09-20 Eric Botcazou <ebotcazou@adacore.com> + + * exp_dbug.ads: Document new convention for the XVZ variable. + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate + debug info if necessary for the type padding the component type. + <E_Array_Subtype>: Likewise. + (maybe_pad_type): Emit the XVZ variable in units. + * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits. + (Subprogram_Body_to_gnu): Set the source line of the subprogram's node + on statements generated to initialize the parameter attributes cache. + Set the source line of the end label of the body on the special return + statement built for a procedure with copy-in copy-out parameters. + +2008-09-20 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/37585 + * gcc-interface/utils.c (create_subprog_decl): Disable inlining for + inlined external functions if they contain a nested function not + declared inline. + +2008-09-18 Jan Hubicka <jh@suse.cz> + + * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P. + (end_subprog_body): Do not set DECL_INLINE. + +2008-09-17 Pascal Rigaux <pixel@mandriva.com> + + PR ada/21327 + * gnat_ugn.texi: Use proper format in direntry. + +2008-09-15 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (gigi): Declare the name of the compilation + unit as the first global name. + +2008-09-14 Jan Hubicka <jh@suse.cz> + + * gcc-interface/Make-lang.in (gnat1): Add CFLAGS. + +2008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads, + bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb, + exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, + exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb, + exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads, + g-diopit.adb, g-socket.ads, gcc-interface/decl.c, + gcc-interface/gigi.h, gcc-interface/trans.c, + lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads, + opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads, + s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads, + s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb, + sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, + sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, + sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads, + sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in + comments. + * gnathtml.pl: Fix typos. + +2008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com> + + * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb. + * s-osinte-rtems.ads: Add shared hardware interrupt adapter + layer. RTEMS binds to OS provided adapter routines so there are + no modifications to s-osinte-rtems.adb. + +2008-09-09 Arnaud Charlet <charlet@adacore.com> + Joel Sherrill <joel.sherrill@oarcorp.com> + + * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb. + + * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb + + * s-interr-hwint.adb: New file. + + * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions + needed by s-interr-hwint.adb. + + * s-osinte-vxworks-kernel.adb: New file. + +2008-09-05 Joel Sherrill <joel.sherrill@oarcorp.com> + + * s-stchop-rtems.adb: Add file missed in early commit. Already + referenced in gcc-interface/Makefile.in. + +2008-08-30 Thomas Quinot <quinot@adacore.com> + + * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to + be built even without a separate libada directory. + +2008-08-22 Arnaud Charlet <charlet@adacore.com> + + * lib-xref.ads: Fix typo in subprogram reference definition. + +2008-08-22 Robert Dewar <dewar@adacore.com> + + * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix + to avoid warning. + + * g-trasym.adb: Ditto + + * s-utf_32.adb (Get_Category): Fix obvious typo + + * s-wwdcha.adb: Minor code reorganization + Remove dead code + +2008-08-22 Robert Dewar <dewar@adacore.com> + + * checks.adb (Determine_Range): Deal with values that might be invalid + + * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New + configuration switches. + + * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values + + * sem_prag.adb: Implement pragma Assume_No_Default_Values + + * snames.adb, snames.ads, snames.h: + Add entries for pragma Assume_No_Invalid_Values + + * switch-c.adb: Add processing for -gnatB switch + + * usage.adb: Add entry for flag -gnatB (no bad invalid values) + +2008-08-22 Javier Miranda <miranda@adacore.com> + + * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the + init procedure all the expanded code associated with the spec of + task types and protected types. + +2008-08-22 Gary Dismukes <dismukes@adacore.com> + + * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the + component expression copies rather than directly setting Etype and + Is_Static_Expression. + +2008-08-22 Gary Dismukes <dismukes@adacore.com> + + * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of + private types to allow for types derived from a private type with + preelaborable initialization, but return False for a private extension + (unless it has the pragma). + +2008-08-22 Robert Dewar <dewar@adacore.com> + + * opt.ads: Minor code reorganization (put entries in alpha order) + +2008-08-22 Pascal Obry <obry@adacore.com> + + * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking + spawn. + +2008-08-22 Geert Bosch <bosch@adacore.com> + + * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN + (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0 + +2008-08-22 Doug Rupp <rupp@adacore.com> + + * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call + __gnat_set_features. + + * init.c + (__gnat_set_features): New function. + (__gnat_features_set): New tracking variable. + (__gl_no_malloc_64): New feature global variable + +2008-08-22 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant + use_type_clause in an instance. + +2008-08-22 Bob Duff <duff@adacore.com> + + * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds. + +2008-08-22 Robert Dewar <dewar@adacore.com> + + * exp_ch6.adb: Minor reformatting + + * exp_ch7.adb: Minor reformatting + + * exp_ch7.ads: Put routines in proper alpha order + + * exp_dist.adb: Minor reformatting + +2008-08-22 Vincent Celier <celier@adacore.com> + + * prj.ads: Minor comment update + +2008-08-22 Robert Dewar <dewar@adacore.com> + + * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack + +2008-08-22 Ed Schonberg <schonberg@adacore.com> + + * exp_tss.adb: + (Base_Init_Proc): For a protected subtype, use the base type of the + corresponding record to locate the propoer initialization procedure. + +2008-08-22 Robert Dewar <dewar@adacore.com> + + * checks.adb: + (In_Subrange_Of): New calling sequence + (Determine_Range): Prepare for new processing using base type + + * exp_ch4.adb: + (Compile_Time_Compare): Use new calling sequence + + * exp_ch5.adb: + (Compile_Time_Compare): Use new calling sequence + + * sem_eval.adb: + (Compile_Time_Compare): New calling sequence allows dealing with + invalid values. + (In_Subrange_Of): Ditto + + * sem_eval.ads: + (Compile_Time_Compare): New calling sequence allows dealing with + invalid values. + (In_Subrange_Of): Ditto + +2008-08-22 Pascal Obry <obry@adacore.com> + + * adaint.c: Fix possible race condition on win32_wait(). + +2008-08-22 Bob Duff <duff@adacore.com> + + * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb, + exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb, + exp_intr.adb, exp_ch3.adb: Rename: + Exp_Ch7.Controlled_Type => Needs_Finalization + Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part + Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type => + Has_Controlled_Parts + (Has_Some_Controlled_Component): Fix bug in array case. + +2008-08-22 Robert Dewar <dewar@adacore.com> + + * sem_ch8.adb: Minor reformatting + +2008-08-22 Kevin Pouget <pouget@adacore.com> + + * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and + Shared_Var_Close procedure specifications from package spec to package body. + + * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen, + RE_Shared_Var_WOpen entries. + + * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in + Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures. + +2008-08-22 Eric Botcazou <ebotcazou@adacore.com> + + * init.c: adjust EH support code on Alpha/Tru64 as well. + + * raise-gcc.c: Add back a couple of comments. + +2008-08-22 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is + involved and the return type is class-wide, use the type of the expression + for the generated access type. Suppress useless discriminant checks on the + allocator. + +2008-08-22 Bob Duff <duff@adacore.com> + + * exp_ch7.adb: Minor comment fix + + * exp_ch6.ads: Minor comment fix + +2008-08-22 Thomas Quinot <quinot@adacore.com> + + * sem_ch8.adb: Minor reformatting + Minor code reorganization (introduce subprogram to factor duplicated + code). + +2008-08-22 Sergey Rybin <rybin@adacore.com> + + * gnat_ugn.texi: Change the description of gnatcheck default rule + settings. + +2008-08-22 Eric Botcazou <ebotcazou@adacore.com> + + * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX, + Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux, + do not adjust the PC anymore. + (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise + on AIX, HP-UX, Solaris, FreeBSD and VxWorks. + + * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo + instead of _Unwind_GetIP. + +2008-08-22 Gary Dismukes <dismukes@adacore.com> + + * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate + with a range is transformed into a positional aggregate, any copied + component literals should be marked Is_Static_Expression. + + * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as + not being known at at compile time when Configurable_Run_Time_Mode is + true. + +2008-08-22 Robert Dewar <dewar@adacore.com> + + * exp_attr.adb: + (Expand_N_Attribute_Reference): No validity checking on OUT parameter of + Read or Input attribute. + +2008-08-22 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Use_One_Type): when checking which of two use_type + clauses in related units is redundant, if one of the units is a package + instantiation, use its instance_spec to determine which unit is the + ancestor of the other. + +2008-08-22 Javier Miranda <miranda@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): In case of access + attributes add missing support to handle designated types that come + from the limited view. + + * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion. + +2008-08-22 Sergey Rybin <rybin@adacore.com> + + * vms_data.ads: Add entry for new gnatcheck -mNNN option + + * gnat_ugn.texi: Add description for gnatcheck option '-m' + +2008-08-22 Sergey Rybin <rybin@adacore.com> + + * gnat_ugn.texi: Update the gnatcheck subsection for metric rules + acoording to the latest changes in the metric rule interface + +2008-08-22 Vincent Celier <celier@adacore.com> + + * make.adb (Check.File_Not_A_Source_Of): New Boolean function + (Check): Check if the file names registered in the ALI file for the + spec, the body and each of the subunits are the ones expected. + +2008-08-22 Robert Dewar <dewar@adacore.com> + + * g-catiio.adb: Code cleanup. + +2008-08-20 Vincent Celier <celier@adacore.com> + + * make.adb (Gnatmake): Remove extra space in version line + + * ali.adb: + (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit, + as the name may already have been entered in the table by the Project + Manager. + +2008-08-20 Jose Ruiz <ruiz@adacore.com> + + * errno.c (__get_errno, __set_errno for MaRTE): Transform then into + weak symbols so we use the version provided by MaRTE when available. + +2008-08-20 Emmanuel Briot <briot@adacore.com> + + * g-catiio.ads, g-catiio.adb: + (Value): Avoid an unnecessary system call to Clock in most cases. + This call is only needed when only the time is provided in the string, + and ignored in all other cases. This is more efficient. + +2008-08-20 Eric Botcazou <ebotcazou@adacore.com> + + * raise-gcc.c: Fix formatting nits. + +2008-08-20 Robert Dewar <dewar@adacore.com> + + * sem_ch13.adb: + (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for + non-existing component clause. + + * exp_ch5.adb: Minor reformatting + + * g-comlin.adb: Minor reformatting + + * make.adb: Minor reformatting + + * prj-proc.adb: Minor reformatting + + * stylesw.ads: Minor reformatting + +2008-08-20 Vincent Celier <celier@adacore.com> + + * make.adb (Gnatmake_Switch_Found): New Boolean global variable + (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable + (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler + defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False + and a switch is not recognized by gnatmake. + (Gnatmake): Implement new scheme for gnatmake switches and global + compilation switches. + (Switches_Of): Try successively Switches (<file name>), + Switches ("Ada"), Switches (others) and Default_Switches ("Ada"). + +2008-08-20 Ed Schonberg <schonberg@adacore.com> + + * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to + implement style check that overriding operations are explicitly marked + at such. + + * style.ads (Missing_Overriding): new procedure that provides interface + to previous one. + + * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check + that the declaration or body of overriding operations carries an + explicit overriding indicator. + + * sem_ch8.adb + (Analyze_Subprogram_Renaming): if operation is overriding, check whether + explicit indicator should be present. + + * sem_ch6.adb (Verify_Overriding_Indicator, + Check_Overriding_Indicator): If operation is overriding, check whether + declaration and/or body of subprogram should be present + +2008-08-20 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for + gprbuild when casing is MixedCase, whatever the casing of the letters + in the file name. + +2008-08-20 Gary Dismukes <dismukes@adacore.com> + + * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to + creating dummy init proc. + (Requires_Init_Proc): Return False in the case No_Default_Initialization + is in force and the type does not have associated default + initialization. Move test of Is_Public (with tests of restrictions + No_Initialize_Scalars and No_Default_Initialization) to end, past tests + for default initialization. + +2008-08-20 Jerome Lambourg <lambourg@adacore.com> + + * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part + of any alias or prefix but having attached parameters (as \"-O2\"). + +2008-08-20 Robert Dewar <dewar@adacore.com> + + * s-fileio.adb: Minor reformatting + +2008-08-20 Thomas Quinot <quinot@adacore.com> + + * exp_strm.adb (Build_Elementary_Input_Call, + Build_Elementary_Write_Call): Fix incorrect condition in circuitry that + selects the stream attribute routines for long float types. + +2008-08-20 Vincent Celier <celier@adacore.com> + + * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data + + * prj.ads (Array_Data): Add a component Location + +2008-08-20 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb: + (Analyze_Pragma, case Obsolescent): Add entity information on the pragma + argument for ASIS and navigation use. + +2008-08-20 Ed Schonberg <schonberg@adacore.com> + + * einfo.ads: Add comment. + +2008-08-20 Bob Duff <duff@adacore.com> + + * sem_eval.ads: Minor comment fix. + +2008-08-20 Bob Duff <duff@adacore.com> + + * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant + folding. We were folding things like "False and then ...", but not + "X and then ..." where X is a constant whose value is known at compile + time. + +2008-08-20 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch5.adb (Controlled_Type): New routine. + (Expand_N_Extended_Return_Statement): When generating a move of the + final list in extended return statements, check the type of the + function and in the case of double expanded return statements, the type + of the returned object. + (Expand_Simple_Function_Return): Perform an interface conversion when + the type of the returned object is an interface and the context is an + extended return statement. + +2008-08-20 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type + and the full view is visible, set flag on full view as well. + +2008-08-20 Thomas Quinot <quinot@adacore.com> + + * g-comlin.adb: Minor reformatting + Minor code reorganization. + + * freeze.adb: Minor reformatting + +2008-08-20 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Check_File): An excluded Ada source file may be a + source of another project. + +2008-08-20 Pascal Obry <obry@adacore.com> + + * s-os_lib.ads: Minor reformatting. + +2008-08-20 Arnaud Charlet <charlet@adacore.com> + + * gnatvsn.ads: Minor reformatting. + +2008-08-20 Arnaud Charlet <charlet@adacore.com> + + * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads, + system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb, + g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads, + mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb, + exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads, + g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb, + s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb, + sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb, + s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads, + g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb, + g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb, + g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads, + live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb, + g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads, + s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb, + g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads, + s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads, + g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb, + osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb, + system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads, + i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads, + s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads, + a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads, + s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb, + a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads, + g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb, + a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c, + a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb, + lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads, + s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads, + par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads, + a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb, + system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads, + s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads, + a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb, + mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb, + s-poosiz.adb, link.c: Fix copyright notice. + +2008-08-20 Arnaud Charlet <charlet@adacore.com> + + * g-comlin.ads: Update comments. + +2008-08-20 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag. + +2008-08-20 Gary Dismukes <dismukes@adacore.com> + + * exp_ch11.adb: + (Expand_Exception_Handlers): Call Make_Exception_Handler instead of + Make_Implicit_Exception_Handler when rewriting an exception handler with + a choice parameter, and pass the handler's Sloc instead of that of the + handled sequence of statements. Make_Implicit_Exception_Handler sets the + Sloc to No_Location (unless debugging generated code), which we don't + want for the case of a user handler. + +2008-08-20 Robert Dewar <dewar@adacore.com> + + * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field + + * sem_ch13.adb: + (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are + now labeled as info msgs, not warnings. + + * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler + + * usage.adb: Minor change to avoid overlong line for -gnatwz/Z + + * a-textio.adb: Remove redundant test. + + * a-witeio.adb: Minor code reorganization + Remove redundant test found working on another issue + + * a-ztexio.adb: Minor code reorganization + Remove redundant test found working on another issue + +2008-08-20 Thomas Quinot <quinot@adacore.com> + + * s-fileio.adb (Open) Use C helper function to determine whether a + given errno value corresponds to a "file not found" error. + + * sysdep.c (__gnat_is_file_not_found_error): New C helper function. + +2008-08-20 Jose Ruiz <ruiz@adacore.com> + + * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno + to get access to the per-task errno variable. + (__set_errno for MaRTE): Do not redefine this function here since it is + already defined in MaRTE. + +2008-08-20 Tristan Gingold <gingold@adacore.com> + + * gnat_ugn.texi: Gcov is not supported on static library on AIX. + +2008-08-20 Robert Dewar <dewar@adacore.com> + + * freeze.adb: Minor reformatting + + * g-comlin.adb: Minor reformatting + + * g-socket.adb: Minor reformatting + + * g-socthi-mingw.adb: Minor reformatting + + * g-stheme.adb: Minor reformatting + +2008-08-20 Ed Schonberg <schonberg@adacore.com> + + * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads, + exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve + confusion between partial and full views of an ancestor of the context + type when the parent is a private extension declared in a parent unit, + and full views are available for the context type. + +2008-08-18 Samuel Tardieu <sam@rfc1149.net> + Robert Dewar <dewar@adacore.com> + + PR ada/30827 + * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the + version string. + Move comment in the right place. + * g-comver.adb (Version): Look for a zero-termination in + addition to a closing parenthesis. + +2008-08-18 Samuel Tardieu <sam@rfc1149.net> + + * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb, + * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, + * sem_prag.adb, sem_util.adb, sem_warn.adb: Use + Is_Package_Or_Generic_Package instead of hand-crafted tests. + +2008-08-18 Samuel Tardieu <sam@rfc1149.net> + + PR ada/15808 + * sem_ch6.adb (Check_Private_Overriding): Check for generic packages + as well. + +2008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com> + + * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement. + +2008-08-16 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call + for back-copy statements in lieu of that of the actual. + +2008-08-16 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/20548 + * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the + setjmp test consistently. Adjust for new behavior of flag_stack_check. + * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant + test of flag_stack_check. Adjust for new behavior of flag_stack_check. + +2008-08-13 Samuel Tardieu <sam@rfc1149.net> + + PR ada/36777 + * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New. + * sem_attr.adb (Check_Type): The current instance of a protected + object is not a type name. + (Analyze_Access_Attribute): Accept instances of protected objects. + (Analyze_Attribute, Attribute_Address clause): Ditto. + * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite + the prefix as being the current instance if needed. + +2008-08-12 Danny Smith <danyssmith@users.sourceforge.net> + + * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]: + Remove duplicate s-win32.o. Add s-winext.o. + +2008-08-12 Danny Smith <danyssmith@users.sourceforge.net> + + * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM + with SOSC.SOCK__STREAM. + * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with + SOSC.MSG_OOB. + +2008-08-11 Joel Sherrill <joel.sherrill@oarcorp.com> + + * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it. + * gsocket.h, socket.c: Update to support RTEMS. + * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross. + +2008-08-10 Samuel Tardieu <sam@rfc1149.net> + Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of + left argument even when right argument is 0. + (Expand_N_Op_Mod): Ditto when right argument is 1. + (Expand_N_Op_Multiply): Ditto when any argument is 0. + (Expand_N_Op_Rem): Ditto when right argument is 1. + +2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused + by warn_unused. + +2008-08-08 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted + from Freeze_Entity. Used to generate cross-reference information for + types declared in generic packages. + +2008-08-08 Thomas Quinot <quinot@adacore.com> + + * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a + compatibility shim. + +2008-08-08 Thomas Quinot <quinot@adacore.com> + + * gsocket.h: + On Windows, include <errno.h> and redefine only selected errno values + from their <winsock2.h> definitions. + + * s-osinte-freebsd.ads: Minor reformatting + + * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting + + * g-soccon.ads: New file. + + * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb, + g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb, + g-stsifd-sockets.adb, g-socket.adb, g-socket.ads, + g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child + unit, to allow building software that depends on this internal unit + with both older and newer compilers. + +2008-08-08 Robert Dewar <dewar@adacore.com> + + * s-strxdr.adb: Minor reformatting + +2008-08-08 Bob Duff <duff@adacore.com> + + * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow + checking for integer operations (including division by zero)", which + is wrong -- divide by zero is not part of overflow checking. + Also added misc clarification about what check-suppression means. + + * gnat_rm.texi: Clarify the meaning of pragma Suppress. + +2008-08-08 Jerome Lambourg <lambourg@adacore.com> + + * g-comlin.adb (Add_Switch): Handle addition of switches at the + begining of the command line. + (Append, Add): Renaming of Append to Add as this now allows addition + at the begining of the list. + + * g-comlin.ads (Add_Switch): Handle addition of switches at the + begining of the command line. + +2008-08-08 Thomas Quinot <quinot@adacore.com> + + * g-sercom.ads: + (Name): Document application scope (only legacy PC serial ports on + Linux and Windows). + +2008-08-08 Thomas Quinot <quinot@adacore.com> + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert + previous change, not needed after all. + +2008-08-08 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Expand_Allocator_Expression): add check if null + exclusion indicator is present + +2008-08-08 Robert Dewar <dewar@adacore.com> + + * g-comlin.adb: Minor code reorganization + Minor reformatting + + * g-comlin.ads: Minor reformatting + + * s-fileio.adb: Minor reformatting + + * sem_attr.adb: Minor code reorganization (use Nkind_In) + Minor reformatting + +2008-08-06 Samuel Tardieu <sam@rfc1149.net> + + * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing + with s-oscons-tmplt.i. + +2008-08-06 Samuel Tardieu <sam@rfc1149.net> + + * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove. + +2008-08-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse + of incomplete type. + + * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming + of a formal parameter of an incomplete type. Improve error message for + other improper uses of incomplete types. + +2008-08-06 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Clarify -gnato documentation + +2008-08-06 Thomas Quinot <quinot@adacore.com> + + * gcc-interface/Makefile.in, + g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb, + g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads, + g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads, + g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads, + g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads, + g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads, + g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads, + g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads, + g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads: + Remove GNAT.Sockets.Constants. This internal package is replaced by + System.OS_Constants. + +2008-08-06 Thomas Quinot <quinot@adacore.com> + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: + Remove obsolete targets referencing gen-soccon + When generating s-oscons.ads, use a file name that includes the + THREAD_KIND, to ensure that the (potentially different) version from a + previous build with a different threads flavour does not get reused. + +2008-08-06 Thomas Quinot <quinot@adacore.com> + + * sem_res.adb: Minor reformatting + + * s-fileio.adb (Open): When file open operation fails, raise Name_Error + only when the operating system reports a non-existing file or directory + (ENOENT), otherwise raise Name_Error. + + * exp_ch11.adb: Minor reformatting + +2008-08-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is + incomplete, add the access_to_subprogram type to the list of private + dependents only if the incomplete type will be completed in the current + scope. + (Build_Discriminant_Constraints): If the type of the discriminant is + access_to_variable, reject a constraint that is access_to_constant. + +2008-08-06 Thomas Quinot <quinot@adacore.com> + + * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb, + g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads, + g-sttsne-dummy.ads: New files. + + * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources + with pragma Unimplemented_Unit for sockets packages on Nucleus. + +2008-08-06 Pascal Obry <obry@adacore.com> + + * adaint.c: Another fix for ACL support on Windows. + +2008-08-06 Javier Miranda <miranda@adacore.com> + + * exp_disp (Expand_Interface_Actuals): Adds missing support for + expansion of calls to subprograms using selected components. + +2008-08-06 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Call): Use base type to determine whether a + dereference is needed because a subtype of an access_to_subprogram is + simply an access-subtype + +2008-08-06 Jerome Lambourg <lambourg@adacore.com> + + * g-comlin.adb (Set_Command_Line): Now that aliases can contain + parameters, always specify the expected separator. + +2008-08-06 Thomas Quinot <quinot@adacore.com> + + * xnmake.adb: Use new XUtil package for platform independent text + output. + +2008-08-06 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Document compiler switch -gnateG + +2008-08-06 Quentin Ochem <ochem@adacore.com> + + * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark + in the case of an empty pattern size. + (Compute_Result): Do not do any computation in the case of an empty + pattern size. + (Report_Result): Fixed computation of the overflow guard. + +2008-08-06 Ed Schonberg <schonberg@adacore.com> + + * g-awk.adb (Finalize): Do not use directly objects of the type in the + finalization routine to prevent elaboration order anomalies in new + finalization scheme. + +2008-08-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete + declaration for the same type. + +2008-08-06 Thomas Quinot <quinot@adacore.com> + + * sem.adb: Minor rewording (comment) + +2008-08-06 Jerome Lambourg <lambourg@adacore.com> + + * g-comlin.adb (Define_Switch, Get_Switches): New. + (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when + ungrouping switches. + (For_Each_Simple_Switch): Allow more control over parameters handling. + This generic method now allows ungrouping of switches with parameters + and switches with more than one letter after the prefix. + (Set_Command_Line): Take care of switches that are prefixed with a + switch handling parameters without delimiter (-gnatya and -gnaty3 for + example). + (Add_Switch, Remove_Switch): Handle parameters possibly present inside + a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of + the operation. + (Start, Alias_Switches, Group_Switches): Take care of parameters + possibly present inside a group. + + * g-comlin.ads (Define_Switch): New method used to define a list of + expected switches, that are necessary for correctly ungrouping switches + with more that one character after the prefix. + (Get_Switches): Method that builds a getopt string from the list of + switches as set previously by Define_Switch. + (Add_Switch, Remove_Switch): New versions of the methods, reporting the + status of the operation. Also allow the removal of switches with + parameters only. + (Command_Line_Configuration_Record): Maintain a list of expected + switches. + +2008-08-06 Doug Rupp <rupp@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if + TARGET_MALLOC64 clear. + + * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc + if TARGET_MALLOC64 clear. + + * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c + (TARGET_MALLC64): New macro. Default to clear. + +2008-08-06 Doug Rupp <rupp@adacore.com> + + * gcc-interface/utils2.c (snames.h) Include + (TARGET_ABI_OPEN_VMS): Initialize. + (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap + for Convention C. + +2008-08-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper + null exclusion in a discriminant declaration + + * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion + indicators when type is not an access type. + + * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion + indicators when type is not an access type. + +2008-08-06 Javier Miranda <miranda@adacore.com> + + * exp_disp (Expand_Interface_Conversion): Freeze the entity associated + with the target interface before expanding the code of the interface + conversion. + +2008-08-05 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb: + (Freeze_Entity): A deferred constant does not violate the restriction + No_Default_Initialization, + + * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that + can carry a null exclusion indicator, and on which an error may be + posted if the indicator is redundant. + + * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion + does not apply to a subtype mark that already excludes null. + + * sem_ch12.adb (Formal_Object_Declaration): Verify that a null + exclusion does not apply to a subtype mark that already excludes null. + +2008-08-05 Thomas Quinot <quinot@adacore.com> + + * Makefile.rtl: Compile s-oscons.ads as part of the runtime library. + +2008-08-05 Doug Rupp <rupp@adacore.com> + + * vms_data.ads: Translation for /POINTER_SIZE qualifier. + +2008-08-05 Thomas Quinot <quinot@adacore.com> + + * gsocket.h: Make this file includable in a Nucleus environment, which + does not support sockets. + + * socket.c: Remove Nucleus-specific hack. + +2008-08-05 Pascal Obry <obry@adacore.com> + + * adaint.c: Remove support for readable attribute on vxworks and nucleus + +2008-08-05 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb: + (Analyze_Attribute, case 'Result): handle properly the case where some + operand of the expression in a post-condition generates a transient + block. + + * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to + right-hand side when it is an anonymous access_to_subprogram, to force + static accessibility check when needed. + +2008-08-05 Sergey Rybin <rybin@adacore.com> + + * gnat_ugn.texi: Changing the description of the gnatcheck metrics + rule according to the change in the rule option. + Add documentation for -gnatw.b/-gnatw.B + +2008-08-05 Robert Dewar <dewar@adacore.com> + + * ug_words: Add entries for -gnatw.b/-gnatw.B + + * vms_data.ads: Add entries for -gnatw.b/-gnatw.B + +2008-08-05 Vincent Celier <celier@adacore.com> + + * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put + (File). + + * a-ztdeio.adb: Ditto. + +2008-08-05 Pascal Obry <obry@adacore.com> + + * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the + readable attribute. + +2008-08-05 Vincent Celier <celier@adacore.com> + + * s-wchwts.adb: + (Wide_String_To_String): Returns a String with the same 'First as its + parameter S. + (Wide_Wide_String_To_String): Ditto + + * s-wchwts.ads: + (Wide_String_To_String): Document that the lowest index of the returned + String is equal to S'First. + +2008-08-05 Thomas Quinot <quinot@adacore.com> + + * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files. + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate + s-oscons.ads + +2008-08-05 Robert Dewar <dewar@adacore.com> + + * opt.ads (Warn_On_Biased_Representation): New flag + + * sem_ch13.adb: + (Analyze_Attribute_Definition_Clause): Issue warning when biased + representation is required. + (Minimum_Size): Don't allow biasing if enum rep clause case + + * sem_warn.adb: + (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches + (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws + + * usage.adb: Add lines for -gnatw.b/B switches + +2008-08-05 Pascal Obry <obry@adacore.com> + + * a-coinve.adb: Reorder the code to avoid uninitialized warning. + + * adaint.c: In UNIX cases do not call __gnat_stat but stat directly. + +2008-08-05 Thomas Quinot <quinot@adacore.com> + + * socket.c: Minor reformatting. + +2008-08-05 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb: Minor reformatting + + * prj-nmsc.adb: Minor reformatting + +2008-08-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex + visibility check on the component type if the simple test fails. + +2008-08-05 Jose Ruiz <ruiz@adacore.com> + + * init.c (__gnat_install_handler for linux): If we are building the + Xenomai run time then we need to do two additional things: avoid + memory swapping and transform the Linux environment task into a native + Xenomai task. + + * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run + time): Use interface to Xenomai native skin and avoid linux-specific + way of setting CPU affinity. + (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism. + +2008-08-05 Bob Duff <duff@adacore.com> + + * checks.ads: Minor comment fix + +2008-08-05 Thomas Quinot <quinot@adacore.com> + + * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb, + g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and + CS8. + +2008-08-05 Robert Dewar <dewar@adacore.com> + + * mlib.adb: Minor code reorganization + Minor reformatting + + * make.adb: Minor reformatting + + * prj-attr.ads: Minor reformatting + + * s-os_lib.adb: Minor reformatting + + * s-fileio.adb: Minor code reorganization + Minor reformatting + + * prj.ads: Minor reformatting + +2008-08-05 Bob Duff <duff@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in + unresolved initial value of "null", because it causes implicitly + generated "=" operators to be ambiguous, and because this type should + not be passed to gigi. + +2008-08-05 Vincent Celier <celier@adacore.com> + + * mlib.adb: Update comments. + + * make.adb (Switches_Of): Check for Switches (others), before checking + for Default_Switches ("Ada"). + (Gnatmake): Use Builder'Switches (others) in preference to + Builder'Default_Switches ("Ada") if there are several mains. + + * prj-attr-pm.adb: + (Add_Attribute): Add component Others_Allowed in Attribute_Record + aggregate. + + * prj-attr.adb: + Add markers to indicates that attributes Switches allow others as index + (Others_Allowed_For): New Boolean function, returning True for + attributes with the mark. + (Initialize): Recognize optional letter 'O' as the marker for + associative array attributes where others is allowed as the index. + + * prj-attr.ads: + (Others_Allowed_For): New Boolean function + (Attribute_Record): New Boolean component Others_Allowed + + * prj-dect.adb: + (Parse_Attribute_Declaration): For associative array attribute where + others is allowed as the index, allow others as an index. + + * prj-nmsc.adb: + (Process_Binder): Skip associative array attributes with index others + (Process_Compiler): Ditto + + * prj-util.adb: + (Value_Of (Index, In_Array)): Make no attempt to put in lower case when + index is All_Other_Names. + + * prj.ads: + (All_Other_Names): New constant + + * prj-proc.adb: + (Process_Declarative_Items): Skip associative array attribute when index + is reserved word "others". + +2008-08-05 Vasiliy Fofanov <fofanov@adacore.com> + + * gen-oscons.c: Adapt for VMS where termios.h is not available. + +2008-08-05 Thomas Quinot <quinot@adacore.com> + + * a-rttiev.adb: Minor reformatting (comments) + + * gen-soccon.c: Rename to gen-oscons.c + + * gen-oscons.c: New file. Now generate System.OS_Constants instead of + GNAT.Sockets.Constants. + Add new constants for GNAT.Serial_Communications and System.File_IO. + +2008-08-05 Javier Miranda <miranda@adacore.com> + + * sem_util.adb (Collect_Interfaces_Info): Minor reformating. + * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the + implementation of this routine has been simplified. + +2008-08-05 Pascal Obry <obry@adacore.com> + + * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the + Set_Read_Only Win32 implementation. + +2008-08-05 Thomas Quinot <quinot@adacore.com> + + * exp_strm.adb: Minor reformatting (comments) + + * sem_ch12.adb: Minor reformatting. + +2008-08-05 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb: Minor reformatting + + * checks.adb: Minor reformatting + +2008-08-05 Thomas Quinot <quinot@adacore.com> + + * tbuild.ads (New_External_Name): Update spec to reflect relaxed + restriction on Prefix. + +2008-08-05 Jerome Lambourg <lambourg@adacore.com> + + * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal + methods needed to handle switch sections when building a command line. + (Define_Section, Add_Switch, Remove_Switch, Is_New_Section, + Current_Section): New public methods or methods modified to handle + building command lines with sections. + (Set_Command_Line): Take into account sections when analysing a switch + string. + (Start): Sort the switches by sections before iterating the command line + elements. + + * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch, + Is_New_Section, Current_Section): New methods or methods modified to + handle building command lines with sections. + +2008-08-05 Ed Schonberg <schonberg@adacore.com> + + * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access + discriminants, indicate that the corresponding object declaration has + no initialization, to prevent spurious warnings when the access type is + null-excluding. + +2008-08-05 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Call): If this is a call to the predefined + Abort_Task, warn if the call appears within a protected operation. + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances + +2008-08-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb: + (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an + anonymous access to protected subprogram that is the return type of the + specification of a subprogram body. + + * sem_ch6.adb: + (Analyze_Subprogram_Body): if the return type is an anonymous access to + subprogram, freeze it now to prevent access anomalies in the back-end. + + * exp_ch9.adb: Minor code cleanup. + Make sure that new declarations are inserted into the tree before + analysis (from code reading). + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * exp_ch5.adb: + (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction + at point of return. + +2008-08-04 Thomas Quinot <quinot@adacore.com> + + * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting + +2008-08-04 Vasiliy Fofanov <fofanov@adacore.com> + + * g-soccon-mingw.ads: Fix value for MSG_WAITALL + +2008-08-04 Javier Miranda <miranda@adacore.com> + + * sem_prag.adb (Process_Convention): Add missing support for + N_Private_Extension_Declaration nodes. + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb: Minor reformatting + +2008-08-04 Pascal Obry <obry@adacore.com> + + * adaint.h: Add missing prototype. + + * adaint.c: Refine support for Windows file attributes. + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * sem_res.adb: + (Valid_Conversion): Catch case of designated types having different + sizes, even though they statically match. + +2008-08-04 Javier Miranda <miranda@adacore.com> + + * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch + added in previous patch to handle access to subprograms. + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * freeze.adb: + (Freeze_Entity): Only check No_Default_Initialization restriction for + constructs that come from source + +2008-08-04 Thomas Quinot <quinot@adacore.com> + + * exp_ch6.adb: Minor comment fix. + + * sem_ch4.adb: Minor reformatting. + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * sem_res.adb: (Large_Storage_Type): Improve previous change. + +2008-08-04 Pascal Obry <obry@adacore.com> + + * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with + file attributes. + +2008-08-04 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support + for N_Formal_Object_Declaration nodes. Adding kludge required by + First_Formal to provide its functionality with access to functions. + (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support + for anonymous access types returned by functions. + + * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate + conversion of null-excluding access types (required only once to force + the generation of the required runtime check). + + * sem_type.adb (Covers): minor reformating + + * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors + with internally generated nodes. Avoid generating the error inside init + procs. + + * sem_res.adb (Resolve_Membership_Test): Minor reformating. + (Resolve_Null): Generate the null-excluding check in case of assignment + to a null-excluding object. + (Valid_Conversion): Add missing support for anonymous access to + subprograms. + + * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for + anonymous access types whose designated type is an itype. This case + occurs with anonymous access to protected subprograms types. + (Analyze_Return_Type): Add missing support for anonymous access to + protected subprogram. + + * sem_eval.adb (Subtypes_Statically_Match): In case of access to + subprograms addition of missing check on matching convention. Required + to properly handle access to protected subprogram types. + + * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on + null excluding access types. + +2008-08-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb: Add comments + + * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null + access type and the allocator is not initialized, warn rather than + reporting an error. + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb: Minor reformatting + + * exp_dist.adb: Minor reformatting + + * g-comlin.adb: Minor reformatting + +2008-08-04 Gary Dismukes <dismukes@adacore.com> + + * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the + target to the type of the aggregate in the case where the target object + is class-wide. + + * exp_ch5.adb (Expand_Simple_Function_Return): When the function's + result type is class-wide and inherently limited, and the expression + has a specific type, create a return object of the specific type, for + more efficient handling of returns of build-in-place aggregates (avoids + conversions of the class-wide return object to the specific type on + component assignments). + + * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error + about a type mismatch for a class-wide function with a return object + having a specific type when the object declaration doesn't come from + source. Such an object can result from the expansion of a simple return. + +2008-08-04 Vasiliy Fofanov <fofanov@adacore.com> + + * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files. + + * gcc-interface/Makefile.in: Use 64bit-specific system files when + compiling for 64bit windows. + +2008-08-04 Jerome Lambourg <lambourg@adacore.com> + + * g-comlin.adb (Group_Switches): Preserve the switch order when + grouping and allow switch grouping of switches with more than one + character extension (e.g. gnatw.x). + (Args_From_Expanded): Remove this now obsolete method. + +2008-08-04 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for + chain at once, to ensure that type is properly decorated for back-end, + when allocator appears within a loop. + +2008-08-04 Kevin Pouget <pouget@adacore.com> + + * snames.h, snames.adb, snames.ads: + Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines. + + * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call, + Build_To_Any_Call and Build_TypeCode_Call procedures. + + * exp_attr.adb, sem_attr.adb: Add corresponding cases. + + * rtsfind.ads: Add corresponding names. + + * tbuild.adb: Update prefix restrictions to allow '_' character. + +2008-08-04 Doug Rupp <rupp@adacore.com> + + * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual + * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter. + * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and + use it. Calculate pointer range overflow using 64bit types. + +2008-08-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Access_Definition): A formal object declaration is a + legal context for an anonymous access to subprogram. + + * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an + indirect call, report success to the caller to include possible + interpretation. + + * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance + check when the type + of the extended return is an anonymous access_to_subprogram type. + + * sem_res.adb: + (Resolve_Call): Insert a dereference if the type of the subprogram is an + access_to_subprogram and the context requires its return type, and a + dereference has not been introduced previously. + +2008-08-04 Arnaud Charlet <charlet@adacore.com> + + * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve + gnatcheck support in GPS. + +2008-08-04 Vincent Celier <celier@adacore.com> + + * mlib.adb (Create_Sym_Links): Create relative symbolic links when + requested + +2008-08-04 Vincent Celier <celier@adacore.com> + + * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean + variable, but don't check the resulting value as it has no impact on + the processing. + + * opt.ads: + (Generate_Processed_File): New Boolean flag, set to True in the compiler + when switch -gnateG is used. + + * prep.adb: + (Preprocess): new Boolean out parameter Source_Modified. Set it to True + when the source is modified by the preprocessor and there is no + preprocessing errors. + + * prep.ads (Preprocess): new Boolean out parameter Source_Modified + + * sinput-l.adb: + (Load_File): Output the result of preprocessing if the source text was + modified. + + * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG + + * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG + + * ug_words: Add VMS equivalent for -gnateG + + * vms_data.ads: + Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG + +2008-08-04 Doug Rupp <rupp@adacore.com> + + * gcc-interface/utils2.c: + (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer + in 32bit descriptor. + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * par-ch10.adb: Minor reformatting + + * i-cobol.adb: Minor reformatting. + +2008-08-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Access_Definition): Create an itype reference for an + anonymous access return type of a regular function that is not a + compilation unit. + +2008-08-04 Vincent Celier <celier@adacore.com> + + * prj-attr.adb: New Builder attribute Global_Compilation_Switches + + * snames.adb: New standard name Global_Compilation_Switches + + * snames.ads: New standard name Global_Compilation_Switches + + * make.adb: Correct spelling error in comment + +2008-08-04 Arnaud Charlet <charlet@adacore.com> + + * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI + target. + +2008-08-04 Thomas Quinot <quinot@adacore.com> + + * sem_ch10.adb: Minor comment fix. + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * restrict.adb: Improved messages for restriction warnings + + * restrict.ads: Improved messages for restriction messages + + * s-rident.ads (Profile_Name): Add No_Profile + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus + +2008-08-04 Robert Dewar <dewar@adacore.com> + + * freeze.adb (Freeze_Entity): Check for size clause for boolean warning + +2008-08-04 Vincent Celier <celier@adacore.com> + + * prj-proc.adb: + (Copy_Package_Declarations): When inheriting package Naming from a + project being extended, do not inherit source exception names. + +2008-08-04 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Check_Precondition_Postcondition): When scanning the + list of declaration to find previous subprogram, do not go to the + original node of a generic unit. + +2008-08-02 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>: + New case. Convert BOOLEAN_TYPE operation to the default integer type. + +2008-08-01 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE. + * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify + and adjust for above renaming. + * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new + gnu_expr_alt_type parameter. Convert the expression to it instead + of changing its type in place. + (build_function_stub): Adjust call to above function. + +2008-08-01 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead + code. Do not get full definition of deferred constants with address + clause for a use. Do not ignore deferred constant definitions with + address clause. Ignore constant definitions already marked with the + error node. + <object>: Remove obsolete comment. For a deferred constant with + address clause, get the initializer from the full view. + * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>: + Rework and remove obsolete comment. + <N_Object_Declaration>: For a deferred constant with address clause, + mark the full view with the error node. + * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix + formatting nits. + +2008-08-01 Hristian Kirtchev <kirtchev@adacore.com> + + * rtsfind.ads: Add block IO versions of stream routines for Strings. + + * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads, + sem_prag.adb, snames.adb, snames.ads, snames.h, + par-prag.adb: Undo previous stream related changes. + + * s-rident.ads: Add new restriction No_Stream_Optimizations. + + * s-ststop.ads, s-ststop.adb: Comment reformatting. + Define enumeration type to designate different IO mechanisms. + Enchance generic package Stream_Ops_Internal to include an + implementation of Input and Output. + + * exp_attr.adb (Find_Stream_Subprogram): If restriction + No_Stream_Optimization is active, choose the default byte IO + implementations of stream attributes for Strings. + Otherwise use the corresponding block IO version. + +2008-08-01 Olivier Hainque <hainque@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not + turn Ada Pure into GCC const, now implicitely implying nothrow as well. + +2008-08-01 Robert Dewar <dewar@adacore.com> + + * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to + convert plain identifier into defining identifier. + +2008-08-01 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve + warnings + + * lib-xref.adb: Add error defense. + +2008-08-01 Bob Duff <duff@adacore.com> + + * ioexcept.ads, sequenio.ads, directio.ads: Correct comment. + +2008-08-01 Gary Dismukes <dismukes@adacore.com> + + * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing + correct accessibility levels. In the "when others" case, retrieve the + access level of the Etype of Prev rather than Prev_Orig, because the + original exression has not always been analyzed. + +2008-08-01 Robert Dewar <dewar@adacore.com> + + * prj-nmsc.adb: Minor reformatting + + * sem_ch4.adb: Minor reformatting + Minor code reorganization + + * prj.ads: Minor reformatting + + * s-os_lib.adb: Minor reformatting + + * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper + half encodings + + * scans.ads: Minor reformatting. + + * sem_prag.adb (Analyze_Pragma): Put entries in alpha order + (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma + + * sem_res.adb: + (Resolve_Call): Check violation of No_Specific_Termination_Handlers + + * sem_ch12.adb: Minor comment reformatting + + * par-ch3.adb (P_Type_Declaration): Properly handle missing type + keyword + +2008-08-01 Robert Dewar <dewar@adacore.com> + + * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not + generating code + +2008-08-01 Ed Schonberg <schonberg@adacore.com> + + * checks.adb (Apply_Float_Conversion_Check): If the expression to be + converted is a real literal and the target type has static bounds, + perform the conversion exactly to prevent floating-point anomalies on + some targets. + +2008-08-01 Vincent Celier <celier@adacore.com> + + * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>) + + * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax + + * prj.adb (Object_Exist_For): Use Object_Generated, not + Objects_Generated that is removed and was never modified anyway. + + * prj.ads: + (Path_Syntax_Kind): New enumeration type + (Language_Config): New component Path_Syntax, defaulted to Host. + Components PIC_Option and Objects_Generated removed, as they are not + used. + + * snames.adb: New standard name Path_Syntax + + * snames.ads: New standard name Path_Syntax + +2008-08-01 Vincent Celier <celier@adacore.com> + + * mlib-utl.adb: + (Adalib_Path): New variable to store the path of the adalib directory + when procedure Specify_Adalib_Dir is called. + (Lib_Directory): If Adalib_Path is not null, return its value + (Specify_Adalib_Dir): New procedure + + * mlib-utl.ads (Specify_Adalib_Dir): New procedure + +2008-08-01 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb: + (Check_Precondition_Postcondition): If not generating code, analyze the + expression in a postcondition that appears in a subprogram body, so that + it is properly decorated for ASIS use. + +2008-08-01 Gary Dismukes <dismukes@adacore.com> + + * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets + Orig_Prev to Prev in the case where the actual is N_Function_Call or + N_Identifier. This was interfering with other cases that are rewritten + as N_Identifier, such as allocators, resulting in passing of the wrong + accessibility level, and based on testing this code is apparently no + longer needed at all. + +2008-08-01 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a + procedure call whose prefix + is a parameterless function call that returns an access_to_procedure. + +2008-08-01 Jose Ruiz <ruiz@adacore.com> + + * adaint.c (__gnat_tmp_name): Refine the generation of temporary names + for RTX. Adding a suffix that is incremented at each iteration. + +2008-08-01 Robert Dewar <dewar@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of + Raise_Exception + +2008-08-01 Jerome Lambourg <lambourg@adacore.com> + + * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in + paths, which are authorized by Windows but can lead to errors when used + elsewhere. + +2008-08-01 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create + a pending instantiation for the body of a subprogram that is to be + inlined. + + * sem_ch12.adb: + (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body. + + * sem_prag.adb (Make_Inline): If the pragma applies to an instance, + create a pending instance for its body, so that calls to the subprogram + can be inlined by the back-end. + +2008-08-01 Jose Ruiz <ruiz@adacore.com> + + * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and + rts-rtx-w32). + +2008-08-01 Robert Dewar <dewar@adacore.com> + + * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer + +2008-08-01 Doug Rupp <rupp@adacore.com> + + * gnat_rm.texi: Document new mechanism Short_Descriptor. + + * types.ads (Mechanism_Type): Modify range for new Short_Descriptor + mechanism values. + + * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor + mechanism and Short_Descriptor mechanism values. + + * snames.adb (preset_names): Add short_descriptor entry. + + * snames.ads: Add Name_Short_Descriptor. + + * types.h: Add new By_Short_Descriptor mechanism values. + + * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor + mechanism and Short_Descriptor mechanism values. + + * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism + values. + (Descriptor_Codes): Modify range for new mechanism values. + + * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor + mechanism values. + + * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor. + (gnat_to_gnu_param): Handle By_Short_Descriptor. + + * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype. + (build_vms_descriptor32): New prototype. + (fill_vms_descriptor): Remove unneeded gnat_actual parameter. + + * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual + argument in call fill_vms_descriptor. + + * gcc-interface/utils.c (build_vms_descriptor32): Renamed from + build_vms_descriptor and enhanced to hande Short_Descriptor mechanism. + (build_vms_descriptor): Renamed from build_vms_descriptor64. + (convert_vms_descriptor32): New function. + (convert_vms_descriptor64): New function. + (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit + descriptors. + + * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes, + no longer needed. + +2008-08-01 Jose Ruiz <ruiz@adacore.com> + + * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam + nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary + name. + +2008-08-01 Jose Ruiz <ruiz@adacore.com> + + * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the + current directory so only fully qualified names are allowed. + +2008-08-01 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: + Minor editing, remove uncomfortable use of semicolon + + * s-ststop.adb: Add some ??? comments + + * sem_ch10.adb: Minor reformatting + + * snames.ads: + Minor comment fixes, some pragmas were not properly + categorized in the comments, documentation change only + + * xref_lib.adb: Minor reformatting + + * sinput.adb: Minor reformatting + + * gnatchop.adb: Minor reformatting + + * sem_util.ads: Minor reformatting. + + * opt.ads: Minor documentation fix + + * scng.adb: Minor reformatting + + * prj-part.adb: Update comments + +2008-08-01 Ed Schonberg <schonberg@adacore.com> + + * exp_disp.adb (Expand_Interface_Conversion): If the target type is a + tagged synchronized type, use corresponding record type. + +2008-08-01 Doug Rupp <rupp@adacore.com> + + * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a + dummy transfer address for debugging. + + * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise. + + * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING + +2008-07-31 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting. + * gcc-interface/utils.c (create_field_decl): Avoid superfluous work. + +2008-07-31 Pascal Obry <obry@adacore.com> + + * prj-nmsc.adb: Keep Object and Exec directory casing. + +2008-07-31 Jose Ruiz <ruiz@adacore.com> + + * system-rtx-rtss.ads + Change the default stack size. It is important to set the commit part. + + * s-taprop-rtx.adb + (Initialize): Get the clock resolution. + (RT_Resolution): Return the clock resolution that is indicated by the + system. + + * s-parame-vxworks.adb + Document that this body is used for RTX in RTSS (kernel) mode. + + * gcc-interface/Makefile.in + (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the + s-parame-vxworks.adb body in order to have reasonable stack sizes in + RTX RTSS kernel mode. Virtual memory is not used in that case, so we + cannot ask for too big values. + +2008-07-31 Robert Dewar <dewar@adacore.com> + + * exp_aggr.adb: Minor reformatting + + * makeutl.adb: Minor reformatting + + * prj-env.adb: Minor reformatting + +2008-07-31 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private + tagged type is completed by a concurrent type. + +2008-07-31 Gary Dismukes <dismukes@adacore.com> + + * sem_aggr.adb: + (Resolve_Record_Aggregate): Bypass error that a type without + components must have a "null record" aggregate when compiling for Ada + 2005, since it's legal to give an aggregate of form (others => <>) + for such a type. + +2008-07-31 Javier Miranda <miranda@adacore.com> + + * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to + handle synchronized types. Required to handle well the object.operation + notation applied to synchronized types. + +2008-07-31 Quentin Ochem <ochem@adacore.com> + + * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored + anymore - just used internally. + Added handling of very small tasks - when the theoretical size is + already full at the point of the call. + (Report_Result): Fixed result computation, Stack_Used_When_Filling does + not need to be added to the result. + +2008-07-31 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the + corresponding spec is a primitive wrapper. Update comment. + +2008-07-31 Hristian Kirtchev <kirtchev@adacore.com> + + * bindgen.adb Comment reformatting. Update the list of run-time globals. + (Gen_Adainit_Ada): Add the declaration, import and value set for + configuration flag Canonical_Streams. + (Gen_Adainit_C): Add the declaration and initial value of external + symbol __gl_canonical_streams. + + * init.c: Update the list of global values computed by the binder. + + * opt.ads: Add flag Canonical_Streams. + + * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of + semantically handled pragmas. + + * sem_prag.adb: Add an entry into enumeration type Sig_Flags. + (Analyze_Pragma): Add case for pragma Canonical_Streams. + + * snames.adb: Add character value for name Canonical_Streams. + + * snames.ads: + Add Name_Canonical_Streams to the list of configuration pragmas. + Add Pragma_Canonical_Streams to enumeration type Pragma_Id. + + * snames.h: Add a definition for Pragma_Canonical_Streams. + + * s-ststop.adb: + Add a flag and import to seize the value of external symbol + __gl_canonical_streams. Update comment and initial value of constant + Use_Block_IO. + + * gnat_rm.texi: Add section of pragma Canonical_Streams. + + * gnat_ugn.texi: + Add pragma Canonical_Streams to the list of configuration pragmas. + +2008-07-31 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause + has the form A.B.C and B is a unit renaming, analyze its compilation + unit and add a with_clause on A.b to the context. + +2008-07-31 Vincent Celier <celier@adacore.com> + + * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails, + return the empty string, instead of raising Constraint_Error. + +2008-07-31 Gary Dismukes <dismukes@adacore.com> + + * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node. + + * checks.adb (Apply_Accessibility_Check): Insert the check on + Insert_Node. + + * exp_attr.adb: + (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node + to new parameter Insert_Node on call to Apply_Accessibility_Check. + Necessary to distinguish the insertion node because the dereferenced + formal may come from a rename, but the check must be inserted in + front of the attribute. + + * exp_ch4.adb: + (Expand_N_Allocator): Pass actual for new Insert_Node parameter on + call to Apply_Accessibility_Check. + (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter + on call to Apply_Accessibility_Check. + Minor reformatting + +2008-07-31 Javier Miranda <miranda@adacore.com> + + * sem_type.adb (Has_Compatible_Type): Complete support for synchronized + types when the candidate type is a synchronized type. + + * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized + types, and complete management of synchronized types adding missing + code to handle formal that is a synchronized type. + + * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that + are not available and cause the compiler to blowup. Found compiling + test with switch -gnatc + + * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram + Has_Correct_Formal_Mode plus code cleanup. + +2008-07-31 Bob Duff <duff@adacore.com> + + * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was + recognized as two end-of-lines, but it should be just one. + +2008-07-31 Thomas Quinot <quinot@adacore.com> + + * exp_ch9.adb: Minor reformatting + + * tbuild.ads: Fix several occurrences of incorrectly referring to + Name_Find as Find_Name. + +2008-07-31 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component + and the context is an object declaration with non-static bounds, treat + the aggregate as non-static. + +2008-07-31 Vincent Celier <celier@adacore.com> + + * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb: + Move back spec of Parse_Single_Project to body, as it is not called + outside of package Prj.Part. + (Project_Data): Remove components Linker_Name, Linker_Path and + Minimum_Linker_Options as they are no longer set. + Remove function There_Are_Ada_Sources from package Prj and move code + in the only place it was used, in Prj.Env.Set_Ada_Paths. + +2008-07-31 Arnaud Charlet <charlet@adacore.com> + + * mlib-utl.ads: Fix typo. + +2008-07-31 Robert Dewar <dewar@adacore.com> + + * sem_ch12.adb: Minor reformatting + +2008-07-31 Sergey Rybin <rybin@adacore.com> + + * gnat_ugn.texi: Change the description of the + Overly_Nested_Control_Structures: now the rule always requires a + positive parameter for '+R' option + +2008-07-31 Thomas Quinot <quinot@adacore.com> + + * g-pehage.adb: Minor reformatting + +2008-07-31 Pascal Obry <obry@adacore.com> + + * s-finimp.ads: Minor reformatting. + +2008-07-31 Vincent Celier <celier@adacore.com> + + * s-regexp.ads: Minor comment fix + +2008-07-31 Arnaud Charlet <charlet@adacore.com> + + * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off), + so that we can compile this file successfully with -gnatc. + +2008-07-31 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead + of the type when looking for stream subprograms for type String, + Wide_String and Wide_Wide_String. + + * s-ststop.adb: Change the initialization expression of constant + Use_Block_IO. + +2008-07-31 Geert Bosch <bosch@adacore.com> + + * arit64.c: + New file implementing __gnat_mulv64 signed integer multiplication with + overflow checking + + * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi + + * gcc-interface/gigi.h: + (standard_types): Add ADT_mulv64_decl + (mulv64_decl): Define subprogram declaration for __gnat_mulv64 + + * gcc-interface/utils.c: + (init_gigi_decls): Add initialization of mulv64_decl + + * gcc-interface/trans.c: + (build_unary_op_trapv): New function + (build_binary_op_trapv): New function + (gnat_to_gnu): Use the above functions instead of + build_{unary,binary}_op + + * gcc-interface/Makefile.in + (LIBGNAT_SRCS): Add arit64.c + (LIBGNAT_OBJS): Add arit64.o + +2008-07-31 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or + Linker'Default_Switches are declared. Warn if they are declared. + +2008-07-31 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use + Insert_Actions to place the pointer declaration in the code, rather + than Insert_Before_And_Analyze, so that insertions of temporaries are + kept in the proper order when transient scopes are present. + + +2008-07-31 Robert Dewar <dewar@adacore.com> + + * einfo.adb (Spec_PPC): Now defined for generic subprograms + + * einfo.ads (Spec_PPC): Now defined for generic subprograms + + * sem_prag.adb (Check_Precondition_Postcondition): Handle generic + subprogram case + +2008-07-31 Vincent Celier <celier@adacore.com> + + * s-os_lib.adb: Minor comment fix + +2008-07-31 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis, + transfer pre/postconditions from generic copy to original tree, so that + they will appear in each instance. + (Process_PPCs): Do not transform postconditions into a procedure in a + generic context, to prevent double expansion of check pragmas. + + * sem_attr.adb: In an instance, the prefix of the 'result attribute + can be the renaming of the + current instance, so check validity of the name accordingly. + +2008-07-31 Robert Dewar <dewar@adacore.com> + + * mlib-utl.ads: Minor reformatting + +2008-07-31 Ed Schonberg <schonberg@adacore.com> + + sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved + from context. This attribute must be usable in Ada95 mode. + The attribute can appear in the body of a function marked + Inline_Always, but in this case the postocondition is not enforced. + + sem_prag.adb (Check_Precondition_Postcondition): within the expansion + of an inlined call pre- and postconditions are legal + +2008-07-31 Vincent Celier <celier@adacore.com> + + * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that + were for gprmake only + +2008-07-31 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Update -gnatN documentation. + + * gnat_rm.texi: Add note about pre/postcondition + pragmas not checked in conjunction with front-end inlining. + +2008-07-31 Robert Dewar <dewar@adacore.com> + + * g-pehage.adb, g-pehage.ads: Minor reformatting + +2008-07-31 Arnaud Charlet <charlet@adacore.com> + + * mlib-utl.ads, prj-makr.ads: Add comments. + +2008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com> + + * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) + [WINDOWS]: Add s-winext.o. + +2008-07-30 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/36554 + * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi. + * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter. + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>: + Set precision to 1 for subtype of BOOLEAN_TYPE. + (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE. + (make_type_from_size): Deal with BOOLEAN_TYPE. + * gcc-interface/misc.c (gnat_print_type): Likewise. + * gcc-interface/trans.c (gigi): Take new standard_boolean parameter. + Set boolean_type_node as its translation in the table, as well + as boolean_false_node for False and boolean_true_node for True. + * gcc-interface/utils.c (gnat_init_decl_processing): Create custom + 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM. + (create_param_decl): Deal with BOOLEAN_TYPE. + (build_vms_descriptor): Likewise. + (build_vms_descriptor64): Likewise. + (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE. + +2008-07-30 Robert Dewar <dewar@adacore.com> + + * exp_ch9.adb: Minor reformatting + + * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised + if no primitive operation is found. + + * exp_util.adb: (Find_Prim_Op): Add comments for previous change + + * sem_ch8.adb: Minor reformatting + +2008-07-30 Laurent Pautet <pautet@adacore.com> + + * g-pehage.adb: + Remove a limitation on the length of the words handled by the minimal + perfect hash function generator. + + * g-pehage.ads: + Detail the use of subprograms Insert, Initialize, Compute and Finalize. + Fix some typos. + +2008-07-30 Robert Dewar <dewar@adacore.com> + + * gnatlink.adb: Minor reformatting + +2008-07-30 Thomas Quinot <quinot@adacore.com> + + * rtsfind.adb (Check_RPC): Check version consistency even when not + generating RCI stubs. Provide more detailed error message in case of + mismatch. + +2008-07-30 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute + as a actual in an instance, check for a missing attribute to prevent + program_error on an illegal program. + + * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program + error if primitive is not found, so that exception can be handled + elsewhere on illegal programs. + +2008-07-30 Robert Dewar <dewar@adacore.com> + + * uintp.adb (UI_GCD): Fix potential overflow + +2008-07-30 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb: Flag245 is now used. + (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion + check to include functions. + (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms. + (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to + include functions. + (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive + to the list of displayed flags. + + * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and + Wrapped_Entity. These two flags are now present in functions. + New flag Is_Private_Primitive. + (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms. + + * exp_ch9.adb: + (Build_Wrapper_Bodies): New subprogram. + (Build_Wrapper_Body): The spec and body have been moved to in + Build_Wrapper_ Bodies. Code cleanup. + (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup. + Wrappers are now generated for primitives declared between the private + and full view of a concurrent type that implements an interface. + (Build_Wrapper_Specs): New subprogram. + (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body + creation mechanism with a call to Build_Wrapper_Bodies. + (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the + wrapper spec creation mechanism with a call to Build_Wrapper_Specs. + (Expand_N_Task_Body): Replace the wrapper body creation + mechanism with a call to Build_Wrapper_Bodies. + (Expand_N_Task_Type_Declaration): Replace the wrapper spec + creation mechanism with a call to Build_Wrapper_Specs. + (Is_Private_Primitive_Subprogram): New subprogram. + (Overriding_Possible): Code cleanup. + (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup. + + * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9. + + * sem_ch3.adb: Add with and use clause for Exp_Ch9. + (Process_Full_View): Build wrapper specs for all primitives + that belong to a private view completed by a concurrent type + implementing an interface. + + * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram + is a primitive of a + concurrent type with a private view that implements an interface, try to + find the proper spec. + (Analyze_Subprogram_Declaration): Mark a subprogram as a private + primitive if the type of its first parameter is a non-generic tagged + private type. + (Analyze_Subprogram_Specification): Code reformatting. + (Disambiguate_Spec): New routine. + (Find_Corresponding_Spec): Add a flag to controll the output of errors. + (Is_Private_Concurrent_Primitive): New routine. + + * sem_ch6.ads: + (Find_Corresponding_Spec): Add a formal to control the output of errors. + +2008-07-30 Doug Rupp <rupp@adacore.com> + + * gigi.h (build_vms_descriptor64): New function prototype. + (fill_vms_descriptor): Modified function prototype. + + * utils.c (build_vms_descriptor64): New function. + + * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems. + + * trans.c (call_to_gnu): Call fill_vms_descriptor with new third + argument. + + * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a + 64bit and 32bit descriptor and save the 64bit version as an alternate + TREE_TYPE in the parameter. + (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the + thin pointer. + + * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros. + +2008-07-30 Robert Dewar <dewar@adacore.com> + + * make.adb: Minor reformatting + + * mlib-utl.adb: Minor reformatting + + * osint.ads: Minor reformatting + +2008-07-30 Jose Ruiz <ruiz@adacore.com> + + * adaint.c + (__gnat_file_exists): Do not use __gnat_stat for RTX. + (__main for RTX in RTSS mode): Create this dummy procedure symbol to + avoid the use of this symbol from libgcc.a in RTX kernel mode. + + * cio.c + (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call + the function RtPrintf for console output. + + * argv.c Do not use the environ variable for RTX. + + * gnatlink.adb (gnatlink): The part that handles the --RTS option has + been moved before the call to Osint.Add_Default_Search_Dirs in order + to take into account the flags in system.ads (RTX_RTSS_Kernel_Module) + from the appropriate run time. + + * targparm.ads + (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if + target is a RTSS module for RTX. + + * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for + RTX_RTSS_Kernel_Module + (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag. + + * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc + exception handling mechanism for Windows and RTX in Win32 mode, but + not for RTX in kernel mode (RTSS). + (LIBGNAT_SRCS): Remove ada.h + +2008-07-30 Paolo Bonzini <bonzini@gnu.org> + + * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and + T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS. + (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS. + * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS, + X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS, + ALL_ADA_CFLAGS): Remove. + (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS, + replace ALL_ADA_CFLAGS with ADA_CFLAGS. + (GCC_CFLAGS): Remove X_CFLAGS. + (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS. + (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS. + (ADA_CFLAGS): Substitute. + +2008-07-30 Laurent Guerby <laurent@guerby.net> + + PR ada/5911 + * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables. + Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts. + Replace stamp-gnatlib* by stamp-gnatlib*-rts. + * gcc-interface/Make-lang.in: Replace stamp-gnatlib2 + by stamp-gnatlib2-rts. + +2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + PR documentation/15479 + * gnat-style.texi: Remove AdaCore copyright statement and GPL + statement for GNAT. Add @copying stanza, use it. Update to + GFDL 1.2. Do not list GFDL as Invariant Section, do not list + title as Front-Cover Text. + * gnat_rm.texi: Likewise. + * gnat_ugn.texi: Likewise. + +2008-07-29 Jan Hubicka <jh@suse.cz> + + * trans.c (process_inlined_subprograms): Remove tree_really_inline + check. + +2008-07-29 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface: New directory. + + * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h, + utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c, + config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved + to gcc-interface subdirectory. + +2008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com> + + * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o. + +2008-07-28 Jan Hubicka <jh@suse.cz> + + * misc.c (gnat_post_options): Do not set flag_no_inline. + +2008-07-28 Richard Guenther <rguenther@suse.de> + + Merge from gimple-tuples-branch. + + 2008-07-22 Olivier Hainque <hainque@adacore.com> + + * gigi.h (end_subprog_body): New ELAB_P argument, saying if + this is called for an elab proc to be discarded if empty. + * utils.c (end_subprog_body): Honor ELAB_P. + (build_function_stub): Adjust call to end_subprog_body. + * trans.c (Subprogram_Body_to_gnu): Likewise. + (gigi): Reorganize processing of elab procs to prevent + gimplifying twice, using the new end_subprog_body argument. + + 2008-07-19 Richard Guenther <rguenther@suse.de> + + * Make-lang.in (trans.o): Add tree-iterator.h dependency. + (utils.o): Likewise. + * trans.c: Include tree-iterator.h. + (gnat_gimplify_expr): Adjust prototype. Fix typo. + (gnat_gimplify_stmt): Use SET_EXPR_LOCATION. + (set_expr_location_from_node): Likewise. + (gigi): Tuplify. + * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead + of GENERIC_NEXT. + * utils.c: Include tree-iterator.h. + * gigi.h (gnat_gimplify_expr): Adjust prototype. + + 2008-07-18 Aldy Hernandez <aldyh@redhat.com> + + * trans.c: Include gimple.h instead of tree-gimple.h. + * utils.c: Same. + + 2008-07-14 Aldy Hernandez <aldyh@redhat.com> + + * trans.c (gnat_gimplify_expr): Use gimplify_assign. + +2008-07-25 Jan Hubicka <jh@suse.cz> + + * utils.c (end_subprog_body): Remove inline trees check. + * misc.c (gnat_post_options): Do not set flag_inline_trees. + +2008-07-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + * raise-gcc.c: Move tsystem.h before tm.h. + +2008-07-20 Arnaud Charlet <charlet@adacore.com> + + * gnathtml.pl: New file. + +2008-07-19 Olivier Hainque <hainque@adacore.com> + + * targtyps.c (get_target_default_allocator_alignment): Use + MALLOC_ABI_ALIGNMENT. + +2008-07-17 Olivier Hainque <hainque@adacore.com> + + * adaint.c (__MINGW32__ section): Include ctype.h and define + a fallback ISALPHA if IN_RTS. + (__gnat_is_absolute_path): Use ISALPHA instead of isalpha. + +2008-07-17 Olivier Hainque <hainque@adacore.com> + + * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG + argument, to apply to references in addition to definitions. Prevent + setting TREE_STATIC on externals. + (gnat_pushdecl): Always clear DECL_CONTEXT on public externals. + +2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + PR documentation/15479 + * gnat_ugn.texi (@ovar): New macro, from autoconf.texi. + Replace backets around optional parameters with @ovar + where possible, use @r{[}, @r{]} otherwise. + Replace some @r, @i, and @emph with @var where appropriate. + +2008-07-02 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up. + +2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix + -Wc++-compat warnings. + * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec, + __gnat_locate_exec_on_path): Likewise. + * decl.c (annotate_value): Likewise. + * misc.c (gnat_handle_option): Likewise. + * trans.c (gnat_to_gnu, extract_encoding, decode_name, + post_error_ne_tree): Likewise. + +2008-06-27 Eric Botcazou <ebotcazou@adacore.com> + + * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable + version of its type, attempt to first convert its elements. + +2008-06-26 Chris Proctor <chrisp_42@bigpond.com> + + * Makefile.in: Fix *86 kfreebsd target specific pairs. + +2008-06-25 Samuel Tardieu <sam@rfc1149.net> + + * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well. + +2008-06-24 Eric Botcazou <ebotcazou@adacore.com> + + * utils2.c (known_alignment): Derive the alignment from pointed-to + types only if it is otherwise unknown. + <INTEGER_CST>: Tidy. + <MULT_EXPR>: Likewise. + <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use + that of the base. + +2008-06-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + PR ada/36573 + * s-osinte-hpux-dce.ads (SA_ONSTACK): Define. + +2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * gnat_rm.texi (Implementation Defined Characteristics) + (Standard Library Routines): Use @smallexample for indented + text. Drop Indentation outside examples. + * gnat_ugn.texi: Likewise. + +2008-06-13 Olivier Hainque <hainque@adacore.com> + + * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0 + if undefined. + (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack + realignment with force_align_arg_pointer attribute on foreign + convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN. + +2008-06-13 Olivier Hainque <hainque@adacore.com> + + * utils.c (rest_of_record_type_compilation): When computing + encodings for the components of a variable size type, early + strip conversions on the current position expression to make + sure it's shape is visible. Use remove_conversions for this + purpose. + +2008-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a + constrained subtype of a discriminated type, discard the fields that + are beyond its limits according to its size. + +2008-06-10 Olivier Hainque <hainque@adacore.com> + + * utils.c (create_subprog_decl): If this is for the 'main' entry + point according to the asm name, redirect main_identifier_node. + +2008-06-09 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (components_to_record): Adjust the packedness for the + qualified union as well. + +2008-06-09 Arnaud Charlet <charlet@adacore.com> + + * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle + checks non fatal. + +2008-06-07 Samuel Tardieu <sam@rfc1149.net> + + * sem_res.adb (Large_Storage_Type): A type is large if it + requires as many bits as Positive to store its values and its + bounds are known at compile time. + * sem_ch13.adb (Minimum_Size): Note that this function returns + 0 if the size is not known at compile time. + +2008-06-06 Nicolas Setton <setton@adacore.com> + Olivier Hainque <hainque@adacore.com> + + * ada-tree.h (DECL_PARALLEL_TYPE): New language specific + attribute, parallel descriptive type attached to another + type for debug info generation purposes. + * utils.c (add_parallel_type): New function, register + parallel type to be attached to a type. + (get_parallel_type): New function, fetch a registered + parallel type, if any. + (rest_of_record_type_compilation): Register the parallel + type we make for variable size records. + * gigi.h (add_parallel_type, get_parallel_type): Declare. + * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the + parallel debug types we make. + * trans.c (extract_encoding, decode_name): New functions. + (gigi): If the DWARF attribute extensions are available, setup + to use them. + * lang.opt: Register language specific processing request + for -gdwarf+. + * misc.c (gnat_dwarf_extensions): New global variable. How much + do we want of our DWARF extensions. 0 by default. + (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions. + (gnat_post_options): Map gnat_dwarf_extensions to the + commonuse_gnu_debug_info_extensions for later processing. + +2008-06-04 Samuel Tardieu <sam@rfc1149.net> + + * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP. + +2008-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * Makefile.in (common_tools): Fix typos in $(exeext) extension. + * gnat_ugn.texi (Style Checking) + (Adding the Results of Compiler Checks to gnatcheck Output) + (Example of Binder Output File): Fix typos. + * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb, + exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads, + s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb, + s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb, + sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads, + sinfo.ads, utils.c: Fix typos in comments. + * sem_ch6.adb, vms_data.ads: Fix typos in strings. + +2008-05-29 Thomas Quinot <quinot@adacore.com> + + * sem_eval.adb: Minor reformatting + +2008-05-29 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type + is abstract, do not apply abstractness check on subprogram if this is + a renaming declaration. + +2008-05-29 Arnaud Charlet <charlet@adacore.com> + + PR ada/864 + * osint.ads, osint.adb (Program_Name): New parameter "Prog" to + allow recognition of program suffix in addition to prefix. + + * gnatchop.adb (Locate_Executable): Add support for prefix. + + * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb, + mlib-utl.adb: Adjust calls to Program_Name. + +2008-05-29 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb: Minor reformatting + * sem_prag.adb: Minor reformatting + * sem_res.adb: Minor reformatting + * sinput-p.ads: Minor reformatting + +2008-05-29 Javier Miranda <miranda@adacore.com> + + * sem_util.adb: + (Abstract_Interface_List): Add missing support for full type-declaration + associated with synchronized types. + +2008-05-29 Robert Dewar <dewar@adacore.com> + + * sem_eval.adb (Is_Same_Value): Take care of several more cases + +2008-05-28 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous + access type, wrap the expression in a conversion to force an + accessibility check. + + * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force + accessibility checks even when expansion is disabled in order to + generate messages in the presence of previous errors or in + semantics-only mode. + +2008-05-28 Eric Botcazou <ebotcazou@adacore.com> + + * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False. + * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False. + +2008-05-28 Vincent Celier <celier@adacore.com> + + PR ada/34446 + * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in + preprocessing expressions + +2008-05-28 Vincent Celier <celier@adacore.com> + + * sinput-p.adb (Source_File_Is_Subunit): Allow special character used + for preprocessing + + * sinput-p.ads: Minor comment update and reformatting + +2008-05-28 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram + type has a deeper level than any master only when it is the type of an + access parameter. + +2008-05-28 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation. + +2008-05-28 Javier Miranda <miranda@adacore.com> + + * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed. + * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed. + * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal. + Add code that was previously located in + Find_Overridden_Synchronized_Primitive because it is only used here. + +2008-05-28 Sergey Rybin <rybin@adacore.com> + + * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set + Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION. + +2008-05-28 Robert Dewar <dewar@adacore.com> + + * restrict.ads: + Add missing restrictions, and properly label all GNAT defined ones + + * rtsfind.ads: + Add entry for Ada_Real_Time.Timing_Events.Timing_Event + Add entry for Ada.Task_Termination.Set_Specific_Handler + Add entry for Ada.Task_Termination.Specific_Handler + + * s-rident.ads: + Add missing restrictions and properly mark all gnat defined ones + + * sem_ch3.adb: + (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction + + * sem_res.adb: + (Resolve_Call): Check violation of No_Specific_Termination_Handlers + + * gnat_rm.texi: Add missing restrictions, and properly label all + GNAT defined ones + +2008-05-28 Robert Dewar <dewar@adacore.com> + + * restrict.adb: + (Check_Restriction): violation of restriction No_Finalization is + treated as a serious error to stop expansion + +2008-05-28 Robert Dewar <dewar@adacore.com> + + * exp_util.adb: Minor reformatting + * exp_util.ads: Minor reformatting. + +2008-05-28 Arnaud Charlet <charlet@adacore.com> + + * Make-lang.in: Remove gprmake. + + * gprmake.adb, makegpr.ads, makegpr.adb: Removed. + +2008-05-28 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving + improper progenitor names, and avoid cascaded errors. + +2008-05-28 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Add note on Old giving warning when applied to constant + + * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is + a constant + +2008-05-28 Robert Dewar <dewar@adacore.com> + + * exp_fixd.adb (Build_Multiply): Correct one-off error in computing + size + +2008-05-28 Robert Dewar <dewar@adacore.com> + + * exp_ch5.adb: + (Expand_Simple_Function_Return): Copy unaligned result into temporary + +2008-05-28 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support + for user-defined predefined primitives. + + * sem_util.adb (Matches_Prefixed_View_Profile): Ditto. + (Find_Overridden_Synchronized_Primitive): Ditto. + + * sem_ch6.adb (Check_Synchronized_Overriding): Ditto. + +2008-05-27 Arnaud Charlet <charlet@adacore.com> + + * a-ststio.adb, s-direio.adb: + Further code clean up of previous change. + Update comments. + +2008-05-27 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb: Minor reformatting + +2008-05-27 Bob Duff <duff@adacore.com> + + * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an + untagged private type with a tagged full type, where the full type has + a self reference, create the corresponding class-wide type early, in + case the self reference is "access T'Class". + +2008-05-27 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes + tasks and context is an object declaration. create master entity before + expansion. + +2008-05-27 Robert Dewar <dewar@adacore.com> + + * mlib-prj.adb: Minor reformatting + + * prj-part.adb: Minor reformatting + + * prj.ads: Minor reformatting + + * exp_ch3.adb: Minor reformatting. + + * sem_ch3.ads: Minor reformatting + + * sem_eval.adb: Minor reformatting + +2008-05-27 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb: + <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack + +2008-05-27 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains + tasks, create an activation chain now, before the expansion into + assignments and build-in-place calls that require the presence of an + activation chain. + (Backend_Processing_Possible): If the component type is inherently + limited, the aggregate must be expanded into individual built-in-place + assignments. + + * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to + determine whether an allocation extra parameter must be built, to + handle case of a private type whose full type is a discriminated type + with defaults. + +2008-05-27 Bob Duff <duff@adacore.com> + + * gnat_rm.texi: + Document the new behavior regarding trampolines. + +2008-05-27 Arnaud Charlet <charlet@adacore.com> + + * a-direio.adb, a-sequio.adb: Replace address clause by + unrestricted_access, simpler and compatible with .NET. + +2008-05-27 Vincent Celier <celier@adacore.com> + + * prj-part.adb: + (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find + a project file, so that symbolic links are not resolved. + +2008-05-27 Arnaud Charlet <charlet@adacore.com> + + * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb: + Replace heavy address clause by 'Unrestricted_Access, cleaner and more + portable across GNAT targets, since this kind of address clause is not + supported by VM back-ends (.NET/JGNAT). + +2008-05-27 Arnaud Charlet <charlet@adacore.com> + + * bindgen.adb: Update comments. + + * s-tasinf-mingw.adb: Add "with" of System.OS_Interface + +2008-05-27 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb, + prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb, + mlib-tgt.adb, prj-env.adb, prj-env.ads: + (Path_Information): New record type + Use component of type Path_Information when there are two paths, one in + canonical format and one in display format. + Update the project manager to these new components. + +2008-05-27 Robert Dewar <dewar@adacore.com> + + * makeutl.adb: Minor reformatting + * prj-nmsc.adb: Minor reformatting + * s-stausa.adb: Minor reformatting + * s-stausa.ads: Minor reformatting + * sem_ch6.adb: Minor reformatting + +2008-05-27 Thomas Quinot <quinot@adacore.com> + + * sem_res.adb: Minor comment fixes + +2008-05-27 Thomas Quinot <quinot@adacore.com> + + * makeutl.adb: Minor code reorganization + + * exp_aggr.adb: Add ??? comment + Fix typo + + * exp_ch6.adb: Minor reformatting + +2008-05-27 Quentin Ochem <ochem@adacore.com> + + * s-stausa.adb (Initialize): Updated result initialization, and + initialization of environment stack. + (Fill_Stack): Improved computation of the pattern zone, taking into + account already filled at the calling point. + (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of + Measure and Overflow_Guard. + (Report_Result): Fixed computation of the result using new fields of + Stack_Analyzer. + + * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard + params by more explicit Stack_Size / Max_Pattern_Size params. + (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields. + Added Stack_Used_When_Filling field. + (Task_Result): Replaced Measure / Overflow_Guard by more explicit + Min_Measure and Max_Measure fields. + + * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer. + +2008-05-27 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb: + (Check_File): Make sure that a unit that replaces the same unit in a + project being extended is properly processed. + +2008-05-27 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb: + (Get_Discr_Value): Remove obsolete code that failed to find the value + of a discriminant for an inherited task component appearing in a type + extension. + +2008-05-27 Thomas Quinot <quinot@adacore.com> + + (System.File_IO.{Close, Delete, Reset}): + Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr". + + (Ada.*_IO.{Close, Delete, Reset, Set_Mode}): + Pass File parameter by reference. + +2008-05-27 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb: + (Process_Sources_In_Multi_Language_Mode): Check that there are not two + sources of the same project that have the same object file name. + (Find_Explicit_Sources): Always remove a source exception that was not + found. + +2008-05-27 Thomas Quinot <quinot@adacore.com> + + * sem_ch3.adb: Minor reformatting + +2008-05-27 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb: + (Is_Interface_Conformant): Handle properly a primitive operation that + overrides an interface function with a controlling access result. + (Type_Conformance): If Skip_Controlling_Formals is true, when matching + inherited and overriding operations, omit as well the conformance check + on result types, to prevent spurious errors. + +2008-05-27 Vincent Celier <celier@adacore.com> + + * makeutl.ads, makeutl.adb: + (Set_Location): New procedure + (Get_Location): New function + (Update_Main): New procedure + +2008-05-27 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb: + (Check_Library): Allow standard project to be extended as a static + library project. + (Get_Mains): Do not inherit attribute Main in an extending library + project. + +2008-05-27 Eric Botcazou <ebotcazou@adacore.com> + + * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False. + * system-darwin-x86.ads (Always_Compatible_Rep): Likewise. + * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise. + * system-linux-ppc.ads (Always_Compatible_Rep): Likewise. + * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise. + * system-linux-x86.ads (Always_Compatible_Rep): Likewise. + * system-mingw.ads (Always_Compatible_Rep): Likewise. + * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise. + * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise. + * system-solaris-x86.ads (Always_Compatible_Rep): Likewise. + +2008-05-27 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb: add guard to previous patch. + +2008-05-27 Ed Schonberg <schonberg@adacore.com> + + * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by + a synchronized tagged type, do not attempt to build dispatch table for + full view. The table is built for the corresponding record type, which + has its own declaration. + +2008-05-27 Gary Dismukes <dismukes@adacore.com> + + * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype + to the known type entity E, rather than setting it to Any_Type. Fixes + possible blowup in function Base_Init_Proc, as called from Freeze_Entity + for objects whose type had an illegal constraint. + +2008-05-27 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: + Add succinct documentation for attribute Excluded_Source_List_File + +2008-05-27 Vincent Celier <celier@adacore.com> + + * prj-attr.adb: Add new project level attribute Map_File_Option + + * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option + + * prj.ads: Minor reformatting and comment update + (Project_Configuration): New component Map_File_Option + + * snames.adb: New standard name Map_File_Option + + * snames.ads: New standard name Map_File_Option + +2008-05-27 Vincent Celier <celier@adacore.com> + + * xsnames.adb: Remove unused variable Oname + +2008-05-27 Doug Rupp <rupp@adacore.com> + + * exp_ch6.adb: + (Expand_N_Function_Call): Fix comments. Minor reformatting. + + * exp_vfpt.ads: + (Expand_Vax_Foreign_Return): Fix comments. + +2008-05-27 Thomas Quinot <quinot@adacore.com> + + * exp_dist.adb: Minor reformating + +2008-05-26 Gary Dismukes <dismukes@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for + No_Default_Initialization, which is now delayed until the freeze point + of the object. Add a comment about deferral of the check. + + * freeze.adb (Freeze_Entity): The check for No_Default_Initialization + on objects is moved here. + +2008-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment. + (Compare_Array_S16): Adjust for above change. + * s-casi32.adb (Uword): Likewise. + (Compare_Array_S32): Likewise. + * s-casi64.adb (Uword): Likewise. + (Compare_Array_S64): Likewise. + * s-caun16.adb (Uhalf): Likewise. + (Compare_Array_U16): Likewise. + * s-caun32.adb (Uword): Likewise. + (Compare_Array_U32): Likewise. + * s-caun64.adb (Uword): Likewise. + (Compare_Array_U64): Likewise. + +2008-05-26 Robert Dewar <dewar@adacore.com> + + * exp_ch6.adb: Add ??? comment for previous change + + * exp_vfpt.adb: Minor reformatting + + * exp_vfpt.ads: Add ??? comment for last change + + * sem_attr.adb: Add some ??? comments for previous change + + * s-vaflop.ads: Add comments for previous change + +2008-05-26 Doug Rupp <rupp@adacore.com> + + * s-vaflop-vms-alpha.adb: + Remove System.IO use clause, to prevent spurious ambiguities when + package is access through rtsfind. + +2008-05-26 Sergey Rybin <rybin@adacore.com> + + * tree_io.ads (ASIS_Version_Number): Update because of the changes + made in front-end + +2008-05-26 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb: + (Resolve_Attribute, case 'address): S (A .. B)' address can be safely + converted to S (A)'address only if A .. B is known to be a non-null + range. + +2008-05-26 Doug Rupp <rupp@adacore.com> + + * s-vaflop.adb: + (Return_D, Return_F, Return_G): New functions. + + * s-vaflop.ads: + (Return_D, Return_F, Return_G): New functions. + + * exp_vfpt.adb: + (Expand_Vax_Foreign_Return): New procedure + + * exp_vfpt.ads: + (Expand_Vax_Foreign_Return): New procedure + + * rtsfind.ads: + (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids + (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements + + * exp_ch6.adb: + Import Exp_Vfpt + (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return. + + * s-vaflop-vms-alpha.adb: + (Return_D, Return_F, Return_G): New functions. + +2008-05-26 Gary Dismukes <dismukes@adacore.com> + + * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy + init proc entity when there is actual default initialization associated + with the component type, to avoid spurious errors on objects of scalar + array types that are marked Is_Public when No_Default_Initialization + applies. + +2008-05-26 Thomas Quinot <quinot@adacore.com> + + * rtsfind.ads, rtsfind.adb: + (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint. + (Check_RPC): Support per-PCS-kind API versioning. + + exp_dist.ads, exp_dist.adb: + (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms. + (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime + library function Get_RACW. + (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime + library function Get_Reference. + (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going + through an intermediate Any. + (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of + going through an intermediate Any. + + * sem_dist.adb: Minor reformatting. + +2008-05-26 Javier Miranda <miranda@adacore.com> + + * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias. + (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias. + (Is_Internal): Adding documentation on internal entities that have + attribute Interface_Alias (old attribute Abstract_Interface_Alias) + + * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias. + (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias. + Added assertion to force entities with this attribute to have + attribute Is_Internal set to True. + (Next_Tag_Component): Simplify assertion using attribute Is_Tag. + + * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been + renamed as Derive_Progenitor_Subprograms. In addition, its code is + a new implementation. + (Add_Interface_Tag_Components): Remove special management of + synchronized interfaces. + (Analyze_Interface_Declaration): Minor reformating + (Build_Derived_Record_Type): Minor reformating + (Check_Abstract_Overriding): Avoid reporting error in case of abstract + predefined primitive inherited from interface type because the body of + internally generated predefined primitives of tagged types are generated + later by Freeze_Type + (Derive_Subprogram): Avoid generating an internal name if the parent + subprogram overrides an interface primitive. + (Derive_Subprograms): New implementation that keeps separate the + management of tagged types not implementing interfaces, from tagged + types that implement interfaces. + (Is_Progenitor): New implementation. + (Process_Full_View): Add documentation + (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms + by call to Derive_Progenitor_Subprograms. + + * sem_ch6.ads (Is_Interface_Conformant): New subprogram. + (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument + Skip_Controlling_Formals. + + * sem_ch6.adb (Is_Interface_Conformant): New subprogram. + (Check_Conventions): New implementation. Remove local subprogram + Skip_Check. Remove formal Search_From of routine Check_Convention. + (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument + Skip_Controlling_Formals. + (New_Overloaded_Entity): Enable addition of predefined dispatching + operations. + + * sem_disp.ads + (Find_Primitive_Covering_Interface): New subprogram. + + * sem_disp.adb (Check_Dispatching_Operation): Disable registering + the task body procedure as a primitive of the corresponding tagged + type. + (Check_Operation_From_Private_Type): Avoid adding twice an entity + to the list of primitives. + (Find_Primitive_Covering_Interface): New subprogram. + (Override_Dispatching_Operation): Add documentation. + + * sem_type.adb (Covers): Minor reformatings + + * sem_util.ads (Collect_Abstract_Interfaces): Renamed as + Collect_Interfaces. + Rename formal. + (Has_Abstract_Interfaces): Renamed as Has_Interfaces. + (Implements_Interface): New subprogram. + (Is_Parent): Removed. + (Primitive_Names_Match): New subprogram. + (Remove_Homonym): Moved here from Derive_Interface_Subprograms. + (Ultimate_Alias): New subprogram. + + * sem_util.adb (Collect_Abstract_Interfaces): Renamed as + Collect_Interfaces. + Remove special management for synchronized types. Rename formal. Remove + internal subprograms Interface_Present_In_Parent and Add_Interface. + (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion + on non-record types by code to return false in such case. + (Implements_Interface): New subprogram. + (Is_Parent): Removed. No special management is now required for + synchronized types covering interfaces. + (Primitive_Names_Match): New subprogram. + (Remove_Homonym): Moved here from Derive_Interface_Subprograms. + (Ultimate_Alias): New subprogram. + + * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram. + Add internal entities associated with secondary dispatch tables to + the list of tagged type primitives that are not interfaces. + (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities + (Make_Predefined_Primitive_Specs): Code reorganization to improve + the management of predefined equality operator. In addition, if + the type has an equality function corresponding with a primitive + defined in an interface type, the inherited equality is abstract + as well, and no body can be created for it. + + * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from + exp_util to exp_disp. + (Is_Predefined_Interface_Primitive): New subprogram. Returns True if + an entity corresponds with one of the predefined primitives required + to implement interfaces. + Update copyright notice. + + * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the + final check on abstract subprograms all the primitives associated with + interface primitives because they must be visible in the public and + private part. + (Write_DT): Use Find_Dispatching_Type to locate the name of the + interface type. This allows the use of this routine, for debugging + purposes, when the tagged type is not fully decorated. + (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp. + Factorize code calling new subprogram Is_Predefined_Interface_Primitive. + (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an + entity corresponds with one of the predefined primitives required to + implement interfaces. + + * exp_util.adb (Find_Interface_ADT): New implementation + (Find_Interface): Removed. + + * sprint.adb (Sprint_Node_Actual): Generate missing output for the + list of interfaces associated with nodes + N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration. + +2008-05-26 Thomas Quinot <quinot@adacore.com> + + * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on + condition for assignment to temporary. + +2008-05-26 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint + checks on the upper bound if the index type is a modular type, to + prevent wrap-around computations when size is close to upper bound of + type. + +2008-05-26 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb: Minor reformatting + +2008-05-26 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Remove_Parent): Use specification of instance + to retrieve generic parent, + to handle properly the case where the instance is a child unit. + Add guard to handle properly wrapper packages. + Minor reformatting + +2008-05-26 Thomas Quinot <quinot@adacore.com> + + * sinfo.ads: Minor reformatting + +2008-05-26 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting. + Generate a tag check when the result subtype of a function, defined by + an access definition, designates a specific tagged type. + (Make_Tag_Check): New routine. + +2008-05-26 Arnaud Charlet <charlet@adacore.com> + + * ceinfo.adb, csinfo.adb: Remove warnings. Update headers. + +2008-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker. + (builtin_decl_for): Likewise. + * trans.c (gigi): Likewise. + * utils.c (def_builtin_1): Fix formatting. + +2008-05-26 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables. + Create the statements which map a string name to protected or task + entry indix. + + * exp_ch9.adb: Add with and use clause for Stringt. + Minor code reformatting. + (Build_Entry_Names): New routine. + (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value + for flag Build_Entry_Names which controls the allocation of the data + structure for the string names of entries. + + * exp_ch9.ads (Build_Entry_Names): New subprogram. + + * exp_util.adb (Entry_Names_OK): New function. + + * exp_util.ads (Entry_Names_OK): New function. + + * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to + enumerations RE_Id and RE_Unit_Table. + + * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation. + (Free_Entry_Names_Array): New routine. + + * s-taskin.ads: Comment reformatting. + Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access. + Add component Entry_Names to record Ada_Task_Control_Block. + (Free_Entry_Names_Array): New routine. + + * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set, + dynamically allocate an array + of string pointers. This structure holds string entry names. + (Free_Entry_Names): New routine. + (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array. + (Set_Entry_Names): New routine. + + * s-tassta.ads: + (Create_Task): Add formal Build_Entry_Names. The flag is used to + control the allocation of the data structure which stores entry names. + (Set_Entry_Name): New routine. + + * s-tpoben.adb: + Add with and use clause for Ada.Unchecked_Conversion. + (Finalize): Deallocate the entry names array. + (Free_Entry_Names): New routine. + (Initialize_Protection_Entries): When flag Build_Entry_Names is set, + create an array of string pointers to hold the entry names. + (Set_Entry_Name): New routine. + + * s-tpoben.ads: + Add field Entry_Names to record Protection_Entries. + (Initialize_Protection_Entries): Add formal Build_Entry_Names. + (Set_Entry_Name): New routine. + +2008-05-26 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb: + (Process_Project_Level_Simple_Attributes): process attribute Library_GCC + + * prj.ads: + (Project_Configuration): New component Shared_Lib_Driver + +2008-05-26 Ed Schonberg <schonberg@adacore.com> + + * inline.adb: + (Cleanup_Scopes): For a protected operation, transfer finalization list + to protected body subprogram, to force cleanup actions when needed. + +2008-05-26 Robert Dewar <dewar@adacore.com> + + * sem_cat.adb: Minor reformatting + + * gnatname.adb: Minor reformatting + + * osint.ads: Minor reformatting + + * s-carun8.ads: Minor reformatting + + * g-heasor.ads: Minor comment fix (unit is now pure) + +2008-05-26 Robert Dewar <dewar@adacore.com> + + * exp_ch2.adb: + (Expand_Current_Value): Properly type generated integer literal + +2008-05-26 Sergey Rybin <rybin@adacore.com> + + * gnat_ugn.texi: Add description for the new gnatcheck rule - + Separate_Numeric_Error_Handlers. + +2008-05-26 Pascal Obry <obry@adacore.com> + + * sem_aggr.adb: Minor reformatting. + +2008-05-26 Jose Ruiz <ruiz@adacore.com> + + * s-osinte-aix.adb: + (To_Target_Priority): Setting the time slice value to 0 or greater sets + the scheduling policy to FIFO within priorities or round-robin + respectively. + Hence, the priority must be set in this case to the one selected by the + user. + +2008-05-26 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb: + (Remove_Parent): If the enclosing scope is an instance whose generic + parent is declared within some parent scope of the just completed + instance, make full views of the entities in that parent visible, when + applicable. + +2008-05-26 Kai Tietz <kai.tietz@onevision.com> + + * mingw32.h (STD_MINGW): Set to true for target w64. + +2008-05-25 Eric Botcazou <ebotcazou@adacore.com> + + * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE + instead of TREE_STATIC on the ADDR_EXPR. + +2008-05-24 Eric Botcazou <ebotcazou@adacore.com> + + * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs. + (Sloc_to_locus): Do not overwrite known GCC locations when translating + GNAT standard locations. + +2008-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * gigi.h (mark_visited): Declare. + * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking + only the topmost node of expressions. + (elaborate_expression_1): Look deeper for read-only variables. + * trans.c (add_decl_expr): Use mark_visited instead of marking by hand. + (mark_visited): Move logic to mark_visited_r. Invoke walk_tree. + (mark_visited_r): New function. + +2008-05-23 Vincent Celier <celier@adacore.com> + + * snames.adb: New standard name Excluded_Source_List_File. + + * snames.ads: New standard name Excluded_Source_List_File. + + * prj-attr.adb: New project level attribute Excluded_Source_List_File. + + * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project. + Get excluded sources from + file indicated by attribute Excluded_Source_List_File, when present and + neither Excluded_Source_Files nor Locally_Removed_Files are declared. + +2008-05-23 Robert Dewar <dewar@adacore.com> + + * exp_dist.adb: Minor reformatting + +2008-05-23 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a + slice, convert it to an indexed component, which is equivalent, more + efficient, and usable even if the slice itself is not addressable. + +2008-05-23 Olivier Hainque <hainque@adacore.com> + + * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic + convention also allows access to named compiler built-in subprograms + such as the GCC __builtin family. + +2008-05-23 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and + sep. If there are several possibilities, choose the one with the + longer prefix. + +2008-05-23 Vincent Celier <celier@adacore.com> + + * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for + back end switches when executable specified with --GCC= is same as + default, even if there are additional options. + + * gnat_ugn.texi: + Document when the back end switches from the ALI file are taken into + account when gnatlink is invoked with --GCC= + +2008-05-23 Thomas Quinot <quinot@adacore.com> + + * s-os_lib.adb: + (copy_File): Do not open destination file if source file is unreadable. + +2008-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * utils.c (handle_type_generic_attribute): Adjust to accept + fixed arguments before an elipsis. + +2008-05-21 Thomas Quinot <quinot@adacore.com> + + * g-sothco.ads, g-sothco.adb: New files. + +2008-05-20 Thomas Quinot <quinot@adacore.com> + + * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit. + + * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants. + Add missing "with" of Ada.Unchecked_Conversion + + * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads, + g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads, + g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads, + g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, + g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, + g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads: + Move common code out of GNAT.Sockets.Thin implementations and into + Thin_Common. + New constant SIZEOF_fd_set + New flag Has_Sockaddr_Len + New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6 + + * g-stsifd-sockets.adb + (Create): Remove call to Set_Length; use Set_Family to set the family + and (on appropriate platforms) length fields in struct sockaddr. + + * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb, + g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb, + g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set + Move common code out of GNAT.Sockets.Thin implementations and into + Thin_Common. + + * g-socket.ads, g-socket.adb: + Move common code out of GNAT.Sockets.Thin implementations and into + Thin_Common. + (Connect_Socket, Accept_Socket): Provide new versions of these two + routines that operate with a user specified timeout. + (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length, + this is now handled automatically by Set_Family on platforms that + require it. + + * gen-soccon.c: + Move common code out of GNAT.Sockets.Thin implementations and into + Thin_Common. + (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define + this constant to 0 (not -1) because we use it to initialize an + unsigned_char value. + Align values for numeric constants only. + Handle the case of systems that do not support AF_INET6. + New constant SIZEOF_fd_set + New flag Has_Sockaddr_Len + New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6 + + * gsocket.h: New flag Has_Sockaddr_Len + New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6 + +2008-05-20 Santiago Uruena <uruena@adacore.com> + + * i-cobol.ads: Interfaces.COBOL should be preelaborate. + +2008-05-20 Arnaud Charlet <charlet@adacore.com> + + * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that + the underlying issue with malloc/free has been fixed. Remove associated + comments. + Minor reformatting. + Related to PR ada/24533 + +2008-05-20 Robert Dewar <dewar@adacore.com> + + * ali.adb: Correct casing of ASCII.NUL + + * styleg-c.adb (Check_Identifier): Handle case of names in ASCII + properly. + +2008-05-20 Robert Dewar <dewar@adacore.com> + Gary Dismukes <dismukes@adacore.com> + + * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate + overflow if result converted to wider integer type. + (Apply_Type_Conversion_Checks): Don't emit checks on conversions to + discriminated types when discriminant checks are suppressed. + +2008-05-20 Vincent Celier <celier@adacore.com> + + * cstand.adb (Print_Standard): Issue the correct Size clause for type + Wide_Wide_Character. + +2008-05-20 Tristan Gingold <gingold@adacore.com> + + * decl.c: Do not emit a variable for a object that has an address + representation clause whose value is known at compile time. + When a variable has an address clause whose value is known at compile + time, refer to this variable by using directly the address instead of + dereferencing a pointer. + +2008-05-20 Robert Dewar <dewar@adacore.com> + + PR ada/30740 + * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and + subtypes, always False for non-modular types. + Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15) + entry nodes have been replaced by Shared_Var_Procs_Instance (node22) + for Shared_Storage package. + (Is_RACW_Stub_Type): New entity flag. + + * exp_ch4.adb + (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the + case where we have a modular type with a non-binary modules. + Comments reformattings. + + * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to + all types. + +2008-05-20 Javier Miranda <miranda@adacore.com> + + * exp_aggr.adb + (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous + tests did not covered the case in which the type of the aggregate has + no progenitors but some its parents has progenitors. + +2008-05-20 Gary Dismukes <dismukes@adacore.com> + Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch3.adb + (Expand_N_Object_Declaration): Correct the condition which triggers the + generation of a call to Displace when initializing a class-wide object. + (Build_Dcheck_Functions): Build discriminant-checking for null variants + when Frontend_Layout_On_Target is true to ensure that they're available + for calling when a record variant size function is built in Layout. + +2008-05-20 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_Assign_Record): Within an initialization + procedure for a derived type retrieve the discriminant values from the + parent using the corresponding discriminant. + (Expand_N_Assignment_Statement): Skip generation of implicit + if-statement associated with controlled types if we are + compiling with restriction No_Finalization. + +2008-05-20 Vincent Celier <celier@adacore.com> + + * prj.adb (Hash (Project_Id)): New function + (Project_Empty): Add new component Interfaces_Defined + + * prj.ads (Source_Data): New component Object_Linked + (Language_Config): New components Object_Generated and Objects_Linked + (Hash (Project_Id)): New function + (Source_Data): New Boolean components In_Interfaces and + Declared_In_Interfaces. + (Project_Data): New Boolean component Interfaces_Defined + + * prj-attr.adb: + New project level attribute Object_Generated and Objects_Linked + Add new project level attribute Interfaces + + * prj-dect.adb: Use functions Present and No throughout + (Parse_Variable_Declaration): If a string type is specified as a simple + name and is not found in the current project, look for it also in the + ancestors of the project. + + * prj-makr.adb: + Replace procedure Make with procedures Initialize, Process and Finalize + to implement H414-023: process different directories with different + patterns. + Use functions Present and No throughout + + * prj-makr.ads: + Replace procedure Make with procedures Initialize, Process and Finalize + + * prj-nmsc.adb + (Add_Source): Set component Object_Exists and Object_Linked accordnig to + the language configuration. + (Process_Project_Level_Array_Attributes): Process new attributes + Object_Generated and Object_Linked. + (Report_No_Sources): New Boolean parameter Continuation, defaulted to + False, to indicate that the erreor/warning is a continuation. + (Check): Call Report_No_Sources with Contnuation = True after the first + call. + (Error_Msg): Process successively contnuation character and warning + character. + (Find_Explicit_Sources): Check that all declared sources have been found + (Check_File): Indicate in hash table Source_Names when a declared source + is found. + (Check_File): Set Other_Part when found + (Find_Explicit_Sources): In multi language mode, check if all exceptions + to the naming scheme have been found. For Ada, report an error if an + exception has not been found. Otherwise, disregard the exception. + (Check_Interfaces): New procedure + (Add_Source): When Other_Part is defined, set mutual pointers in spec + and body. + (Check): In multi-language mode, call Check_Interfaces + (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False + for an excluded source. + (Remove_Source): A source replacing a source in the interfaces is also + in the interfaces. + + * prj-pars.adb: Use function Present + + * prj-part.adb: Use functions Present and No throughout + (Parse_Single_Project): Set the parent project for child projects + (Create_Virtual_Extending_Project): Register project with no qualifier + (Parse_Single_Project): Allow an abstract project to be extend several + times. Do not allow an abstract project to extend a non abstract + project. + + * prj-pp.adb: Use functions Present and No throughout + (Print): Take into account the full associative array attribute + declarations. + + * prj-proc.adb: Use functions Present and No throughout + (Expression): Call itself with the same From_Project_Node for the + default value of an external reference. + + * prj-strt.adb: Use functions Present and No throughout + (Parse_Variable_Reference): If a variable is specified as a simple name + and is not found in the current project, look for it also in the + ancestors of the project. + + * prj-tree.ads, prj-tree.adb (Present): New function + (No): New function + Use functions Present and No throughout + (Parent_Project_Of): New function + (Set_Parent_Project_Of): New procedure + + * snames.ads, snames.adb: + Add new standard names Object_Generated and Objects_Linked + +2008-05-20 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent + and the derived type are of the same kind. + (Expand_Call): Generate type conversions for actuals of + record or array types when the parent and the derived types differ in + size and/or packed status. + +2008-05-20 Javier Miranda <miranda@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid + generating dispatch tables of locally defined tagged types statically. + Remove implicit if-statement that is no longer required. + (Expand_Dispatching_Call): If this is a call to an instance of the + generic dispatching constructor, the type of the first argument may be + a subtype of Tag, so always use the base type to recognize this case. + +2008-05-20 Thomas Quinot <quinot@adacore.com> + + * exp_dist.adb + (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received, + and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of + assigning NULL into the result, to avoid a spurious warning. + (Add_RACW_Features, case Same_Scope): Add assertion that designated type + is not frozen. + (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub + type. + (Build_From_Any_Function, Build_To_Any_Function, + Build_TypeCode_Function): For a type that has user-specified stream + attributes, use an opaque sequence of octets as the representation. + +2008-05-20 Kevin Pouget <pouget@adacore.com> + + * exp_smem.ads, exp_smem.adb: Construction of access and assign + routines has been replaced by an instantiation of + System.Shared_Storage.Shared_Var_Procs generic package, while expanding + shared variable declaration. + Calls to access and assign routines have been replaced by calls to + Read/Write routines of System.Shared_Storage.Shared_Var_Procs + instantiated package. + + * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table + It identifies the new generic package added in s-shasto. + + * s-shasto.adb, s-shasto.ads: A new generic package has been added, it + is instantiated for each shared passive variable. It provides + supporting procedures called upon each read or write access by the + expanded code. + + * sem_attr.adb: + For this runtime unit (always compiled in GNAT mode), we allow + stream attributes references for limited types for the case where + shared passive objects are implemented using stream attributes, + which is the default in GNAT's persistent storage implementation. + +2008-05-20 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb + (Freeze_Enumeration_Type): For a subtype that inherits a foreign + convention from its base type, do not set the type to that of integer, + because it may inherit a size clause. + Warn on a size clause with a size different + from that of Integer, if the type has convention C. + +2008-05-20 Vincent Celier <celier@adacore.com> + + * gnatname.adb + (Scan_Args): Rewrite to take into account new switch --and to separate + arguments into sections. + (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each + section, then Finalize. + +2008-05-20 Tristan Gingold <gingold@adacore.com> + + * init.c: Enable stack probing on ppc-linux. + + * tracebak.c: Add symbolic traceback for ppc-linux. + + * system-linux-ppc.ads: Enable stack probing on ppc-linux. + +2008-05-20 Arnaud Charlet <charlet@adacore.com> + + * Makefile.in + (common-tools): New rule, to avoid parallel build failure on gnat tools. + Reenable parallel builds on this Makefile. + + * Make-lang.in: Update dependencies. + +2008-05-20 Robert Dewar <dewar@adacore.com> + + * opt.ads (Treat_Restrictions_As_Warnings): New switch + + * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag + Treat_Restrictions_As_Warnings. + + * switch-c.adb: Recognize new switch -gnatr + + * usage.adb: Add line for -gnatr + +2008-05-20 Hristian Kirtchev <kirtchev@adacore.com> + + * par-ch3.adb + (P_Access_Definition): Change the error message when parsing "access + all" in Ada 95 mode. The message no longer forces the user to recompile + in 05 mode only to discover that anonymous access types are not allowed + to have "all". + +2008-05-20 Hristian Kirtchev <kirtchev@adacore.com> + + * par-ch9.adb + (P_Protected): Update the error message on missing "-gnat05" switch when + using interfaces in conjunction with protected types. Remove the + incorrect error message associated with the presence of "private" after + a "with". + +2008-05-20 Ed Schonberg <schonberg@adacore.com> + + * sem_aggr.adb: Update comments. + Improve previous change for PR ada/17985 + +2008-05-20 Thomas Quinot <quinot@adacore.com> + + * sem_cat.adb + (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in + the visible part of the spec of a remote types unit. + (Validate_Remote_Access_Object_Type_Declaration): + New local subprogram Is_Valid_Remote_Object_Type, replaces + Is_Recursively_Limited_Private. + (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all + non-controlling formals (and the return type, even though this is not + explicit in the standard) must support external streaming. + (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same + as above for of RAS types and RCI subprograms. (The return type is not + checked yet). + Update comments related to RACWs designating limited interfaces per + ARG ruling on AI05-060. + + * sem_util.ads, sem_util.adb + (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and + Is_Remote_Call_Interface to identify RACW types in a stable and + consistent way. We used to rely in this predicate on the privateness of + the designated type and its ancestors, but depending on the currently + visible private parts, this caused false negatives. We now uniformly + rely on checks made at the point where the RACW type is declared. + (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7. + +2008-05-20 Javier Miranda <miranda@adacore.com> + Ed Schonberg <schonberg@adacore.com> + Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb + (Analyze_Object_Declaration): Fix over-conservative condition + restricting use of predefined assignment with tagged types that have + convention CPP. + (Analyze_Object_Declaration): Relax the check regarding deferred + constants declared in scopes other than packages since they can be + completed with pragma Import. + Add missing escaping of all-caps word 'CPP' in error messages. + (Build_Discriminated_Subtype): Do not inherit representation clauses + from parent type if subtype already carries them, because they are + inherited earlier during derivation and already include those that may + come from a partial view. + + * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body): + Check the declarations of a subprogram body for proper deferred + constant completion. + + * sem_ch7.ads, sem_ch7.adb + (Inspect_Deferred_Constant_Completion): Moved to sem_util. + +2008-05-20 Ed Schonberg <schonberg@adacore.com> + Thomas Quinot <quinot@adacore.com> + + * sem_ch4.adb + (Try_Indexed_Call): Handle properly a construct of the form F(S) where + F is a parameterless function that returns an array, and S is a subtype + mark. + (Analyze_Call): Insert dereference when the prefix is a parameterless + function that returns an access to subprogram and the call has + parameters. + Reject a non-overloaded call whose name resolves to denote + a primitive operation of the stub type generated to support a remote + access-to-class-wide type. + +2008-05-20 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb + (Note_Redundant_Use): Diagnose a redundant use within a subprogram body + when there is a use clause for the same entity in the context. + (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is + created for a stream attribute of an abstract type or interface type. + +2008-05-20 Thomas Quinot <quinot@adacore.com> + + * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New + subprogram. + + * sem_type.adb + (Add_One_Interp): Ignore any interpretation that is a primitive + operation of an RACW stub type (these primitives are only executed + through dispatching, never through static calls). + (Collect_Interps): When only one interpretation has been found, set N's + Entity and Etype to that interpretation, otherwise Entity and Etype may + still refer to an interpretation that was ignored by Add_One_Interp, + in which case would end up with being marked as not overloaded but with + an Entity attribute not pointing to its (unique) correct interpretation. + +2008-05-20 Ed Schonberg <schonberg@adacore.com> + + * sem_eval.adb + (Eval_Slice): Warn when a slice whose discrete range is a subtype name + denotes the whole array of its prefix. + +2008-05-20 Robert Dewar <dewar@adacore.com> + + * sem_res.adb (Resolve_Op_Not): Warn on double negation + +2008-05-20 Ed Schonberg <schonberg@adacore.com> + + * sprint.adb + (Print_Itype): Do not modify the sloc of the component type of a + (packed) array itype, because it is an unrelated type whose source + location is independent of the point of creation of the itype itself. + +2008-05-20 Thomas Quinot <quinot@adacore.com> + + * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with + Append. + +2008-05-20 Robert Dewar <dewar@adacore.com> + Vincent Celier <celier@adacore.com> + + * vms_data.ads: Add entry for -gnatr + Put GNAT SYNC section in proper alpha order + Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d + + * gnat_ugn.texi: Add documentation for new gnatname switch --and + Update the style checks section + Add documentation of -gnatr + Add to the "Adding the Results of Compiler Checks to gnatcheck Output" + subsection the explanation how compiler checks should be disabled for + gnatcheck. + Update the list of Ada 95 reserved words used by in the project language + Add documentation for project qualifiers. + Document that abstract projects may be extended by different projects in + the same project tree. + Add documentation for gnatmake switch -d + + * ug_words: Add -gnatyy VMS equivalence string. + Add entry for -gnatr + +2008-05-20 Bob Duff <duff@adacore.com> + + * a-rttiev.adb + (Set_Handler): Remove code from both of these that implements + RM-D.15(15/2), because it causes a race condition and potential + deadlock. + (Process_Queued_Events): Add comment explaining "exception when others + => null". Add clarifying ".all", even though implicit .all is legal + here. + +2008-05-20 Arnaud Charlet <charlet@adacore.com> + + * s-winext.ads: Replace representation clause by pragma Pack. Gives + equivalent representation, but has the advantage of allowing + compilation of this file under 64 bits platforms. + + * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant. + + * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration. + + * adaint.c: + Don't define dummy implementation of convert_addresses on ppc-linux. + +2008-05-20 Ed Schonberg <schonberg@adacore.com> + + * exp_ch7.adb + (Expand_Ctrl_Function_Call): Do not attach result to finalization list + if expression is aggregate component. + +2008-05-20 Robert Dewar <dewar@adacore.com> + + * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads, + sem_ch12.adb: Update comments. Minor reformatting. + + * exp_ch2.adb: Typo + + * s-unstyp.ads: Fixed some typos in comments. + +2008-05-20 Arnaud Charlet <charlet@adacore.com> + + * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New + type/constant. + + * g-socthi-vxworks.ads: Update to latest socket changes. + + * a-caldel-vms.adb: Resync with a-caldel spec. + + * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting. + Update comments. + +2008-05-17 Eric Botcazou <ebotcazou@adacore.com> + + * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account + for dummy types pointed to by the converted pointer types. + +2008-05-15 Eric Botcazou <ebotcazou@adacore.com> + + * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field + of records and unions. + (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting. + +2008-05-14 Samuel Tardieu <sam@rfc1149.net> + Robert Dewar <dewar@adacore.com> + + * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add + restrictions to the prefix of 'Old. + * sem_util.ads, sem_util.adb (In_Parameter_Specification): New. + * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local + variables. + +2008-05-13 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/24880 + PR ada/26635 + * utils.c (convert) <INTEGER_TYPE>: When converting an additive + expression to an integral type with lower precision, use NOP_EXPR + directly in a couple of special cases. + +2008-05-12 Samuel Tardieu <sam@rfc1149.net> + Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching + constraint expressions. + +2008-05-12 Tomas Bily <tbily@suse.cz> + + * utils2.c (known_alignment, contains_save_expr_p) + (gnat_mark_addressable): Use CASE_CONVERT. + * decl.c (annotate_value): Likewise. + * trans.c (maybe_stabilize_reference): Likewise. + * utils2.c (build_binary_op): Use CONVERT_EXPR_P. + * utils.c (rest_of_record_type_compilation): Likewise. + * trans.c (protect_multiple_eval, Attribute_to_gnu) + (protect_multiple_eval): Likewise. + +2008-05-08 Andreas Schwab <schwab@suse.de> + + * utils.c (handle_pure_attribute, init_gigi_decls): Rename + DECL_IS_PURE to DECL_PURE_P. + +2008-05-05 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (maybe_pad_type): Add ??? comment. + +2008-05-03 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (components_to_record): Zero the alignment of the qualified + union built for the variant part upon creating it. + +2008-05-03 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (maybe_pad_type): Try to get a form of the type with integral + mode even if the alignment is not a factor of the original size. But + make sure to create the inner field with the original size. Reorder. + * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding + record as always addressable. + * utils.c (convert): Deal specially with conversions between original + and packable versions of a record type. + * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when + recognizing an assignment between padded objects. + +2008-05-01 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (make_packable_type): Resize the last component to its RM size + only if it is of an aggregate type. + * trans.c (call_to_gnu): Fix nit in comment. + (gnat_to_gnu): Likewise. + +2008-04-30 Samuel Tardieu <sam@rfc1149.net> + + * Makefile.in: Adapt sh4-linux target. + +2008-04-29 Ed Schonberg <schonberg@adacore.com> + + PR ada/35792 + * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete + tagged type by an untagged protected or task type. + +2008-04-28 Eric Botcazou <ebotcazou@adacore.com> + Tristan Gingold <gingold@adacore.com> + + PR ada/36007 + * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment + of aliased objects with an unconstrained nominal subtype. + Cap the promotion to the effective alignment of the word mode. + +2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads) + (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads): + Use '&&' instead of ';'. + +2008-04-24 Olivier Hainque <hainque@adacore.com> + + * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation + doesn't require signed arithmetic anymore. + +2008-04-23 Paolo Bonzini <bonzini@gnu.org> + + * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT. + (call_to_gnu): Don't set TREE_INVARIANT. + * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT. + +2008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com> + + * s-osinte-rtems.adb: Add sigalstack function. + * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack + function. Add Alternate_Stack and Alternate_Stack_Size. + Add missing process_shared field to pthread_condattr_t + and change ss_low_priority to int from timespec. + +2008-04-22 Samuel Tardieu <sam@rfc1149.net> + + * i-forbla.adb: Link against -llapack and -lblas by default + instead of the private -lgnalasup. + +2008-04-21 Olivier Hainque <hainque@adacore.com> + + Access to most C builtins from Ada + * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE. + (handle_pure_attribute, handle_novops_attribute, + handle_nonnull_attribute, handle_sentinel_attribute, + handle_noreturn_attribute, handle_malloc_attribute, + handle_type_generic_attribute): New attribute handlers, from C fe. + (gnat_internal_attribute_table): Map the new handlers. + (gnat_init_decl_processing): Move call to gnat_install_builtins to ... + (init_gigi_decls): ... here. + (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for): + Move to a section dedicated to builtins processing. + (build_void_list_node, builtin_type_for_size): New functions. + (def_fn_type, get_nonnull_operand): Likewise. + (install_builtin_elementary_type, install_builtin_function_types, + install_builtin_attributes): Likewise. + (fake_attribute_handler): Fake handler for attributes we don't + support in Ada. + (def_builtin_1): New function, worker for DEF_BUILTIN. + (install_builtin_functions): New function. + (gnat_install_builtins): Move to the builtins processing section. + Now calling the newly introduced installers. + +2008-04-20 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of + constant objects, but not exceptions. + * trans.c (add_decl_expr): Use gnat_types_compatible_p for type + compatibility test. + * utils.c (create_var_decl_1): Likewise. + * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of + the type when copying to padded object and the source is a constructor. + +2008-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the + alignment, reset it to zero if it would end up not being greater + than that of the type. + +2008-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (maybe_pad_type): Only generate the XVS parallel type if + the padded type has a variable size. + +2008-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by + target pointer mechanism as soon as the size is not constant. + +2008-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * gigi.h (create_var_decl_1): Declare. + (create_var_decl): Turn into a macro invoking create_var_decl_1. + (create_true_var_decl): Likewise. + * utils.c (create_var_decl_1): Make global and reorder parameters. + (create_var_decl): Delete. + (create_true_var_decl): Likewise. + +2008-04-17 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of + objects by default. + * fe.h (Debug_Flag_Dot_A): Delete. + * debug.adb (-gnatd.a): Update documentation. + +2008-04-17 Samuel Tardieu <sam@rfc1149.net> + + * g-socket.ads, g-socket.adb (Get_Address): Make Stream a + "not null" parameter. + +2008-04-17 Samuel Tardieu <sam@rfc1149.net> + + * g-socket.adb: Add a message "IPv6 not supported" to the + Socket_Error exception. + +2008-04-16 Samuel Tardieu <sam@rfc1149.net> + + PR ada/29015 + * sem_ch12.adb (Instantiate_Type): Check whether the full view of + the type is known instead of the underlying type. + +2008-04-15 Ed Schonberg <schonberg@adacore.com> + + PR ada/22387 + * exp_ch5.adb (Expand_Assign_Record): Within an initialization + procedure for a derived type retrieve the discriminant values from + the parent using the corresponding discriminant. + +2008-04-15 Samuel Tardieu <sam@rfc1149.net> + Gary Dismukes <dismukes@adacore.com> + + PR ada/28733 + * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something + which is not an entity (and hence not a package). + (End_Use_Package): Ditto. + +2008-04-15 Ed Schonberg <schonberg@adacore.com> + + PR ada/16086 + * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any + protected operation that matches the signature, not only an entry, a + regular subprogram or a literal. + +2008-04-15 Eric Botcazou <ebotcazou@adacore.com> + + * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3. + * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only + if a size or alignment is specified. Do not take into account + alignment promotions for the computation of the object's size. + <type>: Call maybe_pad_type only if a size or alignment is specified. + (maybe_pad_type): Really reuse the RM_Size of the original type if + requested. + * trans.c (Attribute_to_gnu): Fix a couple of nits. + * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional + statements. Use the padded view of the type when copying between + padded objects of the same underlying type. + +2008-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * vms_data.ads: Fix typo in constant. + * gen-soccon.c: Fix typo in error string. + * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition): + Fix typos. + * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads, + bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb, + erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb, + exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb, + exp_util.adb, fmap.adb, g-soccon-linux-mips.ads, + g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads, + mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb, + s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads, + s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads, + sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads, + sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, + sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads, + sinfo.ads: Fix typos in comments. + +2008-04-14 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error + to every non-object and change error message. + +2008-04-14 Robert Dewar <dewar@adacore.com> + + * sem_util.ads, sem_util.adb (In_Subprogram): Remove. + * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram + directly. + +2008-04-14 Samuel Tardieu <sam@rfc1149.net> + + PR ada/18680 + * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to + apply pragma Linker_Section on type. + +2008-04-14 Samuel Tardieu <sam@rfc1149.net> + + PR ada/16098 + * sem_prag.adb (Error_Pragma_Ref): New. + (Process_Convention): Specialized message for non-local + subprogram renaming. Detect the problem in homonyms as well. + +2008-04-14 Samuel Tardieu <sam@rfc1149.net> + + PR ada/15915 + * sem_util.ads, sem_util.adb (Denotes_Variable): New function. + * sem_ch12.adb (Instantiate_Object): Use it. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that + storage pool denotes a variable as per RM 13.11(15). + +2008-04-14 Samuel Tardieu <sam@rfc1149.net> + + * sem_util.ads, sem_util.adb (In_Subprogram): New function. + * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it. + +2008-04-14 Rolf Ebert <rolf.ebert.gcc@gmx.de> + + PR ada/20822 + * xgnatugn.adb (Put_Line): New procedure, ensuring Unix + line endings even on non-Unix platforms. + +2008-04-14 Samuel Tardieu <sam@rfc1149.net> + + PR ada/35050 + * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the + renaming information. + +2008-04-13 Samuel Tardieu <sam@rfc1149.net> + + PR ada/17985 + * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of + itself. + +2008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * sfn_scan.adb, sfn_scan.ads, sinfo.ads, + sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads, + snames.ads, sprint.adb, stand.ads, stringt.ads, + styleg.adb, styleg.ads, stylesw.adb, stylesw.ads, + switch.ads, sysdep.c, table.adb, table.ads, + targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c, + trans.c, tree_io.adb, treepr.adb, types.adb, types.ads, + uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads, + vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb, + widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb, + xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb: + Fix comment typos. + + * sem_ch10.adb, sem_ch10.ads, + sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads, + sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, + sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, + sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb, + sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads, + sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads, + sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb, + sem_warn.ads: Fix comment typos. + + * s-secsta.adb, s-sequio.ads, s-shasto.ads, + s-soflin.ads, s-stalib.ads, s-stausa.adb, + s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads, + s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb, + s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb, + s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb, + s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb, + s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads, + s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads, + s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, + s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb, + s-tposen.ads, s-traceb-hpux.adb, s-traces.ads, + s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads, + s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb, + s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads, + scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb, + sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads, + sem_cat.adb, sem_cat.ads: Fix comment typos. + +2008-04-12 Joel Sherrill <joel@oarcorp.com> + + PR ada/35825 + * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported. + +2008-04-12 Arnaud Charlet <charlet@adacore.com> + + * s-linux-hppa.ads: Fix syntax errors. + +2008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * gnat_ugn.texi: Fix typos. + * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb, + restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads, + s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads, + s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads, + s-fatllf.ads, s-fatsfl.ads, s-filofl.ads, + s-finimp.adb, s-finroo.ads, s-fishfl.ads, + s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads, + s-hibaen.ads, s-htable.ads, s-imgcha.adb, + s-imgenu.ads, s-imgint.adb, s-imgrea.adb, + s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb, + s-interr-vxworks.adb, s-interr.adb, s-interr.ads, + s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb, + s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads, + s-osinte-darwin.ads, s-osinte-freebsd.ads, + s-osinte-hpux.ads, s-osinte-lynxos-3.adb, + s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, + s-osinte-rtems.ads, s-osinte-solaris-posix.ads, + s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads, + s-parame-hpux.ads, s-parame-vms-alpha.ads, + s-parame-vms-ia64.ads, s-parame-vms-restrict.ads, + s-parame-vxworks.ads, s-parame.ads, s-parint.adb, + s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads, + s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads, + s-rident.ads: Fix comment typos. + +2008-04-09 Samuel Tardieu <sam@rfc1149.net> + + PR ada/28305 + * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore + environment if generic instance is a top-level one. + +2008-04-09 Doug Rupp <rupp@adacore.com> + + * decl.c (validate_size): Set minimum size for fat pointers same as + access types. Code clean ups. + + * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise + (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS + + * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant + + * s-crtl.ads (malloc32) New function, alias for malloc + (realloc32) New function, alias for realloc + + * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS + + * utils2.c (build_call_alloc_dealloc): Return call to short malloc if + allocator size is 32 and default pointer size is 64. + (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of + lhs type if smaller, whatever the modes. + + * gigi.h (malloc32_decl): New macro definition + + * utils.c (init_gigi_decls): New malloc32_decl + Various code clean ups. + + * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to + Task_Address vice System.Address. + + * s-taspri-vms.ads: Import System.Aux_DEC + (Task_Address): New subtype of System.Aux_DEC.Short_Address + (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address + + * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to + Task_Address vice System.Address. + + * s-inmaop-vms.adb: Import System.Task_Primitives + (To_Address): Unchecked convert to Task_Address vice System.Address + + * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay + expires now. + (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address + (To_Address) Unchecked convert to Task_Address vice System.Address + + * s-tpopde-vms.adb: Remove unnecessary warning pragmas + + * g-socthi-vms.ads: Add 32bit size clauses on socket access types. + +2008-04-08 Eric Botcazou <ebotcazou@adacore.com> + + * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc. + (fdesc_type_node): Define. + (null_fdesc_node): Likewise. + * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target + uses descriptors for vtables and the type comes from a dispatch table, + return the descriptor type. + * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target + uses descriptors for vtables and the type comes from a dispatch table, + build a descriptor in the static case and copy the existing one in the + non-static case. + (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and + the type is a pointer-to-subprogram coming from a dispatch table, + return the null descriptor. + <N_Unchecked_Type_Conversion>: If the target uses descriptors for + vtables, the source type is the descriptor type and the target type + is a pointer type, first build the pointer. + * utils.c (init_gigi_decls): If the target uses descriptors for vtables + build the descriptor type and the null descriptor. + +2008-04-08 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (prepend_attributes): Fix typo. + * trans.c (Pragma_to_gnu): Likewise. + * utils.c (gnat_genericize): Likewise. + +2008-04-08 Eric Botcazou <ebotcazou@adacore.com> + Richard Kenner <kenner@adacore.com> + + * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed. + * decl.c (gnat_to_gnu_entity): Adjust for above change. + <E_Record_Type>: Try to get a better form of the component for + packing, even if it has an integral mode. + <E_Record_Subtype>: Likewise. + * trans.c (gnat_to_gnu): Do not require BLKmode for the special + exception suppressing the final conversion between record types. + +2008-04-08 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing + alignment for space, promote the alignment of non-scalar variables with + no size and alignment. + * gigi.h (gnat_types_compatible_p): Declare. + * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate. + * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup. + * utils.c (gnat_types_compatible_p) : New predicate. + (convert): Use it throughout to test for cases where a mere view + conversion is sufficient. + * utils2.c (build_binary_op): Minor tweaks. + (build_unary_op): Likewise. + +2008-04-08 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (adjust_packed): Expand comment. + +2008-04-08 Arnaud Charlet <charlet@adacore.com> + + * s-tasuti.ads: Use Task_Address instead of System.Address. + + * makeutl.adb (Path_Or_File_Name): New function + + * nlists.ads, itypes.ads: Update comments. + + * s-crtl.ads (malloc32, realloc32): New functions. + + * s-auxdec.ads (Short_Address_Size): New constant. + + * a-taside.adb, s-tasdeb.adb: Use Task_Address. + + * s-ststop.ads, s-ststop.adb: New file. + + * exp_tss.ads, s-taprop-lynxos.adb: Update comments. + Minor reformatting. + +2008-04-08 Pascal Obry <obry@adacore.com> + + * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200. + (Stop_Bits_Number): New type. + (Parity_Check): Likewise. + (Set): Add parameter to set the number of stop bits and + the parity. Parameter timeout is now a duration instead + of a plain integer. + + * g-sercom-linux.adb: + Implement the stop bits and parity support for GNU/Linux. + Fix handling of timeout, it must be given in tenth of seconds. + + * g-sercom-mingw.adb: + Implement the stop bits and parity support for Windows. + Use new s-win32.ads unit instead of declaring Win32 services + directly into this body. + Update handling of timeout as now a duration. + + * s-win32.ads, s-winext.ads: New files. + +2008-04-08 Eric Botcazou <ebotcazou@adacore.com> + Arnaud Charlet <charlet@adacore.com> + + * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed. + + s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads, + s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux. + + * s-osinte-lynxos-3.ads, + (Alternate_Stack): Remove when not needed. Simplify declaration + otherwise. + (Alternate_Stack_Size): New constant. + + s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of + 'Unrestricted_Access. + + * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads, + s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads, + s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads, + s-osinte-solaris.ads, s-osinte-vms.ads + (SA_ONSTACK): New constant. + (stack_t): New record type. + (sigaltstack): New imported function. + (Alternate_Stack): New imported variable. + (Alternate_Stack_Size): New constant. + + * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True. + + * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads, + s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads, + s-taspri-vms.ads (Task_Address): New subtype of System.Address + (Task_Address_Size): New constant size of System.Address + (Alternate_Stack_Size): New constant. + + * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete. + (Enter_Task): Do not notify stack to System.Stack_Checking.Operations. + Establish the alternate stack if the platform makes use of n alternate + signal stack for stack overflows. + (Create_Task): Take into account the alternate stack in the stack size. + (Initialize): Save the address of the alternate stack into the ATCB for + the environment task. + (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads). + + * s-parame.adb (Minimum_Stack_Size): Increase value to 16K + + * system-linux-x86.ads: (Stack_Check_Probes): Set to True. + + * s-intman-posix.adb: + (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an + alternate signal stack for stack overflows. + + * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and + x86-64, adjust the saved value of the stack pointer if the signal was + raised by a stack checking probe. + (HP-UX section): Use global __gnat_alternate_stack as signal handler + stack and only for SIGSEGV. + (Linux section): Likewise on x86 and x86-64. + [VxWorks section] + (__gnat_map_signal): Now static. + (__gnat_error_handler): Not static any more. + (__gnat_adjust_context_for_raise): New function. Signal context + adjustment for PPC && !VTHREADS && !RTP, as required by the zcx + propagation circuitry. + (__gnat_error_handler): Second argument of a sigaction handler is a + pointer, not an int, and is unused. + Adjust signal context before mapping to exception. + Install signal handlers for LynxOS case. + + * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack. + (Task_Id): Set size to Task_Address_Size + (To_Task_id): Unchecked convert from Task_Address vice System.Address + (To_Address): Unchecked convert to Task_Address vice System.Address + + * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its + address into the ATCB if the platform makes use of an alternate signal + stack for stack overflows. + (Free_Task): Add call to Finalize_Attributes_Link. + Add argument Relative_Deadline to pass the value specified for + the task. This is not yet used for any target. + + * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass + the value specified for the task. + +2008-04-08 Arnaud Charlet <charlet@adacore.com> + + (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb + (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads, + s-vxwext-rtp.adb): New files. + + * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb: + Minor updates to accomodate changes above. + +2008-04-08 Pascal Obry <obry@adacore.com> + + * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb, + s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads: + Use new s-win32.ads unit instead of declaration + from s-osinte-mingw.ads. + + * s-osinte-mingw.ads: + Move all non tasking based interface to s-win32.ads. + + * s-osprim-mingw.adb: + Remove duplicated declarations and use s-win32.ads + unit instead. + +2008-04-08 Vincent Celier <celier@adacore.com> + Arnaud Charlet <charlet@adacore.com> + + * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb, + mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb, + mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb, + mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, + mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into... + + * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb, + mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb, + mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb, + mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb, + mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads, + mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb, + mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb, + mlib-tgt-specific-mingw.adb: New names. + + * Makefile.in: + On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads + Get rid of gnatbl. + (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o + Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb + Minor updates for VMS + + * gnatbl.c: Removed. + +2008-04-08 Thomas Quinot <quinot@adacore.com> + + * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb, + g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb, + gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads, + a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb, + s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of + ASCII.NUL throughout. + +2008-04-08 Arnaud Charlet <charlet@adacore.com> + Matthew Heaney <heaney@adacore.com> + + * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex + renaming. + + * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, + a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform + to convention for non-RM specs. + Add descriptive header, and documented each operation + document each operation + +2008-04-08 Robert Dewar <dewar@adacore.com> + Bob Duff <duff@adacore.com> + Gary Dismukes <dismukes@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * alloc.ads: Add entries for Obsolescent_Warnings table + + * einfo.ads, einfo.adb: Minor reformatting. + (Is_Discriminal): New subprogram. + (Is_Prival): New subprogram. + (Is_Protected_Component): New subprogram. + (Is_Protected_Private): Removed. + (Object_Ref, Set_Object_Ref): Removed. + (Prival, Set_Prival): Change assertion. + (Privals_Chain, Set_Privals_Chain): Removed. + (Prival_Link, Set_Prival_Link): New subprogram. + (Protected_Operation, Set_Protected_Operation): Removed. + (Protection_Object, Set_Protection_Object): New subprogram. + (Write_Field17_Name): Remove case for Object_Ref. + (Write_Field20_Name): Add case for Prival_Link. + (Write_Field22_Name): Remove case for Protected_Operation, + Privals_Chain. + Add case for Protection_Object. + (Can_Use_Internal_Rep): Make this into a [base type only] attribute, + so clients + (Overlays_Constant): New flag + (Is_Constant_Object): New predicate + (Is_Standard_Character_Type): New predicate + (Optimize_Alignment_Space): New flag + (Optimize_Alignment_Time): New flag + (Has_Postconditions): New flag + (Obsolescent_Warrning): Field removed + (Spec_PPC_List): New field + (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add + subprograms to get and set the relative deadline associated to a task. + + * exp_attr.adb (May_Be_External_Call): Account for the case where the + Access attribute is part of a named parameter association. + (Expand_Access_To_Protected_Op): Test for the attribute occurring + within an init proc and use that directly as the scope rather than + traversing up to the protected operation's enclosing scope. Only apply + assertion on Is_Open_Scopes in the case the scope traversal is done. + For the init proc case use the address of the first formal (_init) as + the protected object reference. + Implement Invalid_Value attribute + (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access. + contents of the dispatch table there is no need to duplicate the + itypes associated with record types (i.e. the implicit full view + of private types). + Implement Enum_Val attribute + (Expand_N_Attribute_Reference, case Old): Properly handle appearence + within _Postconditions procedure + (Expand_N_Attribute_Reference, case Result): Implement new attribute + + * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which + a return statement calls a function that is not available in + configurable runtime. + (Analyze_If_Statement): don't optimize simple True/False cases in -O0 + (Expand_Non_Function_Return): Generate call to _Postconditions proc + (Expand_Simple_Function_Return): Ditto + + * frontend.adb: Add call to Sem_Aux.Initialize + + * sem_aux.ads, sem_aux.adb: New file. + + * par-prag.adb: Add entries for pragmas Precondition/Postcondition + Add new Pragma_Relative_Deadline. + Add support for pragmas Check and Check_Policy + + * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram. + (Check_Stream_Attribute): Add missing check (not allowed in CPP types) + (Analyze_Attribute): In case of attributes 'Alignment and 'size add + missing check because they are not allowed in CPP tagged types. + Add Sure parameter to Note_Possible_Modification calls + Add implementation of Invalid_Value attribute + Implement new attribute Has_Tagged_Values + Implement Enum_Val attribute + (Analyze_Attribute, case Range): Set Name_Req True for prefix of + generated attributes. + (Analyze_Attribute, case Result): If prefix of the attribute is + overloaded, it always resolves to the enclosing function. + (Analyze_Attribute, case Result): Properly deal with analysis when + Postconditions are not active. + (Resolve_Attribute, case Result): Properly deal with appearence during + preanalysis in spec. + Add processing for attribute Result + + * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup + for operators. + (Analyze_Subprogram_Body): Install private_with_clauses when the body + acts as a spec. + (Check_Inline_Pragma): recognize an inline pragma that appears within + the subprogram body to which it applies. + (Analyze_Function_Return): Check that type of the expression of a return + statement in a function with a class-wide result is not declared at a + deeper level than the function. + (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag + (Verify_Overriding_Indicator): Handle properly subprogram bodies for + user- defined operators. + (Install_Formals): Moved to spec to allow use from Sem_Prag for + analysis of precondition/postcondition pragmas. + (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for + Last_Formal, along with lots of comments on what this is about + (Analyze_Subprogram_Body): Fix case where we move entities from the + spec to the body when there are no body entities (now possible with + precondition and postcondition pragmas). + (Process_PPCs): New procedure + (Analyze_Subprogram_Body): Add call to Process_PPCs + + * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type + clause. + (Pop_Scope): Restore Check_Policy_List on scope exit + (Push_Scope): Save Check_Policy_List on scope entry + Change name In_Default_Expression => In_Spec_Expression + Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression + Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve + (Analyze_Object_Renaming): Allow 'Reference as object + (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma + (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling + of restriction identifier. + Add Sure parameter to Note_Possible_Modication calls + + * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert): + Don't check for primitive operations when calling Rep_Item_Too_Late. + (Process_Import_Or_Interface): Do not place flag on formal + subprograms. + (Analyze_Pragma, case Export): If the entity is a deferred constant, + propagate information to full view, which is the one elaborated by the + back-end. + (Make_Inline): the pragma is effective if it applies to an internally + generated subprogram declaration for a body that carries the pragma. + (Analyze_Pragma, case Optimize_Alignment): Set new flag + Optimize_Alignment_Local. + (Analyze_PPC_In_Decl_Part): New procedure + (Get_Pragma_Arg): Moved to outer level + (Check_Precondition_Postcondition): Change to allow new visibility + rules for package spec + (Analyze_Pragma, case Check_Policy): Change placement rules to be + same as pragma Suppress/Unsuppress. + Change name In_Default_Expression => In_Spec_Expression + Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression + Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve + (Check_Precondition_Postcondition): Do proper visibility preanalysis + for the case of these pragmas appearing in the spec. + (Check_Enabled): New function + (Initialize): New procedure + (Tree_Read): New procedure + (Tree_Write): New procedure + (Check_Precondition_Postcondition): New procedure + Implement pragmas Check and Check_Policy + Merge Assert processing with Check + + * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check + New warning flag -gnatw.e + + * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function + returning whether a task (or main procedure) has a pragma + Relative_Deadline. + (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task + (or main procedure) has a pragma Relative_Deadline. + Add Next_Pragma field to N_Pragma node + (PPC_Enabled): New flag + (Next_Pragma): Now used for Pre/Postcondition processing + + * snames.h, snames.ads, snames.adb: New standard name + Inherit_Source_Path + Add entry for 'Invalid_Value attribute + Add entry for new attribute Has_Tagged_Values + Add entry for Enum_Val attribute + Add new standard names Aggregate, Configuration and Library. + Add _Postconditions + Add _Result + Add Pragma_Precondition + Add Pragma_Postcondition + Add Attribute_Result + New standard name Archive_Builder_Append_Option + (Preset_Names): Add _relative_deadline and relative_deadline definitions + There was also a missing non_preemptive_within_priorities. + (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma + Relative_Deadline. + Add support for pragmas Check and Check_Policy + + * tree_gen.adb: Call Sem_Aux.Tree_Write + + * tree_in.adb: Call Sem_Aux.Tree_Read + + * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling + sequence + + * exp_intr.adb (Expand_Source_Info): New Build_Location calling + sequence + + * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure. + (Expand_N_Pragma): Call the appropriate procedure for expanding pragma + Relative_Deadline. + (Expand_Pragma_Check): New procedure + + * sinput.ads, sinput.adb (Build_Location_String): Now appends to name + buffer. + + * sinfo.adb (PPC_Enabled): New flag + +2008-04-08 Robert Dewar <dewar@adacore.com> + Gary Dismukes <dismukes@adacore.com> + Javier Miranda <miranda@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * fe.h: Remove global Optimize_Alignment flag, no longer used + + * layout.adb: Test Optimize_Alignment flags rather than global switch + + * lib.ads, lib.adb: New OA_Setting field in library record + + * lib-load.adb: New OA_Setting field in library record + + * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place + units mentioned in limited_with_ clauses in the ali file, with an + 'Y' marker. + New Ox fields in U line + + * opt.adb: New flag Optimize_Alignment_Local + (Check_Policy_List[_Config]): New flags + + * opt.ads (Invalid_Value_Used): New flag + New switch Optimize_Alignment_Local + (Warn_On_Parameter_Order): New flag + (Check_Policy_List[_Config]): New flags + + * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of + limited_with clauses. + New data structures for Optimize_Alignment + + * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization): + New procedure + (Check_Consistent_Optimize_Alignment): Rework for new structure + (Check_Consistent_Restrictions): Fix incorrect error message + + sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly + created class-wide type (to the Parent field of the specific type). + (Install_Siblings): Handle properly private_with_clauses on subprogram + bodies and on generic units. + (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an + illegal limited_with_clause that names a non-existent package. + (Check_Body_Required): Determine whether a unit named a limited_with + clause needs a body. + (Analyze_Context): A limited_with_clause is illegal on a unit_renaming. + Capture Optimize_Alignment settings to set new OA_Setting field in + library record. + (Build_Limited_Views): Include task and protected type declarations. + + * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the + case of a possible constant redeclaration where the current object is + an entry index constant. + (Analyze_Object_Declaration): Generate an error in case of CPP + class-wide object initialization. + (Analyze_Object_Declaration): Add extra information on warnings for + declaration of unconstrained objects. + (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid + conflicts with the setting of Stored_Constraint in the case where the + access type entity has already been created as an E_Incomplete_Type due + to a limited with clause. + Use new Is_Standard_Character_Type predicate + (Analyze_Object_Declaration): Apply access_constant check only after + expression has been resolved, given that it may be overloaded with + several access types. + (Constant_Redeclaration): Additional legality checks for deferred + constant declarations tha involve anonymous access types and/or null + exclusion indicators. + (Analyze_Type_Declaration): Set Optimize_Alignment flags + (Analyze_Subtype_Declaration): Ditto + (Analyze_Object_Declaration): Ditto + (Analyze_Object_Declaration): Don't count tasks in generics + Change name In_Default_Expression => In_Spec_Expression + Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression + Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve + (Process_Discriminants): Additional check for illegal use of default + expressions in access discriminant specifications in a type that is not + explicitly limited. + (Check_Abstract_Overriding): If an inherited function dispaches on an + access result, it must be overridden, even if the type is a null + extension. + (Derive_Subprogram): The formals of the derived subprogram have the + names and defaults of the parent subprogram, even if the type is + obtained from the actual subprogram. + (Derive_Subprogram): In the presence of interfaces, a formal of an + inherited operation has the derived type not only if it descends from + the type of the formal of the parent operation, but also if it + implements it. This is relevant for the renamings created for the + primitive operations of the actual for a formal derived type. + (Is_Progenitor): New predicate, to determine whether the type of a + formal in the parent operation must be replaced by the derived type. + + * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make + predicate recursive to handle components that have a user-defined + Initialize procedure. Handle controlled derived types whose ancestor + has a user-defined Initialize procedured. + (Note_Possible_Modification): Add Sure parameter, generate warning if + sure modification of constant + Use new Is_Standard_Character_Type predicate + (Find_Parameter_Type): when determining whether a protected operation + implements an interface operation, retrieve the type of the formal from + the entity when the formal is an access parameter or an + anonymous-access-to-subprogram. + Move Copy_Parameter_List to sem_util, for use when building stubbed + subprogram bodies. + (Has_Access_Values): Tagged types now return False + (Within_HSS_Or_If): New procedure + (Set_Optimize_Alignment_Flags): New procedure + Change name In_Default_Expression => In_Spec_Expression + Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression + Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve + +2008-04-08 Tristan Gingold <gingold@adacore.com> + + * s-fileio.adb: Name_Error shouldn't be raised for a tempory file. + +2008-04-08 Tristan Gingold <gingold@adacore.com> + +PR ada/10768 + + * cuintp.c: Fix 16 bits issue for AVR. + On AVR, integer is 16 bits, so it can't be used to do math with + Base (=32768). + So use long_integer instead. + +2008-04-08 Hristian Kirtchev <kirtchev@adacore.com> + + * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for + System.OS_Primitives. + Change type of various constants, parameters and local variables from + Time to representation type OS_Time. + (To_Ada_Time, To_Unix_Time): Correct sign of origin shift. + Remove the declaration of constant Mili_F from several routines. New + body for internal package Conversions_Operations. + (Time_Of): Add default parameters for several formals. + + * a-caldel.adb: Minor reformatting + + * a-calend.ads, a-calend.adb: New body for internal package + Conversions_Operations. + (Time_Of): Add default parameters for several formals. + + * Makefile.rtl: Add a-ststop + Add Ada.Calendar.Conversions to the list of runtime files. + Add g-timsta + + * a-calcon.adb, a-calcon.ads: New files. + +2008-04-08 Jose Ruiz <ruiz@adacore.com> + Tristan Gingold <gingold@adacore.com> + + * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb + (Install_Restricted_Handlers): New procedure + which is a simplified version of Install_Handlers that does not store + previously installed. + + * s-interr-vxworks.adb: Fix ACATS cxc3001 + On VxWorks interrupts can't be detached. + (Install_Restricted_Handlers): New procedure. + + * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New + procedure. + +2008-04-08 Olivier Hainque <hainque@adacore.com> + + * s-intman-vxworks.ads, s-intman-vxworks.adb + (Map_And_Raise_Exception): Remove. Was an import of only part of the + required services already implemented elsewhere. + (Notify_Exception): Delete body, import __gnat_error_handler instead. + (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext + argument passed to the handler, which we need for ZCX propagation + purposes. + +2008-04-08 Hristian Kirtchev <kirtchev@adacore.com> + + * adaint.h, adaint.c (__gnat_current_time_string): New routine. + + * g-timsta.adb, g-timsta.ads: New files. + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb + (Raise_Exception): In accordance with AI-446, raise CE for Null_Id + (Raise_Exception_Always): Fix documentation accordingly + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by + Stream_Convert) + + * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets + FOnly + +2008-04-08 Javier Miranda <miranda@adacore.com> + Robert Dewar <dewar@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * a-tags.adb (Register_Interface_Offset): New subprogram. + (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment). + (To_Predef_Prims_Table_Ptr): Removed. + (Acc_Size): Removed. + (To_Acc_Size): Removed. + (Parent_Size): Modified to the call the subprogram returning the size of + the parent by means of the new TSD component Size_Func. + + * a-tags.ads (Offset_To_Top_Ptr): New access type declaration. + (DT_Offset_To_Top_Offset): New constant value that is used to generate + code referencing the Offset_To_Top component of the dispatch table's + prologue. + (Prim_Ptr): New declaration of access to procedure. Used to avoid the + use of 'address to initialize dispatch table slots. + (Size_Func): New component of the TSD. Used by the run-time to call the + size primitive of the tagged type. + + * checks.adb (Apply_Access_Check): Avoid check when accessing the + Offset_To_Top component of a dispatch table. + (Null_Exclusion_Static_Checks): If the non-null access type appears in a + deferred constant declaration. do not add a null expression, to prevent + spurious errors when full declaration is analyzed. + (Apply_Discriminant_Check): If both discriminant constraints share a + node which is not static but has no side effects, do not generate a + check for that discriminant. + (Generate_Index_Checks): Set Name_Req to true in call to duplicate + subexpr, since the prefix of an attribute is a name. + + * checks.ads: Fix nit in comment. + + * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec + and body of predefined primitives in case of CPP tagged type + derivations. + (Freeze_Type): Deal properly with no storage pool case + (Make_Predefined_Primitive_Specs): Generate specification of abstract + primitive Deep_Adjust if a nonlimited interface is derived from a + limited interface. + (Build_Dcheck_Functions): Create discriminant-checking functions only + for variants that have some component(s). + (Build_Slice_Assignment): In expanded code for slice assignment, handle + properly the case where the slice bounds extend to the last value of the + underlying representation. + (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value + (Is_Variable_Size_Record): An array component has a static size if + index bounds are enumeration literals. + + * exp_disp.adb (Make_DT): Use the first subtype to determine whether + an external tag has been specified for the type. + (Building_Static_DT): Add missing support for private types. + (Make_DT): Add declaration of Parent_Typ to ensure consistent access + to the entity associated with the parent of Typ. This is done to + avoid wrong access when the parent is a private type. + (Expand_Interface_Conversion): Improve error message when the + configurable runtime has no support for dynamic interface conversion. + (Expand_Interface_Thunk): Add missing support to interface types in + configurable runtime. + (Expand_Dispatching_Call): remove obsolete code. + (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and + ensure that all subtypes and aggregates associated with dispatch + tables have the attribute Is_Dispatch_Table_Entity set to true. + (Register_Primitive): Rename one variable to improve code reading. + Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o + of the pointer to the 'size primitive in the TSD. + + * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity. + (RE_Offset_To_Top_Ptr): New entity. + (RE_Register_Interface_Offset): New entity. + (RE_Set_Dynamic_Offset_To_Top): New entity. + (RE_Set_Offset_To_Top): Removed entity. + (RE_Prim_Ptr): New entity + (RE_Size_Func): New entity + (RE_Size_Ptr): New entity + (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF. + (Ada_Dispatching_Child): Define this new subrange. + (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock, + RE_Time_Span, and RE_Time_Span_Zero). + (RE_Unit_Table): Add new required run-time calls + + * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching + children. + + * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram. + (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that + initializes the Offset_To_Top component of a dispatch table. + (Build_Predef_Prims): Removed. + (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by + its actual code. + (Build_Set_Size_Function): New subprogram. + + * exp_ch13.adb: Do not generate storage variable for storage_size zero + (Expand): Handle setting/restoring flag Inside_Freezing_Actions + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in + computing Fore when Exp > 0 + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * back_end.adb: Remove Big_String_Ptr declarations (now in Types) + + * errout.adb: Remove Big_String_Ptr declarations (now in Types) + Change name Is_Style_Msg to Is_Style_Or_Info_Msg + + * fmap.adb: Remove Big_String declarations (now in Types) + (No_Mapping_File): New Boolean global variable + (Initialize): When mapping file cannot be read, set No_Mapping_File to + False. + (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the + tables were empty before adding entries, open the mapping file + with Truncate = True, instead of delete/re-create. + + * fname-sf.adb: Remove Big_String declarations (now in Types) + + * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb, + s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for + big pointer types + + * table.ads: Add for Table_Ptr'Storage_Size use 0 + + * types.ads: Add Big_String declarations + Add Size_Clause of zero for big pointer types + +2008-04-08 Vincent Celier <celier@adacore.com> + + * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs= + (Usage): Add line for switch --subdirs= + Add new switch -eL, to follow symbolic links when processing project + files. + + * gnatcmd.adb: Process switches -eL and --subdirs= + (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call + Program_Name to get proper tool names when AAMP_On_Target is set. + (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get + AAMP_On_Target set properly for use of GNAAMP tools (this is needed by + Osint.Program_Name). + + * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs= + (Usage): Add lines for switches -eL and --subdirs= + + * makeusg.adb: Add line for switch --subdirs= + + * prj.ads: + (Source_Data): New Boolean component Compiled, defaulted to True + (Empty_File_Name: New global variable in private part, initialized in + procedure Initialize. + (Subdirs_Option): New constant string + (Subdirs): New String_Ptr global variable + (Language_Config): New component Include_Compatible_Languages + (Project_Qualifier): New type for project qualifiers + (Project_Data): New component Qualifier + (Project_Configuration): New component Archive_Builder_Append_Option + + * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in + another imported project indicate the name of this imported project. + (Check_File): When a unit is in two project files, indicate the project + names and the paths of the source files for each project. + (Add_Source): Set Compiled to False if compiler driver is empty. Only + set object, dependency and switches file names if Compiled is True. + (Process_Compiler): Allow the empty string for value of attribute Driver + (Get_Directories): When Subdirs is not null and Object_Dir is not + specified, locate and create if necessary the actual object dir. + (Locate_Directory): When Subdirs is not empty and Create is not the + empty string, locate and create if necessary the actual directory + as a subdirectory of directory Name. + (Check_Library_Attributes.Check_Library): Allow a project where the only + "sources" are header files of file based languages to be imported by + library projects, in multi-language mode (gprbuild). + (Check_Library_Attributes.Check_Library): In multi-language mode + (gprbuild), allow a library project to import a project with no + sources, even when this is not declared explicitly. + (Check_If_Externally_Built): A virtual project extending an externally + built project is also externally built. + (Check_Library_Attributes): For a virtual project extending a library + project, inherit the library directory. + (Process_Project_Level_Array_Attributes): Process new attribute + Inherit_Source_Path. + For projects with specified qualifiers "standard", "library" or + "abstract", check that the project conforms to the qualifier. + (Process_Project_Level_Simple_Attributes): Process new attribute + Archive_Builder_Append_Option. + + * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs= + (Normalize_Compiler_Switches): Only keep compiler switches that are + passed to gnat1 by the gcc driver and that are stored in the ALI file + by gnat1. + Do not take into account switc -save-temps + + * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if + gprmake is called with -eL. + (Scan_Arg): Recognize switch -eL + (Usage): Add line for switch -eL + + * prj.adb (Initialize): Initialize Empty_File_Name + (Project_Empty): New component Qualifier + + * prj-attr.ads, prj-attr.adb: New project level attribute + Inherit_Source_Path. + New project level attribute Archive_Builder_Append_Option + + * prj-dect.adb: Replace System.Strings by GNAT.Strings. + + * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add + <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for + upward compatibility. + + * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put + each Trying ..." on different lines. + (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier + is "configuration" when not in configuration. Fail when in configuration + when a specified qualifier is other than "configuration". + + * prj-proc.adb (Process_Declarative_Items): Link new elements of copied + full associative array together. + (Recursive_Process): Put the project qualifier in the project data + + * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function + (Set_Project_Qualifier_Of): New procedure + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * errout.ads: Update comments for new handling of info: messages + + * erroutc.adb (Matches): New procedure + (Warning_Specifically_Suppressed): Modified to handle multiple * chars + (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for + info messages as well as style messages. + + * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry + + * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed + subprograms. + (Check_A_Call): Special "info: " warnings now have ? in the text + (Elab_Warning): Use info message in static case + +2008-04-08 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine + whether an array aggregate with static bounds and scalar components + should be expanded into a static constant. + +2008-04-08 Gary Dismukes <dismukes@adacore.com> + Ed Schonberg <schonberg@adacore.com> + Robert Dewar <dewar@adacore.com> + + * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of + Has_Stream_Attribute_ Definition when checking for available stream + attributes on parameters of a limited type in Ada 2005. Necessary for + proper recognition of visible stream attribute clauses. + (Has_Stream_Attribute_Definition): If the type is derived from a + private type, then use the derived type's underlying type for checking + whether it has stream attributes. + (Validate_Object_Declaration): The check for a user-defined Initialize + procedure applies also to types with controlled components or a + controlled ancestor. + Reject an object declaration in a preelaborated unit if the type is a + controlled type with an overriding Initialize procedure. + (Validate_Remote_Access_To_Class_Wide_Type): Return without further + checking when the parent of a dereference is a selected component and + the name has not been analyzed. + + * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected + prefixes that are invalid explicit dereferences of remote + access-to-class-wide values, first checking whether the selected + component is a prefixed form of call to a tagged operation. + (Analyze_Call): Remove code that issues an error for limited function + calls in illegal contexts, as we now support all of the contexts that + were forbidden here. + Allow a function call that returns a task.and appears as the + prefix of a selected component. + (Analyze_Reference): Give error message if we try to make a 'Reference + for an object that is atomic/aliased without its type having the + corresponding attribute. + (Analyze_Call): Remove condition checking for attributes to allow + calls to functions with inherently limited results as prefixes of + attributes. Remove related comment about Class attributes. + (Analyze_Selected_Component): If the prefix is a remote type, check + whether this is a prefixed call before reporting an error. + (Complete_Object_Operation): If the controlling formal is an access to + variable reject an actual that is a constant or an access to one. + (Try_Object_Operation): If prefix is a tagged protected object,retrieve + primitive operations from base type. + + * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a + build-in-place + function call and call Make_Build_In_Place_Call_In_Anonymous_Context. + (Expand_N_Selected_Component): Test for prefix that is a build-in-place + function call and call Make_Build_In_Place_Call_In_Anonymous_Context. + (Expand_N_Slice): Test for prefix that is a build-in-place function call + and call Make_Build_In_Place_Call_In_Anonymous_Context. + (Analyze_Call): Remove code that issues an error for limited function + calls in illegal contexts, as we now support all of the contexts that + were forbidden here. + New calling sequence for Get_Simple_Init_Val + (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test + (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test + +2008-04-08 Hristian Kirtchev <kirtchev@adacore.com> + Ed Schonberg <schonberg@adacore.com> + Robert Dewar <dewar@adacore.com> + + * exp_ch2.adb: Minor reformatting. + (Expand_Entry_Index_Parameter): Set the type of the identifier. + (Expand_Entry_Reference): Add call to Expand_Protected_Component. + (Expand_Protected_Component): New routine. + (Expand_Protected_Private): Removed. + Add Sure parameter to Note_Possible_Modification calls + + * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The + generated subprogram declaration must inherit the overriding indicator + from the instantiation node. + (Validate_Access_Type_Instance): If the designated type of the actual is + a limited view, use the available view in all cases, not only if the + type is an incomplete type. + (Instantiate_Object): Actual is illegal if the formal is null-excluding + and the actual subtype does not exclude null. + (Process_Default): Handle properly abstract formal subprograms. + (Check_Formal_Package_Instance): Handle properly defaulted formal + subprograms in a partially parameterized formal package. + Add Sure parameter to Note_Possible_Modification calls + (Validate_Derived_Type_Instance): if the formal is non-limited, the + actual cannot be limited. + (Collect_Previous_Instances): Generate instance bodies for subprograms + as well. + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't + try to set RM_Size. + Add Sure parameter to Note_Possible_Modification calls + (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call + (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for + constant overlaid by variable and issue warning. + Use new Is_Standard_Character_Type predicate + (Analyze_Record_Representation_Clause): Check that the specified + Last_Bit is not less than First_Bit - 1. + (Analyze_Attribute_Definition_Clause, case Address): Check for + self-referential address clause + + * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the + detection mechanism when the lhs is a prival. + (Analyze_Assignment): Call Check_Unprotected_Access to detect + assignment of a pointer to protected data, to an object declared + outside of the protected object. + (Analyze_Loop_Statement): Check for unreachable code after loop + Add Sure parameter to Note_Possible_Modication calls + Protect analysis from previous syntax error such as a scope mismatch + or a missing begin. + (Analyze_Assignment_Statement): The assignment is illegal if the + left-hand is an interface. + + * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check + violation of restriction No_Implicit_Conditionals + Add Sure parameter to Note_Possible_Modication calls + Use new Is_Standard_Character_Type predicate + (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting + call as operator. Fixes problems (e.g. validity checking) which + come from the result looking as though it does not come from source). + (Resolve_Call): Check case of name in named parameter if style checks + are enabled. + (Resolve_Call): Exclude calls to Current_Task as entry formal defaults + from the checking that such calls should not occur from an entry body. + (Resolve_Call): If the return type of an Inline_Always function + requires the secondary stack, create a transient scope for the call + if the body of the function is not available for inlining. + (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays + that are actuals for in-out formals. + (Try_Object_Operation): If prefix is a tagged protected object,retrieve + primitive operations from base type. + (Analyze_Selected_Component): If the context is a call to a protected + operation the parent may be an indexed component prior to expansion. + (Resolve_Actuals): If an actual is of a protected subtype, use its + base type to determine whether a conversion to the corresponding record + is needed. + (Resolve_Short_Circuit): Handle pragma Check + + * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object) + Use new Is_Standard_Character_Type predicate + (Eval_Relational_Op): Catch more cases of string comparison + +2008-04-08 Robert Dewar <dewar@adacore.com> + Gary Dismukes <dismukes@adacore.com> + + * s-rident.ads: Add No_Default_Initialization restriction + + * exp_tss.adb: + (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case + (Set_TSS): Handle No_Default_Initialization case + + * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction + No_Default_Initialization + (Expand_N_Subprogram_Body): Remove redundant initialization of out + parameters when Normalize_Scalars is active. + (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp + Fix casing error in formal parameter name in call + (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by + (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a + dispatching call on VM targets. + +2008-04-08 Gary Dismukes <dismukes@adacore.com> + Thomas Quinot <quinot@adacore.com> + + * exp_ch7.adb (Find_Final_List): Change the test for generating a + selected component from an access type's Associated_Final_Chain to + check for the presence of that field, rather than assuming it exists + for all named access types. + (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a + procedure to call at the end of the generated cleanup procedure. + (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and + and an At_End_Proc already exists in the handled sequence of statements + for which cleanup actions are being expanded, the original cleanup + action must be preserved. + +2008-04-08 Hristian Kirtchev <kirtchev@adacore.com> + Ed Schonberg <schonberg@adacore.com> + Robert Dewar <dewar@adacore.com> + Gary Dismukes <dismukes@adacore.com> + + * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry, + Build_Unprotected_Subprogram_Body): Generate debug info for + declarations related to the handling of private data in task and + protected types. + (Debug_Private_Data_Declarations): New subprogram. + (Install_Private_Data_Declarations): Remove all debug info flagging. + This is now done by Debug_Private_Data_Declarations at the correct + stage of expansion. + (Build_Simple_Entry_Call): If the task name is a function call, expand + the prefix into an object declaration, and make the surrounding block a + task master. + (Build_Master_Entity): An internal block is a master if it wraps a call. + Code reformatting, update comments. Code clean up. + (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address. + (Replicate_Entry_Formals): If the formal is an access parameter or + anonymous access to subprogram, copy the original tree to create new + entities for the formals of the subprogram. + (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable + for tasks to store the value passed using pragma Relative_Deadline. + (Make_Task_Create_Call): Add the Relative_Deadline argument to the + run-time call to create a task. + (Build_Wrapper_Spec): If the controlling argument of the interface + operation is an access parameter with a non-null indicator, use the + non-null indicator on the wrapper. + + * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when + present, which it may not be in the case where the type entity is an + incomplete view brought in by a limited with. + (Analyze_Task_Type): Only retrieve the full view when present, which it + may not be in the case where the type entity is an incomplete view brought + in by a limited with. + (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for + private components of a protected type, to prevent the generation of freeze + nodes for which there is no proper scope of elaboration. + + * exp_util.ads, exp_util.adb + (Remove_Side_Effects): If the expression is a function call that returns a + task, expand into a declaration to invoke the build_in_place machinery. + (Find_Protection_Object): New routine. + (Remove_Side_Effects): Also make a copy of the value + for attributes whose result is of an elementary type. + (Silly_Boolean_Array_Not_Test): New procedure + (Silly_Boolean_Array_Xor_Test): New procedure + (Is_Volatile_Reference): New function + (Remove_Side_Effects): Use Is_Volatile_Reference + (Possible_Bit_Aligned_Component): Handle slice case properly + + * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false + case test to Exp_Util + (Expand_Packed_Xor): Move silly true/true case test to Exp_Util + +2008-04-08 Thomas Quinot <quinot@adacore.com> + + * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name + in call + (Add_RACW_Features): When processing an RACW in another unit than the + main unit, set Body_Decls to No_List to indicate that the bodies of + the type's TSS must not be generated. + (GARLIC_Support.Add_RACW_Read_Attribute, + GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if + Body_Decls is No_List. + (PolyORB_Support.Add_RACW_Read_Attribute, + PolyORB_Support.Add_RACW_Write_Attribute, + PolyORB_Support.Add_RACW_From_Any, + PolyORB_Support.Add_RACW_To_Any, + PolyORB_Support.Add_RACW_TypeCode): Same. + (Transmit_As_Unconstrained): New function. + (Build_Ordered_Parameters_List): Use the above to order parameters. + (GARLIC_Support.Build_General_Calling_Stubs): + Use the above to determine which parameters to unmarshall using 'Input + at the point where their temporary is declared (as opposed to later on + with a 'Read call). + (PolyORB_Support.Build_General_Calling_Stubs): + Use the above to determine which parameters to unmarshall using From_Any + at the point where their temporary is declared (as opposed to later on + with an assignment). + +2008-04-08 Ed Schonberg <schonberg@adacore.com> + + * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is + an Input function for an access type, do not perform default + initialization on the local variable that receives the value, to + prevent spurious warnings when the type is null-excluding. + +2008-04-08 Robert Dewar <dewar@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Freeze_Entity): Improve warnings on access types in pure + units. + (Size_Known): Generic formal scalar types have known at compile + time size, so remove check. + Fix casing error in formal parameter name in call + (Freeze_Subprogram): If the subprogram is a user-defined operator, + recheck its overriding indication. + +2008-04-08 Vincent Celier <celier@adacore.com> + + * gnat1drv.adb: Send all messages indicating an error to standard error + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * gnatbind.adb (Restriction_Could_Be_Set): New procedure + (List_Applicable_Restrictions): Do not list existing restrictions + +2008-04-08 Thomas Quinot <quinot@adacore.com> + + * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets: + add a pointer to generic sockets literature + do not mention that the given example is "typical" usage. + Remove obsolete comment about multicast not being supported on Windows. + (Connect_Socket): Make Server mode IN rather than IN OUT + since this formal is never modified. + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to + the declaration for some different entity. + (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface + list is precent (following the parent subtype indication), display + appropriate "and" keyword. + + * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize + Remove unnecessary calls to Init_Size_Align and Init_Esize. + Add notes on use of Parent field of an Itype + +2008-04-08 Ed Schonberg <schonberg@adacore.com> + Robert Dewar <dewar@adacore.com> + Gary Dismukes <dismukes@adacore.com> + + * lib-xref.adb (Is_On_LHS): Remove dead code + (Output_Overriden_Op): If the overridden operation is itself inherited, + list the ancestor operation, which is the one whose body or absstract + specification is actually being overridden. For source navigation + purposes. + + * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether + operation is primitive for the type. + (Declare_Inherited_Private_Subprograms): If the new operation overrides + an inherited private subprogram, set properly the Overridden_Operation + attribute, for better cross-reference information. + (Analyze_Package_Specification): Do late analysis of spec PPCs + (Install_Private_Declaration, Uninstall_Declarations): Save/restore + properly the full view and underlying full views of a private type in a + child unit, whose full view is derived from a private type in a parent + unit, and whose own full view becomes visible in the child body. + + * sem_disp.adb (Check_Dispatching_Operation): When a body declares a + primitive operation after the type has been frozen, add an explicit + reference to the type and the operation, because other primitive + references have been emitted already. + (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a + dispatching call on VM targets. + +2008-04-08 Vincent Celier <celier@adacore.com> + Thomas Quinot <quinot@adacore.com> + + * make.adb: (Gnatmake_Called): Remove, no longer necessary + (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called + is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files". + (Insert_Project_Sources): Take into account index in multi-unit source + files. + After building a library project, delete all temporary files. + (Initialize): Reset current output after parsing project file. + (Collect_Arguments_And_Compile): Never insert in the queue the sources + of library projects that are externally built. + Put file name in error and inform messages if -df is used + (Display): If invoked with -d7, do not display path names, but only + file names. + + * makeutl.ads (Path_Or_File_Name): New function + (Path_Or_File_Name): New function + +2008-04-08 Arnaud Charlet <charlet@adacore.com> + + * Make-lang.in: Disable warnings during first stage of bootstrap + Get rid of gnatbl. + Update dependencies. + +2008-04-08 Vincent Celier <celier@adacore.com> + + * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical + case to decide if ALI object file is included in library. + (Build_Library): Never attempt to build a library if the project is + externally built. + +2008-04-08 Thomas Quinot <quinot@adacore.com> + + * nlists.adb (Is_Non_Empty_List): Remove redundant test. First + (No_List) is defined to return Empty. + +2008-04-08 Jose Ruiz <ruiz@adacore.com> + + * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve + documentation. + Update comments. + (Read_Default_Search_Dirs): Do not consider spaces as path separators + because spaces may be part of legal paths. + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * par-ch11.adb (P_Exception_Handler): Check indentation level for + handler + +2008-04-08 Ed Schonberg <schonberg@adacore.com> + + * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized" + in a type declaration, if this is not an interface declaration or + private type extension. + +2008-04-08 Vincent Celier <celier@adacore.com> + + * prj-util.adb (Executable_Of): New String parameter Language. When + Ada_Main is False and Language is not empty, attempt to remove the body + suffix or the spec suffix of the language to get the base of the + executable file name. + (Put): New Boolean parameter Lower_Case, defauilted to False. When + Lower_Case is True, put the value in lower case in the name list. + (Executable_Of): If there is no executable suffix in the configuration, + then do not modify Executable_Extension_On_Target. + + * prj-util.ads (Executable_Of): New String parameter Language, + defaulted to the empty string. + (Put): New Boolean parameter Lower_Case, defauilted to False + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * scng.adb (Scan_Identifier): Handle case of identifier starting with + wide character using UTF-8 encoding. + +2008-04-08 Javier Miranda <miranda@adacore.com> + + * sem.adb (Analyze): Consider case in which we analyze an empty node + that was generated by a call to a runtime function that is not + available under the configurable runtime. + + * sem.ads (Inside_Freezing_Actions): New flag. + (Save_Check_Policy_List): New field in scope stack entry + +2008-04-08 Ed Schonberg <schonberg@adacore.com> + Robert Dewar <dewar@adacore.com> + + * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for + the ancestor part of an extension aggregate for a limited type. + (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with + enumeration index bounds. + (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices + when array is too short. + (Check_Expr_OK_In_Limited_Aggregate): Move function + Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and + change name). + (Resolve_Array_Aggregate.Resolve_Aggr_Expr): + Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited + component associations. + (Check_Non_Limited_Type): Moved to outer level and renamed. + (Resolve_Record_Aggregate): In an extension aggregate, an association + with a box initialization can only designate a component of the + extension, not a component inherited from the given ancestor + + * sem_case.adb: Use new Is_Standard_Character_Type predicate + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with + negative scale + (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1) + Properly handle case where Aft > Scale and input number is less than + one. + +2008-04-08 Hristian Kirtchev <kirtchev@adacore.com> + + * s-stoele.ads, s-soflin.ads: Move the location of + Dummy_Communication_Block from System.Storage_Elements to + System.Soft_Links. + + * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to + emulate Communication_Block in certain scenarios. + +2008-04-08 Hristian Kirtchev <kirtchev@adacore.com> + + * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New + subprogram. + Add new subtype S_WWC, unchecked conversion routines From_WWC and + To_WWC. + (I_WWC, O_WWC): New routines for input and output of + Wide_Wide_Character. + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * stringt.adb (Write_String_Table_Entry): Handle wide characters + properly + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * styleg.adb (Check_Comment): Allow special char after -- in + non-end-of-line case + +2008-04-08 Robert Dewar <dewar@adacore.com> + + * stylesw.adb: Implement -gnaty + - y options + (Set_GNAT_Style_Check_Options): Includ I in style check string + + * stylesw.ads: Add comments for new style switch options + +2008-04-08 Sergey Rybin <rybin@adacore.com> + + * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux + to the set of the GNAT components needed by ASIS. + +2008-04-08 Bob Duff <duff@adacore.com> + + * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9). + +2008-04-08 Tristan Gingold <gingold@adacore.com> + + * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type. + Improve error message generation. + +2008-04-08 Vincent Celier <celier@adacore.com> + + * a-direct.adb (Start_Search): Check for Name_Error before checking for + Use_Error, as specified in the RM. Check if directory is open and raise + Use_Error if it is not. + +2008-04-08 Vincent Celier <celier@adacore.com> + Robert Dewar <dewar@adacore.com> + + * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when + AAMP_On_Target is set. + + * vms_data.ads: Add NOxxx to style check switch list + Add entry COMPONENTS for -gnatVe + Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs= + (/SUBDIRS=). + (GCC_Switches): Add /ALL_BACK_END_WARNINGS. + Add qualifiers for gnatmetric coupling options + Add note that -gnata enables all checks + Add entries [NO]PARAMETER_ORDER for -gnatw.p[P] + Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option + New warning flag -gnatw.e + + * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy + Add entry for -gnatyN (forgotten before) + Line for new warning switch -gnatw.p + New warning flag -gnatw.e + + * gnat_ugn.texi: Add documentation fpr project file switch -aP + Document -gnaty - + y + Replace occurences of "package specification" with "package spec" + Define preprocessing symbols in documentation of gnatprep + Clarify reason for distinguishing overflow checking + Add documentation for project-aware tool switches -eL and --subdirs= + Complete list of configuration pragmas + Specify that, even when gnatmake switch -x is used, mains on the command + line need to be sources of project files. + Editing of gnatcheck/gnatmetric doc. + Add documentation for -gnatw.p/-gnatw.P + Add missing documentation for -fno-inline-functions. + Add documentation for -gnatw.e + + * gnat_rm.texi: Add documentation for No_Default_Initialization + Replace occurences of "package specification" with "package spec" + Document use of * in Warnings Off string + Update documentation of alignment/component clauses. + Add documentation for Invalid_Value + Document new consistency rule for Optimize_Alignment + Add documentation for Precondition and Postcondition pragmas + Add documentation for Check and Check_Policy pragmas + Document new Enum_Val attribute + Remove requirement for static string in pragma Assert + Add documentation on GNAT.Time_Stamp + + * ug_words: add entry for -gnatVe + Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER + Add entry for -gnatw.e + + * debug.adb: Add missing documentation for d.a flag + Document new -gnatd.a switch. + Add documentation for new gnatmake debug switch -df + +2008-04-08 Thomas Quinot <quinot@adacore.com> + + * gen-soccon.c: Bump year in copyright notices. + + * g-soccon-vxworks.ads: Add new constant IP_PKTINFO + +2008-04-08 Eric Botcazou <ebotcazou@adacore.com> + + * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows. + Minor reformatting. + +2008-04-08 Robert Dewar <dewar@adacore.com> + Bob Duff <duff@adacore.com> + + * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops, + Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp + + * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly + + * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly + + * g-trasym.ads: Minor comment improvements + + * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly + + * a-sequio.ads, a-direio.ads: improve message for tagged type + + * a-strunb.ads: Minor reformatting + + * a-tifiio.adb: Minor reformatting + + * atree.adb (Fix_Parents): Use clearer names for formals + Cleanup and simplify code + Use named notation in calls + + * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in + confusing calls + + * uintp.adb: Used named notation for some confusing calls + + * bindusg.adb: Minor change in one line of output + + * cstand.adb: Minor reformatting of src representation of Standard + + * a-assert.ads: Add comment. + + * g-decstr.adb: Fix bad indentation + + * expander.ads, expander.adb: Code clean up. + + * sem_dist.ads: Minor comment improvement + + * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb, + s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting + + * i-cstrin.adb: Fix casing error in formal parameter name in call + +2008-04-08 Ed Schonberg <schonberg@adacore.com> + + * binde.adb (Gather_All_Links, Gather_Dependencies): units that are + mentioned in limited_with_clauses to do create semantic dependencies + even though they appear in the ali file. + +2008-04-08 Emmanuel Briot <briot@adacore.com> + + * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return + statement. + (Get_Configuration): New subprogram. + + * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree + These optional parameters help preserve the casing of the project's name + when pretty-printing. + +2008-04-08 Jerome Lambourg <lambourg@adacore.com> + Arnaud Charlet <charlet@adacore.com> + + * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function, + then use __gnat_set_exit_status to report the returned status code. + + * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error + messages on .NET, since some constructs of the language are not + properly supported. + + * gnatlink.adb (Gnatlink): In case the command line is too long for the + .NET linker, gnatlink now concatenate all .il files and pass this to + ilasm. + +2008-04-07 Aurelien Jarno <aurelien@aurel32.net> + Xavier Grave <grave@ipno.in2p3.fr> + + * Makefile.in: Add make ifeq define for mips/mipsel support. + * g-soccon-linux-mips.ads, system-linux-mipsel.ads, + system-linux-mips.ads: New files. + +2008-04-07 Aurelien Jarno <aurelien@aurel32.net> + + * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to + detect systems using GNU libc. + * gsocket.h: ditto. + * socket.c: ditto. + * adaint.c: ditto. + * link.c: ditto. + +2008-04-07 Aurelien Jarno <aurelien@aurel32.net> + + * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New + constant constant for sysconf call. + (bit_field): New packed boolean type used by cpu_set_t. + (cpu_set_t): New type corresponding to the C type with + the same name. Note that on the Ada side we use a bit + field array for the affinity mask. There is not need + for the C macro for setting individual bit. + (pthread_setaffinity_np): New imported routine. + * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb + on GNU/kFreeBSD. + +2008-04-07 Eric Botcazou <ebotcazou@adacore.com> + + * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too. + +2008-04-07 Eric Botcazou <ebotcazou@adacore.com> + + * gigi.h (create_subprog_type): Remove returns_with_dsp parameter. + * decl.c (gnat_to_gnu_entity): Adjust for above new prototype. + * utils.c (create_subprog_type): Remove returns_with_dsp parameter. + * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with + Return by Depressed Stack Pointer. + +2008-04-06 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (is_variable_size): Do not unconditionally return false + on non-strict alignment platforms. + +2008-04-06 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (rest_of_type_decl_compilation_no_defer): New local function + used to process all the variants of the specified type. + (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral + types too. Call rest_of_type_decl_compilation_no_defer if undeferring. + (rest_of_type_decl_compilation): Likewise. + * utils.c (gnat_pushdecl): Propagate the name to all variants of type. + +2008-04-03 Paolo Bonzini <bonzini@gnu.org> + + * gigi.h (insert_block): Kill. + * utils.c (insert_block): Kill. + +2008-04-02 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose + type has self-referential size, get the size from the initializing + expression directly if it is also a constant whose nominal type + has self-referential size. + +2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + PR ada/33688 + * g-soccon-darwin.ads: Define new constant IP_PKTINFO. + + PR ada/33857 + * env.c: Always include crt_externs.h if __APPLE__ is defined. + (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined. + +2008-04-01 Andreas Jaeger <aj@suse.de> + + * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and + IP_PKTINFO. + +2008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * g-table.adb, g-tasloc.adb, g-traceb.ads, + g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c, + gnatbind.adb, gnatchop.adb, gnatcmd.adb, + gnatcmd.ads, gnatdll.adb, gnatfind.adb, + gnatlink.adb, gnatmem.adb, gprep.adb, + i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads, + i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb, + layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb, + lib-xref.ads, lib.adb, link.c, live.ads, + make.adb, makegpr.adb, makeutl.adb, math_lib.adb, + mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads, + misc.c, mlib-prj.adb, mlib-tgt-hpux.adb, + mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads, + namet.adb, namet.h, nlists.adb, nlists.ads, + nlists.h, opt.ads, osint-b.ads, osint-c.adb, + osint-c.ads, osint.adb, osint.ads, output.ads, + par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb, + par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb, + par-endh.adb, par-labl.adb, par-prag.adb, + par-sync.adb, par-tchk.adb, par-util.adb, + par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads, + prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb, + prj-nmsc.ads, prj-pp.adb, prj-proc.adb, + prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos. + +2008-03-31 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null + size if it has overflowed. + +2008-03-31 Olivier Hainque <hainque@adacore.com> + Eric Botcazou <ebotcazou@adacore.com> + + * utils2.c (find_common_type): Document assumption on t1/t2 vs + lhs/rhs. Force use of lhs type if smaller, whatever the modes. + +2008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads, + einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb, + exp_imgv.adb, exp_intr.adb, exp_pakd.adb, + exp_pakd.ads, exp_prag.adb, exp_smem.adb, + exp_tss.ads, exp_util.adb, exp_util.ads, + exp_vfpt.adb, freeze.adb, freeze.ads, + frontend.adb, g-alleve.adb, g-altcon.adb, + g-altive.ads, g-alveop.ads, g-alvevi.ads, + g-arrspl.adb, g-busorg.ads, g-calend.adb, + g-calend.ads, g-casuti.ads, g-cgideb.adb, + g-comlin.adb, g-comlin.ads, g-curexc.ads, + g-debpoo.adb, g-debpoo.ads, g-decstr.adb, + g-dirope.adb, g-dirope.ads, g-dynhta.ads, + g-dyntab.adb, g-encstr.ads, g-excact.ads, + g-except.ads, g-expect.ads, g-heasor.adb, + g-hesora.adb, g-hesorg.adb, g-htable.ads, + g-locfil.ads, g-md5.adb, g-md5.ads, + g-memdum.ads, g-moreex.ads, g-os_lib.adb, + g-pehage.adb, g-pehage.ads, g-regexp.adb, + g-regexp.ads, g-regpat.adb, g-regpat.ads, + g-soccon-aix.ads, g-soccon-darwin.ads, + g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads, + g-soccon-hpux.ads, g-soccon-irix.ads, + g-soccon-linux-64.ads, g-soccon-linux-ppc.ads, + g-soccon-linux-x86.ads, g-soccon-lynxos.ads, + g-soccon-mingw.ads, g-soccon-solaris-64.ads, + g-soccon-solaris.ads, g-soccon-tru64.ads, + g-soccon-vms.ads, g-soccon-vxworks.ads, + g-soccon.ads, g-socket.adb, g-socket.ads, + g-socthi-mingw.adb, g-socthi-vms.adb, + g-socthi-vxworks.adb, g-soliop-mingw.ads, + g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb, + g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment + typos. + +2008-03-27 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag + if the procedure is imported. + +2008-03-26 Arnaud Charlet <charlet@adacore.com> + + * adaint.c: Fix warnings. + +2008-03-26 Arnaud Charlet <charlet@adacore.com> + + * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec. + +2008-03-26 Arnaud Charlet <charlet@adacore.com> + + * a-witeio.adb: Fix problem with Current_Output (introduce Self). + Fix problem of status check for null file + +2008-03-26 Arnaud Charlet <charlet@adacore.com> + + * s-proinf-irix-athread.ads, s-vxwork-mips.ads, + s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, + s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads, + i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads, + s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update + comments. + +2008-03-26 Thomas Quinot <quinot@adacore.com> + + PR ada/33688 + * g-socket.ads, g-socket.adb (Options, Set_Socket_Option, + Get_Socket_Option): Add support for Receive_Packet_Info. + + * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads, + g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, + g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads, + g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads, + g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add + new constants SO_REUSEPORT and IP_PKTINFO + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb, + a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb, + a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads, + a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads, + a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads, + a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads, + s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads, + s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, + a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads, + s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads, + s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, + s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads, + s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb, + s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads, + s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads, + s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads, + s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads, + s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb, + s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb, + s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb, + a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads, + a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads, + s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads, + s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads, + s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads, + s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb, + s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb, + a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb, + a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb, + s-tasloc.adb: Minor reformatting. + Update comments. + Remove "used for" sections from comments. + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb, + s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb, + s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads, + s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb, + s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, + a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb, + a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, + a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads, + a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads, + a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads, + a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb, + i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads, + a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb, + s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads, + s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads, + double spaced if it fits on one line and otherwise single spaced. + +2008-03-26 Arnaud Charlet <charlet@adacore.com> + + * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, + s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, + s-taprop-posix.adb (Create_Task): Do not attempt to set task priority + or task info if the thread could not be created. + +2008-03-26 Arnaud Charlet <charlet@adacore.com> + + * gnatvsn.ads (Library_Version): Bump to 4.4. + (Current_Year): Bump to 2008. + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record + + * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure + + * debug.adb: Add debug flags d.r and d.v + Add debug flag .T (Optimize_Alignment (Time)) + Add debug flag .S (Optimize_Alignment (Space)) + + * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components + depending on setting of relevant debug flags. + Replace use of Warnings_Off by Has_Warnings_Off + (Freeze_Entity): In circuit for warning on suspicious convention + actuals, do not give warning if subprogram has same entity as formal + type, or if subprogram does not come from source. + (Freeze_Entity): Don't reset Is_Packed for fully rep speced record + if Optimize_Alignment set to Space. + + * frontend.adb: Add call to Sem_Warn.Initialize + Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings + Reset Optimize_Alignment mode from debug switches .S and .T + + * layout.adb (Layout_Composite_Object): Rewritten for + Optimize_Aligment pragma. + + * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment + mode. + + * opt.ads, opt.adb: (Optimize_Alignment): New global switch + + * par-prag.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. instead, adjustments throughout to accomodate + this change. Add entry for pragma Optimize_Alignment + + * sem_prag.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. + instead, adjustments throughout to accomodate this change. + (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg + (Favor_Top_Level): Use new function Is_Access_Subprogram_Type + Add implementation of pragma Optimize_Alignment + +2008-03-26 Vincent Celier <celier@adacore.com> + + * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line): + Improve memory usage to avoid use of stack. + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * a-teioed.ads: Correct value of Default_Fill + + * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem + with Current_Output (introduce Self). + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * checks.adb (Ensure_Valid): Capture valid status if possible + (eliminate checks) + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * stand.ads: Deal with reordering of package standard declarations + + * cstand.adb: Put package Standard declarations in proper order + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. instead. + (OK_To_Reorder_Components): New flag + (Has_Entries): Code cleanup. + (Warnings_Off_Used): New flag + (Warnings_Off_Used_Unmodified): New flag + (Warnings_Off_Used_Unreferenced): New flag + (Has_Warnings_Off): New function + (Has_Unmodified): New function + (Has_Unreferenced): New function + (Is_Trivial_Subprogram): New flag + (Is_Static_Dispatch_Table_Entity): New attribute. + Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind + (more consistent with other similar names) + (Access_Subprogram_Type): New classification function + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * errout.ads: Document new !! insertion sequence + + * errout.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. instead. + Replace use of Warnings_Off by Has_Warnings_Off + (Error_Msg_Internal): Don't delete warning ending in !! + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * par.adb (Check_No_Right_Paren): Removed no longer used + + * par-ch10.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. instead. + + * par-ch10.adb (P_Subunit): Improvement in error recovery and message + + * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb, + par-ch4.adb: Minor improvements in error recovery and messages. + + * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as + non-serious + + * par-ch9.adb: Minor improvements in error recovery and messages + (P_Protected): Better error recovery for "protected type x;" + + * par-util.adb: Minor improvements in error recovery and messages + (Check_No_Right_Paren): Removed no longer used + +2008-03-26 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Replace_Type): When checking for self-reference, verify + that the prefix of an attribute is the type of the aggregate being + expanded. + +2008-03-26 Javier Miranda <miranda@adacore.com> + Robert Dewar <dewar@adacore.com> + + * exp_attr.adb (N_Pragma): Chars field removed. + (Expand_N_Attribute_Reference): If the designated type associated with + attribute 'Unrestricted_Access is a subprogram entity then replace it + by an E_Subprogram_Type itype. + Implement attribute Old + + * sem_attr.ads (Attribute_Class_Array): Move to snames.ads + + * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation. + Replace call to + New_Internal_Entity by call to Create_Itype to centralize calls + building itypes, ad propagate the convention of the designated + subprogram. In addition, disable the machinery cleaning constant + indications from all entities in current scope when 'Unrestricted_Access + corresponds with a node initializing a dispatch table slot. + (Analyze_Attribute): Parameterless attributes returning a string or a + type will not be called with improper arguments, so we can remove junk + code that was dealing with this case. + Implement attribute Old + + * snames.ads, snames.h, snames.adb: Add entries for attribute Old + Add entry for pragma Optimize_Alignment + New standard names Sync and Synchronize + +2008-03-26 Robert Dewar <dewar@adacore.com> + Arnaud Charlet <charlet@adacore.com> + + * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise + stmt. + (No_Exception_Propagation_Active): New function. + (Expand_Exception_Handlers): Use No_Exception_Propagation_Active. + Update comments, and review all uses of No_Exception_Propagation, which + are now correct and in sync with what gigi expects. + + * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New + function. + (Expand_Exception_Handlers): Use No_Exception_Propagation_Active. + Update comments, and review all uses of No_Exception_Propagation, which + are now correct and in sync with what gigi expects. + +2008-03-26 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Access_Definition): If the access type is the return + result of a protected function, create an itype reference for it + because usage will be in an inner scope from the point of declaration. + (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and + OK_To_Reorder_Components. + (Make_Index): If an overloaded range includes a universal integer + interpretation, resolve to Standard.Integer. + (Analyze_Subtype_Indication): Copy Convention to subtype + (Check_Abstract_Interfaces): Complete semantic checks on the legality of + limited an synchronized progenitors in type declaration and private + extension declarations. + + * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a + protected subprogram body, determine proper scope from subprogram + declaration. + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for + No_Run_Time_Mode + +2008-03-26 Gary Dismukes <dismukes@adacore.com> + + * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation + of a heap allocator for a limited unconstrained function return when + resstriction No_Allocators is active. + (Analyze_Allocator): The restriction No_Allocators is now only checked + on allocators that have Comes_From_Source set, as per RM-H.4(7). + + * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation + of a heap allocator for a limited unconstrained function return when + resstriction No_Allocators is active. + (Analyze_Allocator): The restriction No_Allocators is now only checked + on allocators that have Comes_From_Source set, as per RM-H.4(7). + (Has_Fixed_Op): If the name in a function call is Standard."*" and the + operands are fixed-point types, the universal_fixed predefined operation + is used, regardless of whether the operand type (s) have a primitive + operation of the same name. + +2008-03-26 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute + Is_Static_Dispatch_Table + (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls + to Exchange_Declarations to exchange the private and full-view. Bug + found working in this issue. + (Expand_Dispatching_Call): Propagate the convention of the subprogram + to the subprogram pointer type. + (Make_Secondary_DT): Replace generation of Prim'Address by + Address (Prim'Unrestricted_Access) + (Make_DT): Replace generation of Prim'Address by + Address (Prim'Unrestricted_Access) + (Make_Disp_*_Bodies): When compiling for a restricted profile, use + simple call form for single entry. + (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch + tables of predefined primitives). + (Make_Secondary_DT): Add support to handle access to dispatch tables of + predefined primitives. + (Make_Tags): Add entities to Access_Dispatch_Table associated with + access to dispatch tables containing predefined primitives. + + * exp_ch6.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. instead, adjustments throughout to accomodate + this change. + (Register_Predefined_DT_Entry): Updated to handle the new contents + of attribute Access_Disp_Table (pointers to dispatch tables containing + predefined primitives). + + * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New + subprogram. + (Find_Interface_ADT): Updated to skip the new contents of attribute + Access_Dispatch_Table (pointers to dispatch tables containing predefined + primitives). + + * sem_util.adb (Has_Abstract_Interfaces): Add missing support for + concurrent types. + (Set_Convention): Use new function Is_Access_Subprogram_Type + (Collect_Interfaces_Info): Updated to skip the new contents of attribute + Access_Dispatch_Table (pointers to dispatch tables containing predefined + primitives). + + * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve + expanded code avoiding calls to Build_Predef_Prims. + (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding + call to Build_Get_Predefined_Prim_Op_Address. + +2008-03-26 Javier Miranda <miranda@adacore.com> + + * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized + subprogram Corresponding_Runtime_Package to know the runtime package + that will provide support to a given protected type. + + * exp_ch9.adb (Add_Private_Declarations, + Build_Protected_Subprogram_Call, + Build_Protected_Entry, Build_Simple_Entry_Call, + Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration, + Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code + cleanup using the new centralized subprogram Corresponding_Runtime + Package to know the runtime package that provides support to + a given protected type. + +2008-03-26 Ed Schonberg <schonberg@adacore.com> + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component + assignment is within the initialization procedure for a packed array, + and Initialize_Scalars is enabled, compile right-hand side with checks + off, because the value is purposely out of range. + +2008-03-26 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb: Add processing for GNAT SYNC + + * vms_conv.ads: (Command_Type): Add command Sync + + * vms_conv.adb (Initialize): Add Command_List data for new command Sync + + * vms_data.ads: Add entries for -gnatw.w + Add qualifier for gnatstub --header-file option + Add switches for GNAT SYNC + + * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC + (Add_Package_Name): New procedure + (Package_Name_List): New function + (Initialize): Add known package names to the list + (Register_New_Package): Add the new package name to the list + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb, + s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace + Raise_Exception by "raise with" construct. + +2008-03-26 Pascal Obry <obry@adacore.com> + + * Makefile.in: Add proper GNAT.Serial_Communications implementation on + supported platforms. + + * Makefile.rtl: Add g-sercom.o. + + * impunit.adb: Add g-sercom.adb. + + * s-crtl.ads (open): New routine. + (close): Likewise. + (write): Likewise. + + * s-osinte-mingw.ads (BYTE): New type. + (CHAR): Likewise. + (OVERLAPPED): Likewise. + (GENERIC_READ): New constant. + (GENERIC_WRITE): Likewise. + (OPEN_EXISTING): Likewise. + (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access + type instead. + (CreateFile): New routine. + (WriteFile): Likewise. + (ReadFile): Likewise. + (CloseHandle): Move next to the other file oriented routines. + + * g-sercom.ads: New unit. + + * g-sercom.adb: Default implementation, calls to this unit will raise + a program error exception. + + * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and + GNU/Linux implementations. + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind + + * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for + unchecked conversion for different conventions only for subprogram + pointers or on VMS. + +2008-03-26 Vincent Celier <celier@adacore.com> + + * osint-c.adb (Set_Library_Info_Name): Use canonical case file names + to check if the specified object file is correct. + +2008-03-26 Thomas Quinot <quinot@adacore.com> + + * sem_cat.adb (Validate_RACW_Primitives): Do not rely on + Comes_From_Source to exclude primitives from being checked. We want to + exclude predefined primitives only, so use the appropriate specific + predicate. Also, flag a formal parameter of an anonymous + access-to-subprogram type as illegal for a primitive operation of a + remote access to class-wide type. + +2008-03-26 Vincent Celier <celier@adacore.com> + + * prj-dect.adb (Parse_Package_Declaration): When a package name is not + known, check if it may be a missspelling of a known package name. In + not verbose, not mode, issue warnings only if the package name is a + possible misspelling. + In verbose mode, always issue a warning for a not known package name, + plus a warning if the name is a misspelling of a known package name. + + * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non + limited withs or limited withs are parse during one call. + (Parse_Single_Project): Post parse context clause in two passes: non + limited withs before current project and limited withs after current + project. + + * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended + project with the name With_Name, even if it is only extended indirectly. + (Recursive_Process): Process projects in order: first single withs, then + current project, then limited withs. + + * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended + project with the name With_Name, even if it is only extended indirectly. + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * scn.adb (Initialize_Scanner): Format messages belong on standard error + +2008-03-26 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is + a generic subprogram that is imported, do not attempt to compile + non-existent body. + + * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is + imported, do not generate a raise_program_error for the non-existent + body. + (Pre_Analyze_Actuals): If an error is detected during pre-analysis, + perform minimal name resolution on the generic to avoid spurious + warnings. + (Find_Actual_Type): the designated type of the actual in a child unit + may be declared in a parent unit without being an actual. + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ + * sinfo.ads, sinfo.adb (From_At_End): New flag + +2008-03-26 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on + operations that have an interface parameter. + (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag + Don't treat No_Return call as raise. + + * sem_disp.adb (Check_Dispatching_Operations): apply check for + non-primitive interface primitives to access parameters, not to all + parameters of an access type. + +2008-03-26 Ed Schonberg <schonberg@adacore.com> + + * sem_ch7.adb (Install_Parent_Private_Declarations): If the private + declarations of a parent unit are made visible when compiling a child + instance, the parent is not a hidden open scope, even though it may + contain other pending instance. + + * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a + hidden open scope for some child instance, it does affect the + visibility status of other stach entries. + (Analyze_Object_Renaming): Check that a class-wide object cannot be + renamed as an object of a specific type. + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite + recursion and raise SE directly. + (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is + set for formal type for IN mode parameter. + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table + (Initialize): New procedure + (Output_Warnings_Off_Warnings): New procedure + (Check_References): Suppress certain msgs if Is_Trivial_Subprogram + (Output_Non_Modifed_In_Out_Warnings): Ditto + (Warn_On_Unreferenced_Entity): Ditto + +2008-03-26 Vincent Celier <celier@adacore.com> + + * a-direct.adb (Start_Search): Raise Use_Error if the directory is not + readable. + +2008-03-26 Matthew Heaney <heaney@adacore.com> + + * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, + a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads: + Marked with clauses as private, and controlled operations as overriding + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * back_end.adb, back_end.ads: Minor reformatting + + * bindgen.adb: Minor clarification of comments + + * fname.ads: Minor comment fixes + + * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads, + prj-nmsc.adb, sem_aggr.adb: Minor reformatting + + * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb, + xsnames.adb: Remove warnings off pragma no longer needed + + * a-catizo.ads, a-calari.ads, a-calfor.adb, + a-calfor.ads: Fix header. + +2008-03-26 Tristan Gingold <gingold@adacore.com> + + * init.c: Do not adjust pc for HPARITH on alpha/vms. + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * lib-xref.adb: (OK_To_Set_Reference): New function + (Generate_Reference): Don't set referenced from occurrence in Warnings, + Unmodified, or Unreferenced pragma + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * alloc.ads: Add entries for Warnings_Off_Pragmas table + +2008-03-26 GNAT Script <nobody@adacore.com> + + * Make-lang.in: Makefile automatically updated + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c, + par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field + removed, use Chars (Pragma_Identifier (.. instead, adjustments + throughout to accomodate this change. + + * s-pooglo.ads, s-pooloc.ads: Minor comment updates + + * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not + Einfo.Set_Needs_Debug_Info) + +2008-03-26 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W + Add description for the new gnatstub option '--header-file' + clarification of -gnatwz/-gnatwZ + Add a "Irix-Specific Considerations" section to document the need to + set LD_LIBRARY_PATH when using the default shared runtime library. + Added documentation for both gcov and gprof. + + * gnat_rm.texi: Document that pragma Compile_Time_Warning generates + messages that are not suppressed when clients are compiled. + Add documentation of s-pooglo s-pooloc + Document the new GNAT.Serial_Communications API. + Add documentation for 'Old attribute + Add description of pragma Optimize_Alignment + + * ug_words: Add entries for -gnatw.w -gnatw.W + + * usage.adb: Add line for -gnatw.w (warn on warnings off) + +2008-03-25 Eric Botcazou <ebotcazou@adacore.com> + + Revert + 2008-03-05 Eric Botcazou <ebotcazou@adacore.com> + PR ada/35186 + * decl.c (maybe_pad_type): Avoid padding an integral type when + bumping its alignment is sufficient. + +2008-03-25 Arnaud Charlet <charlet@adacore.com> + + * exp_ch6.adb, exp_disp.adb: Update copyright notice. + Fix wrong formatting (lines too long) + +2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb, + a-calend-vms.adb, a-calend.adb, a-calend.ads, + a-calfor.adb, a-chahan.ads, a-chtgke.adb, + a-cihama.ads, a-ciorse.adb, a-clrefi.ads, + a-cohama.ads, a-comlin.ads, a-coorse.adb, + a-crbtgk.adb, a-direct.adb, a-except-2005.adb, + a-except-2005.ads, a-except.adb, a-except.ads, + a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb, + a-exextr.adb, a-filico.ads, a-finali.ads, + a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb, + a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads, + a-sequio.ads, a-strbou.ads, a-strfix.adb, + checks.adb, exp_ch3.adb, exp_ch4.adb, + exp_ch4.ads, exp_ch5.adb, exp_ch6.adb, + exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, + exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, + exp_dbug.ads, exp_disp.adb, exp_dist.adb, + exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos. + +2008-03-24 Robert Dewar <dewar@adacore.com> + + * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb, + s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb, + s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads, + s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb, + s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, + a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb, + a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, + a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads, + a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads, + a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads, + a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb, + i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads, + a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb, + s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads, + s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads, + double spaced if it fits on one line and otherwise single spaced. + +2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + PR documentation/15479 + * Make-lang.in (doc/gnat_ugn.texi) Renamed from ... + (doc/gnat_ugn_unw.texi): ... this, and adjusted. + (doc/gnat_ugn.info): Renamed from ... + (doc/gnat_ugn_unw.info): ... this. + (doc/gnat_ugn.dvi): Renamed from ... + (doc/gnat_ugn_unw.dvi): ... this. + (doc/gnat_ugn.pdf): Renamed from ... + (doc/gnat_ugn_unw.pdf): ... this. + (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi): + Adjusted. + * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename + unconditionally to gnat_ugn.info. Fix cross references to the + GNAT Reference Manual. Convert links to the GCC, GDB, Emacs, + and GNU make manuals to be proper texinfo links. + * gnat_rm.texi: Fix cross references to the GNAT User's Guide. + +2008-03-21 Olivier Hainque <hainque@adacore.com> + + * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb) + ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0). + +2008-03-21 Eric Botcazou <ebotcazou@adacore.com> + + * trans.c (addressable_p): Add notes on addressability issues. + +2008-03-21 Olivier Hainque <hainque@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * trans.c (addressable_p): Accept COND_EXPR when both arms + are addressable. + (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR. + (call_to_gnu): Do not use name reference in the error message + for a misaligned by_reference_parameter. The actual may be a + general expression. + +2008-03-18 Paolo Bonzini <bonzini@gnu.org> + + * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. + +2008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * gnat_rm.texi (Implementation Defined Characteristics) + (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where + appropriate. + * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind) + (Switches for gnatchop, Installing a library): Likewise. + +2008-03-10 Eric Botcazou <ebotcazou@adacore.com> + + * trans.c (emit_range_check): Do not emit the check if the base type + of the expression is the type against which its range must be checked. + +2008-03-08 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (maybe_pad_type): Use value_factor_p. + +2008-03-08 Eric Botcazou <ebotcazou@adacore.com> + + * lang.opt (nostdlib): Move around. + * misc.c (gnat_handle_option): Fix formatting. + (gnat_dwarf_name): Move around. + * trans.c (Case_Statement_to_gnu): Fix formatting. + (gnat_to_gnu): Likewise. + * utils.c (aggregate_type_contains_array_p): Likewise. + (create_subprog_decl): Likewise. + +2008-03-08 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not + bother propagating the TYPE_USER_ALIGN flag when creating a JM type. + +2008-03-08 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force + BIGGEST_ALIGNMENT when capping the alignment of records with + strict alignment and size clause. + +2008-03-08 Eric Botcazou <ebotcazou@adacore.com> + + * lang-specs.h: Pass -gnatwa if -Wall is passed. + * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused + and -Wuninitialized. + (gnat_post_options): Clear warn_unused_parameter. + +2008-03-08 Eric Botcazou <ebotcazou@adacore.com> + + * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently + aligned bit-fields, bumping the alignment of the record type if deemed + profitable. + (value_factor_p): Return false instead of 0. + +2008-03-08 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support + for scalar types with small alignment. + +2008-03-08 Eric Botcazou <ebotcazou@adacore.com> + + * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label + from that of the front-end's end label. + (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto + from that of the loop label. + +2008-03-07 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add + comment for the packed array type case. + * utils.c (build_template): Use a loop to strip padding or + containing records for justified modular types. + +2008-03-07 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously + large alignments specified for types. + (validate_alignment): Minor cleanup. + +2008-03-07 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined. + (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of + the component for packing, if possible, as well as if a component + size clause is specified. + <E_Record_Subtype>: For an array type used to implement a packed + array, get the component type from the original array type. + Try to get a smaller form of the component for packing, if possible, + as well as if a component size clause is specified. + (round_up_to_align): New function. + (make_packable_type): Add in_record parameter. + For a padding record, preserve the size. If not in_record and the + size is too large for an integral mode, attempt to shrink the size + by lowering the alignment. + Ditch the padding bits of the last component. + Compute sizes and mode manually, and propagate the RM size. + Return a BLKmode record type if its size has shrunk. + (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT. + Use Original_Array_Type to retrieve the type in case of an error. + Adjust call to make_packable_type. + (gnat_to_gnu_field): Likewise. + (concat_id_with_name): Minor tweak. + * trans.c (larger_record_type_p): New predicate. + (call_to_gnu): Compute the nominal type of the object only if the + parameter is by-reference. Do the conversion actual type -> nominal + type if the nominal type is a larger record. + (gnat_to_gnu): Do not require integral modes on the source type to + avoid the conversion for types with identical names. + (addressable_p): Add gnu_type parameter. If it is specified, do not + return true if the expression is not addressable in gnu_type. + Adjust recursive calls. + * utils.c (finish_record_type): Remove dead code. + +2008-03-05 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/35186 + * decl.c (maybe_pad_type): Avoid padding an integral type when + bumping its alignment is sufficient. + +2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * gnatfind.adb, gnatxref.adb: Fix argument parsing typos. + * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright + statement. + * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb, + gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb, + sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source + code output strings. + * sem_type.adb, system-vms-ia64.ads, system-vms.ads, + system-vms_64.ads: Fix typos in ada source code comments. + * sinfo-cn.adb: Remove incomplete sentence. + + PR documentation/15479 + * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word. + +2008-02-27 Samuel Tardieu <sam@rfc1149.net> + + PR ada/22255 + * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed. + +2008-02-27 Samuel Tardieu <sam@rfc1149.net> + + PR ada/34799 + * sem_ch13.adb (Analyze_Record_Representation_Clause): Check + that underlying type is present. + +2008-02-26 Tom Tromey <tromey@redhat.com> + + * misc.c (internal_error_function): Remove test of + USE_MAPPED_LOCATION. + * trans.c (gigi): Remove test of USE_MAPPED_LOCATION. + (Sloc_to_locus): Remove old location code. + +2008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and + `i.e.' by adding comma or `@:' as appropriate. + * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of + plain characters `C', use `@samp{C}'. + * gnat_ugn.texi (File Naming Rules, About gnatkr) + (Krunching Method): Likewise. + + * gnat_ugn.texi (Conventions): List environment variables and + metasyntactic variables. + (Compiling Programs): Fix notation of metasyntactic variables. + Add @file where appropriate. Use @file for file extensions, + @samp for strings. + * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp + instead of @file, @env instead of @code. + +2008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + PR documentation/15479 + * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..' + and `...' with `@dots{}' or `@enddots{}'. + + PR documentation/15479 + * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command, + use @command instead of @code, @option instead of @samp or @code, + @code instead of @var, @samp instead of @file. + + PR documentation/15479 + * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors + in Makefile rules, by using `&&' rather than `;'. + +2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + PR documentation/15479 + * gnat_ugn.texi: In non-code, avoid space before colon. + (Regular Expressions in gnatfind and gnatxref): Fix indentation. + (Examples of gnatxref Usage): Use @command{vi} instead of + @file{vi}. + (Character Set Control): Do not use @code for UTF-8. + (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not + use @code for IEEE. + * gnat_rm.texi (Aggregates with static bounds): Fix typo in code + sample. + * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years. + +2008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com> + + PR ada/35143 + * env.c: Add __rtems__ to if defined. + * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting. + * s-osinte-rtems.ads: Add To_Target_Priority prototype and + PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add + pragma Convention as required. + * gsocket.h: Make compile in and out of RTS. + * Makefile.in: Add system-rtems.ads. Build DEC extensions. + Use g-soccon-rtems.ads. + * g-soccon-rtems.ads, system-rtems.ads: New files. + +2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + PR other/35107 + * Make-lang.in (gnat1): Add $(GMPLIBS). + +2008-01-26 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (components_to_record): Improve comment. + +2008-01-22 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (components_to_record): Do not reuse the empty union type + if there is a representation clause on the record. + * trans.c (addressable_p): Return true for INTEGER_CST. + +2008-01-21 Eric Botcazou <ebotcazou@adacore.com> + + * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR + in pointer arithmetics. + * utils2.c (build_allocator): Likewise. + +2008-01-17 Eric Botcazou <ebotcazou@adacore.com> + + * utils.c (build_function_stub): Properly build the call expression. + +2008-01-14 Eric Botcazou <ebotcazou@adacore.com> + + * decl.c (gnat_to_gnu_entity) <object>: Process renamings + before converting the expression to the type of the object. + * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case. + Stabilize constructors for special wrapping types. + +2008-01-13 Eric Botcazou <ebotcazou@adacore.com> + + * trans.c (call_to_gnu): Invoke the addressable_p predicate only + when necessary. Merge some conditional statements. Update comments. + Rename unchecked_convert_p local variable to suppress_type_conversion. + Do not suppress conversions in the In case. + (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues + into account on non strict-alignment platforms. + +2008-01-12 Eric Botcazou <ebotcazou@adacore.com> + + * utils.c (aggregate_type_contains_array_p): New predicate. + (create_field_decl): In a packed record, force byte alignment + for fields without specified position that contain an array. + +2008-01-12 Eric Botcazou <ebotcazou@adacore.com> + + * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression. + +2008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca> + + PR ada/34466 + * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for + sysconf call. + (bit_field): New packed boolean type used by cpu_set_t. + (cpu_set_t): New type corresponding to the C type with + the same name. Note that on the Ada side we use a bit + field array for the affinity mask. There is not need + for the C macro for setting individual bit. + (pthread_setaffinity_np): New imported routine. + +2008-01-03 Tero Koskinen <tero.koskinen@iki.fi> + + PR ada/34647 + * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() + on OpenBSD as is done on other BSD systems. + + PR ada/34645 + * sysdep.c (__gnat_ttyname, getc_immediate_nowait, + getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate + I/O. + + PR ada/34644 + * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing + clearenv(). + + PR ada/34646 + * init.c (__gnat_error_handler, __gnat_install_handler, + __gnat_init_float): Define for OpenBSD. + + * initialize.c (__gnat_initialize): Define for OpenBSD. + + + +Copyright (C) 2008 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. |