| 2007-12-27 Samuel Tardieu <sam@rfc1149.net> | |
| PR ada/34553 | |
| * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() | |
| instead of mktemp() or tmpnam() on NetBSD. | |
| 2007-12-23 Eric Botcazou <ebotcazou@adacore.com> | |
| * trans.c (call_to_gnu): Make the temporary for non-addressable | |
| In parameters passed by reference. | |
| (addressable_p): Return true for STRING_CST and CALL_EXPR. | |
| 2007-12-19 Robert Dewar <dewar@adacore.com> | |
| * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: | |
| Add pragma Warnings (Off) for unassigned IN OUT arguments | |
| * sem_warn.adb (Output_Reference): Suppress messages for internal names | |
| (Check_References): Extensive changes to tune up warnings | |
| (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings | |
| (Has_Pragma_Unmodifed_Check_Spec): New function | |
| (Check_References): Implement pragma Unmodified | |
| (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified | |
| * par-prag.adb: Dummy entry for pragma Unmodified | |
| * sem_prag.adb: Implement pragma Unmodified | |
| * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag | |
| (Proc_Next_Component_Or_Discriminant): Fix typo. | |
| Update comments. | |
| * sem_util.adb (Note_Possible_Modification): Add processinng for pragma | |
| Unmodified. | |
| (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func, | |
| because the former already takes care of discarding the result. | |
| (Mark_Coextensions): Remove ununused initial value from Is_Dynamic. | |
| Add comment. | |
| * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified | |
| 2007-12-19 Eric Botcazou <ebotcazou@adacore.com> | |
| * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads, | |
| system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads, | |
| system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads, | |
| system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads, | |
| system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads, | |
| system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, | |
| system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, | |
| system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, | |
| system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, | |
| system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads | |
| (Dynamic_Trampolines_Used): Delete. | |
| * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto. | |
| Turn on stack probing mechanism on LynxOS. | |
| 2007-12-19 Bob Duff <duff@adacore.com> | |
| * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate | |
| the resulting tail recursion by hand. This prevents running out of | |
| memory on deeply nested concatenations, since Field2 is where the left | |
| operand of concatenations is stored. | |
| Fix bug (was returning OK_Orig in some cases). Fix return subtype to | |
| clarify that it can only return OK or Abandon. | |
| * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left | |
| operand by iteration, in order to avoid running out of memory on | |
| deeply-nested concatenations. Use the Parent pointer to get back up the | |
| tree. | |
| (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First, | |
| Resolve_Op_Concat_Rest): New procedures split out of | |
| Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is | |
| clearer. | |
| * checks.adb (Remove_Checks): Use Traverse_Proc instead of | |
| Traverse_Func, because the former already takes care of discarding the | |
| result. | |
| * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func, | |
| because the former already takes care of discarding the result. | |
| (Remove_Warning_Messages): Use appropriate subtype for Status and | |
| Discard | |
| 2007-12-19 Ed Schonberg <schonberg@adacore.com> | |
| * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with | |
| discriminants forces expansion of the aggregate into assignments. | |
| (Init_Record_Controller): If the type of the aggregate is untagged and | |
| is not inherently limited, the record controller is not limited either. | |
| 2007-12-19 Robert Dewar <dewar@adacore.com> | |
| * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in | |
| handling compile time known size of record or array (case of front end | |
| layout active, e.g. in GNAAMP). | |
| 2007-12-19 Javier Miranda <miranda@adacore.com> | |
| * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry | |
| that forces the construction of static dispatch tables in case of | |
| record subtypes. | |
| 2007-12-19 Robert Dewar <dewar@adacore.com> | |
| * exp_ch9.adb (Null_Statements): Moved to library level | |
| (Trivial_Accept_OK): New function | |
| (Expand_Accept_Declaration): Use Trivial_Accept_OK | |
| (Expand_N_Accept_Statement): Use Trivial_Accept_OK | |
| 2007-12-19 Robert Dewar <dewar@adacore.com> | |
| * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type | |
| in complex case where array is Volatile. | |
| 2007-12-19 Ed Schonberg <schonberg@adacore.com> | |
| * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement | |
| properly the Ada2005 rules concerning when the current instance of a | |
| record type is aliased. | |
| 2007-12-19 Ed Schonberg <schonberg@adacore.com> | |
| * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in | |
| mangled declaration | |
| (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record | |
| declarations. | |
| (P_Variant_Part): Cleaner patch for parenthesized discriminant | |
| 2007-12-19 Vincent Celier <celier@adacore.com> | |
| * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when | |
| package is not known | |
| * prj-attr.ads (Unknown_Package): New constant | |
| Do not crash when an unknown package is in several projects | |
| * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as | |
| ignored | |
| * prj-nmsc.adb (Check): Remove obsolete code related to no longer | |
| existing package Language_Processing. | |
| 2007-12-19 Ed Schonberg <schonberg@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| Samuel Tardieu <sam@rfc1149.net> | |
| PR ada/15803, ada/15805 | |
| * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose | |
| illegal access subtypes when there is a constrained partial view. | |
| (Check_For_Premature_Usage): New procedure inside | |
| Access_Subprogram_Declaration for checking that an access-to-subprogram | |
| type doesn't reference its own name within any formal parameters or | |
| result type (including within nested anonymous access types). | |
| (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage. | |
| (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the | |
| context is an access_to_variable, the expression cannot be an | |
| access_to_constant. | |
| 2007-12-19 Bob Duff <duff@adacore.com> | |
| * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure. | |
| (Analyze_Concatenation): Use iteration instead of recursion in order | |
| to avoid running out of stack space for deeply nested concatenations. | |
| 2007-12-19 Ed Schonberg <schonberg@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings | |
| whose renamed entity is a subprogram that requires overriding. | |
| (Premature_Usage): Test for the case of N_Full_Type_Declaration when | |
| issuing an error for premature usage and issue a message that says | |
| 'type' rather than 'object'. | |
| 2007-12-19 Gary Dismukes <dismukes@adacore.com> | |
| PR ada/34149 | |
| * sem_disp.adb (Check_Dispatching_Call): Augment existing test for | |
| presence of a statically tagged operand (Present (Static_Tag)) with | |
| test for Indeterm_Ancestor_Call when determining whether to propagate | |
| the static tag to tag-indeterminate operands (which forces dispatching | |
| on such calls). | |
| (Check_Controlling_Formals): Ada2005, access parameters can have | |
| defaults. | |
| (Add_Dispatching_Operation, Check_Operation_From_Private_View): do | |
| not insert subprogram in list of primitive operations if already there. | |
| 2007-12-19 Tristan Gingold <gingold@adacore.com> | |
| * utils.c (create_var_decl_1): call rest_of_decl_compilation only for | |
| global variable. | |
| 2007-12-19 Thomas Quinot <quinot@adacore.com> | |
| Part of PR ada/33688 | |
| * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary | |
| datagram info on Linux. | |
| 2007-12-19 Vincent Celier <celier@adacore.com> | |
| * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so | |
| that the source path name is always found in the dependencies. | |
| 2007-12-19 Robert Dewar <dewar@adacore.com> | |
| * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o | |
| Fix name of Wide_Wide_Latin_1/9 file names | |
| Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads) | |
| Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode | |
| Add missing documentation for Ada.Command_Line.Response_File | |
| Update list of warning letters for Warnings pragma | |
| Add documentation for pragma Unmodified | |
| 2007-12-19 Samuel Tardieu <sam@rfc1149.net> | |
| * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target. | |
| 2007-12-17 Arnaud Charlet <charlet@adacore.com> | |
| * s-vxwork-alpha.ads: Removed, no longer used. | |
| 2007-12-15 Jakub Jelinek <jakub@redhat.com> | |
| * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line. | |
| 2007-12-13 Samuel Tardieu <sam@rfc1149.net> | |
| PR ada/34360 | |
| * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name | |
| mlib-tgt-specific.adb. | |
| 2007-12-13 Bob Duff <duff@adacore.com> | |
| * trans.c (Attribute_to_gnu): Check for violations of the | |
| No_Implicit_Dynamic_Code restriction. This checking used to be done in | |
| the front end, but is moved here so we can make it more accurate. | |
| 2007-12-13 Pascal Obry <obry@adacore.com> | |
| * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy | |
| version is provided for older GNU/Linux distribution not | |
| supporting thread affinity sets. | |
| * s-osinte-linux.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. | |
| * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is | |
| no null. | |
| (Create_Task): Set the processor affinity mask if information | |
| is present. | |
| * s-tasinf-linux.ads, s-tasinf-linux.adb: New files. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, | |
| s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, | |
| s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, | |
| s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb, | |
| s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads, | |
| s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, | |
| s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, | |
| i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C | |
| for subprogram pointers. | |
| * g-ctrl_c.adb: New file. | |
| * g-ctrl_c.ads (Install_Handler): New body. | |
| * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always | |
| instead of obsolete function Is_Always_Inlined. | |
| (Freeze_Entity): check for tagged type in imported C subprogram | |
| (Freeze_Entity): check for 8-bit boolean in imported C subprogram | |
| (Freeze_Entity): check for convention Ada subprogram pointer in | |
| imported C subprogram. | |
| (Freeze_Fixed_Point_Type): In the case of a base type where the low | |
| bound would be chopped off and go from negative to zero, force | |
| Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower | |
| bound) so that the size computation for the base type will take | |
| negative values into account. | |
| 2007-12-13 Eric Botcazou <ebotcazou@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| Tristan Gingold <gingold@adacore.com> | |
| * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, | |
| system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, | |
| system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, | |
| system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, | |
| system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, | |
| system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, | |
| system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, | |
| system-vxworks-arm.ads, system-darwin-x86.ads, system.ads, | |
| system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, | |
| system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads, | |
| system-vms-ia64.ads (Stack_Check_Limits): New target parameter. | |
| (Always_Compatible_Rep): New flag to control trampolines globally. | |
| (Dynamic_Trampolines_Used): New flag for implementing the | |
| No_Implicit_Dynamic_Code restriction more correctly (not yet used, | |
| and not yet set correctly for some targets). | |
| * s-taprop-vxworks.adb: Use stack limit method of stack checking. | |
| Simply indirectly call s-stchop when a task is created. | |
| * ali.ads: | |
| New flag added: Stack_Check_Switch_Set which is set when '-fstack-check' | |
| appears as an argument (entries A) in an ALI file. | |
| * fe.h (Stack_Check_Limits): Declare new target parameter. | |
| (Check_Implicit_Dynamic_Code_Allowed): New procedure. | |
| * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS. | |
| This variable is declared in C to be sure not subject to elaboration | |
| code. | |
| (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to | |
| Storage_Error. | |
| * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter. | |
| (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters. | |
| * s-stchop.ads: Add comments. | |
| * s-stchop-vxworks.adb: Package almost fully rewritten to use stack | |
| limit method of stack checking. | |
| * s-stchop-limit.ads: New file. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, | |
| a-cihama.adb, g-awk.adb, | |
| s-inmaop-posix.adb: Update handling of assigned value/unreferenced | |
| warnings | |
| * exp_smem.adb: Update handling of assigned value/unreferenced warnings | |
| * sem.adb: Update handling of assigned value/unreferenced warnings | |
| * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return | |
| * lib-xref.ads: Improve documentation for k xref type | |
| * lib-xref.adb: | |
| Update handling of assigned value/unreferenced warnings | |
| (Generate_Reference): Warning for reference to entity for which a | |
| pragma Unreferenced has been given should be unconditional. | |
| If the entity is a discriminal, mark the original | |
| discriminant as referenced. | |
| * sem_warn.ads, sem_warn.adb | |
| (Check_One_Unit): Test Renamed_In_Spec to control giving warning for | |
| no entities referenced in package | |
| (Check_One_Unit): Don't give message about no entities referenced in | |
| a package if a pragma Unreferenced has appeared. | |
| Handle new warning flag -gnatw.a/-gnatw.A | |
| Update handling of assigned value/unreferenced warnings | |
| * atree.h: Add flags up to Flag247 | |
| (Flag231): New macro. | |
| 2007-12-13 Jose Ruiz <ruiz@adacore.com> | |
| * adaint.h: (__gnat_plist_init): Not defined for RTX. | |
| * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for | |
| RTX systems. | |
| * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb. | |
| (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB, | |
| EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS, | |
| GNATLIB_SHARED for RTX run time): Use the versions required by RTX. | |
| * mingw32.h: | |
| Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported. | |
| * sysdep.c (winflush_function for RTX): Procedure that does nothing | |
| since we only have problems with Windows 95/98, which are not | |
| supported by RTX. | |
| (__gnat_ttyname): Return the empty string on Nucleus, just as | |
| done on vxworks. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * a-textio.adb, a-textio.ads: | |
| Extensive changes to private part for wide character encoding | |
| * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb | |
| (Look_Ahead): Fix mishandling of encoded sequences | |
| Move declaration of Wch_Con to private part (should not be visible) | |
| * ali.adb (Scan_ALI): Set default encoding method to brackets instead of | |
| UTF-8. Probably this is never used, but if it is, brackets is | |
| clearly correct. | |
| * bindgen.adb (Get_WC_Encoding): New procedure to properly handle | |
| setting wide character encoding for no main program case and when | |
| encoding is specified using -W? | |
| Initialize stack limit of environment task if stack limit method of | |
| stack checking is enabled. | |
| (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method | |
| (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method | |
| (Get_Main_Unit_Name): New function. | |
| (Gen_Adainit_Ada): Add call to main program for .NET when needed. | |
| (Gen_Output_File): Set Bind_Main_Program to True for .NET | |
| * bindusg.adb: Add line for -Wx switch | |
| * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function | |
| Add comments | |
| Add new useful constant WC_Longest_Sequences | |
| * switch-b.adb: Clean up handling of -Wx switch | |
| For -gnatWx, set Wide_Character_Encoding_Method_Specified | |
| * switch-c.adb: -gnatg activates warning on assertion errors | |
| For -gnatWx, set Wide_Character_Encoding_Method_Specified | |
| * s-wchcon.adb: (Is_Start_Of_Encoding): New function | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * a-ngcoty.adb: New pragma Fast_Math | |
| * opt.adb: New pragma Fast_Math | |
| * par-prag.adb: | |
| Add Implemented_By_Entry to the list of pragmas which do not require any | |
| special processing. | |
| (Favor_Top_Level): New pragma. | |
| New pragma Fast_Math | |
| * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv | |
| (Expand_N_Attribute_Reference, Displace_Allocator_Pointer, | |
| Expand_Allocator_Expression): Take into account VM_Target | |
| (Expand_Attribute, case 'Identity): Handle properly the case where | |
| the prefix is a task interface. | |
| New pragma Fast_Math | |
| * par.adb (Next_Token_Is): New function | |
| (P_Pragma): Add Skipping parameter | |
| (U_Left_Paren): New procedure | |
| (U_Right_Paren): New procedure | |
| New pragma Fast_Math | |
| * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after | |
| subunit | |
| New pragma Fast_Math | |
| * sem_prag.adb: Add significance value to table Sig_Flag for pragma | |
| Implemented_By_Entry. | |
| (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry. | |
| (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep | |
| items, since it can apply to more than one overloadable entity. Set | |
| new flag Has_Pragma_Inline_Always for Inline_Always case. | |
| (Analyze_Pragma, case Complex_Representation): Improve error message. | |
| (Analyze_Pragma, case Assert): When assertions are disabled build the | |
| rewritten code with Sloc of expression rather than pragma, so new | |
| warning about failing is not deleted. | |
| (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to | |
| protected types and update error message to reflect that. Test whether | |
| the protected type is allowed for the pragma (an error is issued if the | |
| type has any entries, or components that do not have preelaborable | |
| initialization). | |
| New pragma Fast_Math | |
| (Analyze_Pragma, case No_Return): Handle generic instance | |
| * snames.h, snames.ads, snames.adb: | |
| Add new predefined name for interface primitive _Disp_Requeue. | |
| New pragma Fast_Math | |
| * a-tags.ads, a-tags.adb: New calling sequence for | |
| String_To_Wide_[Wide_]String | |
| (Secondary_Tag): New subprogram. | |
| * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here | |
| from Exp_Attr | |
| New calling sequence for String_To_Wide_[Wide_]String | |
| (Expand_Image_Attribute): Major rewrite. New calling sequence avoids | |
| the use of the secondary stack for image routines. | |
| * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New | |
| calling sequence for String_To_Wide_[Wide_]String | |
| * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in | |
| Ada 95 mode | |
| (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully | |
| Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List | |
| * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode | |
| (P_Formal_Part): Use Skipping parameter in P_Pragma call | |
| to improve error recovery | |
| * par-util.adb (Next_Token_Is): New function | |
| (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function | |
| * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to | |
| semicolon if missing | |
| (P_Pragma): Implement new Skipping parameter | |
| Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List | |
| Fix location of flag for unrecognized pragma message | |
| * par-tchk.adb (U_Left_Paren): New procedure | |
| (U_Right_Paren): New procedure | |
| 2007-12-13 Geert Bosch <bosch@adacore.com> | |
| * a-tifiio.adb: | |
| (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where | |
| the second or later Scaled_Divide would omit leading zeroes, | |
| resulting in too few digits produced and a Layout_Error as result. | |
| (Put): Initialize Pos. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| atree.ads, atree.adb (Flag231..Flag247): New functions | |
| (Set_Flag231..Set_Flag247): New procedures | |
| (Basic_Set_Convention): Rename Set_Convention to be | |
| Basic_Set_Convention | |
| (Nkind_In): New functions | |
| Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List | |
| * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always | |
| instead | |
| of obsolete function Is_Always_Inlined | |
| (Register_Predefined_DT_Entry): Initialize slots of the second | |
| secondary dispatch table. | |
| Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List | |
| (Expand_N_Function_Call): Remove special provision for stack checking. | |
| * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation): | |
| Include _Disp_Requeue in the list of predefined operations. | |
| (Find_Interface_ADT): Modified to fulfill the new specification. | |
| Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List | |
| * par-ch4.adb, nlists.ads, nlists.adb: | |
| Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List | |
| * sinfo.ads, sinfo.adb: (Nkind_In): New functions | |
| Fix location of flag for unrecognized pragma message | |
| * sem_ch7.adb: Use Nkind_In | |
| 2007-12-13 Vincent Celier <celier@adacore.com> | |
| * opt.ads: | |
| Indicate what flags are used by the Project Manager, gprbuild and | |
| gprclean. | |
| (Opt.Follow_Links_For_Dirs): New flag | |
| (Warn_On_Assertion_Failure): New flag | |
| (Wide_Character_Encoding_Method_Specified): New flag | |
| (Suppress_All_Inlining): New switch set by -fno-inline | |
| (Real_VMS_Target): New flag | |
| New pragma Fast_Math | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * back_end.adb: Recognize -fno-inline | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * checks.adb: Fix optimization problem with short-circuited form | |
| 2007-12-13 Bob Duff <duff@adacore.com> | |
| * clean.adb (Usage): Add line for -aP | |
| (Check_Version_And_Help): Change Check_Version_And_Help to be generic, | |
| with a parameter "procedure Usage", instead of passing a pointer to a | |
| procedure. This is to eliminate trampolines (since the Usage procedure | |
| is often nested in a main procedure, and it would be inconvenient to | |
| unnest it). | |
| * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch | |
| to be generic, with a parameter "procedure Callback (...)", instead of | |
| passing a pointer to a procedure. This is to eliminate trampolines | |
| (since the Callback procedure is usually nested). | |
| * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, | |
| gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb | |
| (Check_Version_And_Help): Change Check_Version_And_Help to be generic. | |
| * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets): | |
| Use the generic Heap_Sort_G instead of Heap_Sort_A. | |
| 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com> | |
| * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry. | |
| (Implemented_By_Entry, Set_Implemented_By_Entry): New routines. | |
| (Write_Entry_Flags): Add an entry for Implemented_By_Entry. | |
| (Renamed_In_Spec): New flag | |
| (Has_Pragma_Inline_Always): New flag | |
| Add missing doc for pragma Obsolescent_Warning | |
| Add missing doc for 17 additional unused flags (230-247) | |
| (Is_Derived_Type): Remove condition "not Is_Generic_Type". | |
| Alphabetize with clauses. | |
| Separate Is_Thunk and Has_Thunks flags | |
| (Write_Entity_Flags): Add forgotten entry for Has_Thunks | |
| (Related_Interface): Renamed to Related_Type. | |
| (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute. | |
| (Set_Is_Flag): Restrict the assertion. | |
| 2007-12-13 Vincent Celier <celier@adacore.com> | |
| * errout.adb (Output_Source_Line): Do not keep a trailing space after | |
| the source line number if the source line is empty. | |
| 2007-12-13 Geert Bosch <bosch@adacore.com> | |
| * eval_fat.adb (Decompose_Int): Handle argument of zero. | |
| (Compose): Remove special casing of zero. | |
| (Exponent): Likewise. | |
| (Fraction): Likewise. | |
| (Machine): Likewise. | |
| (Decompose): Update comment. | |
| 2007-12-13 Ed Schonberg <schonberg@adacore.com> | |
| * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a | |
| limited ancestor part, initialize controllers of enclosing record | |
| before expanding ancestor aggregate. | |
| (Gen_Assign): If a component of the aggregate is box-initialized, add | |
| code to call Initialize if the component is controlled, and explicit | |
| assignment of null if the component is an access type. | |
| Handle properly aggregates for limited types that appear in object | |
| declarations when the aggregate contains controlled values such as | |
| protected types. | |
| When expanding limited aggregates into individual components, do not | |
| call Adjust on controlled components that are limited. | |
| 2007-12-13 Ed Schonberg <schonberg@adacore.com> | |
| * expander.adb: Take into account N_Subprogram_Renaming_Declaration | |
| 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com> | |
| * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of | |
| predefined primitive _Disp_Requeue. | |
| (Make_Predefined_Primitive_Specs): Create the spec for predefined | |
| primitive _Disp_Requeue. | |
| (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the | |
| type of formal Renamed_Eq to Entity_Id (instead of Node_Id). | |
| (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is | |
| an interface type. In case of limited interfaces we now declare all the | |
| predefined primitives associated with synchronized interfaces as | |
| abstract. | |
| (Predef_Spec_Or_Body): For interface types generate abstract subprogram | |
| declarations. | |
| (Predefined_Primitive_Bodies): Add body of "=" if the parent of the | |
| tagged type is an interface type and there is no user-defined equality | |
| function. | |
| Add also bodies of predefined primitives associated with synchronized | |
| interfaces. | |
| (Freeze_Record_Type): Do not build bodies of predefined primitives of | |
| interface types because they are now defined abstract. | |
| Add missing documentation. | |
| (Expand_Record_Controller): Update occurrence of Related_Interface | |
| to Related_Type. | |
| (Build_Offset_To_Top_Functions): Do nothing in case of VM. | |
| (Expand_N_Object_Declaration): Take into account VM_Target when handling | |
| class wide interface object declaration. | |
| (Expand_Previous_Access_Type): Do not create a duplicate master entity | |
| if the access type already has one. | |
| (Expand_N_Object_Declaration): Defend against attempt to validity check | |
| generic types. Noticed for -gnatVcf specified with previous errors. | |
| 2007-12-13 Arnaud Charlet <charlet@adacore.com> | |
| * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer, | |
| Expand_Allocator_Expression): Take into account VM_Target | |
| * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use | |
| secondary stack when VM_Target /= No_VM | |
| 2007-12-13 Javier Miranda <miranda@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute | |
| Is_Complation_Unit by Is_Library_Level_Entity in the code | |
| that decides if the static dispatch tables need to be built. | |
| (Wrap_Transient_Declaration): Do not generate a finalization call if | |
| this is a renaming declaration and the renamed object is a component | |
| of a controlled type. | |
| 2007-12-13 Gary Dismukes <dismukes@adacore.com> | |
| * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): | |
| In the case where the renamed subprogram is a dereference, call | |
| Force_Evaluation on the prefix. | |
| 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * exp_ch9.adb (Expand_N_Asynchronous_Select, | |
| Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and | |
| comment reformatting. | |
| (Set_Privals): Inherit aliased flag from formal. From code reading. | |
| (Build_Simple_Entry_Call): Out parameters of an access type are passed | |
| by copy and initialized from the actual. This includes entry parameters. | |
| (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95 | |
| and Ada 2005 models of requeue. | |
| (Null_Statements): Still connsider do-end block null if it contains | |
| Unreferenced and Warnings pragmas. | |
| (Expand_N_Accept_Statement): Do not optimize away null do end if | |
| dispatching policy is other than defaulted. | |
| (Expand_N_Timed_Entry_Call): When the triggering statement is a | |
| dispatching call, manually analyze the delay statement. | |
| (Find_Parameter_Type): Move subprogram to Sem_Util. | |
| 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive | |
| _Disp_Requeue occupies dispatch table slot number 15. Move | |
| _Disp_Timed_Select to slot 16. | |
| (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which | |
| generate the spec and body of _Disp_Reqeueue. | |
| (Make_DT): Build and initialize the second dispatch table. | |
| Handle initialization of RC_Offset when the parent | |
| is a private type with variable size components. | |
| (Make_Secondary_DT): Complete documentation. Add support to | |
| initialize the second dispatch table. | |
| (Make_Tags): Generate the tag of the second dispatch table. | |
| (Register_Primitive): Add support to register primitives in the | |
| second dispatch table. | |
| 2007-12-13 Pascal Obry <obry@adacore.com> | |
| * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on | |
| Windows. This signal is used by gnatmake to kill child processes for | |
| example. | |
| 2007-12-13 Javier Miranda <miranda@adacore.com> | |
| * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing | |
| support for generic dispatching constructor calls in which we need to | |
| locate the tag of a secondary dispatch table associated with an | |
| interface type to properly dispatch the call. | |
| (Expand_N_Attribute_Reference [case Address], | |
| Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix | |
| handling of VM targets. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for | |
| assert fail | |
| * ug_words: Add entries for -gnatw.a -gnatw.A | |
| * sem_res.adb (Set_String_Literal_Subtype): If the context of the | |
| literal is a subtype with non-static constraints, use the base type of | |
| the context as the base of the string subtype, to prevent type | |
| mismatches in gigi. | |
| (Resolve_Actuals): If the actual is an entity name, generate a | |
| reference before the actual is resolved and expanded, to prevent | |
| spurious warnings on formals of enclosing protected operations. | |
| (Analyze_Overloaded_Selected_Component): If type of prefix if | |
| class-wide, use visible components of base type. | |
| (Resolve_Selected_Component): Ditto. | |
| (Resolve_Short_Circuit): Detect case of pragma Assert argument | |
| evaluating to False, and issue warning message. | |
| * usage.adb: Add lines for -gnatw.a and -gnatw.A | |
| 2007-12-13 Emmanuel Briot <briot@adacore.com> | |
| * g-calend.ads (No_Time): New constant, to represent an uninitialized | |
| time value | |
| * g-catiio.ads, g-catiio.adb (Value): Added support for more date | |
| formats. | |
| (Month_Name_To_Number): New subprogram | |
| * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive | |
| letter to upper-case. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target | |
| * layout.adb (Resolve_Attribute, case 'Access): If designated type of | |
| context is a limited view, use non-limited view when available. If the | |
| non-limited view is an unconstrained array, this enforces consistency | |
| requirements in 3.10.2 (27). | |
| (Layout_Type): For an access type whose designated type is a limited | |
| view, examine its declaration to determine if it is an unconstrained | |
| array, and size the access type accordingly. | |
| (Layout_Type): Do not force 32-bits for convention c subprogram | |
| pointers in -gnatdm mode, only if real vms target. | |
| * sem_attr.adb (Analyze_Access_Attribute): Use new flag | |
| Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined | |
| (Analyze_Access_Attribute,Attribute_Address): Remove checks for | |
| violations of the No_Implicit_Dynamic_Code restriction. | |
| (Resolve_Attribute, case 'Access): If designated type of context is a | |
| limited view, use non-limited view when available. If the non-limited | |
| view is an unconstrained array, this enforces consistency requirements | |
| in 3.10.2 (27). | |
| (Layout_Type): For an access type whose designated type is a limited | |
| view, examine its declaration to determine if it is an unconstrained | |
| array, and size the access type accordingly. | |
| 2007-12-13 Vincent Celier <celier@adacore.com> | |
| * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when | |
| object directory of main project does not exist. | |
| On VMS, correctly set then environment variable for the source | |
| directories. | |
| 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com> | |
| * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when | |
| set to True this procedure will create the value of type REG_EXPAND_SZ. | |
| It was only possible to create REG_SZ values before. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads, | |
| g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads, | |
| namet-sp.adb, namet-sp.ads: New files. | |
| * g-speche.adb: Use generic routine in g-spchge | |
| * s-wchcnv.ads, s-wchcnv.adb: | |
| Minor code cleanup (make formal type consistent with spec) | |
| * namet.adb: Update comments. | |
| * par-endh.adb (Evaluate_End_Entry): Use new | |
| Namet.Sp.Is_Bad_Spelling_Of function | |
| * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function | |
| * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an | |
| ancestor is an access type initialized with a box, set its type | |
| explicitly, for use in subsequent expansion. | |
| (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of | |
| function | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * g-spipat.adb (Break): Fix accessibility error (vsn taking not null | |
| access Vstring) | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * inline.adb (Back_End_Cannot_Inline): Use new flag | |
| Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined | |
| * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag | |
| Has_Pragma_Inline_Always instead. | |
| of obsolete function Is_Always_Inlined | |
| (Build_Body_To_Inline): Same change | |
| (Cannot_Inline): Same change | |
| Do not give warning on exception raise in No_Return function | |
| * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited | |
| component has two inconsistent component clauses in the same record | |
| representation clause, favor the message that complains about | |
| duplication rather than inconsistency. | |
| Update comments. | |
| (Record_Representation_Clause): Do not warn on missing component | |
| clauses for inherited components of a type extension. | |
| (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for | |
| an overloadable item if it is a pragma that can apply to multiple | |
| overloadable entities (e.g. Inline) because a pragma cannot be on | |
| more than one chain at a time. | |
| (Validate_Unchecked_Conversion): Add code to warn on unchecked | |
| conversion where one of the operands is Ada.Calendar.Time. | |
| (Analyze_Attribute_Definition_Clause): Fix typo in error message. | |
| For now, ignore Component_Size clause on VM targets, as done for | |
| pragma Pack. | |
| 2007-12-13 Emmanuel Briot <briot@adacore.com> | |
| Vincent Celier <celier@adacore.com> | |
| * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a | |
| string | |
| (Must_Check_Configuration, Default_Language_Is_Ada): new flags in | |
| prj.ads | |
| (Hash): Move instantiation of System.HTable.Hash from spec to body | |
| (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive | |
| systems, since we do not need to recompute the Name_Id for the canonical | |
| file name. | |
| (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id | |
| as a parameter. This parameter is in fact always "ada" in all calls, and | |
| we were doing 160560 extra calls to Name_Find to convert it to Name_Ada | |
| while loading a project with 40000 files | |
| * prj-attr.adb: Fix name of attribute Dependency_Driver | |
| Change the kind of indexing for attribute Root | |
| * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of | |
| variables already declared, in case constructions. | |
| * prj-env.adb (Initialize): Reset Current_Source_Path_File and | |
| Current_Object_Path_File to No_Path. | |
| * prj-ext.adb (Initialize_Project_Path): In multi language mode, use | |
| ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty. | |
| * prj-makr.adb: new parameter Current_Dir | |
| * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for | |
| Ada sources when language is not Ada. | |
| Change Opt.Follow_Links to Opt.Follow_Links_For_Files. | |
| (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms | |
| (Must_Check_Configuration, Default_Language_Is_Ada): new flags. | |
| (Locate_Directory): Always resolve links when computing Canonical_Path | |
| (Look_For_Sources): Make sure that Name_Buffer contains the file name | |
| in Source_Files before checking for the presence of a directory | |
| separator. | |
| Optimize calls to Name_Find when on case sensitive systems. | |
| (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id | |
| as a parameter. | |
| (Prj.Nmsc.Check): new parameter Current_Dir | |
| (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They | |
| cannot be empty and the spec suffix cannot be the same as the body or | |
| separate suffix. | |
| (Get_Unit): When a file name can be of several unit kinds (spec, body or | |
| subunit), always consider the longest suffix. | |
| (Check_Configuration): Do not issue an error if there is no compiler | |
| for a language. Just issue a warning and ignore the sources for the | |
| language. | |
| (Check_Library_Attributes): Only check Library_Dir if Library_Name is | |
| not empty. | |
| (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity | |
| (Unit_Exceptions): New hash table | |
| (Check_Naming_Schemes): Check if a file that could be a unit because of | |
| the naming scheme is not in fact a source because there is an exception | |
| for the unit. | |
| (Look_For_Sources): Put the unit exceptions in hash table | |
| Unit_Exceptions | |
| (Get_Unit_Exceptions): Give initial value No_Source to local variable | |
| Other_Part to avoid exception when code is compiled with validity | |
| checking. | |
| (Get_Sources_From_File): Check that there is no directory information | |
| in the file names. | |
| (Look_For_Sources): Check that there is no directory information in the | |
| list of file names in Source_Files. | |
| (Look_For_Sources): In multi-language mode, do not allow exception file | |
| names that are excluded. | |
| (Excluded_Sources_Htable): New hash table | |
| (Search_Directories.Check_File): New procedure to simplify | |
| Search_Directories. | |
| (Search_Directories): Do not consider excluded sources | |
| (Look_For_Sources): Populate Excluded_Sources_Htable before calling | |
| Search_Directories. | |
| (Get_Exceptions): Set component Lang_Kind of Source_Data | |
| (Get_Unit_Exceptions): Ditto | |
| (Search_Directories): Ditto | |
| * prj-pars.adb: new parameter Current_Dir | |
| * prj-part.ads, prj-part.adb: | |
| Change Opt.Follow_Links to Opt.Follow_Links_For_Files. | |
| (Opt.Follow_Links_For_Dirs): New flag | |
| (Project_Path_Name_Of): Cache information returned by this routine as | |
| Locate_Regular_File is a costly routine. The code to output a log | |
| information and the effective call to Locate_Regular_File is now | |
| factorized into a routine (code clean-up). | |
| (Parse, Parse_Single_Project): new parameter Current_Dir | |
| When main project file cannot be found, indicate in the error | |
| message the project path that was used to do the search. | |
| * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag | |
| (Prj.Proc.Process*): new parameter Current_Dir | |
| * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files | |
| 2007-12-13 Bob Duff <duff@adacore.com> | |
| * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New | |
| procedure to be called from the back end to check the | |
| No_Implicit_Dynamic_Code restriction. | |
| 2007-12-13 Arnaud Charlet <charlet@adacore.com> | |
| * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call | |
| Fixes another case where RTE_Available_Call was ignored instead of being | |
| taken into account. | |
| (Load_Fail): Ditto. | |
| * rtsfind.ads: Add new entries. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads, | |
| g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files. | |
| * scn.adb: Implement BOM recognition | |
| 2007-12-13 Thomas Quinot <quinot@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level | |
| subprogram body that acts as its own spec may not have a non-private | |
| WITH clause on a private sibling. | |
| (Build_Unit_Name): If the parent unit in the name in a with_clause on a | |
| child unit is a renaming, create an implicit with_clause on that | |
| parent, and not on the unit it renames, to prevent visibility errors | |
| in the current unit. | |
| 2007-12-13 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram | |
| renaming declaration, use the Slocs of the formal parameters from the | |
| declaration of the formal subprogram when creating the formal parameter | |
| entities in the renaming declaration. | |
| (Analyze_Formal_Type_Declaration): Change the placement of the error | |
| message concerning illegal known discriminants. It is now posted on the | |
| type rather than on the first discriminant. This change ensures early | |
| error report. | |
| (Freeze_Subprogram_Body): If the generic subprogram is nested within | |
| the package body that contains the instance, do not generate an | |
| out-of-place freeze node for the enclosing package. | |
| (Collect_Previous_Instantiations): Ignore internal instantiations | |
| generated for formal packages. | |
| (Validate_Derived_Type_Instance): Add a check that when a formal | |
| derived type is Known_To_Have_Preelab_Init then the actual type must | |
| have preelaborable initialization, and issue an error when this | |
| condition is violated. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * s-imenne.adb, s-imenne.ads: New files. | |
| * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, | |
| s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, | |
| s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, | |
| s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, | |
| s-imgwch.ads: New calling sequence for Image routines to avoid sec | |
| stack usage. | |
| 2007-12-13 Javier Miranda <miranda@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid | |
| generation of spurious error if parent is an interface type; caused | |
| because predefined primitive bodies will be generated later by | |
| Freeze_Record_Type. | |
| (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init | |
| flag. | |
| (Derive_Subprograms): Handle derivations of predefined primitives | |
| after all the user-defined primitives to ensure that they are | |
| found in proper order in instantiations. | |
| (Add_Interface_Tag_Components, Inherit_Components): Update occurrences | |
| of Related_Interface to Related_Type. | |
| (Record_Type_Declaration): Minor reordering of calls to decorate the | |
| Tag component because the entity must have set its Ekind attribute | |
| before setting its Is_Tag attribute. | |
| (Analyze_Subtype_Declaration): In the case of subtypes with | |
| Private_Kind, inherit Known_To_Have_Preelab_Init from the parent. | |
| 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch4.adb (Analyze_Selected_Component): Include the requeue | |
| statement to the list of contexts where a selected component with a | |
| concurrent tagged type prefix should yield a primitive operation. | |
| (Find_Primitive_Operation): Handle case of class-wide types. | |
| (Analyze_Overloaded_Selected_Component): If type of prefix is | |
| class-wide, use visible components of base type. | |
| (Resolve_Selected_Component): Ditto. | |
| (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a | |
| formal of a generic subprogram. find candidate interpretations by | |
| scanning the list of generic formal declarations.: | |
| (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete | |
| type from a limited_with_clause, and the full view is available, use it | |
| for subsequent semantic checks. | |
| (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function | |
| (Find_Primitive_Operation): New function. | |
| (Analyze_Overloaded_Selected_Component): insert explicit dereference | |
| only once if several interpretations of the prefix yield an access type. | |
| (Try_Object_Operation): Code and comment cleanup. | |
| (Analyze_Selected_Component): Reorder local variables. Minot comment and | |
| code reformatting. When the type of the prefix is tagged concurrent, a | |
| correct interpretation might be available in the primitive and | |
| class-wide operations of the type. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for | |
| renaming entry as subprogram using rename-as-body if subprogram spec | |
| frozen. | |
| (Use_One_Type): The clause is legal on an access type whose designated | |
| type has a limited view. | |
| (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function | |
| (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function | |
| (Analyze_Renamed_Primitive_Operation): new procedure to determine the | |
| operation denoted by a selected component. | |
| (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because | |
| it can be an expression, possibly overloaded, that returns a task or | |
| an access to one. | |
| 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a | |
| requeue statement is dispatching. Do not emit an error when the name is | |
| not an entry and the context is a dispatching select. Add code to | |
| perform subtype conformance between the formals of the current entry | |
| and those of the target interface primitive. | |
| (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_ | |
| Timed_Entry_Call): Analyze the triggering statement as the first step of | |
| the processing. If this is a dispatching select, postpone the analysis | |
| of all select statements until the Expander transforms the select. This | |
| approach avoids generating duplicate identifiers after the Expander has | |
| replicated some of the select statements. In case the Expander is | |
| disabled, perform regular analysis. | |
| (Check_Triggering_Statement): New routine. | |
| (Analyze_Requeue): Exclude any interpretations that are not entries when | |
| checking overloaded names in a requeue. Also test type conformance for | |
| matching interpretations rather than requiring subtype conformance at | |
| that point to conform with the RM's resolution rule for requeues. | |
| 2007-12-13 Ed Schonberg <schonberg@adacore.com> | |
| * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an | |
| inherited operation is a defaulted tag-indeterminate call, and there is | |
| a statically tagged actual, use the static tag as a controlling actual | |
| for the defaulted actual. | |
| 2007-12-13 Geert Bosch <bosch@adacore.com> | |
| * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static | |
| context, so do not call Check_Non_Static_Context. | |
| 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com> | |
| * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check | |
| whether formal E is an entity which may have parameters. | |
| 2007-12-13 Bob Duff <duff@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine. | |
| (Set_Convention): New procedure to set the Convention flag, and in | |
| addition make sure the Favor_Top_Level flag is kept in sync (all | |
| foreign-language conventions require Favor_Top_Level = True). | |
| (Collect_Abstract_Interfaces): Update occurrences of Related_Interface | |
| to Related_Type. | |
| (Collect_Interfaces_Info): Minor update to handle the two secondary | |
| dispatch tables. Update occurrence of Related_Interface to Related_Type. | |
| (Generate_Parent_Ref): Add parameter to specify entity to check | |
| (Is_Preelaborable_Expression): Allow the name of a discriminant to | |
| initialize a component of a type with preelaborable initialization. | |
| This includes the case of a discriminal used in such a context. | |
| (Is_Dependent_Component_Of_Mutable_Object): Take into account the | |
| latest Ada 2005 rules about renaming and 'Access of | |
| discriminant-dependent components. | |
| (Check_Nested_Access): Add handling when there are no enclosing | |
| subprograms (e.g. case of a package body). | |
| (Find_Parameter_Type): Factor routine from several other compiler files. | |
| Remove routine from Find_Overridden_Synchronized_Primitive. | |
| 2007-12-13 Thomas Quinot <quinot@adacore.com> | |
| * sinput.adb (Get_Source_File_Index): Add assertion to guard against | |
| an invalid access to an uninitialized slot in the | |
| Source_File_Index_Table. | |
| 2007-12-13 Thomas Quinot <quinot@adacore.com> | |
| * sinput-l.adb (Load_File): Disable style checks when preprocessing. | |
| 2007-12-13 Bob Duff <duff@adacore.com> | |
| * s-soflin.ads: Apply new pragma Favor_Top_Level to all | |
| access-to-subprogram types in this package. | |
| 2007-12-13 Olivier Hainque <hainque@adacore.com> | |
| * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant | |
| with Stack_Grows_Down in System.Parameters. Rename Array_Address into | |
| Stack_Overlay_Address and document that we are using an internal | |
| abstraction. | |
| (Byte_Size, Unsigned_32_Size): Remove, now useless. | |
| (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used | |
| consistently throughout the various implementation pieces. | |
| * s-stausa.adb (Stack_Slots): New type, abstraction for the stack | |
| overlay we are using to fill the stack area with patterns. | |
| (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots. | |
| (Push_Index_Step_For, Pop_Index_Step_For): Likewise. | |
| (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * s-stoele.adb ("mod"): mod negative value raises Constraint_Error | |
| 2007-12-13 Arnaud Charlet <charlet@adacore.com> | |
| * s-tassta.adb: | |
| (Create_Task): Take into account tasks created by foreign threads. | |
| Code clean up: use constants instead of hard coded values. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * styleg.adb (Check_Comment): More liberal rules for comment placement | |
| 2007-12-13 Olivier Hainque <hainque@adacore.com> | |
| * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use | |
| of Procedure Value instead of Frame Pointer as the invocation | |
| identifier associated with the instruction pointer in each traceback | |
| entry. | |
| * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For, | |
| TB_Entry_For): Revert back to use of Procedure Value instead of Frame | |
| Pointer as the invocation identifier passed to tbk$symbolize. | |
| * s-traent-vms.ads, s-traent-vms.adb | |
| (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of | |
| Procedure Value instead of Frame Pointer as the invocation identifier | |
| passed to tbk$symbolize. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * tbuild.ads, tbuild.adb: | |
| Fix location of flag for unrecognized pragma message | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * treepr.ads, treepr.adb: (pl): implement use of positive value | |
| shorthands | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * xeinfo.adb: Remove warnings | |
| * xnmake.adb: Remove warnings | |
| * xsinfo.adb: Remove warnings | |
| * xtreeprs.adb: Remove warnings | |
| * xsnames.adb: Remove warnings | |
| * a-ngcoar.adb: Fix typo. | |
| * s-interr.adb: Minor reformatting | |
| * env.c: Minor reformatting. | |
| * g-bytswa.adb: Minor reformatting. | |
| * g-rannum.ads: Minor documentation improvements | |
| * s-tasinf-mingw.adb: Minor header fix | |
| * a-clrefi.adb: Minor reformatting | |
| * g-sttsne.ads: Minor documentation improvement | |
| * g-sttsne-locking.ads: Minor documentation improvement | |
| * g-soliop-solaris.ads: Minor documentation improvement | |
| * g-soliop-mingw.ads: Minor documentation improvement | |
| * g-soliop.ads: Minor documentation improvement | |
| * exp_aggr.ads: Minor reformatting | |
| * debug.adb: Add documentation for the gprbuild debug flags | |
| * exp_ch2.adb: Use Nkind_In to simplify code throughout | |
| * exp_pakd.adb: Minor reformatting | |
| * g-altive.ads, g-alleve.adb: Remove assertions. | |
| Add comment about minor differences between targets regarding | |
| floating-point operations. | |
| * g-thread.adb: Remove pragma unreferenced. | |
| * lib.ads: Minor reformatting | |
| * par-ch9.adb: Minor reformatting of error messages | |
| * sem_case.adb: Minor reformatting | |
| * s-fileio.adb: Minor reformattinng | |
| * s-vmexta.ads: Minor typo | |
| * vxaddr2line.adb: | |
| Take into account 'Success' value as per new GNAT warning. | |
| 2007-12-13 Vincent Celier <celier@adacore.com> | |
| * a-direct.adb (Create_Path): Always take '/' as a directory separator, | |
| even on Windows | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| * gnat_ugn.texi: Dcoument new rules for style check comment alignment | |
| Document that suffixes may be terminations of each others | |
| Add doc for -gnatw.a and -gnatw.A | |
| Document gnatbind -Wx switch | |
| Document BOM recognition | |
| Document pragma Implemented_By_Entry. | |
| Document new units. | |
| * gnat_rm.texi: (Favor_Top_Level): Document new pragma. | |
| Add doc for pragma Unreferenced suppressing no entities referenced msg | |
| Add documentation of GNAT.Directory_Operations.Iteration | |
| Add documentation of GNAT.Random_Numbers | |
| Add documentation for pragma Shared. | |
| Correct documentation for Bit_Order | |
| Add documentation for the Pool_Address attribute. | |
| Fix and improve documentation of pragma machine_attribute. | |
| New pragma Fast_Math | |
| Document BOM recognition | |
| * vms_data.ads: Add entries for -gnatw.a -gnatw.A | |
| Add /Wide_Character_Encoding for binder | |
| Add qualifier for the new gnatpp option --no-separate-loop-then | |
| 2007-12-13 Matthew Heaney <heaney@adacore.com> | |
| * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document | |
| which generic formal operations are called for each operation. | |
| 2007-12-13 Olivier Hainque <hainque@adacore.com> | |
| * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh. | |
| (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh. | |
| 2007-12-13 Emmanuel Briot <briot@adacore.com> | |
| * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute | |
| Reference_Dir unless we actually need it. | |
| 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com> | |
| Tristan Gingold <gingold@adacore.com> | |
| * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit. | |
| * s-osprim-vms.adb, | |
| a-calend-vms.adb: Remove pragma warning off and add pragma | |
| unreferenced. | |
| 2007-12-13 Robert Dewar <dewar@adacore.com> | |
| * impunit.adb: Add entries for missing units | |
| * Makefile.rtl: Add new run-time units. | |
| * Make-lang.in: Update dependencies. | |
| 2007-12-13 Bob Duff <duff@adacore.com> | |
| * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram | |
| types, set Can_Use_Internal_Rep appropriately, based on | |
| Always_Compatible_Rep_On_Target. | |
| 2007-12-13 Gary Dismukes <dismukes@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing | |
| it to the front end and setting the aamp_target environment variable | |
| to the switch's argument to ensure that gnaampbind and gnaamplink will | |
| take the specified library into account. | |
| (Make): Only set Check_Object_Consistency to False for JVM, not for CIL | |
| target, since the CIL compiler supports an "object" file (.il files). | |
| 2007-12-13 Vincent Celier <celier@adacore.com> | |
| * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure | |
| (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half. | |
| 2007-12-13 Geert Bosch <bosch@adacore.com> | |
| * s-parame-vxworks.adb: | |
| Update comments to reflect usage of this package by Nucleus. | |
| 2007-12-13 Arnaud Charlet <charlet@adacore.com> | |
| * i-vxwork.ads: Kill new warning on Convention C, since changing the | |
| spec would break code. | |
| * i-forbla-unimplemented.ads, vx_stack_info.c: New files. | |
| * system-vxworks-alpha.ads: Removed. | |
| 2007-12-10 Eric Botcazou <ebotcazou@adacore.com> | |
| * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around. | |
| 2007-12-09 Samuel Tardieu <sam@rfc1149.net> | |
| PR ada/34366 | |
| * sem_ch3.adb (Designates_T): New function. | |
| (Mentions_T): Factor reusable part of the logic into Designates_T. | |
| Consider non-access parameters and access and non-access result. | |
| (Check_Anonymous_Access_Components): Set ekind of anonymous access to | |
| E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type. | |
| * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type. | |
| 2007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org> | |
| PR ada/34361 | |
| * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect | |
| the new implementation of target-specific calls. | |
| 2007-12-07 Olivier Hainque <hainque@adacore.com> | |
| * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing | |
| the designated full view, only follow a second level Full_View link | |
| for Non_Limited_Views of from_limited_with references. | |
| 2007-12-07 Samuel Tardieu <sam@rfc1149.net> | |
| PR ada/15805 | |
| * sem_ch6.adb (Process_Formals): Prevent an access type formal | |
| to be initialized with an access to constant object. | |
| * sem_ch3.adb (Analyze_Object_Declaration): Signal an error | |
| when an access to constant is used to initialize an access | |
| value. | |
| PR ada/21346 | |
| * a-direct.adb (Compose): Containing_Directory can be an empty string. | |
| 2007-12-07 Olivier Hainque <hainque@adacore.com> | |
| PR ada/34173 | |
| * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting | |
| the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if | |
| this is from an alignment clause on the GNAT entity. | |
| * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN | |
| to distinguish the case where we set it from the type's alignment. | |
| When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate | |
| whether this alignment was set from an explicit alignment clause. | |
| 2007-12-06 Eric Botcazou <ebotcazou@adacore.com> | |
| * decl.c (make_packable_type): Revert last change. | |
| (gnat_to_gnu_field): Avoid setting size and position multiple times. | |
| * utils.c (finish_record_type): Retrieve the real name of the type. | |
| 2007-12-05 Eric Botcazou <ebotcazou@adacore.com> | |
| * trans.c (lvalue_required_p): Take base node directly instead | |
| of its parent. Rename second parameter to 'gnu_type'. | |
| <N_Indexed_Component>: Return 0 if the node isn't the prefix. | |
| <N_Slice>: Likewise. | |
| (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue. | |
| Adjust calls to lvalue_required_p. | |
| 2007-12-05 Samuel Tardieu <sam@rfc1149.net> | |
| PR ada/21489 | |
| * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type | |
| parameters of an entry call. | |
| 2007-12-03 Robert Dewar <dewar@adacore.com> | |
| Samuel Tardieu <sam@rfc1149.net> | |
| PR ada/34287 | |
| * sem_util.adb (Safe_To_Capture_Value): Do not capture values | |
| of variables declared in a library-level package. | |
| 2007-12-02 Samuel Tardieu <sam@rfc1149.net> | |
| * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead | |
| of Empty_String'Unchecked_Access. | |
| * Makefile.in: Add support for sh4-linux. | |
| * system-linux-sh4.ads: New file. | |
| 2007-12-01 Kostik Belousov <kostikbel@ukr.net> | |
| PR ada/33722 | |
| * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv() | |
| and its argument must not be free()ed. | |
| 2007-11-29 Eric Botcazou <ebotcazou@adacore.com> | |
| * decl.c (make_packable_type): Retrieve the real name of the type. | |
| (maybe_pad_type): Simplify similar code. | |
| 2007-11-28 Samuel Tardieu <sam@rfc1149.net> | |
| PR ada/15804 | |
| * par-ch3.adb (P_Variant_Part): Signal an error when anything other | |
| than an identifier is used after "case" in a variant_part. | |
| PR ada/17318 | |
| * par-ch4.adb (Is_Parameterless_Attribute): New map. | |
| (P_Name, Scan_Apostrophe block): Parse left parenthesis following | |
| attribute name or not depending on the new map. | |
| * sem-attr.adb (Analyze_Attribute): Parameterless attributes | |
| returning a string or a type will not be called with improper | |
| arguments. | |
| * sem-attr.ads (Attribute_Class_Array): Move to snames.ads. | |
| * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads. | |
| PR ada/32792 | |
| * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause): | |
| Signal an error when attribute argument is a fixed-point value of | |
| an unknown type. | |
| PR ada/22559 | |
| * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on | |
| a derived ordinary fixed point type. | |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute | |
| RM_Size when a Small clause is found. | |
| 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com> | |
| PR 34081/C++ | |
| * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu): | |
| Pass 'false' for the new allocate_struct_function parameter. | |
| * utils.c (build_function_stub): Likewise. | |
| 2007-11-25 Richard Guenther <rguenther@suse.de> | |
| * utils.c (gnat_pushlevel): Use BLOCK_CHAIN. | |
| (gnat_poplevel): Likewise. | |
| 2007-11-25 Eric Botcazou <ebotcazou@adacore.com> | |
| * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has | |
| strict alignment, no alignment clause and a known static size, cap | |
| the type alignment to the greatest power of 2 factor of the size. | |
| (gnat_to_gnu_field): If the field has a component clause, is aliased | |
| or of a type with strict alignment, require that its size be equal to | |
| that of the type. | |
| (validate_size): Use the type size as the minimum size for a type with | |
| strict alignment. | |
| 2007-11-23 Samuel Tardieu <sam@rfc1149.net> | |
| * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb, | |
| s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb, | |
| s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb: | |
| Use 'Access instead of 'Unchecked_Access in second and third | |
| arguments of pthread_sigmask. | |
| 2007-11-23 Eric Botcazou <ebotcazou@adacore.com> | |
| * decl.c (ceil_alignment): New function. | |
| (gnat_to_gnu_entity): Use it to set the alignment on atomic types. | |
| (make_packable_type): Likewise. | |
| 2007-11-22 Olivier Hainque <hainque@adacore.com> | |
| * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines | |
| to fit in 80 columns. | |
| 2007-11-21 Aurelien Jarno <aurelien@aurel32.net> | |
| * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function. | |
| * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB. | |
| 2007-11-19 Eric Botcazou <ebotcazou@adacore.com> | |
| PR ada/34098 | |
| * misc.c (gnat_adjust_rli): Delete. | |
| (gnat_init): Do not initialize the translation code here. | |
| Do not call set_lang_adjust_rli. | |
| * trans.c (init_code_table): Make static. | |
| (gnat_init_stmt_group): Delete. | |
| (gigi): Initialize the translation code entirely here. | |
| Emit debug info for the common types here instead of... | |
| * utils.c (gnat_init_decl_processing): ...here. | |
| * gigi.h (init_code_table): Delete. | |
| (gnat_init_stmt_group): Likewise. | |
| 2007-11-16 Olivier Hainque <hainque@adacore.com> | |
| * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code | |
| retrieving an allocator return value from a super-aligned address from | |
| here to ... | |
| * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't | |
| expect a super-aligned address for a fat or thin pointer. | |
| 2007-11-14 Eric Botcazou <ebotcazou@adacore.com> | |
| * trans.c (call_to_gnu): Always set the source location on the call | |
| expression. If the function returns-by-target, also set it on the | |
| address expression. | |
| 2007-11-14 Samuel Tardieu <sam@rfc1149.net> | |
| * adaint.c, init.c, initialize.c, link.c: Remove system-specific | |
| sections of non-supported Interix target. | |
| * s-osinte-interix.ads: Removed. | |
| * i-cstrin.ads (chars_ptr): Make it a C convention type. | |
| 2007-11-13 Samuel Tardieu <sam@rfc1149.net> | |
| * a-tasatt.adb: Add a comment at the beginning of the package | |
| explaining why in general 'Unchecked_Access must be used instead | |
| of 'Access. | |
| * sem_prag.adb (Process_Convention): Move the test for the | |
| entity on which the Convention pragma applies down to also | |
| forbid pragma Convention on enumeration literals reached | |
| through renamings. | |
| 2007-11-10 Samuel Tardieu <sam@rfc1149.net> | |
| * a-tasatt.adb: Revert previous change for this file as it will | |
| generate an error when this package is instantiated from a | |
| local context. | |
| 2007-11-07 Samuel Tardieu <sam@rfc1149.net> | |
| * a-tasatt.adb: Type Wrapper should be declared in comment instead | |
| of already declared type Node_Access. | |
| Use 'Access instead of 'Unchecked_Access when applicable. Local | |
| lifetime is the one of the package. | |
| (Set_Value): W is allocated on the heap. | |
| * g-socket.adb: Use 'Access instead of 'Unchecked_Access when | |
| applicable. | |
| (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous | |
| access type. | |
| (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous | |
| access type. | |
| * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when | |
| applicable. | |
| (elaboration code): Timer_Queue lifetime is the one of the | |
| package. | |
| * tracebak.c (i386 alternative): Remove useless comparaison | |
| which is always false; LOWEST_ADDRESS is 0 and is never greater | |
| than an unsigned integer. | |
| * sem_attr.adb (Analyze_Attribute): Remove duplicate identical | |
| embedded check for "Ada_Version >= Ada_05". | |
| 2007-11-07 Olivier Hainque <hainque@adacore.com> | |
| * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we | |
| craft and expand comment. | |
| 2007-11-01 Eric Botcazou <ebotcazou@adacore.com> | |
| * lang-specs.h: Move translation of -fRTS= after -gnatez switch. | |
| 2007-10-23 Eric Botcazou <ebotcazou@adacore.com> | |
| * misc.c (gnat_handle_option): Replace call to abort with | |
| call to gcc_unreachable. | |
| (gnat_init): Likewise. | |
| (gnat_expand_expr): Likewise. | |
| (fp_prec_to_size): Likewise. | |
| (fp_size_to_prec): Likewise. | |
| 2007-10-23 Richard Guenther <rguenther@suse.de> | |
| PR bootstrap/33608 | |
| * tracebak.c: #undef abort after including system.h. | |
| 2007-10-20 Danny Smith <dannysmith@users.sourceforge.net> | |
| * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb, | |
| s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads | |
| for win32 targets. | |
| (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets. | |
| 2007-10-15 Eric Botcazou <ebotcazou@adacore.com> | |
| * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter. | |
| Set the protection status of the guard page based on the value of On. | |
| * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter. | |
| * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone. | |
| (Exit_Task): Pass False to Hide_Yellow_Zone. | |
| 2007-10-15 Robert Dewar <dewar@adacore.com> | |
| * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, | |
| s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb, | |
| a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, | |
| checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, | |
| freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, | |
| gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, | |
| mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, | |
| prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, | |
| sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, | |
| s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads, | |
| uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, | |
| a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, | |
| a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, | |
| a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, | |
| a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, | |
| a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb: | |
| Minor reformatting. | |
| Add Unreferenced and Warnings (Off) pragmas for cases of | |
| variables modified calls where they are IN OUT or OUT parameters and | |
| the resulting values are not subsequently referenced. In a few cases, | |
| we also remove redundant code found by the new warnings. | |
| * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, | |
| sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb, | |
| sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb, | |
| sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new | |
| warning controlled by -gnatw.o that warns on cases of out parameter | |
| values being ignored. | |
| 2007-10-15 Geert Bosch <bosch@adacore.com> | |
| * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus. | |
| * expect.c: Initial port to arm-mentor-nucleus. | |
| Use kill for __gnat_kill() on VMS. | |
| 2007-10-15 Emmanuel Briot <briot@adacore.com> | |
| * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default | |
| value. | |
| (Xref_Record): Change type for Line, since in the case of a reference to | |
| a predefined entity (as happens for array index types), the line is set | |
| to 0. | |
| Add support for parsing multiple array index types info, or | |
| multiple inherited interfaces info. This information cannot be stored | |
| in Xref_Entity_Record, which only supports a single instance of Tref_*, | |
| and is therefore stored in the list of references instead. It has a | |
| special treatement later on in tools that use this information. | |
| 2007-10-15 Tristan Gingold <gingold@adacore.com> | |
| * debug.adb: Document use of -gnatd.a and -gnatd.I | |
| * layout.adb: On OpenVMS -gnatd.a disables alignment optimization. | |
| 2007-10-15 Javier Miranda <miranda@adacore.com> | |
| * exp_attr.adb (Expand_N_Attribute_Reference): Case Access, | |
| Unchecked_Access, and Unrestricted_Access. Cleanup code that takes | |
| care of access to class-wide interface types plus removal of bizarre | |
| conversion of tagged object to access type (reported by Gary | |
| Dismukes). After this patch there is no need to perform any | |
| additional management on these nodes in Expand_Interface_Actuals. | |
| * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code | |
| that handles use of 'Access and 'Unchecked_Access applied to | |
| actuals covering interface types. Such code is now | |
| centralized in Expand_N_Attribute_Reference. | |
| 2007-10-15 Ed Schonberg <schonberg@adacore.com> | |
| * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization | |
| of tagged types whose ultimate ancestor is a CPP type. | |
| (Freeze_Array_Type): For a packed array type, generate an initialization | |
| procedure if the type is public, to handle properly a client that | |
| specifies Normalize_Scalars. | |
| 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com> | |
| * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs | |
| inside a generic body, retrieve the full view of the entry family | |
| discrete subtype if available. | |
| 2007-10-15 Thomas Quinot <quinot@adacore.com> | |
| * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not | |
| attempt to generate stubs for hidden primitive operations. | |
| 2007-10-15 Vincent Celier <celier@adacore.com> | |
| * mlib-tgt-specific.adb (Support_For_Libraries): New function, | |
| returning None, used when there is no platform specific body for | |
| MLib.Tgt.Specific. | |
| 2007-10-15 Bob Duff <duff@adacore.com> | |
| * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A | |
| (passing'Unrestricted_Access of nested subprograms to Sort) with use of | |
| the generic Heap_Sort_G, in order to avoid trampolines. | |
| 2007-10-15 Vasiliy Fofanov <fofanov@adacore.com> | |
| Jose Ruiz <ruiz@adacore.com> | |
| * vx_stack_info.c: New file. | |
| * i-forbla-unimplemented.ads: New file. | |
| * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads | |
| for unsupported configurations; use it on VMS targets instead of the | |
| real one. | |
| (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include | |
| vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info | |
| used by VxWorks targets to have access to task-specific data and be | |
| able to extract the stack boundaries for stack checking. | |
| Use system-vms-ia64.ads on ivms. | |
| * Make-lang.in: Update dependencies. | |
| * sysdep.c (__gnat_get_stack_info): Move to a standalone file | |
| (vx_stack_info.c). | |
| 2007-10-15 Vincent Celier <celier@adacore.com> | |
| * snames.adb, snames.ads: Add new standard name runtime_library_dir | |
| * prj.ads (Language_Config): Add new component Runtime_Library_Dir | |
| * prj-attr.adb: Add project level attribute Runtime_Library_Dir | |
| * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of | |
| the source is unknown. | |
| * prj-ext.adb: Spelling error fix | |
| * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada | |
| 95 reserved word in its name. | |
| (Process_Project_Level_Array_Attributes): Process new attribute | |
| Runtime_Library_Dir. | |
| * prj-part.adb (Parse_Single_Project): Do not check the name of the | |
| config project against the user project names. | |
| * prj-proc.adb (Expression): In multi-language mode, indexes that do | |
| not include a dot are always case insensitive. | |
| (Process_Declarative_Items): Ditto | |
| (Process_Project_Tree_Phase_1): Set Success to False in case an error is | |
| detected. | |
| * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is | |
| True, compare both indexes in lower case. | |
| 2007-10-15 Robert Dewar <dewar@adacore.com> | |
| * rtsfind.adb: (Load_RTU): Turn off style checks for Load call | |
| 2007-10-15 Gary Dismukes <dismukes@adacore.com> | |
| * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box | |
| association for an access component, add an association with null as | |
| the expression. Remove testing for array subtypes and the setting in | |
| that case of Ctyp to the array component type, which prevented proper | |
| inclusion of an association for null-initialized arrays. Collapse | |
| condition that tests for array subtypes into just a test of | |
| Is_Partially_Initialized_Type (which already covers arrays anyway). | |
| 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com> | |
| * sem_ch12.adb: Minor code reformatting. | |
| (Check_Generic_Child_Unit): Iterate over the homonym chain in order to | |
| find the parent package which may have been hidden by local | |
| declarations. | |
| 2007-10-15 Gary Dismukes <dismukes@adacore.com> | |
| * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained | |
| flag of derived concurrent types, taking into account the flag setting | |
| on the parent subtype and any new set of discriminants. | |
| 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com> | |
| * sem_ch4.adb: Minor code and comment reformatting. | |
| (Analyze_Allocator): When the designated type of an unconstrained | |
| allocator is a record with unknown discriminants or an array with | |
| unknown range bounds, emit a detailed error message depending on the | |
| compilation mode and whether the designated type is limited. | |
| 2007-10-15 Tristan Gingold <gingold@adacore.com> | |
| * system-vms-ia64.ads: New file. | |
| * system-vms_64.ads: Minor comment fix. | |
| 2007-10-15 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a | |
| body generated for a function with a controlling result that is a null | |
| extension, discard the generated body in favor of the current explicit | |
| one. | |
| 2007-10-15 Ed Schonberg <schonberg@adacore.com> | |
| * sem_disp.adb (Find_Controlling_Arg): Examine the call node before | |
| examining its original form, to handle properly operator calls that | |
| have been rewritten. | |
| 2007-10-15 Olivier Hainque <hainque@adacore.com> | |
| * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer | |
| instead of a procedure value in each traceback entry. | |
| * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer | |
| instead of procedure value to TBK$SYMBOLIZE. | |
| * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper | |
| field. | |
| (TB_Entry_For): Account for the PV/FP renaming. | |
| * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and | |
| add comment. | |
| (Null_TB_Entry): Account for change of component name. | |
| (PV_For): Rename as FP_For. | |
| 2007-10-15 Tristan Gingold <gingold@adacore.com> | |
| * trans.c (gnat_to_gnu): Remove the padding structure more often. | |
| This optimize assignment to over-aligned record. | |
| 2007-10-15 Emmanuel Briot <briot@adacore.com> | |
| * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie | |
| interfaces. | |
| * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference | |
| type, for dispatching calls. | |
| 2007-10-15 Vincent Celier <celier@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * gnat_ugn.texi: Add documentation for switches --version and --help | |
| for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname, | |
| gnatxref, gnatfind, gnatls, and gnatclean. | |
| Document -gnatw.o. | |
| Mention attribute Excluded_Source_Dirs | |
| Replace obsolescent attribute Locally_Removed_Files with attribute | |
| Excluded_Source_Files. | |
| Improve documentation of -u (gnatbind) | |
| Document how to do reliable stack checking for the environmental task | |
| on iVMS. | |
| * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code. | |
| Document attribute Excluded_Source_Files and indicate that attribute | |
| Locally_Removed_Files is obsolescent. | |
| 2007-10-15 Thomas Quinot <quinot@adacore.com> | |
| * g-soccon-vms.ads: Fix value of MSG_WAITALL. | |
| * gen-soccon.c: | |
| Update documentation to note that OpenVMS 8.3 or later must be used | |
| to generate g-soccon-vms.ads. | |
| * atree.adb: Add ??? comment | |
| * exp_util.adb: Minor reformatting. | |
| Add ??? comment in Kill_Dead_Code. | |
| 2007-10-15 Robert Dewar <dewar@adacore.com> | |
| * errout.ads: Comment clarification | |
| * exp_ch4.adb (Expand_N_Allocator): Code cleanup. | |
| (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa | |
| * lib.ads: Comment update | |
| * init.c: Minor reformatting. | |
| * sem_attr.adb: Minor formatting | |
| * osint-b.ads: Minor reformatting | |
| * sem_ch9.adb: Implement -gnatd.I switch | |
| * g-comlin.adb: (Start): Fix handling of empty command line. | |
| * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section, | |
| even when -rules follows the -cargs section. | |
| 2007-10-08 Ollie Wild <aaw@google.com> | |
| * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with | |
| gnat_return_tree. | |
| (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with | |
| gnat_return_tree. | |
| (gnat_eh_runtime_type): Removed. | |
| (gnat_return_tree): New function. | |
| 2007-10-08 Ben Elliston <bje@au.ibm.com> | |
| PR ada/33454 | |
| Revert: | |
| 2007-08-31 Ben Elliston <bje@au.ibm.com> | |
| * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads | |
| when compiling for powerpc64-*-linux. | |
| * system-linux-ppc64.ads: New file. | |
| 2007-09-27 Eric Botcazou <ebotcazou@adacore.com> | |
| Mapped location support | |
| * back_end.adb (Call_Back_End): Pass information about source | |
| files instead of units to gigi. | |
| * gigi.h (struct File_Info_Type): New. | |
| (gigi): Rename and change type of number_units parameter, change | |
| type of file_info_ptr parameter. | |
| * trans.c (number_files): New global variable. | |
| (gigi): Rename and change type of number_units parameter, change | |
| type of file_info_ptr parameter. | |
| If mapped location support is enabled, create the isomorphic mapping | |
| between source files and line maps. | |
| (Sloc_to_locus): If mapped location support is enabled, translate | |
| source location into mapped location. | |
| (annotate_with_node): Rename into set_expr_location_from_node. | |
| Call set_expr_location instead of annotate_with_locus. | |
| (Pragma_to_gnu): Adjust for above change. | |
| (Loop_Statement_to_gnu): Likewise. | |
| (call_to_gnu): Likewise. | |
| (Handled_Sequence_Of_Statements_to_gnu): Likewise. | |
| (gnat_to_gnu): Likewise. | |
| (add_stmt_with_node): Likewise. | |
| (add_cleanup): Likewise. | |
| * utils.c (gnat_init_decl_processing): Do not set input_line. | |
| 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com> | |
| * sem_ch8.adb (Analyze_Use_Type): Code cleanup. | |
| (Applicable_Use): Emit a warning when a package tries to use itself. | |
| (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type | |
| is already in use or the package where it is declared is in use or is | |
| declared in the current package. | |
| (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type. | |
| * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb, | |
| s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb, | |
| s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause. | |
| 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com> | |
| * a-calend-vms.adb, a-calend.adb: | |
| Add a section on leap seconds control along with two entities used to | |
| enable and disable leap seconds support. The array Leap_Second_Times is | |
| now constant and contains hard time values pre-generated. Remove | |
| all elaboration code used to populate the table of leap seconds. | |
| * bindgen.adb: | |
| Add entity Leap_Seconds_Support to the list of global run-time variables | |
| along with a comment on its usage and values. | |
| (Gen_Adainit_Ada): Add code to generate the declaration and import of | |
| Integer variable Leap_Seconds_Support. Set its value to zero (disabled) | |
| or one (enabled) depending on the presence of binder switch "-y". | |
| (Gen_Adainit_C): Add code to generate the declaration of external int | |
| __gl_leap_seconds_support. Set is value to zero (disabled) or one | |
| (enabled) depending on the presence of binder switch "-y". | |
| * init.c: Add __gl_leap_seconds_support to the list of global values | |
| computed by the binder. | |
| 2007-09-26 Jerome Guitton <guitton@adacore.com> | |
| * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, | |
| s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb, | |
| s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, | |
| s-taprop-posix.adb (Stop_Task): New function, dummy implementation. | |
| * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function. | |
| * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time | |
| function which can be called by the debugger to interrupt the tasks of | |
| an Ada application asynchronously, as needed on VxWorks. | |
| (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks. | |
| * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration, | |
| renamed from Stop_All_Tasks. Update comments. | |
| (Stop_All_tasks): New function declaration. | |
| 2007-09-26 Olivier Hainque <hainque@adacore.com> | |
| * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around | |
| #include <utime.h> and #define GCC_RESOURCE_H before | |
| #include <sys/wait.h>. | |
| Add more protections in __gnat_translate_vms. | |
| * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before | |
| #include <sys/wait.h>. | |
| 2007-09-26 Thomas Quinot <quinot@adacore.com> | |
| Sergey Rybin <rybin@adacore.com> | |
| * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed. | |
| * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist, | |
| where it belongs. | |
| * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO. | |
| * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist, | |
| where it belongs. | |
| * sem_dist.ads: Minor comment fix | |
| * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO. | |
| 2007-09-26 Javier Miranda <miranda@adacore.com> | |
| Eric Botcazou <ebotcazou@adacore.com> | |
| * a-tags.adb: | |
| (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of | |
| indirection added to the HT_Link component of the TSD. This is required | |
| to statically allocate the TSD. | |
| * a-tags.ads: | |
| Minor reordering of the declarations in the private part. Required to | |
| add a level of indirection to the contents of the TSD component HT_Link. | |
| This is required to statically allocate the TSD. | |
| * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with | |
| Is_Statically_Allocated set from constant objects. | |
| Do not make exported constants created by the compiler volatile. | |
| (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken | |
| as read-only. | |
| * trans.c (Identifier_to_gnu): For constants, unshare initializers | |
| before returning them. | |
| * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the | |
| public part of the package. | |
| (Make_DT): Move HT_Link component out of the TSD record. For this | |
| purpose Make_DT now declares a separate object that stores the | |
| HT_Link value, and initializes the TSD component with the address | |
| of this new object. The addition of this level of indirection is | |
| required to statically allocate the TSD because the TSD cannot | |
| have variable components. | |
| (Expand_Interface_Conversion): Improve the expanded code. | |
| (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity. | |
| * sem_disp.adb (Check_Dispatching_Operation): In case of a body | |
| declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---, | |
| if we are building static dispatch tables then we must not generate | |
| extra code to register the primitive because the dispatch table will | |
| be built at the end of the library package; otherwise we notify that | |
| we cannot build the static dispatch table. | |
| 2007-09-26 Robert Dewar <dewar@adacore.com> | |
| * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address | |
| overlays. | |
| * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays | |
| (Analyze_Record_Representation_Clause): Suppress junk warning for | |
| missing component clause. | |
| (Analyze_Attribute_Definition_Clause, case Address): Apply the special | |
| tests for controlled type overlay to composites with controlled | |
| components. | |
| (Analyze_Record_Representation_Clause): Add reference for component name | |
| 2007-09-26 Javier Miranda <miranda@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True | |
| for thunks associated with interface types. | |
| * einfo.ads: Improve documentatation of Is_Internal | |
| (Is_Thunk): New attribute applicable to subprograms. True for thunks | |
| associated with interface types. | |
| Extensive comment fixes regarding flags that appear in all entities. The | |
| documentation is now consistent for all such flags (there were a number | |
| of errors in the documentation in this regard). | |
| * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup. | |
| * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any | |
| of these procedures are passed a function call that already has | |
| build-in-place actuals (testing new flag | |
| Is_Expanded_Build_In_Place_Call). Set the flag on the function call in | |
| the case where processing continues. | |
| (Expand_Call): If the call is generated from a thunk body then we | |
| propagate the extra actuals associated with the accessibility | |
| level of the access type actuals. | |
| * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field | |
| of each extra formal of a protected operation to reference the | |
| corresponding extra formal of the subprogram denoted by the | |
| operation's Protected_Body_Subprogram. | |
| * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on | |
| N_Function_Call nodes. | |
| 2007-09-26 Robert Dewar <dewar@adacore.com> | |
| * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set | |
| * debug.adb: Add d.s flag. | |
| 2007-09-26 Gary Dismukes <dismukes@adacore.com> | |
| * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the | |
| debug variable so that it won't be initialized when pragma | |
| Initialize_Scalars is in effect. | |
| 2007-09-26 Gary Dismukes <dismukes@adacore.com> | |
| * freeze.adb (Freeze_Entity): Remove check for preelaborable | |
| initialization of a full view. This is moved to | |
| Analyze_Package_Specification. | |
| * sem_ch7.adb (Analyze_Package_Specification): Add check for | |
| preelaborable initialization of a full view in entity loop. | |
| (Uninstall_Declarations): If entity is a use-visible compilation unit, | |
| its child units are use-visible only if they are visible child units. | |
| * sem_util.adb (Is_Preelaborable_Expression): New function to determine | |
| whether an expression can be used within a type declaration that | |
| requires preelaborable init. | |
| (Check_Components): Replace inline code that does partial checking for | |
| preelaborable default expressions with call to | |
| Is_Preelaborable_Expression. | |
| (Has_Preelaborable_Initialization): In the case of a generic actual | |
| subtype, (that is, Is_Generic_Actual is True), return the result of | |
| applying Has_Preelaborable_Initialization to the generic actual's base | |
| type. | |
| 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com> | |
| * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a | |
| call to Jan_1_Day _Of_Week to optimize its performance. | |
| (Is_Leap): Move the routine to the scope of Week_In_Year. | |
| (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the | |
| weekday on which January 1 falls of Year - 1 and Year + 1. This function | |
| avoids calling Time_Of and Split, thus making it more efficent. | |
| (Week_In_Year): Reimplemented in oder to follow ISO 8601. | |
| * g-calend.ads (Week_In_Year): Change comment to reflect new | |
| implementation. | |
| 2007-09-26 Emmanuel Briot <briot@adacore.com> | |
| * g-comlin.ads, g-comlin.adb (Command_Line_Configuration, | |
| Command_Line): New types | |
| (Define_Alias, Define_Prefix, Free): New subprograms. These provide | |
| support for defining how switches can be grouped on a command line (as | |
| is the case for -gnatw... for GNAT), and how simple switches can be | |
| used as aliases for more complex switches (-gnatwa is same as | |
| -gnatwbcef...) | |
| (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram | |
| (Start, Current_*): New subprograms | |
| Added support for parsing an array of strings in addition to the real | |
| command line. | |
| (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to | |
| be moved from the body to the private part of the spec. | |
| (*): All subprograms now have an extra parameter with default value to | |
| specify which parser should be used. For backward compatibility, it | |
| defaults to parsing the command line of the application. They were also | |
| modified to properly handle cases where each of the argument does not | |
| start at index 1 (which is always true for Ada.Command_Line, but not | |
| when processing any Argument_List). | |
| (Free): New subprogram | |
| (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch, | |
| Argument): New subprograms | |
| (Switch_Parameter_Type): New enum, which clarifies the code. The extra | |
| special characters like ':', '=',... are now handled in a single place, | |
| which makes the code more extensible eventually. | |
| (Getopt, Full_Switch): When the switch was returned as part of the | |
| special character '*', make sure it is prepended by the switch character | |
| ('-' in general), so that the application knows whether "foo" or "-foo" | |
| was specified on the command line. | |
| 2007-09-26 Florian Villoing <villoing@adacore.com> | |
| * g-dirope.adb (Remove_Dir): In case we are removing directories | |
| recursively, make sure that if an exception is raised during the | |
| processing, the current working directory is reset to its initial | |
| value before propagating the exception. | |
| 2007-09-26 Vincent Celier <celier@adacore.com> | |
| * gnatbind.adb: If there are several ALI files specified and there is | |
| a main program to bind, the first ALI is expected to contain the main | |
| subprogram and the names of the binder generated files will be derived | |
| from the first ALI file name. | |
| (Gnatbind): Fix insertion character in invocation of Error_Msg | |
| 2007-09-26 Vincent Celier <celier@adacore.com> | |
| * gnatcmd.adb (Check_Files): Do not include sources that have been | |
| removed by attributes Exclude_Source_Files or Locally_Removed_Files. | |
| 2007-09-26 Ed Schonberg <schonberg@adacore.com> | |
| * lib-xref.ads, lib-xref.adb: The entry for array types now carries | |
| information about each of its index types, following the type | |
| reference for its component type. | |
| 2007-09-26 Vincent Celier <celier@adacore.com> | |
| * make.adb: (Kill): New procedure (__gnat_kill imported) | |
| (Running_Compile, Outstanding_Compiles): Global variables that | |
| were previously local to procedure Compile_Sources. | |
| (Sigint_Intercepted): Send signal SIGINT to all outstanding | |
| compilation processes. | |
| (Gnatmake): If project files are used, create the mapping of all the | |
| sources, so that the correct paths will be found. | |
| * prj-env.ads, prj-env.adb (Create_Mapping): New procedure | |
| 2007-09-26 Vincent Celier <celier@adacore.com> | |
| * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads | |
| * prj.ads, prj.adb (Default_Language): Remove function, no longer used | |
| Replace components Compiler_Min_Options and Binder_Min_Options with | |
| Compiler_Required_Switches and Binder_Required_Switches in record | |
| Language_Config. | |
| Remove components Default_Language and Config in Project_Tree_Data, | |
| no longer used. | |
| * prj-attr.adb: New attributes Required_Switches (<language>) in | |
| packages Compiler and Binder. | |
| * prj-nmsc.adb: Major rewrite of the processing of configuration | |
| attributes for gprbuild. No impact on GNAT tools. | |
| * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer | |
| process configuration attributes: this is done in Prj.Nmsc.Check. | |
| (Recursive_Process): Make a full copy of packages inherited from project | |
| being extended, instead of a shallow copy. | |
| (Process_Project_Tree_Phase_1): New procedure | |
| (Process_Project_Tree_Phase_1): New procedure | |
| (Process): Implementation now uses the two new procedures | |
| * prj-util.adb (Executable_Of): Get the suffix and the default suffix | |
| from the project config, not the tree config that no longer exists. | |
| 2007-09-26 Vincent Celier <celier@adacore.com> | |
| * Make-lang.in: Update dependencies.. | |
| 2007-09-26 Vincent Celier <celier@adacore.com> | |
| * osint.adb, osint.ads: Minor reformatting | |
| * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure | |
| 2007-09-26 Gary Dismukes <dismukes@adacore.com> | |
| * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95 | |
| message to cite use of <> in aggregate component associations rather | |
| than wrongly indicating use of limited aggregates. | |
| 2007-09-26 Robert Dewar <dewar@adacore.com> | |
| * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of | |
| Address_Taken. | |
| 2007-09-26 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct | |
| ancestor of the derived type, the operations are inherited from the | |
| primary dispatch table of the parent. | |
| (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls | |
| when the context is an explicit type conversion. | |
| 2007-09-26 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution | |
| rule for qualified expressions properly, to detect improper conversions | |
| and resolve some cases of overloading. | |
| 2007-09-26 Ed Schonberg <schonberg@adacore.com> | |
| * sem_res.adb (Resolve_Call): If the call is dispatching, generate the | |
| proper kind of reference to the primitive operation, for better source | |
| navigation. | |
| (Valid_Conversion): A tagged conversion is legal if both operands are | |
| tagged. | |
| 2007-09-26 Robert Dewar <dewar@adacore.com> | |
| * sem_warn.adb (Check_References): Catch more cases of unreferenced | |
| packages. | |
| 2007-09-26 Vincent Celier <celier@adacore.com> | |
| * snames.adb, snames.ads: Change Include_Option to Include_Switches | |
| 2007-09-26 Robert Dewar <dewar@adacore.com> | |
| * s-wchstw.adb: provide messages for run time unit exceptions | |
| * a-witeio.adb: Minor reformatting | |
| * exp_ch13.adb: Minor reformatting | |
| 2007-09-26 Sergey Rybin <rybin@adacore.com> | |
| * vms_data.ads: Revise gnatmetric qualifiers. | |
| Add qualified for the new gnatbind option '-y' | |
| * gnat_ugn.texi: Revise the gnatmetric section. | |
| Add entry for new gnatbind option '-y'. | |
| * gnat_rm.texi: Minor spelling correction. | |
| Document restriction on overlaying controlled types | |
| 2007-09-26 Vincent Celier <celier@adacore.com> | |
| * makegpr.adb (Link_Executables): Do not fail when the root project has | |
| no sources, but is an extending project. | |
| 2007-09-25 Eric Botcazou <ebotcazou@adacore.com> | |
| * trans.c: Fix misplaced #define. | |
| 2007-09-22 Eric Botcazou <ebotcazou@adacore.com> | |
| * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate | |
| the TYPE_REF_CAN_ALIAS_ALL flag to the result. | |
| 2007-09-21 Olivier Hainque <hainque@adacore.com> | |
| * utils.c (type_for_nonaliased_component_p): Return false for | |
| all AGGREGATE_TYPEs. | |
| 2007-09-17 Eric Botcazou <ebotcazou@adacore.com> | |
| * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an | |
| object covered by 13.3(19) volatile. | |
| 2007-09-12 Eric Botcazou <ebotcazou@adacore.com> | |
| PR ada/26797 | |
| PR ada/32407 | |
| * utils.c (unchecked_convert): Use a subtype as the intermediate type | |
| in the special VIEW_CONVERT_EXPR case. | |
| 2007-09-12 Robert Dewar <dewar@adacore.com> | |
| * types.ads, a-charac.ads, freeze.adb: Minor reformatting. | |
| * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads, | |
| lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb, | |
| s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb, | |
| s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb, | |
| s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb, | |
| s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb, | |
| s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb, | |
| s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb, | |
| a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, | |
| g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, | |
| s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, | |
| s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, | |
| snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, | |
| s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, | |
| s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, | |
| s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, | |
| s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement | |
| pragma Compiler_Unit and adds it to relevant library units. | |
| 2007-09-12 Ed Schonberg <schonberg@adacore.com> | |
| * sem_aggr.adb (Resolve_Record_Aggregate): An others association with | |
| a box need not correspond to any component. | |
| 2007-09-12 Robert Dewar <dewar@adacore.com> | |
| * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading | |
| the tasking version of the Ada run time when foreign threads are | |
| present and there are no explicit Ada tasks or tasking constructs. | |
| * gnat_rm.texi: Clarify documentation of GNAT.Threads. | |
| 2007-09-12 Hristian Kirtchev <kirtchev@adacore.com> | |
| * bindusg.adb (Display): Correct comment for switch -X. Add a line for | |
| the usage of switch -y. | |
| * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support | |
| when switch -y is present. | |
| * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable | |
| leap seconds in Ada.Calendar and its children. | |
| 2007-09-12 Jose Ruiz <ruiz@adacore.com> | |
| * a-extiti.ads (Timer): The discriminant is a "not null access | |
| constant" in the Reference Manual. | |
| (Cancel_Handler): Cancelled is an out parameter in the Reference Manual. | |
| 2007-09-12 Robert Dewar <dewar@adacore.com> | |
| * a-swuwha.adb: Remove junk RM header | |
| 2007-09-12 Vincent Celier <celier@adacore.com> | |
| * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode | |
| indicator | |
| * g-bytswa.ads: Minor reformatting | |
| 2007-09-12 Thomas Quinot <quinot@adacore.com> | |
| * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: | |
| Add new constant Thread_Blocking_IO, always True by default, set False | |
| on a per-runtime basis. | |
| (Need_Netdb_Buffer): New constant. | |
| 2007-09-12 Arnaud Charlet <charlet@adacore.com> | |
| * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id): | |
| Added renames for corresponding functions in System.Partition_Interface. | |
| 2007-09-12 Doug Rupp <rupp@adacore.com> | |
| * Makefile.in: Remove VMS specific System.CRTL packages which are no | |
| longer needed. | |
| * s-crtl-vms64.ads: Removed. | |
| 2007-09-12 Olivier Hainque <hainque@adacore.com> | |
| * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype | |
| with discriminant constraints, generalize the code for BIT_FIELDs | |
| to PACKED fields of constant size and propagate DECL_PACKED. | |
| 2007-09-11 Eric Botcazou <ebotcazou@adacore.com> | |
| * decl.c (array_type_has_nonaliased_component): New predicate. | |
| (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to | |
| set the TYPE_NONALIASED_COMPONENT flag on the type. | |
| <E_Array_Subtype>: Likewise. | |
| * gigi.h (type_for_nonaliased_component_p): Declare. | |
| * utils.c (type_for_nonaliased_component_p): New predicate. | |
| (create_field_decl): Invoke the above predicate to set the | |
| DECL_NONADDRESSABLE_P flag on the field. | |
| 2007-09-11 Javier Miranda <miranda@adacore.com> | |
| * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present | |
| in library level record type entities if we are generating statically | |
| allocated dispatch tables. | |
| * exp_disp.adb (Make_Tags/Make_DT): Replace previous code | |
| importing/exporting the _tag declaration by new code | |
| importing/exporting the dispatch table wrapper. This change allows us | |
| to statically allocate of the TSD. | |
| (Make_DT.Export_DT): New procedure. | |
| (Build_Static_DT): New function. | |
| (Has_DT): New function. | |
| * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags | |
| True_Constant and Current_Value. Required to statically | |
| allocate the dispatch tables. | |
| (Check_Allocator): Make function iterative instead of recursive. | |
| Also return inner allocator node, when present, so that we do not have | |
| to look for that node again in the caller. | |
| 2007-09-11 Jan Hubicka <jh@suse.cz> | |
| * misc.c (gnat_expand_body): Kill. | |
| (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. | |
| 2007-09-10 Robert Dewar <dewar@adacore.com> | |
| * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb, | |
| mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, | |
| mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, | |
| mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads, | |
| ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads, | |
| bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads, | |
| bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb, | |
| butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb, | |
| comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads, | |
| elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads, | |
| err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb, | |
| exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads, | |
| exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb, | |
| exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb, | |
| exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads, | |
| exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb, | |
| exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads, | |
| exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads, | |
| exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb, | |
| exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb, | |
| exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads, | |
| exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb, | |
| fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads, | |
| get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb, | |
| gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb, | |
| gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads, | |
| gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads, | |
| gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads, | |
| gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, | |
| gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads, | |
| inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads, | |
| lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb, | |
| lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads, | |
| make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads, | |
| mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, | |
| mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads, | |
| mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, | |
| mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt, | |
| osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb, | |
| osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, | |
| par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb, | |
| par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, | |
| par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb, | |
| par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb, | |
| par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads, | |
| prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads, | |
| prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb, | |
| prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, | |
| prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads, | |
| prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads, | |
| prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, | |
| prj-util.adb, prj-util.ads, restrict.adb, restrict.ads, | |
| rtsfind.adb, rtsfind.ads, scn.adb, scn.ads, | |
| scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb, | |
| sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb, | |
| sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb, | |
| sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads, | |
| sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, | |
| sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, | |
| sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads, | |
| sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb, | |
| sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads, | |
| sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb, | |
| sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads, | |
| sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, | |
| sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb, | |
| sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads, | |
| sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads, | |
| stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb, | |
| styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads, | |
| switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb, | |
| switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb, | |
| tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads, | |
| treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads, | |
| types.h, uintp.h, urealp.h, usage.adb, usage.ads, | |
| validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb, | |
| xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb, | |
| xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb, | |
| gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb, | |
| mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb, | |
| symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb, | |
| mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb, | |
| mlib-tgt-vms.ads: Replace headers with GPL v3 headers. | |
| 2007-09-10 Emmanuel Briot <briot@adacore.com> | |
| * s-regpat.adb (Parse_Character_Class): Fix handling of empty character | |
| classes ("[]"). | |
| 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com> | |
| * adaint.c (__gnat_translate_vms): new function. | |
| 2007-09-10 Gary Dismukes <dismukes@adacore.com> | |
| Thomas Quinot <quinot@adacore.com> | |
| * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only | |
| create an abstract subprogram in the case of 'Input. For 'Output we now | |
| create a real spec/body when the type is abstract, since it can | |
| potentially be called. | |
| (Predefined_Primitive_Bodies): Now allow the creation of a predefined | |
| body for 'Output when the type is abstract (only the creation of the | |
| body for 'Input is excluded when the type is abstract). | |
| (Stream_Operation_OK): Add an additional condition in the return | |
| statement, so that False will be returned for TTS_Stream_Input if the | |
| associated tagged type is an abstract extension. Add comments for | |
| return statement. | |
| (Expand_N_Object_Declaration): For the case of a shared passive | |
| variable, insert init proc call only after the shared variable | |
| procedures have been processed, because the IP call needs to undergo | |
| shared passive variable reference expansion, which requires these | |
| procedures to be available (and elaborated). | |
| 2007-09-10 Vincent Celier <celier@adacore.com> | |
| * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove | |
| parameter Runtime_Project. | |
| 2007-09-10 Ed Schonberg <schonberg@adacore.com> | |
| * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is | |
| given a box association, the type of the component is discriminated, | |
| and the value of the discriminant is the discriminant of the enclosing | |
| type, retrieve its value from the aggregate itself, where it must have | |
| been supplied. | |
| * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix, | |
| to remove other spurious ambiguities on arithmetic operations involving | |
| literals and addresses, on systems where Address is a visible integer | |
| type, when the operator is called in functional notation. | |
| (Try_Primitive_Operation): Within an instance, a call in prefixed form | |
| is legal when the types match, even if the operation is currently | |
| hidden. | |
| 2007-09-10 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch12.adb (Build_Local_Package): A formal package with no | |
| associations is legal if all formals have defaults. It is not | |
| equivalent to a formal declared with a box. | |
| 2007-09-10 Sergey Rybin <rybin@adacore.com> | |
| * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option | |
| 2007-09-10 Sergey Rybin <rybin@adacore.com> | |
| * gnat_ugn.texi: Add description of the new '-lratio' option | |
| Update 7.3.1 section about availability of the feature. | |
| 2007-09-10 Thomas Quinot <quinot@adacore.com> | |
| * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last | |
| inserted node. | |
| 2007-09-10 Olivier Hainque <hainque@adacore.com> | |
| * Makefile.in: (mips-irix section): Activate build of libgmem. | |
| 2007-09-10 Eric Botcazou <ebotcazou@adacore.com> | |
| * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber | |
| x87 registers. | |
| 2007-09-10 Eric Botcazou <ebotcazou@adacore.com> | |
| * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for | |
| a debug renaming declaration specially. | |
| 2007-09-08 Eric Botcazou <ebotcazou@adacore.com> | |
| * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under | |
| which a constant renaming is treated as a normal object declaration. | |
| * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from | |
| the N_Indexed_Component case. | |
| <N_Indexed_Component>: Fall through to above case. | |
| <N_Object_Renaming_Declaration>: Return true for all composite types. | |
| 2007-09-08 Eric Botcazou <ebotcazou@adacore.com> | |
| * decl.c (make_packable_type): If the new type has been given BLKmode, | |
| try again to get an integral mode for it. | |
| 2007-09-07 Eric Botcazou <ebotcazou@adacore.com> | |
| Re-apply accidentally reverted change: | |
| 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com> | |
| * raise-gcc.c (get_region_description_for, get_call_site_action_for, | |
| get_action_description_for): Replace _Unwind_Word with _uleb128_t | |
| and _Unwind_SWord with _sleb128_t. | |
| 2007-09-06 Eric Botcazou <ebotcazou@adacore.com> | |
| * trans.c (convert_with_check): Update call to real_2expN. | |
| 2007-09-05 Sandra Loosemore <sandra@codesourcery.com> | |
| * trans.c (Compilation_unit_to_gnu): Use set_cfun. | |
| * utils.c (end_subprog_body): Likewise. | |
| 2007-09-03 Nick Clifton <nickc@redhat.com> | |
| * Make-lang.in: Change copyright header to refer to version 3 of | |
| the GNU General Public License and to point readers at the | |
| COPYING3 file and the FSF's license web page. | |
| * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c, | |
| Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h, | |
| namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h, | |
| treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c: | |
| Likewise. | |
| 2007-08-31 Vincent Celier <celier@adacore.com> | |
| PR ada/4720 | |
| * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, | |
| gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb | |
| (Check_Version_And_Help): New procedure in package Switch to process | |
| switches --version and --help. | |
| Use Check_Version_And_Help in GNAT tools | |
| * make.adb: Ditto. | |
| (Compile_Sources): Make sure that sources that are "excluded" are not | |
| compiled. | |
| (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a | |
| project file is used. | |
| (Version_Switch): Remove, moved to Switch | |
| (Help_Switch): Remove, moved to Switch | |
| (Display_Version): Remove, moved to Switch | |
| * switch.ads, switch.adb (Check_Version_And_Help): New procedure in | |
| package Switch to process switches --version and --help. | |
| (Display_Version): New procedure | |
| * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function. | |
| 2007-08-31 Javier Miranda <miranda@adacore.com> | |
| * a-tags.adb (Internal_Tag): Protect the run-time against wrong | |
| internal tags. | |
| 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com> | |
| * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine. | |
| (Mark_Non_Null): If the node for which we just generated an access check | |
| is a reference to an *in* parameter and the reference appears in the | |
| declarative part of a subprogram body, mark the node as known non null. | |
| 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com> | |
| * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the | |
| structure of E_Exception to reflect the new flag. | |
| (Is_Raised, Set_Is_Raised): New inlined routines. | |
| Update the usage of available flag to reflect the addition of Is_Raised. | |
| (Is_Raised, Set_Is_Raised): Bodies of new routines. | |
| (Write_Entity_Flags): Write the status of flag Is_Raised. | |
| (Is_Descendent_Of_Address): New entity flag, to simplify handling of | |
| spurious ambiguities when integer literals appear in the context of an | |
| address type that is a visible integer type. | |
| * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local | |
| exceptions never being raised. | |
| (Analyze_Raise_Statement): When analyzing an exception, mark it as being | |
| explicitly raised. | |
| 2007-08-31 Javier Miranda <miranda@adacore.com> | |
| * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise | |
| statement when compiling under restriction No_Exceptions_Proparation. | |
| 2007-08-31 Ed Schonberg <schonberg@adacore.com> | |
| * exp_ch3.adb (Build_Record_Init_Proc): If there is a static | |
| initialization aggregate for the type, generate itype references for | |
| thetypes of its (sub)components, to prevent out-of-scope errors in gigi. | |
| 2007-08-31 Gary Dismukes <dismukes@adacore.com> | |
| * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a | |
| library-level package renaming, pass the declaration associated with | |
| the renaming's special debug variable to Qualify_Entity_Names to ensure | |
| that its encoded name is properly qualified. | |
| * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity | |
| occurring in the list of entities to qualify, and do not attempt to | |
| traverse an entity list in that case. Variables associated with | |
| ` library-level package renamings can now occur in the table. | |
| * exp_dbug.ads: Revise documentation of the encoding for renaming | |
| declarations. | |
| 2007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | |
| * layout.adb (Layout_Type): Use Underlying_Type to determine whether an | |
| access type points to an unconstrained array. | |
| 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com> | |
| * restrict.adb, namet.adb, par-util.adb: Remove redundant type | |
| conversion. | |
| * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect | |
| simple redundant qualifications. The check is performed whenever the | |
| expression is a non-overloaded identifier. | |
| (Resolve_Type_Conversion): Enchance the redundant type conversion check | |
| to include loop parameters. | |
| (Valid_Conversion): Avoid generation of spurious error message. | |
| 2007-08-31 Bob Duff <duff@adacore.com> | |
| * par-ch4.adb (P_Simple_Expression): Fold long sequences of | |
| concatenations of string literals into a single literal, in order to | |
| avoid very deep recursion in the front end, which was causing stack | |
| overflow. | |
| * sem_eval.adb (Eval_Concatenation): If the left operand is the empty | |
| string, and the right operand is a string literal (the case of "" & | |
| "..."), optimize by avoiding copying the right operand -- just use the | |
| value of the right operand directly. | |
| * stringt.adb (Store_String_Chars): Optimize by growing the | |
| String_Chars table all at once, rather than appending characters one by | |
| one. | |
| (Write_String_Table_Entry): If the string to be printed is very long, | |
| just print the first few characters, followed by the length. Otherwise, | |
| doing "pn(n)" in the debugger can take an extremely long time. | |
| * sem_prag.adb (Process_Interface_Name): Replace loop doing | |
| Store_String_Char with Store_String_Chars. | |
| 2007-08-31 Vincent Celier <celier@adacore.com> | |
| * prj-attr.adb: Add new attribute Excluded_Source_Files | |
| * prj-nmsc.adb: Use attribute Excluded_Source_Files before | |
| Locally_Removed_Files. | |
| * snames.ads, snames.adb: New standard name Excluded_Source_Files | |
| 2007-08-31 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context | |
| clauses of subunits, ignore limited_with_clauses that are illegal and | |
| have not been fully analyzed. | |
| 2007-08-31 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity | |
| flag, for effiency. It is called when analyzing arithmetic operators | |
| and also for actuals in calls that are universal_integers. The flag is | |
| set for the predefined type address, and for any type or subtype | |
| derived from it. | |
| * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a | |
| Universal_Integer, when the formal is a descendent of address and the | |
| call appears in user code. | |
| (Analyze_Selected_Component): if the prefix is a private extension, the | |
| tag component is visible. | |
| * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an | |
| entity flag. | |
| 2007-08-31 Robert Dewar <dewar@adacore.com> | |
| * s-fileio.adb (Open): Normalize file name to lower case in non-case | |
| sensitive file name systems to avoid unexpected mismatch in Vista. | |
| 2007-08-31 Vincent Celier <celier@adacore.com> | |
| * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR | |
| 2007-08-31 Vincent Celier <celier@adacore.com> | |
| * symbols-vms.adb (Initialize): Read symbol files with continuation | |
| lines | |
| (Finalize): If symbol is long, split the line | |
| 2007-08-31 Vincent Celier <celier@adacore.com> | |
| * fmap.ads: Minor comment updates | |
| 2007-08-31 GNAT Script <nobody@adacore.com> | |
| * Make-lang.in: Makefile automatically updated | |
| 2007-08-31 Bob Duff <duff@adacore.com> | |
| * sinfo.ads: Minor comment fix. | |
| 2007-08-31 Thomas Quinot <quinot@adacore.com> | |
| * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent | |
| with implementation. | |
| Documentation cleanup only. | |
| 2007-08-31 Sergey Rybin <rybin@adacore.com> | |
| * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new | |
| gnatpp '--separate-stmt-name' option. | |
| Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line' | |
| option. | |
| * gnat_ugn.texi: Add description for the new gnatpp | |
| '--separate-stmt-name' and '--use-on-new-line' options. | |
| 2007-08-31 Ben Elliston <bje@au.ibm.com> | |
| * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads | |
| when compiling for powerpc64-*-linux. | |
| * system-linux-ppc64.ads: New file. | |
| 2007-08-22 Krister Walfridsson <cato@df.lth.se> | |
| * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for | |
| NetBSD. | |
| 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
| * misc.c (gnat_type_max_size): Constify. | |
| 2007-08-16 Gary Dismukes <dismukes@adacore.com> | |
| * cstand.adb (Create_Standard): Create an entity for a zero-sized type | |
| associated with Standard_Debug_Renaming_Type, to be used as the type of | |
| the special variables whose names provide debugger encodings for | |
| renaming declarations. | |
| * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25. | |
| (Set_Debug_Renaming_Link): Change to set Node25. | |
| (Write_Field13_Name): Remove case for E_Enumeration_Literal. | |
| (Write_Field25_Name): Add case for E_Variable to output | |
| "Debug_Renaming_Link". | |
| (Write_Field23_Name): Correct the output string for "Limited_View". | |
| * exp_dbug.adb: Add with and use of Tbuild. | |
| (Debug_Renaming_Declaration): Replace creation of an enumeration type | |
| and literal with creation of a variable of type | |
| Standard_Debug_Renaming_Type whose name encodes both the renamed object | |
| and the entity of the renaming declaration. | |
| (Qualify_Entity_Name): Add the delayed qualification of the entity name | |
| part of the name of a variable that has a Debug_Renaming_Link. | |
| * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a | |
| special type to be associated with variables that provide debugger | |
| encodings for renaming declarations. | |
| 2007-08-16 Gary Dismukes <dismukes@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an | |
| ancestor part given by an aggregate to test for an unchecked conversion, | |
| since this can occur in some cases when the ancestor part is a function | |
| call, and we don't want to fall into the recursive call to this | |
| procedure in that case. | |
| * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of | |
| stream attributes on limited types to account for user-specified | |
| attributes as well as whether Input (resp. Output) becomes available | |
| due to Read (resp. Write) being available for the type. Change Boolean | |
| variable to the more accurate name | |
| Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted | |
| double-"not" predicate at beginning of return statement to more | |
| understandable form. | |
| * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended | |
| return has an associated N_Handled_Sequence_Of_Statements, then wrap it | |
| in a block statement and use that as the first statement of the | |
| expanded return rather than incorrectly using the handled sequence as | |
| the first statement. | |
| * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected | |
| operation, generate an explicit freeze node for it rather than | |
| generating extra formals, to ensure that gigi has the proper order of | |
| elaboration for anonymous subtypes in the signature of the subprograms. | |
| (Build_In_Place_Formal): Move assertion to beginning of loop. | |
| (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion | |
| applied to a function call (occurs for some cases of 'Input). | |
| (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion | |
| applied to a function call (occurs for some cases of 'Input). | |
| * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada | |
| 2005, generate an extended return statement enclosing the result object | |
| and 'Read call. | |
| * freeze.adb (Freeze_Record_Type): Extend the current management of | |
| components that are access type with an allocator as default value: add | |
| missing support to the use of qualified expressions of the | |
| allocator (which also cause freezing of the designated type!) | |
| (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined | |
| dispatching operation, since extra formals may be needed by calls to | |
| build-in-place functions (such as stream 'Input). | |
| * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra | |
| formals for 'Constrained and accessibility level in the case of a | |
| predefined dispatching operation. | |
| * exp_util.adb (Insert_Actions): A protected body is a valid insertion | |
| point, no need to find the parent node. | |
| 2007-08-16 Javier Miranda <miranda@adacore.com> | |
| * exp_attr.adb (Attribute_Priority): Add missing support for entries | |
| and entry barriers. | |
| 2007-08-16 Javier Miranda <miranda@adacore.com> | |
| * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it | |
| is not really required and can introduce regression with the debugger. | |
| The original problem is fixed with the patch written for checks.adb. | |
| 2007-08-16 Thomas Quinot <quinot@adacore.com> | |
| * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress | |
| Range_Check on Allocated_Table. | |
| 2007-08-16 Vincent Celier <celier@adacore.com> | |
| * make.adb (Collect_Arguments): Call Test_If_Relative_Path with | |
| Including_Non_Switch set to False. | |
| (Gnatmake): For the compiler, call Test_If_Relative_Path with | |
| Including_Non_Switch set to False. | |
| * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean | |
| parameter Including_Non_Switch, defaulted to True. When | |
| Including_Non_Switch is False, options that are not switches and | |
| appear as relative path are not converted to absolute paths. | |
| 2007-08-16 Nicolas Roche <roche@adacore.com> | |
| * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub | |
| makefiles | |
| * Make-lang.in: Update dependencies | |
| 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com> | |
| * sem_ch10.adb (Has_With_Clause): If the name of the with clause | |
| currently inspected is a selected component, retrieve the entity of | |
| its selector. | |
| (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting | |
| from the immediate ancestor of Main_Unit_Entity. | |
| (Install_Limited_Withed_Unit): Do not install the limited view of | |
| package P if P is reachable through an ancestor chain from package C | |
| and C also has a with clause for P in its body. | |
| (Has_Limited_With_Clause): New routine. | |
| (Has_With_Clause): New routine. | |
| 2007-08-16 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the | |
| generic for an enclosing instance is a global reference, even though | |
| its scope is the enclosing instance. | |
| 2007-08-16 Gary Dismukes <dismukes@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to | |
| initialize a limited object. | |
| (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4 | |
| 13/2 and 14/2. | |
| Make sure Has_Complex_Representation is inherited by derived type. | |
| 2007-08-16 Robert Dewar <dewar@adacore.com> | |
| * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in | |
| exception case | |
| 2007-08-16 Ed Schonberg <schonberg@adacore.com> | |
| * sem_disp.adb (Check_Dispatching_Operation): If the operation | |
| implements an operation inherited from a progenitor interface, verify | |
| that they are subtype-conformant. | |
| 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| Nicolas Setton <setton@adacore.com> | |
| * sem_res.adb (Comes_From_Predefined_Lib_Unit): New. | |
| (Resolve): Alphabetize local variables. Add new variable From_Lib. When | |
| the statement which is being resolved comes from a predefined library | |
| unit, all non-predefined library interpretations are skipped. | |
| (Resolve_Op_Concat): If string concatenation was folded in the parser, | |
| but the "&" is user defined, give an error, because the folding would | |
| be wrong. | |
| * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that | |
| the parser has folded a long sequence of concatenations of string | |
| literals. | |
| * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE" | |
| and "JMP_BUF" variables as artificial. | |
| (N_String_Literal): Do not use alloca for very long string literals. Use | |
| xmalloc/free instead. Otherwise the stack might overflow. | |
| * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the | |
| compiler. | |
| 2007-08-16 Vincent Celier <celier@adacore.com> | |
| * vms_conv.adb (Process_Argument): Ensure that project related options | |
| are not put in the -cargs section when using GNAT COMPILE. | |
| 2007-08-16 Robert Dewar <dewar@adacore.com> | |
| * gnat_ugn.texi: Add note on preprocessing (output file not written) | |
| 2007-08-16 Thomas Quinot <quinot@adacore.com> | |
| * a-tags.adb: Minor reformatting. | |
| 2007-08-16 Bob Duff <duff@adacore.com> | |
| * sem_type.ads, sem_ch4.adb: Minor reformatting. | |
| 2007-08-14 Thomas Quinot <quinot@adacore.com> | |
| * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, | |
| s-osinte-interix.ads, system-interix.ads: Removed. | |
| 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> | |
| * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove | |
| calls to Check_Within_Time_Bounds. | |
| ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds. | |
| (Difference): Account for possible rounding of the resulting difference | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb, | |
| par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb, | |
| s-osinte-solaris.adb, s-osinte-solaris.ads, | |
| s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting. | |
| * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style | |
| switch -gnatyS. Enable -gnatyS in GNAT style check mode | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: | |
| Suppress unmodified in-out parameter warning in some cases | |
| This patch is a also fairly significant change to the way suppressible | |
| checks are handled. | |
| * checks.ads, checks.adb (Install_Null_Excluding_Check): No check | |
| needed for access to concurrent record types generated by the expander. | |
| (Generate_Range_Check): When generating a temporary to capture the | |
| value of a conversion that requires a range check, set the type of the | |
| temporary before rewriting the node, so that the type is always | |
| properly placed for back-end use. | |
| (Apply_Float_Conversion_Check): Handle case where the conversion is | |
| truncating. | |
| (Get_Discriminal): Code reformatting. Climb the scope stack looking | |
| for a protected type in order to examine its discriminants. | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Thomas Quinot <quinot@adacore.com> | |
| * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, | |
| a-stwisu.adb, a-strsup.adb: Fix warnings for range | |
| tests optimized out. | |
| * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out. | |
| (Get_Allocator_Final_List): For the case of an anonymous access type | |
| that has a specified Associated_Final_Chain, do not go up to the | |
| enclosing scope. | |
| (Expand_N_Type_Conversion): Test for the case of renamings of access | |
| parameters when deciding whether to apply a run-time accessibility | |
| check. | |
| (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded | |
| aggregate code before allocator, and ahead of declaration for | |
| temporary, to prevent access before elaboration when the allocator is | |
| an actual for an access parameter. | |
| (Expand_N_Type_Conversion): On an access type conversion involving an | |
| access parameter, do not apply an accessibility check when the | |
| operand's original node was an attribute other than 'Access. We now | |
| create access conversions for the expansion of 'Unchecked_Access and | |
| 'Unrestricted_Access in certain cases and clearly accessibility should | |
| not be checked for those. | |
| * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that | |
| includes a type conversion of a packed component that has been expanded, | |
| recover the original expression for the object, and use this expression | |
| in the post-call assignment statement, so that the assignment is made | |
| to the object and not to a back-end temporary. | |
| (Freeze_Subprogram): In case of primitives of tagged types not defined | |
| at the library level force generation of code to register the primitive | |
| in the dispatch table. In addition some code reorganization has been | |
| done to leave the implementation clear. | |
| (Expand_Call): When expanding an inherited implicit conversion, | |
| preserve the type of the inherited function after the intrinsic | |
| operation has been expanded. | |
| * exp_ch2.ads, exp_ch2.adb | |
| (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference | |
| of an entry formal appearing in an assignment statement does not assign | |
| to the formal. | |
| (Expand_Current_Value): Instead of calling a routine to determine | |
| whether the prefix of an attribute reference should be optimized or | |
| not, prevent the optimization of such prefixes all together. | |
| * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected | |
| component whose prefix is known to be of an access type is an implicit | |
| dereference and does not assign to the prefix. | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and | |
| itype is visited, make an entry into table to link associated node and | |
| new itype. | |
| Add comments and correct harmless error in Build_NCT_Hash_Tables | |
| (Array_Aggr_Subtype): Associate each itype created for an index type to | |
| the corresponding range construct, and not to the aggregate itself. to | |
| maintain a one-to-one correspondence between itype and its associated | |
| node, to prevent errors when complex expression is copied. | |
| Fix mishandling of multiple levels of parens | |
| * sem_aggr.adb: Create a limited view of an incomplete type, to make | |
| treatment of limited views uniform for all visible declarations in a | |
| limited_withed package. | |
| (New_Copy_Tree): If hash table is being used and itype is visited, | |
| make an entry into table to link associated node and new itype. | |
| (Resolve_Record_Aggregate): Do not add an others box association for a | |
| discriminated record component that has only discriminants, when there | |
| is a box association for the component itself. | |
| * par-ch4.adb: Fix mishandling of multiple levels of parens | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| * comperr.adb: Fix problem with suppressing warning messages from gigi | |
| * erroutc.ads, erroutc.adb, errout.ads, | |
| errout.adb (Write_Eol): Remove trailing spaces before writing the line | |
| (Write_Eol_Keep_Blanks): New procedure to write a line, including | |
| possible trailing spaces. | |
| (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line | |
| Fix problem with suppressing warning messages from back end | |
| Improve handling of deleted warnings | |
| * gnat1drv.adb: | |
| Fix problem with suppressing warning messages from back end | |
| Handle setting of Static_Dispatch_Tables flag. | |
| * prepcomp.adb: | |
| Fix problem with suppressing warning messages from back end | |
| * exp_intr.adb: Improve handling of deleted warnings | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| * debug.adb: Improve -gnatdI to cover all cases of serialization | |
| Add documentation of dZ, d.t | |
| * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of | |
| serialization. | |
| (Sprint_Node_Actual): Generate new output associated with implicit | |
| importation and implicit exportation of object declarations. | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * einfo.ads, einfo.adb: Create a limited view of an incomplete type, | |
| to make treatment of limited views uniform for all visible declarations | |
| in a limited_withed package. | |
| Improve warnings for in out parameters | |
| (Set_Related_Interaface/Related_Interface): Allow the use of this | |
| attribute with constants. | |
| (Write_Field26_Name): Handle attribute Related_Interface in constants. | |
| Warn on duplicate pragma Preelaborable_Initialialization | |
| * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the | |
| generation of a freezing node to ensure proper management of null | |
| excluding access types in the backend. | |
| (Create_Extra_Formals): Test base type of the formal when checking for | |
| the need to add an extra accessibility-level formal. Pass the entity E | |
| on all calls to Add_Extra_Formal (rather than Scope (Formal) as was | |
| originally being done in a couple of cases), to ensure that the | |
| Extra_Formals list gets set on the entity E when the first entity is | |
| added. | |
| (Conforming_Types): Add missing calls to Base_Type to the code that | |
| handles anonymous access types. This is required to handle the | |
| general case because Process_Formals builds internal subtype entities | |
| to handle null-excluding access types. | |
| (Make_Controlling_Function_Wrappers): Create wrappers for constructor | |
| functions that need it, even when not marked Requires_Overriding. | |
| Improve warnings for in out parameters | |
| (Analyze_Function_Return): Warn for disallowed null return | |
| Warn on return from procedure with unset out parameter | |
| Ensure consistent use of # in error messages | |
| (Check_Overriding_Indicator): Add in parameter Is_Primitive. | |
| (Analyze_Function_Return): Move call to Apply_Constraint_Check before | |
| the implicit conversion of the expression done for anonymous access | |
| types. This is required to generate the code of the null excluding | |
| check (if required). | |
| * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable): | |
| A formal parameter is never publicly referenceable outside of its body. | |
| (Check_References): For an unreferenced formal parameter in an accept | |
| statement, use the same warning circuitry as for subprogram formal | |
| parameters. | |
| (Warn_On_Unreferenced_Entity): New subprogram, taken from | |
| Output_Unreferenced_Messages, containing the part of that routine that | |
| is now reused for entry formals as described above. | |
| (Goto_Spec_Entity): New function | |
| (Check_References): Do not give IN OUT warning for dispatching operation | |
| Improve warnings for in out parameters | |
| (Test_Ref): Check that the entity is not undefinite before calling | |
| Scope_Within, in order to avoid infinite loops. | |
| Warn on return from procedure with unset out parameter | |
| Improved warnings for unused variables | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit | |
| (Expand_N_Attribute_Reference): Further unify the handling of the | |
| three forms of access attributes, using common code now for all three | |
| cases. Add a test for the case of applying an access attribute to | |
| an explicit dereference when the context is an access-to-interface | |
| type. In that case we need to apply the conversion to the prefix | |
| of the explicit dereference rather than the prefix of the attribute. | |
| (Attribute_Version, UET_Address): Set entity as internal to ensure | |
| proper dg output of implicit importation. | |
| (Expand_Access_To_Type): Removed. | |
| (Expand_N_Attribute_Reference): Merge the code from the three cases | |
| of access attributes, since the processing is largely identical for | |
| these cases. The substantive fix here is to process the case of a | |
| type name prefix (current instance case) before handling the case | |
| of interface prefixes. | |
| 2007-08-14 Thomas Quinot <quinot@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram. | |
| (Freeze_Array_Type, Freeze_Record_Type): For the case of a component | |
| type that is an anonymous access to controlled object, establish | |
| an associated finalization chain to avoid corrupting the global | |
| finalization list when a dynamically allocated object designated | |
| by such a component is deallocated. | |
| (Make_Controlling_Function_Wrappers): Create wrappers for constructor | |
| functions that need it, even when not marked Requires_Overriding. | |
| (Initialize_Tag): Replace call to has_discriminants by call to | |
| Is_Variable_Size_Record in the circuitry that handles the | |
| initialization of secondary tags. | |
| (Is_Variable_Size_Record): New implementation. | |
| (Expand_N_Object_Declaration): Suppress call to init proc if there is a | |
| Suppress_Initialization pragma for a derived type. | |
| (Is_Variable_Size_Record): New subprogram. | |
| (Build_Offset_To_Top_Functions): New implementation that simplifies the | |
| initial version of this routine and also fixes problems causing | |
| incomplete initialization of the table of interfaces. | |
| (Build_Init_Procedure): Improve the generation of code to initialize the | |
| the tag components of secondary dispatch tables. | |
| (Init_Secondary_Tags): New implementation that simplifies the previous | |
| version of this routine. | |
| (Make_DT): Add parameter to indicate when type has been frozen by an | |
| object declaration, for diagnostic purposes. | |
| (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to | |
| diagnose attemps to freeze a subprogram when some untagged type of its | |
| profile is a private type whose full view has not been analyzed yet. | |
| (Freeze_Array_Type): Generate init proc for packed array if either | |
| Initialize or Normalize_Scalars is set. | |
| (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when | |
| constructing the new profile, copy the null_exclusion indicator for each | |
| parameter, to ensure full conformance of the new body with the spec. | |
| * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers): | |
| Create wrappers for constructor functions that need it, even when not | |
| marked Requires_Overriding. | |
| (Covers): Handle properly designated types of anonymous access types, | |
| whose non-limited views are themselves incomplete types. | |
| (Add_Entry): Use an entity to store the abstract operation which hides | |
| an interpretation. | |
| (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op. | |
| (Collect_Interps): Use Empty as an actual for Abstract_Op in the | |
| initialization aggregate. | |
| (Function_Interp_May_Be_Hidden): Rename to | |
| Function_Interp_Has_Abstract_Op. | |
| (Has_Compatible_Type): Remove machinery that skips interpretations if | |
| they are labeled as potentially hidden by an abstract operator. | |
| (Has_Hidden_Interp): Rename to Has_Abstract_Op. | |
| (Set_May_Be_Hidden): Rename to Set_Abstract_Op. | |
| (Write_Overloads): Output the abstract operator if present. | |
| (Add_Entry): Before inserting a new entry into the interpretation table | |
| for a node, determine whether the entry will be disabled by an abstract | |
| operator. | |
| (Binary_Op_Interp_May_Be_Hidden): New routine. | |
| (Collect_Interps): Add value for flag May_Be_Hidden in initialization | |
| aggregate. | |
| (Function_Interp_May_Be_Hidden): New routine. | |
| (Has_Compatible_Type): Do not consider interpretations hidden by | |
| abstract operators when trying to determine whether two types are | |
| compatible. | |
| (Has_Hidden_Interp): New routine. | |
| (Set_May_Be_Hidden_Interp): New routine. | |
| (Write_Overloads): Write the status of flag May_Be_Hidden. | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged | |
| types declared in the declarative part of a nested package body or in | |
| the proper body of a stub. | |
| (Set_All_DT_Position): Add missing check to avoid wrong assignation | |
| of the same dispatch table slot to renamed primitives. | |
| (Make_Select_Specific_Data_Table): Handle private types. | |
| (Tagged_Kind): Handle private types. | |
| (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg | |
| output of implicit importation and exportation. | |
| (Expand_Interface_Thunk): Fix bug in the expansion assuming that the | |
| first formal of the thunk is always associated with the controlling | |
| type. In addition perform the following code cleanup: remove formal | |
| Thunk_Alias which is no longer required, cleanup evaluation of the | |
| the controlling type, and update the documentation. | |
| Replace occurrence of Default_Prim_Op_Count by | |
| Max_Predef_Prims. Addition of compile-time check to verify | |
| that the value of Max_Predef_Prims is correct. | |
| (Check_Premature_Freezing): Apply check in Ada95 mode as well. | |
| (Make_DT): Add parameter to indicate when type has been frozen by an | |
| object declaration, for diagnostic purposes. | |
| (Build_Static_Dispatch_Tables): New subprogram that takes care of the | |
| construction of statically allocated dispatch tables. | |
| (Make_DT): In case of library-level tagged types export the declaration | |
| of the primary tag. Remove generation of tags (now done by Make_Tags). | |
| Additional modifications to handle non-static generation of dispatch | |
| tables. Take care of building tables for asynchronous interface types | |
| (Make_Tags): New subprogram that generates the entities associated with | |
| the primary and secondary tags of Typ and fills the contents of Access_ | |
| Disp_Table. In case of library-level tagged types imports the forward | |
| declaration of the primary tag that will be declared later by Make_DT. | |
| (Expand_Interface_Conversion): In case of access types to interfaces | |
| replace an itype declaration by an explicit type declaration to avoid | |
| problems associated with the scope of such itype in transient blocks. | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * exp_util.ads, exp_util.adb: | |
| This patch replaces a number of occurrences of explicit tests for N_Null | |
| with calls to Known_Null. This improves tracking of null values, since | |
| Known_Null also catches null constants, and variables currently known to | |
| be null, so we get better tracking. | |
| (Ensure_Defined): create an itype reference only in the scope of the | |
| itype. | |
| (Side_Effect_Free): A selected component of an access type that | |
| denotes a component with a rep clause must be treated as not | |
| side-effect free, because if it is part of a linked structure its | |
| value may be affected by a renaming. | |
| (Expand_Subtype_From_Expr): For limited objects initialized with build | |
| in place function calls, do nothing; otherwise we prematurely introduce | |
| an N_Reference node in the expression initializing the object, which | |
| breaks the circuitry that detects and adds the additional arguments to | |
| the called function. Bug found working in the new patch for statically | |
| allocated dispatch tables. | |
| (Is_Library_Level_Tagged_Type): New subprogram. | |
| (Remove_Side_Effects): If the expression of an elementary type is an | |
| operator treat as a function call. | |
| (Make_Literal_Range): If the index type of the array is not integer, use | |
| attributes properly to compute the constraint on the resulting aggregate | |
| which is a string. | |
| * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a | |
| class-wide type whose base type is an incomplete private type, leave | |
| class-wide type unfrozen so that freeze nodes can be generated | |
| properly at a later point. | |
| (Freeze_Entity, array case): Handle case of pragma Pack and component | |
| size attributre clause for same array. | |
| 2007-08-14 Vincent Celier <celier@adacore.com> | |
| * prj.ads, prj.adb: Update Project Manager to new attribute names for | |
| gprbuild. | |
| Allow all valid declarations in configuration project files | |
| (Reset): Initialize all tables and hash tables in the project tree data | |
| Major update of the Project Manager and of the project aware tools, | |
| including gprmake, so that the same sources in the GNAT repository | |
| can be used by gprbuild. | |
| (Slash_Id): Change type to be Path_Name_Type | |
| (Slash): Return a Path_Name_Type instead of a File_Name_Type | |
| * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by | |
| gprbuild. | |
| Update Project Manager to new attribute names for ghprbuild | |
| Allow all valid declarations in configuration project files | |
| Major update of the Project Manager and of the project aware tools, | |
| including gprmake, so that the same sources in the GNAT repository | |
| can be used by gprbuild. | |
| * prj-com.ads: | |
| Major update of the Project Manager and of the project aware tools, | |
| including gprmake, so that the same sources in the GNAT repository | |
| can be used by gprbuild. | |
| * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case | |
| insensitive flag for attributes with optional index. | |
| (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative | |
| array attribute, put the index in lower case. | |
| Update Project Manager to new attribute names for ghprbuild | |
| Allow all valid declarations in configuration project files | |
| Major update of the Project Manager and of the project aware tools, | |
| including gprmake, so that the same sources in the GNAT repository | |
| can be used by gprbuild. | |
| * prj-env.ads, prj-env.adb: | |
| Major update of the Project Manager and of the project aware tools, | |
| including gprmake, so that the same sources in the GNAT repository | |
| can be used by gprbuild. | |
| (Get_Reference): Change type of parameter Path to Path_Name_Type | |
| * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after | |
| removing '-' from the path to start with the first character of the | |
| next directory. | |
| Major update of the Project Manager and of the project aware tools, | |
| including gprmake, so that the same sources in the GNAT repository | |
| can be used by gprbuild. | |
| Major update of the Project Manager and of the project aware tools, | |
| including gprmake, so that the same sources in the GNAT repository | |
| can be used by gprbuild. | |
| * prj-nmsc.ads, prj-nmsc.adb: | |
| Update Project Manager to new attribute names for ghprbuild | |
| Allow all valid declarations in configuration project files | |
| (Search_Directories): Detect subunits that are specified with an | |
| attribute Body in package Naming. Do not replace a source/unit in the | |
| same project when the order of the source dirs are known. Detect | |
| duplicate sources/units in the same project when the order of the | |
| source dirs are not known. | |
| (Check_Ada_Name): Allow all identifiers that are not reserved words | |
| in Ada 95. | |
| Major update of the Project Manager and of the project aware tools, | |
| including gprmake, so that the same sources in the GNAT repository | |
| can be used by gprbuild. | |
| (Look_For_Sources): If the list of sources is empty, set the object | |
| directory of non extending project to nil. | |
| Change type of path name variables to be Path_Name_Type | |
| (Locate_Directory): Make sure that on Windows '/' is converted to '\', | |
| otherwise creating missing directories will fail. | |
| * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, | |
| prj-part.ads, prj-part.adb: | |
| Major update of the Project Manager and of the project aware tools, | |
| including gprmake, so that the same sources in the GNAT repository | |
| can be used by gprbuild. | |
| * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case | |
| insensitive flag for attributes with optional index. | |
| (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative | |
| array attribute, put the index in lower case. | |
| (Parse_Variable_Reference): Allow the current project name to be used in | |
| the prefix of an attribute reference. | |
| * prj-util.ads, prj-util.adb | |
| (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index, | |
| defaulted to False. When True, always check against indexes in lower | |
| case. | |
| * snames.ads, snames.h, snames.adb: | |
| Update Project Manager to new attribute names for gprbuild | |
| Allow all valid declarations in configuration project files | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * opt.ads: Warning for non-local exception propagation now off by | |
| default | |
| New switch -gnatI to disable representation clauses | |
| Implement new pragma Implicit_Packing | |
| * usage.adb: | |
| Warning for non-local exception propagation now off by default | |
| Add warning for unchecked conversion of pointers wi different | |
| conventions. | |
| New switch -gnatI to disable representation clauses | |
| * usage.adb: new switch -gnatyS | |
| * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a | |
| note that aggregates of anonymous array types are not flagged. | |
| -gnatwc now includes membership tests optimized away | |
| -gnatw.x warnings are now off by default | |
| Added conditional compilation Appendix | |
| Add documentation of -gnatI | |
| Add documentation for new -gnatyS style check | |
| Update documentation about SAL and auto-init on Windows. | |
| * gnat_rm.texi: | |
| Add documentation for pragma Check_Name and 'Enabled attribute | |
| Document that Eliminate on dispatching operation is ignored | |
| Document IDE attributes VCS_Repository_Root and VCS_Patch_Root. | |
| Document pragma Main | |
| Document pragma Implicit_Packing | |
| * sem_ch13.adb: Add warning for unchecked conversion of pointers wi | |
| different conventions | |
| New switch -gnatI to disable representation clauses | |
| * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not | |
| recognized, report the invalid characters including "-gnat" instead of | |
| just the first character in the switch. | |
| New switch -gnatI to disable representation clauses | |
| Set Warn_On_Object_Renames_Function true for -gnatg | |
| * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES | |
| Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS | |
| Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent | |
| to switch -aP (add directory to project search dir). | |
| * par-prag.adb: Implement new pragma Implicit_Packing | |
| * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the | |
| type as having a non-standard representation, to force expansion on | |
| conversion to related types. | |
| (Analyze_Pragma): Warn on misspelled pragma | |
| (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg | |
| Ensure consistent use of # in error messages | |
| Implement pragma Implicit_Packing | |
| 2007-08-14 Olivier Hainque <hainque@adacore.com> | |
| Eric Botcazou <ebotcazou@adacore.com> | |
| * targtyps.c (get_target_maximum_default_alignment): New function. | |
| Maximum alignment | |
| that the compiler might choose by default for a type or object. | |
| (get_target_default_allocator_alignment): New function. Alignment known | |
| to be honored by the target default allocator. | |
| (get_target_maximum_allowed_alignment): New function. Maximum alignment | |
| we might accept for any type or object on the target. | |
| (get_target_maximum_alignment): Now synonym of maximum_default_alignment | |
| * gigi.h (get_target_maximum_default_alignment): Declare new function. | |
| (get_target_default_allocator_alignment): Likewise. | |
| (get_target_maximum_allowed_alignment): Likewise. | |
| PR ada/19037 | |
| * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the | |
| result of a function call, first try to use a stabilized reference for | |
| a constant renaming too. | |
| (validate_alignment): Use target_maximum_allowed_alignment instead of | |
| MAX_OFILE_ALIGNMENT as the upper bound to what we accept. | |
| (gnat_to_gnu_entity): Use common nodes directly. | |
| (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate | |
| alignment and size for the object. | |
| (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call | |
| and N_Procedure_Call_Statement. | |
| (takes_address): Rename to lvalue_required_p, add third parameter | |
| 'aliased' and adjust recursive calls. | |
| <N_Indexed_Component>: Update 'aliased' from the array type. | |
| <N_Selected_Component>: New case. | |
| <N_Object_Renaming_Declaration>: New Likewise. | |
| (Identifier_to_gnu): Adjust for above changes. | |
| (maybe_stabilize_reference) <CONST_DECL>: New case. | |
| * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion | |
| between type variants. | |
| (build_simple_component_ref): Likewise. | |
| (build_call_alloc_dealloc): Use target_default_allocator_alignment | |
| instead of BIGGEST_ALIGNMENT as the threshold to trigger the super | |
| aligning type circuitry for allocations from the default storage pool. | |
| (build_allocator): Likewise. | |
| (build_simple_component_ref): Manually fold the reference for a | |
| constructor if the record type contains a template. | |
| * utils.c (value_zerop): Delete. | |
| (gnat_init_decl_processing): Emit debug info for common types. | |
| (rest_of_record_type_compilation): If a union contains a field | |
| with a non-constant qualifier, treat it as variable-sized. | |
| (finish_record_type): Give the stub TYPE_DECL a name. | |
| (rest_of_record_type_compilation): Likewise. | |
| (convert) <CONSTRUCTOR>: New case. Build a new constructor if | |
| types are equivalent array types. | |
| (create_field_decl): Claim fields of any ARRAY_TYPE are addressable, | |
| even if the type is not passed by reference. | |
| (static_ctors, static_dtors): Delete. | |
| (end_subprog_body): Do not record constructors and destructors. | |
| (build_global_cdtor): Delete. | |
| (gnat_write_global_declarations): Do not call build_global_cdtor. | |
| * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when | |
| -fRTS=rtp is specified. | |
| If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is | |
| specified. | |
| * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name | |
| of the personality function with SJLJ exceptions. | |
| * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for | |
| the name of the personality function with SJLJ exceptions. | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * par.ads, par.adb: Improve handling of extra right parens. | |
| (Par): Remove flag From_Limited_With_Clause. | |
| * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint | |
| Improve handling of extra right parens. | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| * par-tchk.adb (TF_Semicolon): Improve error recovery | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For | |
| enumeration type, mark all literals as referenced. | |
| (Eval_Attribute, case 'Image): If the argument is an enumeration | |
| literal and names are available, constant-fold but mark nevertheless as | |
| non-static. | |
| Clean up function names. | |
| (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify | |
| comment. | |
| (Requires_Simple_Name_Prefix): Removed. | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch11.adb: Improved warnings for unused variables | |
| * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor | |
| is a synchronized interface, the derived type is limited. | |
| (Analyze_Object_Declaration): Mark the potential coextensions in the | |
| definition and expression of an object declaration node. | |
| (Build_Derived_Type): For the completion of a private type declaration | |
| with a derived type declaration, chain the parent type's representation | |
| items to the last representation item of the derived type (not the | |
| first one) if they are not present already. | |
| (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete | |
| object declaration of forward references to tags. | |
| (Access_Subprogram_Declaration): In Ada2005, anonymous access to | |
| subprogram types can appear as access discriminants of synchronized | |
| types. | |
| (OK_For_Limited_Init_In_05): The initialization is legal is it is a call | |
| given in prefixed form as a selected component. | |
| (Process_Discriminants): If not all discriminants have defaults, place | |
| error message on a default that is present. | |
| (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to | |
| extend a synchronized tagged type. | |
| Improved warnings for unused variables | |
| (Is_Visible_Component): Fix a visibility hole on a component inherited | |
| by a private extension when parent is itself declared as a private | |
| extension, and the derivation is in a child unit. | |
| (Find_Hidden_Interface): Move spec from the package body. | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch5.adb: Improve warnings on redundant assignments | |
| * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk | |
| parameter | |
| (Is_Synchronized_Tagged_Type): New subprogram that returns true | |
| in case of synchronized tagged types (AARM 3.9.4 (6/2)). | |
| (Safe_To_Capture_Value): Can now return True for constants, even if Cond | |
| is set to False. Improves handling of Known_[Not_]Null. | |
| (Wrong_Type): Special case address arithmetic attempt | |
| (Collect_Abstract_Interfaces): Add new formal to allow collecting | |
| abstract interfaces just using the partial view of private types. | |
| (Has_Abstract_Interfaces): Add new formal to allow checking types | |
| covering interfaces using the partial view of private types. | |
| (Is_Fully_Initialized_Type): Special VM case for uTag component. This | |
| component still needs to be defined in this case, but is never | |
| initialized as VMs are using other dispatching mechanisms. | |
| (Abstract_Interface_List): For a protected type, use base type to get | |
| proper declaration. | |
| Improve warnings on redundant assignments | |
| (Is_Variable): Handle properly an implicit dereference of a prefixed | |
| function call. | |
| (Build_Actual_Subtype): If this is an actual subtype for an | |
| unconstrained formal parameter, use the sloc of the body for the new | |
| declaration, to prevent anomalises in the debugger. | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for | |
| dispatching operation | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * exp_aggr.ads, | |
| exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place | |
| expanded aggregate code before allocator, and ahead of declaration for | |
| temporary, to prevent access before elaboration when the allocator is | |
| an actual for an access parameter. | |
| (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing | |
| the TSD and the table of interfaces. | |
| (Convert_To_Assignments): Augment the test for delaying aggregate | |
| expansion for limited return statements to include the case of extended | |
| returns, to prevent creation of an unwanted transient scope. | |
| (Is_Static_Dispatch_Table_Aggregate): New subprogram. | |
| (Expand_Array_Aggregate): Handle aggregates associated with | |
| statically allocated dispatch tables. | |
| (Expand_Record_Aggregate): Handle aggregates associated with | |
| statically allocated dispatch tables. | |
| (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators | |
| of anonymous access type. | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment | |
| is a variable that renames a slice, use the variable itself in the | |
| expannsion when the renamed expression itself may be modified between | |
| the declaration of the renaming and the array assignment. | |
| 2007-08-14 Jerome Guitton <guitton@adacore.com> | |
| * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, | |
| s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, | |
| s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks): | |
| New functions; dummy implementations. | |
| * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New | |
| functions, used to implement the multi-tasks mode routines on VxWorks. | |
| * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop): | |
| New functions, thin | |
| binding to the VxWorks routines which have changed between VxWorks 5 | |
| and 6. | |
| (Int_Lock, Int_Unlock): New function, thin binding to kernel routines | |
| which are not callable from a RTP. | |
| * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions, | |
| implemented for the multi-tasks mode on VxWorks 5 and 6. | |
| * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions. | |
| * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New | |
| functions. | |
| 2007-08-14 Vincent Celier <celier@adacore.com> | |
| * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, | |
| gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb | |
| mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, | |
| mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, | |
| mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, | |
| mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb, | |
| mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New | |
| procedure. | |
| (Major_Id_Name): New function. | |
| mlib-tgt.ads/mlib.tgt.adb: | |
| (Library_Major_Minor_Id_Supported): New function, default returns True | |
| Most mlib-tgt-*.adb that support shared libraries and symbolic links: | |
| (Build_Dynamic_Library): Add support for major/minor ids for shared libs | |
| Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi): | |
| Implementation of Library_Major_Minor_Id_Supported returns False | |
| clean.adb: | |
| (Clean_Library_Directory): If major/minor ids are supported, clean all | |
| library files. | |
| Major update of the Project Manager and of the project aware tools, | |
| including gprmake, so that the same sources in the GNAT repository | |
| can be used by gprbuild. | |
| 2007-08-14 Olivier Hainque <hainque@adacore.com> | |
| * system-solaris-x86.ads (ZCX_By_Default): Switch to True. | |
| (GCC_ZCX_Support): Switch to True. | |
| * s-intman-solaris.adb (Notify_Exception): Call | |
| Adjust_Context_For_Raise before raising, as expected for signal | |
| handlers in general. | |
| * s-intman-posix.adb (Notify_Exception): Remove declaration of | |
| Adjust_Context_For_Raise, moved to the spec of this unit to be visible | |
| to other implementation bodies. | |
| * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to | |
| be visible by multiple implementation bodies. | |
| * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context | |
| only for conditions coming from hardware. | |
| [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement, | |
| adjustments to signal context prior to exception raise from signal | |
| handler. | |
| (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP | |
| mode. | |
| Solaris section: (__gnat_adjust_context_for_raise): New function. | |
| Implementation of the machine context adjustments to perform prior to | |
| raise from a signal handler. Version for both sparc and x86. | |
| (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define. | |
| (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it | |
| prior to raising as expected for any handler, before possible nested | |
| faults to make sure all the contexts in a chain have been adjusted by | |
| the time we propagate. | |
| 2007-08-14 Pascal Obry <obry@adacore.com> | |
| * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows. | |
| (SYSTEM_INFO): New record. | |
| (SetThreadIdealProcessor): New imported routine needed for supporting | |
| task_info pragma on Windows. | |
| * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task | |
| info can be applied to the current host. | |
| (Create_Task): Set the ideal processor if information is present. | |
| * s-tasinf-mingw.adb, s-tasinf-mingw.ads, | |
| a-exetim-mingw.adb, a-exetim-mingw.ads: New files. | |
| 2007-08-14 Olivier Hainque <hainque@adacore.com> | |
| * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the | |
| stack size and initial stack pointer value for a given task. | |
| (Enter_Task): Get the stack attributes of the task we are entering and | |
| let the stack checking engine know about them. | |
| * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram. | |
| Let the stack-checking engine know about the initial sp value and stack | |
| size associated with the current task. | |
| (Set_Stack_Info): If a stack base has been notified for the current | |
| task, honor it. Fallback to the previous less accurate method otherwise. | |
| * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body. | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch10.adb: Create a limited view of an incomplete type, to make | |
| treatment of limited views uniform for all visible declarations in a | |
| limited_withed package. | |
| Set flag indicating that a subprogram body for a child unit has a | |
| generated spec. | |
| (Analyze_Compilation_Unit): If unit is a subprogram body that has no | |
| separate declaration, remove the unit name from visibility after | |
| compilation, so that environment is clean for subsequent compilations. | |
| (Install_Limited_Context_Clauses): Do not install a | |
| limited_private_with_clause unless the current unit is a body or a | |
| private child unit. | |
| (Analyze_Subunit, Install_Parents): Treat generic and non-generic units | |
| in the same fashion. | |
| (Install_Limited_Withed_Unit): Do not install a limited with clause if | |
| it applies to the declaration of the current package body. | |
| (Remove_Private_With_Clauses): If there is a regular with_clause for | |
| the unit, delete Private_With_Clause from context, to prevent improper | |
| hiding when processing subsequent nested packages and instantiations. | |
| 2007-08-14 Jose Ruiz <ruiz@adacore.com> | |
| * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept | |
| dir/file, device:/dir/file, and device:drive_letter:/dir/file as | |
| representing absolute path names. | |
| __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues. | |
| * cstreams.c (__gnat_full_name for VxWorks): Use | |
| __gnat_is_absolute_path to detect whether we need to add the current | |
| directory to normalize the path. | |
| 2007-08-14 Javier Miranda <miranda@adacore.com> | |
| * a-tags.ads, | |
| a-tags.adb (Displace): Associate a message with the raised CE | |
| exception. | |
| (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr, | |
| To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr, | |
| To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package | |
| spec. | |
| (Default_Prim_Op_Count): Removed. | |
| (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind, | |
| Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind): | |
| Remove pragma Inline_Always. | |
| * rtsfind.ads (Default_Prim_Op_Count): Removed | |
| (Max_Predef_Prims): New entity | |
| (RE_Expanded_Name): Removed | |
| (RE_HT_Link): Removed | |
| (RE_Iface_Tag): Remmoved | |
| (RE_Ifaces_Table): Removed | |
| (RE_Interfaces_Array): Removed | |
| (RE_Interface_Data_Element): Removed | |
| (RE_Nb_Ifaces): Removed | |
| (RE_RC_Offset): Removed | |
| (RE_Static_Offset_To_Top): Removed | |
| * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new | |
| formal. | |
| (Build_Inherit_Predefined_Prims): Replace occurrences of Default_ | |
| Prim_Op_Count by Max_Predef_Prims. | |
| 2007-08-14 Thomas Quinot <quinot@adacore.com> | |
| Vincent Celier <celier@adacore.com> | |
| * binde.adb (Elab_All_Links): Remove unnecessary call to | |
| Generic_Separately_Compiled (if a unit satisfies this predicate, there | |
| won't be an associated Afile). | |
| (Elab_All_Links): Fail if a referenced unit cannot be found | |
| * bindgen.adb: | |
| Fix comments in bindgen regarding consistency checks done in Bcheck: | |
| the checks are made across units within a partition, not across several | |
| partitions. | |
| Fix generation of C binder file for VxWorks. | |
| * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to | |
| Generic_May_Lack_ALI, more descriptive of the current use of the | |
| predicate, and update documentation. | |
| * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code | |
| reorganization and documentation update for the case of predefined | |
| library generics (for which we do not reference an Afile). | |
| 2007-08-14 Robert Dewar <dewar@adacore.com> | |
| * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads, | |
| s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, | |
| s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb, | |
| s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb, | |
| s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb, | |
| s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads, | |
| s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads, | |
| s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb, | |
| exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads, | |
| s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb, | |
| s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads, | |
| a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads, | |
| s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads, | |
| g-altcon.adb: Minor reformatting | |
| ada-tree.h: Delete empty line. | |
| ali.ads: Minor reformatting | |
| Clarification of comments. | |
| Minor spelling correction | |
| * exp_dbug.adb: Add Warnings Off to suppress new warning | |
| * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode | |
| formal | |
| * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old | |
| value | |
| * a-textio.adb (Write): Remove an unnecessary IN OUT mode from | |
| * a-textio.ads: Reorder the standard input/output/error declarations | |
| for consistency. | |
| * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call | |
| * par-ch2.adb: Recognize RM specially in errout | |
| Change 'R'M to RM in all error messages | |
| * scng.adb: Recognize RM specially in errout | |
| * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename | |
| N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology. | |
| * s-direio.adb: Add missing routine header box. | |
| * sem_attr.ads: Add ??? comments | |
| * sem_eval.adb: Recognize RM specially in errout | |
| Change 'R'M to RM in all error messages | |
| * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes | |
| * s-tasinf.ads: Fix minor comment typo. | |
| * a-cihama.adb: Minor comment addition | |
| * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode | |
| formal | |
| * s-tasinf-tru64.ads: Fix minor comment typo. | |
| * itypes.ads: Comment update. | |
| * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed | |
| anymore. | |
| * argv.c: Added protection against null gnat_argv and gnat_envp. | |
| * bcheck.adb (Check_Consistency): Use correct markup character ({) in | |
| warning message when Tolerate_Consistency_Errors is True. | |
| * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for | |
| Any_Id, as this subprogram is only applicable to *type* entities (it | |
| sets RM_Size). Instead initialize just Esize and Alignment. | |
| 2007-08-14 Bob Duff <duff@adacore.com> | |
| * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, | |
| a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, | |
| a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, | |
| a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads, | |
| a-coorse.ads (Next): Applied pragma Inline. | |
| Make all Containers packages Remote_Types (unless they are already | |
| Pure). | |
| (Previous): applied pragma Inline | |
| (Elements_Type): is now a record instead of an array | |
| 2007-08-14 Thomas Quinot <quinot@adacore.com> | |
| * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms | |
| of Set_Item. | |
| (Set_Item): When the new item is an element of the currently allocated | |
| table passed by reference, save a copy on the stack if we're going | |
| to reallocate. Also, in Table.Set_Item, make sure we test the proper | |
| variable to determine whether to call Set_Last. | |
| * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb, | |
| symbols-vms.adb, symbols-processing-vms-alpha.adb, | |
| symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace | |
| some occurrences of the pattern | |
| T.Increment_Last; | |
| T.Table (T.Last) := Value; | |
| with a cleaner call to | |
| T.Append (Value); | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| Thomas Quinot <quinot@adacore.com> | |
| * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a | |
| derived type with interface progenitors use the analyzed formal as the | |
| parent of the actual, to create renamings for all the inherited | |
| operations in Derive_Subprograms. | |
| (Collect_Previous_Instances): new procedure within of | |
| Load_Parent_Of_Generic, to instantiate all bodies in the compilation | |
| unit being loaded, to ensure that the generation of global symbols is | |
| consistent in different compilation modes. | |
| (Is_Tagged_Ancestor): New function testing the ancestor relation that | |
| takes progenitor types into account. | |
| (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by | |
| traversing over the primitives of the formal and actual types to locate | |
| any abstract subprograms of the actual type that correspond to a | |
| nonabstract subprogram of the formal type's ancestor type(s), and issue | |
| an error if such is found. | |
| (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation, | |
| Instantiate_Package_Body, Instantiate_Subprogram_Body): | |
| Remove bogus guard around calls to Inherit_Context. | |
| (Reset_Entity): If the entity is the selector of a selected component | |
| that denotes a named number, propagate constant-folding to the generic | |
| template only if the named number is global to the generic unit. | |
| (Set_Instance_Env): Only reset the compilation switches when compiling | |
| a predefined or internal unit. | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first | |
| parameter to determine whether operation applies to the prefix. | |
| (Complete_Object_Operation): If actual has an access type and | |
| controlling formal is not an in_parameter, reject the actual if it is | |
| an access_to_constant type. | |
| (Try_Primitive_Operation): If the type of the prefix is a formal tagged | |
| type, the candidate operations are found in the scope of declaration of | |
| the type, because the type has no primitive subprograms. | |
| (Analyze_Selected_Component): If prefix is class-wide, and root type is | |
| a private extension, only examine visible components before trying to | |
| analyze as a prefixed call. | |
| Change Entity_List to Type_To_Use, for better readability. | |
| (Has_Fixed_Op): Use base type when checking whether the type of an | |
| operator has a user-defined multiplication/division | |
| (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when | |
| user-defined operators are available for fixed-point types. | |
| 2007-08-14 Thomas Quinot <quinot@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New | |
| formal At_Any_Place indicating, when True, that we want to test for | |
| availability of the stream attribute at any place (as opposed to the | |
| current visibility context only). | |
| (Missing_Read_Write_Attributes): A stream attribute is missing for the | |
| purpose of enforcing E.2.2(8) only if it is not available at any place. | |
| Take into account the Ada2005 pragma Has_Preelaborable_Initialization | |
| when checking the legality of an extension aggregate in a preelaborable | |
| package. Treat the literal null as a valid default expression in a | |
| component declaration for a type with preelaborable initialization. | |
| A limited interface is a legal progenitor for the designated type of a | |
| remote access to class-wide type. | |
| 2007-08-14 Thomas Quinot <quinot@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute | |
| reference): Use correct entity as denoted entity for the selector of | |
| the rewritten node. | |
| (Find_Direct_Name): Add comment about Generate_Reference incorrectly | |
| setting the Referenced_As_LHS flag for entities that are implicitly | |
| dereferenced. | |
| (Find_Type): If the type is an internally generated incomplete type, | |
| mark the full view as referenced, to prevent spurious warnings. | |
| (Find_Selected_Component, Has_Components): Handle properly non-limited | |
| views that are themselves incomplete types. | |
| Handle interfaces visible through limited-with clauses. | |
| (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a | |
| subprogram generic actual for which we have generated a renaming. | |
| Warn when the renaming introduces a homonym of | |
| the renamed entity, and the renamed entity is directly visible. | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| Hristian Kirtchev <kirtchev@adacore.com> | |
| * sem_res.adb (Resolve_Allocator): Propagate any coextensions that | |
| appear in the subtree to the current allocator if it is not a static | |
| coextension. | |
| (Resolve_Allocator): Perform cleanup if resolution has determined that | |
| the allocator is not a coextension. | |
| (Resolve): Skip an interpretation hidden by an abstract operator only | |
| when the type of the interpretation matches that of the context. | |
| (Resolve): When looping through all possible interpretations of a node, | |
| do not consider those that are hidden by abstract operators. | |
| (Resolve_Actuals): When verifying that an access to class-wide object | |
| is an actual for a controlling formal, ignore anonymous access to | |
| subprograms whose return type is an access to class_wide type. | |
| (Resolve_Slice): If the prefix of the slice is a selected component | |
| whose type depends on discriminants, build its actual subtype before | |
| applying range checks on the bounds of the slice. | |
| (Valid_Conversion): In an instance or inlined body, compare root types, | |
| to prevent anomalies between private and public views. | |
| (Resolve): Improve error message for ambiguous fixed multiplication | |
| expressions that involve universal_fixed multiplying operations. | |
| 2007-08-14 Javier Miranda <miranda@adacore.com> | |
| Hristian Kirtchev <kirtchev@adacore.com> | |
| * exp_ch9.adb (Build_Protected_Entry): Propagate the original source | |
| location to allow the correct generation of errors in case of | |
| restrictions applied to the expanded code. | |
| (Expand_Entry_Barrier): Remove all generated renamings for a barrier | |
| function if the condition does not reference them. | |
| (Expand_Entry_Body_Declarations): Mark the index constant as having a | |
| valid value. | |
| 2007-08-14 Thomas Quinot <quinot@adacore.com> | |
| Pablo Oliveira <oliveira@adacore.com> | |
| * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating | |
| typecode parameters for a union (in a variant record), remove | |
| extraneous layer of Any wrapping for member label. | |
| (Expand_Receiving_Stubs_Bodies): For an RCI package body that has | |
| elabration statements, register the package with the name server | |
| at the beginning, not at the end, of the elaboration statements so | |
| that they can create remote access to subprogram values that designate | |
| remote subprograms from the package. | |
| 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> | |
| * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time | |
| values to compute the number of seconds since the Unix Epoc in order to | |
| account for Daylight Savings Time. Perform special processing for dates | |
| that are earlier than the Unix Epoc to obtain a negative number. | |
| 2007-08-14 Emmanuel Briot <briot@adacore.com> | |
| * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing | |
| switches. | |
| 2007-08-14 Eric Botcazou <ebotcazou@adacore.com> | |
| * gnatlink.adb (Gnatlink): Pass switches to the linker even if the | |
| binder-generated file is not in Ada. | |
| Pass -mrtp to the linker if it is GCC and --RTS=rtp has been | |
| recorded in the ALI file. | |
| Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded. | |
| 2007-08-14 Vincent Celier <celier@adacore.com> | |
| * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value | |
| (Output_Source): Do nothing if parameter is No_Sdep_Id | |
| * make.adb (Gnatmake): Do not rebuild an archive simply because a | |
| shared library it imports has a later time stamp. | |
| (Check): Resolve the symbolic links in the path name of the object | |
| directory. | |
| Check that the ALI file is in the correct object directory | |
| Check if a file name does not correspond to the mapping of units | |
| to file names. | |
| (Display_Version): New procedure | |
| (Initialize): Process switches --version and --help | |
| Use type Path_Name_Type for path name | |
| 2007-08-14 Paul Hilfinger <hilfinger@adacore.com> | |
| * impunit.adb: Re-organize System.Random_Numbers and | |
| GNAT.Random_Numbers and add to builds. | |
| * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert* | |
| * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files. | |
| * a-assert.ads, a-assert.adb: New files. | |
| 2007-08-14 Gary Dismukes <dismukes@adacore.com> | |
| * layout.adb (Layout_Type): In the case of access-to-subprogram types, | |
| if AAMP_On_Target is True, then the size of the type encompasses two | |
| addresses (a static link and a subprogram address), except in the case | |
| of library-level access types. | |
| 2007-08-14 Vincent Celier <celier@adacore.com> | |
| * output.ads, output.adb (Write_Eol): Remove trailing spaces before | |
| writing the line. | |
| (Write_Eol_Keep_Blanks): New procedure to write a line, including | |
| possible trailing spaces. | |
| (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line | |
| 2007-08-14 Javier Miranda <miranda@adacore.com> | |
| * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with | |
| null-excluding access types. | |
| 2007-08-14 Javier Miranda <miranda@adacore.com> | |
| * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code | |
| that is common to Analyze_Protected_Type and Analyze_Task_Type. In case | |
| of private types add missing check on matching interfaces in the | |
| partial and full declarations. | |
| (Analyze_Protected_Type): Code cleanup. | |
| (Analyze_Task_Type): Code cleanup. | |
| 2007-08-14 Javier Miranda <miranda@adacore.com> | |
| * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a | |
| generated interface thunk. | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent | |
| obsolescent warning on application of 'Class to an incomplete type. | |
| * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to | |
| prevent obsolescent warning on application of 'Class to an incomplete | |
| type. | |
| 2007-08-14 Pascal Obry <obry@adacore.com> | |
| * s-fileio.adb (Is_Open): Add check for usability of the underlying | |
| file stream. | |
| 2007-08-14 Cyrille Comar <comar@adacore.com> | |
| * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent | |
| since it is potentially used in cases implying double finalization of | |
| the same object. | |
| 2007-08-14 Jose Ruiz <ruiz@adacore.com> | |
| * s-tasini.adb (Get_Stack_Info): Move this function to | |
| System.Soft_Links.Tasking because it is common to the full and the | |
| restricted run times. | |
| (Init_RTS): Do not set the Get_Stack_Info soft link because it is done | |
| in SSL.Tasking.Init_Tasking_Soft_Links. | |
| * s-solita.adb (Get_Stack_Info): Function moved from | |
| System.Tasking.Initialization because it is common to the full and the | |
| restricted run times. | |
| (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info. | |
| 2007-08-14 Arnaud Charlet <charlet@adacore.com> | |
| * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb, | |
| s-taskin.ads (Requeue_With_Abort): Rename field With_Abort. | |
| (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort | |
| parameter. | |
| * s-tassta.adb (Task_Wrapper): Increased value of the small overflow | |
| guard to 12K. | |
| 2007-08-14 Gary Dismukes <dismukes@adacore.com> | |
| * s-veboop.adb (SU): New named number initialized to | |
| System.Storage_Unit. | |
| (True_Val): The initialization expression is revised to use SU (= | |
| Storage_Unit) rather than assuming 8 for the component size of an | |
| unpacked Boolean array. | |
| 2007-08-14 Tristan Gingold <gingold@adacore.com> | |
| * tracebak.c: Use tb-ivms.c on OpenVMS Itanium. | |
| * tb-ivms.c: New file. | |
| * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2 | |
| 2007-08-14 Geert Bosch <bosch@adacore.com> | |
| * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads, | |
| s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads: | |
| Add required linker pragmas for automatically linking with the gnalasup | |
| linear algebra support library, and the systems math library. | |
| Rename cdot to cdotu and zdot to zdotu. | |
| Update header comment to describe purpose of package. | |
| 2007-08-14 Thomas Quinot <quinot@adacore.com> | |
| * exp_ch7.adb (Find_Final_List): For an anonymous access type that has | |
| an explicitly specified Associated_Final_Chain, use that list. | |
| (Expand_N_Package_Body): Build dispatch tables of library level tagged | |
| types. | |
| (Expand_N_Package_Declaration): Build dispatch tables of library level | |
| tagged types. Minor code cleanup. | |
| 2007-08-14 Vincent Celier <celier@adacore.com> | |
| * gnatchop.adb (Terminate_Program): Remove exception and use | |
| Types.Terminate_Program instead. | |
| * osint.ads, osint.adb (Current_Exit_Status): New global variable | |
| (Find_Program_Name): Added protection against empty name. | |
| (OS_Exit_Through_Exception): New procedure | |
| * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body | |
| (OS_Exit_Default): New procedure that contains the previous | |
| implementation of procedure OS_Exit. | |
| (Final_Value): Remove obsolete Interix stuff. | |
| 2007-08-14 Thomas Quinot <quinot@adacore.com> | |
| * g-socket.ads: Reorganize example code so that it also works on | |
| Windows XP. | |
| 2007-08-14 Tristan Gingold <gingold@adacore.com> | |
| * g-trasym.ads: AIX now supports symbolic backtraces. | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| * lib-load.adb (From_Limited_With_Chain): Always scan the stack of | |
| units being loaded to detect circularities. A circularity may be | |
| present even if the current chain of pending units to load starts from | |
| a limited_with_clause. | |
| * lib-load.ads: Change profile of Load_Unit to use a with_clause | |
| rather than a boolean flag, in order to detect circularities in | |
| with_clauses. | |
| * par-load.adb: Use current with_clause in calls to Load_Unit, rather | |
| than propagating the From_Limited_With flag, in order to handle | |
| properly circularities involving with_clauses. | |
| 2007-08-14 Nicolas Setton <setton@adacore.com> | |
| * link.c (FreeBSD): Add "const" keyword where needed, to eliminate | |
| warnings. | |
| 2007-08-14 Arnaud Charlet <charlet@adacore.com> | |
| * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects | |
| to build for libgnala. | |
| libgnat: Add rules to build libgnala.a | |
| (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from | |
| target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5. | |
| Add s-osinte-vxworks-kernel.adb to the target pairs of the | |
| kernel run-time lib for VxWorks 6, which would provide a different | |
| implementation for Task_Cont and Task_Stop than the VxWorks 5 version. | |
| x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now | |
| running ZCX by default. | |
| Add g-sttsne-locking to LynxOS version. | |
| Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead. | |
| On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads. | |
| * system-darwin-x86.ads: New file. | |
| * Make-lang.in: Delete files before copying onto them, so if they are | |
| read-only, the copy won't fail. | |
| Update dependencies | |
| 2007-08-14 Pascal Obry <obry@adacore.com> | |
| * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries | |
| naming scheme. | |
| 2007-08-14 Vincent Celier <celier@adacore.com> | |
| * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access | |
| (Gcc): Initialize Gcc_Name at the first call | |
| 2007-08-14 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch7.adb (Analyze_Package_Specification): Do not install private | |
| with_clauses of the enclosing unit when analyzing the package | |
| specification of a nested instance. | |
| 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> | |
| * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed. | |
| (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines. | |
| Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the | |
| layout of N_Allocator. | |
| 2007-08-14 Thomas Quinot <quinot@adacore.com> | |
| * rtsfind.adb (Check_RPC): Add PCS version check. | |
| * gnatvsn.ads, gnatvsn.adb: Add PCS version. | |
| (Gnat_Free_Software): New function. | |
| * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns | |
| the PCS_Version value from s-parint, used to check that it is consistent | |
| with what exp_dist expects. | |
| * s-parint.ads (PCS_Version): New entity for checking consistency | |
| between exp_dist and PCS. | |
| * gen-soccon.c: (SO_REUSEPORT): New constant. | |
| 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> | |
| * a-calfor.adb (Image (Duration; Boolean)): Change type of local | |
| variable Sub_Second to Duration in order to accomodate a larger range | |
| of arithmetic operations. | |
| 2007-08-14 Bob Duff <duff@adacore.com> | |
| * g-sttsne-locking.ads: Move comments from spec to body. | |
| * g-sttsne-locking.adb: Move comments from spec to body. | |
| * g-sttsne-vxworks.ads: Removed. | |
| * g-sttsne-vxworks.adb: Removed. | |
| 2007-08-11 Ian Lance Taylor <iant@google.com> | |
| * misc.c (gnat_get_alias_set): Change return type to | |
| alias_set_type. | |
| 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
| * decl.c, utils2.c: Fix whitespace in last change. | |
| 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
| * decl.c (compare_field_bitpos): Constify. | |
| * utils2.c (compare_elmt_bitpos): Likewise. | |
| 2007-07-27 Aurelien Jarno <aurelien@aurel32.net> | |
| * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by | |
| anonymous access type. | |
| (pthread_sigmask): Now take an access sigset_t. | |
| 2007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com> | |
| * s-osinte-rtems.ads: Correct prototype of pthread_sigmask. | |
| 2007-06-21 Eric Botcazou <ebotcazou@adacore.com> | |
| PR tree-optimization/25737 | |
| * misc.c (gnat_post_options): Do not force flag_tree_salias to 0. | |
| 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
| * trans.c (Attribute_to_gnu): When subtracting an | |
| offset from a pointer, use POINTER_PLUS_EXPR with | |
| NEGATE_EXPR instead of MINUS_EXPR. | |
| (gnat_to_gnu): Likewise. | |
| * utils.c (convert): When converting between | |
| thin pointers, use POINTER_PLUS_EXPR and sizetype | |
| for the offset. | |
| * utils2.c (known_alignment): POINTER_PLUS_EXPR | |
| have the same semantics as PLUS_EXPR for alignment. | |
| (build_binary_op): Add support for the semantics of | |
| POINTER_PLUS_EXPR's operands. | |
| When adding an offset to a pointer, use POINTER_PLUS_EXPR. | |
| 2007-06-11 Rafael Ávila de Espíndola <espindola@google.com> | |
| * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead | |
| of get_signed_or_unsigned_type. | |
| * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove. | |
| 2007-06-11 Bob Duff <duff@adacore.com> | |
| Thomas Quinot <quinot@adacore.com> | |
| * g-stsifd-sockets.adb (Create): Work around strange behavior of | |
| 'bind' on windows that causes 'connect' to fail intermittently, by | |
| retrying the 'bind'. | |
| (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. | |
| 2007-06-10 Duncan Sands <baldrick@free.fr> | |
| * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather | |
| than to void, for the fields when making a new fat pointer type. | |
| (gnat_substitute_in_type): Now substitute_in_type. | |
| * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls. | |
| * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge. | |
| * utils.c (update_pointer_to): Update fat pointers by updating the | |
| dummy node pointers used for the fields. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| * g-soccon-freebsd.ads, g-soccon-vxworks.ads:, | |
| g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, | |
| g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new | |
| constant Thread_Blocking_IO, always True by default, set False | |
| on a per-runtime basis. | |
| (Need_Netdb_Buffer): New constant. | |
| * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads, | |
| g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New | |
| files. | |
| * g-socthi-vxworks.ads, g-socthi-vxworks.adb, | |
| g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname, | |
| Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new | |
| child package Task_Safe_NetDB | |
| (Host_Error_Messages): Add stub body. | |
| (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. | |
| * g-soccon-mingw.ads: Add Windows-specific constants. | |
| (Need_Netdb_Buffer): New constant. | |
| (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada | |
| wrapper and import inet_addr(3) from the standard sockets library | |
| directly instead. | |
| (In_Addr): Add alignment clause. | |
| (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, | |
| s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb, | |
| s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads, | |
| s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb, | |
| s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb, | |
| s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb, | |
| a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb, | |
| a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb, | |
| a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb, | |
| g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb, | |
| g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb, | |
| i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb, | |
| s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads, | |
| s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb, | |
| s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb, | |
| s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb, | |
| s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb, | |
| s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb, | |
| s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb, | |
| s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb, | |
| s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb, | |
| s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb, | |
| s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb, | |
| s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb, | |
| s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb, | |
| s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb, | |
| s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb, | |
| s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb, | |
| s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb, | |
| s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads, | |
| s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb, | |
| a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace | |
| Unchecked_* by Ada.Unchecked_* | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb, | |
| s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb, | |
| g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads, | |
| output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads, | |
| g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb, | |
| a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate. | |
| * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb, | |
| s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads, | |
| s-tasloc.adb, s-tasloc.ads: New files. | |
| 2007-06-06 Bob Duff <duff@adacore.com> | |
| * g-expect-vms.adb: | |
| (Send_Signal, Close): Raise Invalid_Process if the process id is invalid. | |
| * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string. | |
| (Send_Signal, Close): Raise Invalid_Process if the process id is | |
| invalid. | |
| (Pattern_Matcher_Access): Is now a general access type to be able to | |
| use aliased string. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change | |
| (SIGEMT is now used instead of SIGTERM on AIX). | |
| * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads. | |
| (Time_Slice_Supported): Set to True. | |
| Use SIGEMT instead of SIGTERM as SIGADAABORT. | |
| 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com> | |
| * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-" | |
| (Time, Time)): Use To_Relative_Time rather than manual calculation to | |
| express the bounds of Duration as Time. Raise Time_Error when the | |
| result is greater or equal to the higher bound of Duration (on the | |
| margin case). | |
| ("+" (Time, Duration)): Reorder code. Remove the declaration of constant | |
| Ada_High_And_Leaps. | |
| ("-" (Time, Duration)): Reorder code. Remove the declaration of constant | |
| Ada_High_And_Leaps. | |
| ("-" (Time, Time)): Reorder code. | |
| (All_Leap_Seconds): Removed. | |
| (Arithmetic_Operations.Add): Remove sign related kludge. | |
| (Arithmetic_Operations.Difference): Control the leaps seconds processing | |
| with flag Leap_Support. | |
| (Arithmetic_Operations.Subtract): Remove sign related kludge. | |
| (Check_Within_Time_Bounds): New procedure. | |
| (Clock): Control the leap seconds processing with flag Leap_Support. | |
| (Cumulative_Leap_Seconds): Assert that the target supports leap seconds. | |
| (Formatting_Operations.Split): Control the leap seconds processing with | |
| flag Leap_Support. | |
| (Formatting_Operations.Time_Of): Control the leaps seconds processing | |
| with flag Leap_Support. Adjust the year, month and day (if applicable) | |
| when the value of day seconds designates a new day. | |
| (Split): Use parameter associations for better readability. Integrate | |
| flag Is_Ada_05. | |
| (Time_Of): Use parameter associations for better readability. Integrate | |
| flag Is_Ada_05. | |
| * a-calfor.adb (Split): Use parameter associations for better | |
| readability. Integrate flag Is_Ada_05. | |
| (Time_Of): Remove flag Leap_Checks. Use parameter associations for | |
| better readability. Integrate flag Is_Ada_05. | |
| 2007-06-06 Arnaud Charlet <charlet@adacore.com> | |
| * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, | |
| s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, | |
| s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, | |
| s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, | |
| s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, | |
| s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, | |
| s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, | |
| s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, | |
| s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, | |
| s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb, | |
| s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base | |
| time when entering this routine to detect a backward clock setting | |
| (manual setting or DST adjustment), to avoid waiting for a longer delay | |
| than needed. | |
| (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant. | |
| Remove handling of deferred priority change, and replace by setting the | |
| task priority directly, as required by AI-188. | |
| Update comments. | |
| (Max_Task_Image_Length): New constant. | |
| Replace Warnings (Off) by Unreferenced pragma, cleaner. | |
| (Dynamic_Priority_Support): Removed, no longer needed. | |
| (Poll_Base_Priority_Change): Ditto. | |
| (Set_Ceiling): Add this procedure to change the ceiling priority | |
| associated to a lock. This is a dummy implementation because dynamic | |
| priority ceilings are not supported by the underlying system. | |
| * a-dynpri.adb (Set_Priority): Take into account case where Target is | |
| accepting a RV with its priority boosted. | |
| Remove handling of deferred priority change, and replace by setting the | |
| task priority directly, as required by AI-188. | |
| * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for | |
| Succeeded = True. | |
| Remove handling of deferred priority change, and replace by setting the | |
| task priority directly, as required by AI-188. | |
| (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state | |
| of Self_Id earlier. | |
| * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion. | |
| (Poll_Base_Priority_Change): Removed. | |
| Code clean up: use SSL.Current_Target_Exception. | |
| * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks | |
| to run as this is a potentially dispatching point. | |
| (Call_Synchronous): Use Local_Defer_Abort. | |
| (Callable): Relax assertion. | |
| (Selective_Wait): Relax assertion in case abort is not allowed. | |
| Remove handling of deferred priority change, and replace by setting the | |
| task priority directly, as required by AI-188. | |
| * s-tasuti.adb (Make_Passive): Adjust assertions. | |
| Remove handling of deferred priority change, and replace by setting the | |
| task priority directly, as required by AI-188. | |
| 2007-06-06 Arnaud Charlet <charlet@adacore.com> | |
| * system-vxworks-sparcv9.ads, system-solaris-x86.ads, | |
| system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, | |
| system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, | |
| system-vxworks-mips.ads, system-vxworks-alpha.ads, | |
| system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, | |
| system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, | |
| system-interix.ads, system-linux-hppa.ads, system-tru64.ads, | |
| system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, | |
| system-solaris-sparcv9.ads, system-vms.ads, system.ads, | |
| system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads, | |
| system-linux-ia64.ads: Document mapping between Ada and OS priorities. | |
| This patch changes the largest non-binary modulus from 2**31-1 to | |
| 2**32-1. | |
| (Compiler_System_Version): Removed, no longer used. | |
| Clean up system files by removing flags only used on a single target. | |
| Also remove obsolete flags, only used during bootstrap from system.ads | |
| (Address): Add a pragma Preelaborable_Initialization. | |
| * system-aix.ads: Ditto. | |
| (GCC_ZCX_Support): Set to true. | |
| Update priority range on AIX and map Ada priorities to target | |
| priorities appropriately for different scheduling policies. | |
| * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1 | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * mlib-tgt-specific.adb, mlib-tgt-specific.ads, | |
| mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files. | |
| * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, | |
| mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, | |
| mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, | |
| mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, | |
| mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package | |
| MLib.Tgt, containing the default versions of the exported subprograms. | |
| For each platform, create a specific version of the body of new child | |
| package MLib.Tgt.Specific that contains only the body of subprograms | |
| that are different from the default. | |
| (Archive_Builder_Append_Options): New function. | |
| 2007-06-06 Matthew Gingell <gingell@adacore.com> | |
| * s-osinte-aix.adb: Map Ada priorities to target priorities | |
| appropriately for different scheduling policies. | |
| 2007-06-06 Arnaud Charlet <charlet@adacore.com> | |
| * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely | |
| its C counterpart. | |
| Remove references to Unchecked_Conversion, and use Ada.xxx instead. | |
| Replace Unchecked_Conversion by Ada.Unchecked_Conversion. | |
| 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com> | |
| * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure. | |
| Noop on VMS, added for interface commonality. | |
| 2007-06-06 Eric Botcazou <ebotcazou@adacore.com> | |
| Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | |
| Olivier Hainque <hainque@adacore.com> | |
| * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the | |
| renamed expression of a full renaming at toplevel. | |
| (gnat_to_gnu_entity, case object): If not defining, do not look inside | |
| the values the constant is initialized to if it is an N_Allocator. | |
| (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the | |
| TYPE_SIZE_UNIT of inner types after the stride is elaborated. | |
| (make_aligning_type): Accept an extra ROOM argument for storage to be | |
| made available before the aligned field, and an extra BASE_ALIGN | |
| argument for callers to pass the alignment guaranteed to be honored for | |
| the whole aligning object. Avoid call to finish_record_type, which only | |
| interferes with the sizes we want to set. | |
| (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to | |
| make_aligning_type for super-aligned objects on stack. | |
| (components_to_record): Pass the adjusted size of the type when creating | |
| fields in the qualified union for the variant part. | |
| (gnat_substitute_in_type): Copy TYPE_USER_ALIGN. | |
| (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for | |
| packed array type. | |
| (maybe_pad_type): Set TYPE_USER_ALIGN. | |
| (make_aligning_type): Likewise. | |
| ALIGN argument is unsigned int. | |
| (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism. | |
| (gnat_to_gnu_param): Likewise, for parameters. | |
| (gnat_to_gnu_entity) <object>: Always instantiate the renaming object | |
| if it is constant and stems from a function call. | |
| (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment | |
| of the record is specified. Adjust accordingly. | |
| (adjust_packed): New static function. | |
| (gnat_to_gnu_field): Use it to adjust the packedness setting. | |
| (components_to_record): Likewise. | |
| (gnat_to_gnu_entity) <object>: Do not test the renamed expression for | |
| side-effects if the object is deemed constant. | |
| (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer | |
| type instead of merely finalizing it. Tidy. | |
| <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL. | |
| <E_Access_Type>: Likewise. | |
| (defer_debug_incomplete_list): Rename to defer_finalize_list. | |
| (defer_debug_level): Delete. | |
| (gnat_to_gnu_entity) <debug_deferred>: Likewise | |
| <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer | |
| type. | |
| <E_Record_Type>: Do not explicitly defer finalizing the type. | |
| Adjust for write_record_type_debug_info renaming. | |
| <E_Subprogram_Type>: Likewise. | |
| Finalize deferred types right after deferred incomplete types are | |
| expanded. | |
| (rest_of_type_decl_compilation): New global function. | |
| (components_to_record): Rename defer_debug parameter to do_not_finalize. | |
| (components_to_record): Propagate the packedness to the fields of the | |
| qualified union type if there is a variant part. | |
| (gnat_to_gnu_entity) <E_Array_Type>: Use new function | |
| instead of inline code to adjust the XUT field offsets. | |
| (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type. | |
| <E_Record_Subtype>: Do not let finish_record_type compute the sizes | |
| and write the debug info if the type derives from a discriminated one. | |
| (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type. | |
| <E_Array_Subtype>: Likewise. | |
| <E_String_Literal_Subtype>: Likewise. | |
| (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have | |
| an alignment clause. | |
| (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN | |
| before giving warning. | |
| (prepend_one_attribute_to): New function, helper to prepend an attribute | |
| to an attribute list. | |
| (gnat_to_gnu_entity) <E_Procedure>: Use it. | |
| (prepend_attributes): Likewise. | |
| (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type. | |
| <E_Array_Type>: Declare the padding type for the element type, if any. | |
| <E_Array_Subtype>: Likewise. | |
| (defer_limited_with): New variable. | |
| (Gigi_Equivalent_Type): New function. | |
| (gnat_to_gnu_entity): Use it at start and use result throughout. | |
| (gnat_to_gnu_entity, case E_Access_Type): Rework to use | |
| Gigi_Equivalent_Type, support Limited_With, allow two levels of | |
| indirection, precompute if unconstrained array to simplify logic, and | |
| use defer_limited_with to defer elaboration of some types from limited | |
| with. | |
| (finalize_from_with_types): New function. | |
| 2007-06-06 Gary Dismukes <dismukes@adacore.com> | |
| Eric Botcazou <ebotcazou@adacore.com> | |
| Tristan Gingold <gingold@adacore.com> | |
| Olivier Hainque <hainque@adacore.com> | |
| * trans.c (Identifier_to_gnu): Change test for deferred constant by | |
| adding guard that the entity is an E_Constant before testing presence | |
| of Full_view (and remove unnecessary test that entity is not a type). | |
| For a CONST_DECL used by reference, manually retrieve | |
| the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either. | |
| (struct language_function): Move from utils.c to here. | |
| (struct parm_attr): New structure. | |
| (parm_attr, parm_attr vector, parm_attr GC vector): New types. | |
| (f_parm_attr_cache): New macro. | |
| (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the | |
| expressions for the 'First, 'Last and 'Length attributes of the | |
| unconstrained array IN parameters. | |
| (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout. | |
| Allocate the information structure for the function earlier, as well | |
| as the language-specific part. | |
| If the parameter attributes cache has been populated, evaluate the | |
| cached expressions on entry. | |
| (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call, | |
| N_Procedure_Call_Statement and N_Indexed_Component. | |
| (Pragma_to_gnu): Translate inspection_point to an asm statement | |
| containaing a comment and a reference to the object (either its address | |
| for BLKmode or its value). | |
| (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide | |
| to go to DECL_INITIAL. Together with the size constraint relaxation | |
| in create_var_decl, enlarges the set of situations in which an | |
| identifier may be used as an initializer without implying elaboration | |
| code. | |
| (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set | |
| DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the | |
| node. | |
| (maybe_stabilize_reference): Remove lvalues_only parameter. | |
| (gnat_stabilize_reference): Adjust for above change. | |
| (gnat_to_gnu): Do not set location information on the result | |
| if it is a reference. | |
| (add_cleanup): Add gnat_node parameter and set the location of the | |
| cleanup to it. | |
| (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup. | |
| (Exception_Handler_to_gnu_zcx): Likewise. | |
| (gigi): Remove the cgraph node if the elaboration procedure is empty. | |
| (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit | |
| the former right after the latter. | |
| (start_stmt_group): Make global. | |
| (end_stmt_group): Likewise. | |
| (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New | |
| vars. | |
| (gnu_program_error_label_stack): Likewise. | |
| (gigi): Initialize them. | |
| (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise. | |
| (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label): | |
| New cases. | |
| (push_exception_label_stack): New function. | |
| (takes_address): New function. | |
| * utils.c (struct language_function): Move to trans.c from here. | |
| (unchecked_convert): Do not wrap up integer constants in | |
| VIEW_CONVERT_EXPRs. | |
| (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent | |
| the latter for aggregate types, unexpected by later passes, and relax an | |
| arbitrary size constraint on the former. | |
| (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p | |
| to compare the sizes. | |
| (convert_vms_descriptor): When converting to a fat pointer type, be | |
| prepared for a S descriptor at runtime in spite of a SB specification. | |
| (shift_unc_components_for_thin_pointers): New function. | |
| (write_record_type_debug_info): For variable-sized fields, cap the | |
| alignment of the pointer to the computed alignment. | |
| (finish_record_type): Change HAS_REP parameter into REP_LEVEL. | |
| If REP_LEVEL is 2, do not compute the sizes. | |
| (build_vms_descriptor): Adjust for new prototype of finish_record_type. | |
| (build_unc_object_type): Likewise. | |
| (declare_debug_type): New function. | |
| * ada-tree.def: USE_STMT: removed (not emitted anymore). | |
| * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because | |
| no statement is expandable anymore. | |
| (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice. | |
| (gnat_handle_option): Only allow flag_eliminate_debug_types to be set | |
| when the user requested it explicitely. | |
| (gnat_post_options): By default, set flag_eliminate_unused_debug_types | |
| to 0 for Ada. | |
| (get_alias_set): Return alias set 0 for a type if | |
| TYPE_UNIVERSAL_ALIASING_P is set on its main variant. | |
| * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro. | |
| (DECL_FUNCTION_STUB): New accessor macro. | |
| (SET_DECL_FUNCTION_STUB): New setter macro. | |
| * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada. | |
| * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New | |
| declarations. | |
| 2007-06-06 Jose Ruiz <ruiz@adacore.com> | |
| * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal): | |
| Rename to Abort_Task_Interrupt to be able to keep the same interface | |
| as the rest of the targets. | |
| * s-osinte-vxworks.ads s-osinte-vxworks.adb | |
| (To_VxWorks_Priority): Remove explicit "in" mode indicator | |
| * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads: | |
| New files. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * a-chahan.ads: Remove obsolescent pragmas | |
| * a-chlat1.ads: Minor reformatting | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface | |
| for Errout | |
| * errout.adb: New Finalize/Compilation_Errors/Output_Messages | |
| implementation | |
| * errout.ads (Finalize): Changed interface | |
| (Output_Messages): New procedure | |
| (Compilation_Errors): New Interface | |
| * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New | |
| Finalize/Output_Messages interface for Errout | |
| (Prepare_To_Preprocess): New Finalize/Output_Messages interface for | |
| Errout. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| Olivier Hainque <hainque@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18) | |
| check. | |
| (Raise_Current_Excep): Call Debug_Raise_Exception just before | |
| propagation starts, to let debuggers know about the event in a reliable | |
| fashion. | |
| (Local_Raise): Moved to System.Exceptions | |
| More convenient to have this as a separate unit | |
| * s-except.adb, s-except.ads: New files. | |
| * a-exextr.adb (Unhandled_Exception): Delete - replaced by | |
| Debug_Unhandled_Exception in System.Exceptions where it belongs | |
| together with a couple of other debug helpers. | |
| (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of | |
| the former Unhandled_Exception. | |
| * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure | |
| (Warn_No_Exception_Propagation): New procedure | |
| (Warn_If_No_Propagation): Rewritten for new warning generation | |
| (Expand_Exception_Handlers): New warning generation | |
| (Expand_N_Raise_xxx_Error): Rewritten for new warnings | |
| (Add_Exception_Label): Use Special_Exception_Package_Used for test | |
| instead of Most_Recent_Exception_Used (accomodates Exception_Traces) | |
| (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap | |
| even if restriction is set (makes life easier in Check_Returns) | |
| (Expand_Local_Exception_Handlers): Follow renamed entity chain when | |
| checking exception identities. | |
| (Expand_Local_Exception_Handlers): Do not optimize when all others case | |
| (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated | |
| block for handler (used by Check_Returns) | |
| (Expand_Local_Exception_Handlers): Local_Raise now takes an address | |
| (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to | |
| remove all exception handlers when optimizing local raise statements. | |
| (Find_Local_Handler): Use Get_Renamed_Entity | |
| (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is | |
| marked analyzed after expanding exception handlers, do not generate | |
| redundant cleanup actions, because they have been constructed already. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The | |
| presence of this categorization pragma is mandated by the language. | |
| (Limited_Controlled): Add missing pragma Preelaborable_Initialization | |
| for this type. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, | |
| butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, | |
| err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, | |
| fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, | |
| lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, | |
| makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, | |
| par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, | |
| prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, | |
| prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, | |
| sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, | |
| uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb, | |
| ali.ads, ali.adb: | |
| Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to | |
| package Namet. Make File_Name_Type and Unit_Name_Type types derived from | |
| Mame_Id. Add new type Path_Name_Type, also derived from Name_Id. | |
| Use variables of types File_Name_Type and Unit_Name_Type in error | |
| messages. | |
| (Get_Name): Add parameter Ignore_Special, and set it reading file name | |
| (New_Copy): When debugging the compiler, call New_Node_Debugging_Output | |
| here. | |
| Define flags Flag217-Flag230 with associated subprograms | |
| (Flag_Word5): New record type. | |
| (Flag_Word5_Ptr): New access type. | |
| (To_Flag_Word5): New unchecked conversion. | |
| (To_Flag_Word5_Ptr): Likewise. | |
| (Flag216): New function. | |
| (Set_Flag216): New procedure. | |
| 2007-06-06 Arnaud Charlet <charlet@adacore.com> | |
| * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length | |
| instead of 'Size. | |
| * a-stwifi.ads, a-stzfix.ads: Minor reformatting | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to | |
| the package. | |
| (Object_Specific_Data_Array): This is now internal to the package. | |
| (Object_Specific_Data): This is now internal to the package. | |
| (Select_Specific_Data_Element): This is now internal to the package. | |
| (Select_Specific_Data_Array): This is now internal to the package. | |
| (Select_Specific_Data): This is now internal to the package. | |
| (Offset_To_Top_Function_Ptr): This is now public. | |
| (To_Offset_To_Top_Function_Ptr): Removed. | |
| (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now | |
| local to subprogram Offset_To_Top. | |
| (Predefined_DT): Removed. | |
| (Typeinfo_Ptr): Removed. | |
| (OSD): This function is now internal to this package. | |
| (SSD): This function is now internal to this package. | |
| (DT): New function that displaces the pointer to the table of primitives | |
| to get access to the enclosing wrapper record. | |
| (IW_Membership): Code cleanup. | |
| (Offset_To_Top): Code cleanup. | |
| (Predefined_DT): Removed. | |
| (Register_Interface_Tag): Removed. | |
| (Set_Interface_Table): Removed. | |
| (Set_Offset_Index): Removed. | |
| (Set_Offset_To_Top): Code cleanup. | |
| (Set_OSD): Removed. | |
| (Set_Signature): Removed. | |
| (Set_SSD): Removed. | |
| (Set_Tagged_Kind): Removed. | |
| (Typeinfo_Ptr): Removed. | |
| (TSD): Removed. | |
| (Displace): Add missing check on null actual. | |
| * exp_disp.ads, exp_disp.adb | |
| (Select_Expansion_Utilities): Removed. | |
| (Build_Common_Dispatching_Select_Statements): Moved to exp_atags. | |
| (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because | |
| the interface requires a new parameter. | |
| (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec, | |
| Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace | |
| calls to subprograms Build_T, Build_S, etc. by the corresponding code. | |
| Done to remove package Select_Expansion_Utilities. | |
| (Make_DT): New implementation for statically allocated dispatch tables. | |
| (Make_Secondary_DT): Moved to the scope of Make_DT. | |
| (Register_Primitive): Code cleanup plus incoporate the use of the new | |
| function DT_Address_Attribute. | |
| (Expand_Interface_Thunk): The profile of this subprogram has been | |
| changed to return the Thunk_Id and the corresponding code. | |
| (Fill_DT_Entry): Removed. Its functionality is now provided by | |
| subprogram Register_Primitive. | |
| (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by | |
| subprogram Register_Primitive. | |
| (Register_Primitive): New subprogram that incorporates the previous | |
| functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry. | |
| (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This | |
| was only required to call Make_DT_Access_Action, which is now removed. | |
| (Ada_Actions): Removed | |
| (Action_Is_Proc): Removed | |
| (Action_Nb_Arg): Removed | |
| Replace all the calls to Make_DT_Access_Action by direct calls to | |
| Make_Procedure_Call_Statement or Make_Function_Call. | |
| (Set_DTC_Entity_Value): New subprogram. | |
| (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value. | |
| (Expand_Interface_Thunk): Add missing support for primitives that are | |
| functions with a controlling result (case in which there is no need | |
| to generate the thunk). | |
| * exp_atag.ads, exp_atag.adb | |
| (Build_DT): New subprogram that displaces the pointer to reference the | |
| base of the wrapper record. | |
| (Build_Typeinfo_Offset): Removed. | |
| (RTE_Tag_Node): Removed. | |
| (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp | |
| (Build_Get_RC_Offset): Removed. | |
| (Build_Inherit_Predefined_Prims): Removed. | |
| (Build_Inherit_TSD: Removed. | |
| (Build_New_TSD): Removed. | |
| (Build_Set_External_Tag): Removed. | |
| (Build_Set_Predefined_Prim_Op_Address): Add documentation. | |
| (Build_Set_Prim_Op_Address): Add documentation. | |
| (Build_Set_TSD): Removed. | |
| * rtsfind.ads, rtsfind.adb | |
| (Load_Fail): If load fails and we are not in configurable run-time | |
| mode, then raise Unrecoverable_Error. | |
| (Text_IO_Kludge): Generate an error message if a run-time library is | |
| not available in a given run-time (ie. zfp run-time). | |
| (RTE_Record_Component): Add code to check that the component we search | |
| for is not found in two records in the given run-time package. | |
| (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed | |
| (RE_DT_Predef_Prims_Offset): New entity | |
| (RE_Static_Offset_To_Top): New entity | |
| (RE_HT_Link): New entity. | |
| (System_Address_Image): Addition of this run-time package. | |
| (RE_Address_Image): New entity. | |
| (RE_Abstract_Interface): Removed. | |
| (RE_Default_Prim_Op_Count): Removed. | |
| (RE_DT_Entry_Size): Removed. | |
| (RE_DT_Min_Prologue_Size): Removed. | |
| (RE_DT_Prologue_Size): Removed. | |
| (RE_Ifaces_Table_Ptr): Removed. | |
| (RE_Interface_Data_Ptr): Removed. | |
| (RE_Type_Specific_Data): Removed. | |
| (RE_Primary_DT): Removed. | |
| (RE_Register_Interface_Tag): Removed. | |
| (RE_Set_Offset_Index): Removed. | |
| (RE_Set_OSD): Removed. | |
| (RE_Set_SSD): Removed. | |
| (RE_Set_Signature): Removed. | |
| (RE_Set_Tagged_Kind): Removed. | |
| (RE_Address_Array): New entity. | |
| (RE_DT): New entity. | |
| (RE_Iface_Tag): New entity. | |
| (RE_Interfaces_Table): New entity. | |
| (RE_No_Dispatch_Table): New entity. | |
| (RE_NDT_Prims_Ptr): New entity. | |
| (RE_NDT_TSD): New entity. | |
| (RE_Num_Prims): New entity. | |
| (RE_Offset_To_Top_Function_Ptr): New entity. | |
| (RE_OSD_Table): New entity. | |
| (RE_OSD_Num_Prims): New entity. | |
| (RE_Predef_Prims): New entity | |
| (RE_Predef_Prims_Table_Ptr): New entity. | |
| (RE_Primary_DT): New entity. | |
| (RE_Signature): New entity. | |
| (RE_SSD): New entity. | |
| (RE_TSD): New entity. | |
| (RE_Type_Specific_Data): New entity. | |
| (RE_Tag_Kind): New entity. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the | |
| C imported variable. | |
| (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set | |
| on entry. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * a-tienio.adb (Get): Adjust buffer size to accomodate one extra | |
| character | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * a-tifiio.adb (Put, internal): For negative numbers, check that there | |
| is room for at least one digit and the minus sign. | |
| (Put.Put_Character): Never put a character outside of the range of | |
| string To. | |
| 2007-06-06 Olivier Hainque <hainque@adacore.com> | |
| Eric Botcazou <ebotcazou@adacore.com> | |
| * utils2.c (build_allocator): Provide the extra arguments to | |
| make_aligning_type for super-aligned objects allocated from the default | |
| pool. Leave enough room for a pointer before the aligning field, and | |
| store the system's allocator return value there. | |
| (build_call_alloc_dealloc): When releasing a super-aligned object, | |
| retrieve the system's allocator return value from where build_allocator | |
| has stored it, just ahead of the adjusted address we are passed. | |
| (build_call_raise): Handle properly the generation of line numbers when | |
| the node is marked No_Location. | |
| (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort | |
| by using DECL_UID on ties. | |
| (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same | |
| main variant. | |
| (build_call_raise): Handle converting exception into goto; support new | |
| argument KIND. | |
| (build_component_ref): Add new arg to build_call_raise. | |
| 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com> | |
| * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse | |
| "." in the case of nnn.xxx when nnn terminates with an underscore. | |
| Parse the remaining "#" or ":" in the case of nnn#.xxx# | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT | |
| 2007-06-06 Arnaud Charlet <charlet@adacore.com> | |
| Vincent Celier <celier@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when | |
| needed. | |
| (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute | |
| ((destructor)) for adafinal, even when switch -a is used. | |
| Do not issue pragma Linker_Destructor for adafinal when switch -a is | |
| used. | |
| (Gen_Object_Files_Options): Add formatting of Linker Options, when | |
| Output_Linker_Option_List is set. Suppress this formatting when | |
| Zero_Formatting is set. | |
| Add case for CLI_Target. | |
| (System_Restrictions_Used): New flag, used to avoid generating with of | |
| System_Restrictions and initialization of the data unless there is | |
| some use of System.Restrictions in the partition. | |
| (Check_System_Restrictions_Used): New procedure | |
| * s-stalib.adb: Remove with of System.Restrictions. No longer needed | |
| since we only with this unit in the binder file if it is used elsewhere | |
| in the partition. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * bindusg.adb: Add line for @<response file> | |
| Add lines for new switches -R and -Z | |
| * gnatbind.adb (Gnatbind): Do not include sources from the GNAT | |
| hierarchy in the list of files of the closure when -R is used | |
| (Gnatbind): Accept arguments starting with '@' to indicate response | |
| files and take the arguments from the response files. | |
| If List_Closure is set, display the referenced files | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in | |
| which the address-clause is applied to in-mode actuals (allowed by | |
| 13.1(22)). | |
| (Apply_Discriminant_Check): Do not generate a check if the type is | |
| constrained by a current instance. | |
| (Activate_Division_Check): New procedure | |
| (Activate_Overflow_Check): New procedure | |
| (Activate_Range_Check): New procedure | |
| Call these new Activate procedures instead of setting flags directly | |
| (Apply_Array_Size_Check): Removed, no longer needed. | |
| Code clean up: remove obsolete code related to GCC 2. | |
| (Get_E_Length): Protect against bomb in case scope is standard | |
| (Selected_Range_Checks): If the node to be checked is a conversion to | |
| an unconstrained array type, and the expression is a slice, use the | |
| bounds of the slice to construct the required constraint checks. | |
| Improve NOT NULL error messages | |
| (Apply_Constraint_Check): If the context is a null-excluding access | |
| type, diagnose properly the literal null. | |
| 2007-06-06 Pascal Obry <obry@adacore.com> | |
| * clean.adb (Clean_Archive): Use untouched casing for the archive name | |
| and the corresponding .deps file. | |
| (Clean_Interface_Copy_Directory): Use untouched casing for the library | |
| src directory. Minor code-clean-up. Use untouched casing for files | |
| read into the library src dir. | |
| (Clean_Library_Directory): Idem. | |
| (Parse_Cmd_Line): Accept new switch -aP | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| Eric Botcazou <ebotcazou@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| * einfo.ads, einfo.adb (Available_View): New synthesized attribute | |
| applicable to types that have the With_Type flag set. Returns the | |
| non-limited view of the type, if available, otherwise the type itself. | |
| For class-wide types, there is no direct link in the tree, so we have | |
| to retrieve the class-wide type of the non-limited view of the Etype. | |
| New attributes Static_Initialization and Static_Elaboration_Desired. | |
| Remove the pragma Thread_Body, and the associated flag | |
| Is_Thread_Body in entities, and all related code. | |
| (Suppress_Value_Tracking_On_Call): New flag | |
| E_Exception has Esize and Alignment fields | |
| (Universal_Aliasing): New function. | |
| (Set_Universal_Aliasing): New procedure. | |
| (Write_Entity_Flags): Deal with Universal_Aliasing flag. | |
| (Check_Nested_Access): New procedure. | |
| (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures. | |
| (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. | |
| (Related_Interface): New attribute. Present in dispatch table pointer | |
| components of records. Set to point to the entity of the corresponding | |
| interface type. | |
| (Is_By_Reference_Type): Recurse on the full view of an incomplete type. | |
| (Original_Access_Type): Remove, not needed. | |
| (Root_Type): Handle properly subtypes of class-wide-types. | |
| Update comments. | |
| * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for | |
| class-wide types visible through limited-with clauses. | |
| (Try_Primitive_Operation): When examining all primitive operations of a | |
| tagged type, do not consider subprograms labeled as hidden unless they | |
| belong to a private generic type with a tagged parent. | |
| (Try_Object_Operation): Extensive rewriting, to handle properly various | |
| overloading cases, when several ancestors may have class-wide operations | |
| that are possible candidates, and when the overloaded functions return | |
| array types and have defaulted parameters so that the call may be | |
| interpreted as an indexing. | |
| (Analyze_Allocator): Remove Mark_Allocator and its invocation. | |
| (Process_Function_Call): use Next, rather than Next_Actual, to analyze | |
| successive actuals before analyzing the call itself. | |
| (Try_Primitive_Operation): A primitive operation is compatible with the | |
| prefix if the prefix has a synchronized type and the type of the formal | |
| is its corresponding record, as can be the case when the primitive | |
| operation is declared outside of the body of the type. | |
| (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to | |
| perform homonym traversal, looking for class-wide operation matches | |
| (formerly done in statements of Try_Class_Wide_Operation). Matches on | |
| access parameters are now restricted to anonymous access types. | |
| (Mark_Allocator): An allocator with a discriminant association parent is | |
| a coextension. | |
| (Try_One_Prefix_Interpretation): If the type of the object is | |
| incomplete, as can be happen when it is a limited view obtained through | |
| a limited_with_clause, the selected component is not part of a prefixed | |
| call. | |
| (Complete_Object_Operation): Diagnose properly an object that is not | |
| aliased when the corresponding controlling formal is an access | |
| parameter. | |
| (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly | |
| ambiguous calls in prefixed notation, where two primitives differ only | |
| in that the controlling argument of one is an access parameter. | |
| * sem_ch6.adb (Has_Single_Return): Add guard in code that determines | |
| whether a function that returns an unconstrained type can be inlined. | |
| (Process_Formals): Diagnose properly the illegal use of an incomplete | |
| type in the profile of an access_to_subprogram declaration. | |
| (Check_Synchronized_Overriding): Nothing check for concurrent types, the | |
| operations are attached to the corresponding record. | |
| (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ. | |
| When processing a primitive of a concurrent type which implements an | |
| interface change the type of all controlling formals to that of the | |
| corresponding record type. | |
| (Check_Synchronized_Overriding): Relax the conditional logic when trying | |
| to determine the tagged type to which a primitive belongs. | |
| (Check_Conventions): Capture condition to ignore a primitive operation | |
| (which is shared between the loop in Check_Conventions and the one in | |
| Check_Convention) in a new local function Skip_Check. | |
| (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible | |
| confusion with Check_Conventions' own Prim_Op local variable. | |
| (Create_Extra_Formals): Test for a tagged result type rather than a | |
| controlling result when determining whether to add a BIP_Alloc_Form | |
| formal and a BIP_Final_List formal to the function. | |
| (Check_Conformance); For parameters that are anonymous access types, | |
| subtype conformance requires that the not null and the constant | |
| indicators must match | |
| (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery | |
| to retrieve the appropriate type when processing a concurrent type | |
| declared within a generic. Minor comment reformatting. Change invocation | |
| of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri- | |
| mitive. | |
| (Analyze_Subprogram_Body): If the return type of a function is an | |
| anonymous access to the limited view of a class-wide type, and the | |
| non-limited view of the type is available, update the type of the | |
| function so that code can be generated. | |
| (Process_Formals): In case of access-subtype itype whose designated | |
| type is also an itype (situation that happens now with access to | |
| subprograms) we mark the access-type itype with the Has_Delayed_Freeze | |
| attribute to avoid backend problems. | |
| (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in | |
| init of R_Stm_Type_Is_Anon_Access. Also check that base types of the | |
| anonymous types' designated types are same before testing | |
| Subtypes_Statically_Match. | |
| (Create_Extra_Formals): Test for a named access parameter that is a | |
| controlling formal as an additional condition for adding an | |
| accessibility level formal. This can occur in the subp type created for | |
| dispatching calls in Expand_Dispatching_Call, and allows calling | |
| Create_Extra_Formals from that procedure rather than special-casing the | |
| extra formals there. | |
| (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals | |
| when the function has a controlling result. | |
| (Check_Returns): Add much more knowledge of the optimization of local | |
| raise statements to gotos, to retain proper warnings in this case. | |
| (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label | |
| nodes when looking for last statement. | |
| * sem_type.ads, sem_type.adb (Specific_Type): Add support for | |
| class-wide types visible through limited with clauses. | |
| (Add_One_Interp): If the operands are anonymous access types, the | |
| predefined operator on universal_access is immediately visibles | |
| (Find_Unique_Type): Handle anonymous access to subprogram types just as | |
| other anonymous access types. | |
| (Disambiguate): Take into account CIL convention. | |
| (Interface_Present_In_Ancestor): Add support for class-wide interfaces. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb, | |
| sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads, | |
| elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure. | |
| Fix lower bound of tables. | |
| Add rep clauses. | |
| * nlists.adb: Ditto. | |
| (Prev_Node, Next_Node): Change index type to Int so that it properly | |
| covers the range First_Node_Id - 1 up. | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| Hristian Kirtchev <kirtchev@adacore.com> | |
| * exp_aggr.ads, exp_aggr.adb: | |
| (Build_Record_Aggr_Code): Add missing initialization of secondary tags | |
| in extension aggregates. | |
| (Flatten): Other conditions being met, an aggregate is static if the | |
| low bound given by component associations is different from the low | |
| bound of the base index type. | |
| (Packed_Array_Aggregate_Handled): If the component type is itself a | |
| packed array or record, the front-end must expand into assignments. | |
| (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to | |
| Init_Pr, instead of Ancestor_Is_Expression. | |
| (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a | |
| coextension chain root, either generate a list controller or use the | |
| already existing one. | |
| (Static_Array_Aggregate): New procedure to construct a positional | |
| aggregate that can be handled by the backend, when all bounds and | |
| components are compile-time known constants. | |
| (Expand_Record_Aggregate): Force conversion of aggregates of tagged | |
| types covering interface types into assignments. | |
| (Replace_Type): move to Build_Record_Aggr_Code. | |
| (Expand_Record_Aggr_Code): if the target of the aggregate is an | |
| interface type, convert to the definite type of the aggregate itself, | |
| so that needed components are visible. | |
| (Convert_Aggr_In_Object_Decl): If the aggregate has controlled | |
| components and the context is an extended return statement do not | |
| create a transient block for it, to prevent premature finalization | |
| before the return is executed. | |
| (Gen_Assign): Do not generate a call to deep adjust routine if the | |
| component type is itself an array of controlled (sub)-components | |
| initialized with an inner aggregate. | |
| (Component_Check): New name for Static_Check. This name is now more | |
| appropriate, and documentation is added which was missing. | |
| (Component_Check): Add test for bit aligned component value | |
| (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_ | |
| Tagged_Comps, name is more appropriate given added function below. | |
| (Component_Not_OK_For_Backend): Check for bit aligned component ref. | |
| 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and | |
| Terminated: Add unchecked type conversion from System.Address to | |
| System.Tasking.Task_Id when calling the predefined primitive | |
| _disp_get_task_id. | |
| Disable new Ada 05 accessibility check for JVM.NET targets, which | |
| cannot be implemented in a practical way. | |
| (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in | |
| the sources always references the tag of the actual object. Therefore, | |
| if 'Tag is applied in the sources to class-wide interface objects we | |
| generate code that displaces "this" to reference the base of the object. | |
| (Expand_N_Attribute_Reference, case Size): Return specified size if | |
| known to front end. | |
| (Expand_N_Attribute_Reference): The expansion of the 'Address attribute | |
| has code that displaces the pointer of the object to manage interface | |
| types. However this code must not be executed when the prefix is a | |
| subprogram. This bug caused the wrong expansion of the internally | |
| generated assignment that fills the dispatch table when the primitive | |
| is a function returning a class-wide interface type. | |
| (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to | |
| Set_Attribute_Name for Name_Unaligned_Valid. | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address): | |
| If the initialization is the equivalent aggregate of the initialization | |
| procedure of the type, do not remove it. | |
| (Expand_N_Attribute_Definition_Clause): Exclude access variables | |
| initialized to null from having their expression reset to empty and | |
| note this exception in the comment. | |
| 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames. | |
| Add "with" and "use" clauses for Sem_Attr. | |
| (Expand_Current_Value): Do not replace occurences of attribute | |
| references where the prefix must be a simple name. | |
| * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for | |
| Namet. Add new arrays Attribute_Name_Modifies_Prefix and | |
| Attribute_Requires_Simple_Name_Prefix. | |
| (Name_Modifies_Prefix): Body of new function. | |
| (Requires_Simple_Name_Prefix): Body of new function. | |
| (Resolve_Attribute, case Access): Improve error message for case of | |
| mismatched conventions. | |
| (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an | |
| incomplete type. | |
| (Analyze_Attribute, case 'Access): If the type of the prefix is a | |
| constrained subtype for a nominal unconstrained type, use its base type | |
| to check for conformance with the context. | |
| (Resolve_Attribute): Remove test of the access type being associated | |
| with a return statement from condition for performing accessibility | |
| checks on access attributes, since this case is now captured by | |
| Is_Local_Anonymous_Access. | |
| (Analyze_Access_Attribute): Set Address_Taken on entity | |
| (Analyze_Attribute, case Address): Set Address_Taken on entity | |
| (OK_Self_Reference): Traverse tree to locate enclosing aggregate when | |
| validating an access attribute whose prefix is a current instance. | |
| (Resolve_Attribute): In case of attributes 'Code_Address and 'Address | |
| applied to dispatching operations, if freezing is required then we set | |
| the attribute Has_Delayed_Freeze in the prefix's entity. | |
| (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in | |
| current scope if access of local subprogram taken | |
| (Analyze_Access_Attribute): Check legality of self-reference even if the | |
| expression comes from source, as when a single component association in | |
| an aggregate has a box association. | |
| (Resolve_Attribute, case 'Access): Do not apply accessibility checks to | |
| the prefix if it is a protected operation and the attribute is | |
| Unrestricted_Access. | |
| (Resolve_Attribute, case 'Access): Set the Etype of the attribute | |
| reference to the base type of the context, to force a constraint check | |
| when the context is an access subtype with an explicit constraint. | |
| (Analyze_Attribute, case 'Class): If the prefix is an interface and the | |
| node is rewritten as an interface conversion. leave unanalyzed after | |
| resolution, to ensure that type checking against the context will take | |
| place. | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a | |
| wrapper when the full view of the controlling type of an inherited | |
| function that dispatches on result implements interfaces. | |
| (Expand_N_Object_Declaration): In cases where the type of the | |
| declaration is anonymous access, create finalization list for it. | |
| (Expand_N_Object_Declaration): Generate a persistent_bss directive only | |
| if the object has no explicit initialization, to match description of | |
| functionality of pragam Persistent_BSS. | |
| (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate): | |
| new function to build static aggregates, to replace initialization call | |
| when static initialization is desired. | |
| (Freeze_Type): Generate a list controller for an access type whenever | |
| its designated type has controlled anonymous access discriminants. | |
| (Build_Equivalent_Aggregate): New procedure to compute a static | |
| aggregate to be used as default initialization for composite types, | |
| instead of a generating a call to the initialization procedure for the | |
| type. | |
| (Build_Initialization_Call): When available, replace a call to the | |
| initialization procedure with a copy of the equivalent static aggregate | |
| for the type. | |
| (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated | |
| declarations for objects of a class-wide interface type, rather than | |
| just identifiers, to prevent visibility problems. | |
| (Expand_N_Object_Declaration): When expanding the declaration for an | |
| object of a class-wide interface type, preserve the homonym chain of | |
| the original entity before exchanging it with that of the generated | |
| renaming declaration. | |
| (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation | |
| active, because there is no way to handle the exception. | |
| (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT | |
| to do a minimum decoration of the Access_Disp_Table list. | |
| (Expand_Record_Controller): Avoid the addition of the controller between | |
| the component containing the tag of a secondary dispatch table and its | |
| adjacent component that stores the offset to the base of the object. | |
| This latter component is only generated when the parent type has | |
| discriminants ---documented in Add_Interface_Tag_Components). | |
| (Apply_Array_Size_Check): Removed, no longer needed. | |
| (Expand_N_Full_Type_Declaration): If the type has anonymous access | |
| components, create a Master_Entity for it only if it contains tasks. | |
| (Build_Init_Procedure): Suppress the tag assignment compiling under | |
| no run-time mode. | |
| (Freeze_Record_Type): Remove code associated with creation of dispatch | |
| table. | |
| (Init_Secondary_Tags): Update type of actuals when generating calls to | |
| Ada.Tags.Set_Offset_To_Top | |
| (Stream_Operation_OK): Disable use of streams compiling under no | |
| run-time mode | |
| (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization | |
| if Has_Init_Expression set. | |
| (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to | |
| Register_Primitive, which provides the same functionality. | |
| (Requires_Init_Proc): Return false in case of interface types. | |
| (Add_Secondary_Tables): Use the new attribute Related_Interface to | |
| cleanup the code. | |
| (Predefined_Primitive_Freeze): Do not assume that an internal entity | |
| is always associated with a predefined primitive because the internal | |
| entities associated with interface types are not predefined primitives. | |
| Therefore, the call to Is_Internal is replaced by a call to the | |
| function Is_Predefined_Dispatching_Operation. | |
| (Make_Eq_If): When generating the list of comparisons for the | |
| components of a given variant, omit the controller component that is | |
| present if the variant has controlled components. | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| Hristian Kirtchev <kirtchev@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to | |
| handle the creation of finalization lists and calls for nested | |
| coextensions when the root of the chains is part of a return statement. | |
| (Inside_A_Return_Statement): New function inside Complete_Coextension_ | |
| Finalization. | |
| (Expand_Record_Equality): Skip components that are interface types. | |
| (Displace_Allocator_Pointer): Add missing support for interface subtypes | |
| (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant | |
| with Rewrite_Coextension. Change the condition for detecting coextension | |
| root nodes. | |
| (Is_Local_Access_Discriminant): Removed. | |
| (Rewrite_Coextension): New routine which rewrites a static coextension | |
| as a temporary and uses its unrestricted access in the construction of | |
| the outer object. | |
| (Complete_Coextension_Finalization): New routine. Generate finalization | |
| attachment calls to all delayed coextensions. | |
| (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever | |
| the allocator is not a coextension itself and has delayed coextensions. | |
| If the current allocator is controlled, but also a coextension, delay | |
| the generation of the finalization attachment call. | |
| Rename local variable "Node" to "Nod" in order to avoid confusion with | |
| "Elists.Node". | |
| (Expand_Allocator_Expression): Call Adjust for initialized allocators of | |
| limited types that are not inherently limited. Such an allocator is | |
| illegal, but is generated by the expander for a return statement, to | |
| copy the result onto the secondary stack. This is the only case where a | |
| limited object can be copied. Generate code to displace the pointer | |
| to the object if the qualified expression is a class-wide interface | |
| object. Such displacement was missing and hence the copy of the object | |
| was wrong. | |
| (Apply_Accessibility_Check): Handle allocated objects initialized in | |
| place. | |
| (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator | |
| and Expand_Allocator_Expression. Allocating class-wide interface objects | |
| this routine displaces the pointer to the allocated object to reference | |
| the component referencing the corresponding secondary dispatch table. | |
| Expand_Allocator_Expression): Add missing support to allocate class-wide | |
| interface objects initialized with a qualified expression. | |
| (Get_Allocator_Final_List): Test for an anonymous access type that is a | |
| function result type, and use the finalization list associated with the | |
| function scope in that case (such an anonymous type should not be | |
| treated like an access parameter's type). | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a | |
| controlled type, use Make_Handler_For_Ctrl_Operation to construct the | |
| required exception handler. | |
| (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle | |
| properly the case of a function whose return type is a limited | |
| class-wide interface type. Modify the code of the accessibility | |
| check to handle class-wide interface objects. In this case we need to | |
| displace "this" to reference the primary dispatch table to get access | |
| to the TSD of the object (to evaluate its accessibility level). | |
| (Expand_N_Extended_Return_Statement): Test for a tagged result type | |
| rather than a controlling result as one of the conditions for | |
| generating tests of the implicit BIP_Alloc_Form formal. The | |
| initialization assignment is also handled according to whether the | |
| result is tagged instead of controlling. | |
| In the case where the init assignment is inserted in the "then" part of | |
| the allocation conditional, rewrite the target to be a dereference of | |
| the implicit BIP_Object_Access formal. | |
| If the returned value is unconstrained and created on the secondary | |
| stack, mark the enclosing block and function so that the secondary | |
| stack is not reclaimed on return. | |
| Treat returns from functions with controlling results similarly to | |
| returns from functions with unconstrained result subtypes. | |
| If the object returned is unconstrained, and an allocator must be | |
| created for it, analyze the allocator once the block for the extended | |
| return is installed, to ensure that finalizable components | |
| of the expression use the proper finalization list. Guard the call to | |
| Move_Final_List with a check that there is something to finalize. | |
| (Make_Tag_Ctrl_Assignment): Use "old" handling | |
| of controlled type assignment for virtual machines, since new code uses | |
| unsupported features (such as direct access to bytes in memory). | |
| 2007-06-06 Gary Dismukes <dismukes@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra | |
| accessibility actual, check for the case of an aliased object that has | |
| been rewritten as an Access attribute, and assign Prev to Prev_Orig so | |
| we fall into processing for the attribute rather than the name of the | |
| object. | |
| (Expand_Inline_Call): If an actual is a literal, and the corresponding | |
| formal has its address taken in the body, create a temporary to capture | |
| value. If the return type is a limited interface, do not treat the | |
| return value as Controlled. | |
| (Is_In_Place_Function): If the return type is a limited interface, | |
| treat as returning in place. The actual returned object may not always | |
| be limited, but the caller has to assume that it is returned in place. | |
| (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the | |
| context of an allocator, use the correct finalization chain (that is, | |
| the chain belonging to the access type, rather than the chain belonging | |
| to the current scope). | |
| (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged | |
| result type rather than a controlling result as a precondition for | |
| adding an allocation form actual to a build-in-place call. | |
| (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto. | |
| (Freeze_Subprogram): Code cleanup. Remove all the code that register the | |
| primitive in the dispatch tables. This work is now done by Make_DT when | |
| the type is frozen. | |
| (Register_Predefined_DT_Entry): Removed. | |
| (Add_Return): If end label is not present, use sloc of last statement | |
| for generated return statement in procedure, for better gdb behavior | |
| on expanded code. | |
| (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the | |
| object address nodes to ensure proper processing by routines like | |
| Insert_After*. | |
| (Expand_Call): Fix generation of validity check for parameter | |
| (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing | |
| the allocation form parameter if the result subtype is constrained, | |
| except when the function has a controlling result. | |
| (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type | |
| rather than Is_Controlled and Has_Controlled_Component, since we want to | |
| include class-wide result types in this treatment. Also test for a | |
| controlling result, since that also requires passing a finalization | |
| list. | |
| (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_* | |
| even when the result subtype is constrained, to handle calls involving | |
| controlling results. | |
| (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_* | |
| is now called even when the result subtype is constrained, to handle | |
| calls involving controlling results. | |
| (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained | |
| on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure | |
| now performs the test). | |
| (Make_Build_In_Place_Call_In_Object_Declaration): | |
| Add_Alloc_Form_Actual_* is now called even when the result subtype is | |
| constrained, to handle calls involving controlling results. | |
| (Add_Return): Accomodate rewritten pattern from local raise to goto | |
| transformation, so that we still recognize an transfer statement | |
| and do the right thing here in that case. | |
| (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start | |
| and end of subprogram code. | |
| (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing | |
| support for primitives that are functions (without formals) with a | |
| controlling result. | |
| (Inherited_From_Formal): If the actual subtype has not generic parent | |
| type, it is not an actual for a formal derived type, and there is no | |
| operation to inherit from the formal. | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| Thomas Quinot <quinot@adacore.com> | |
| * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of | |
| inserted cleanup code appropriately for GDB use. | |
| (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create | |
| exception handler for Deep_Adjust or Deep_Finalize. | |
| (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity | |
| Raise_From_Controlled_Operation is available, use a call to that | |
| subprogram instead of a plain "raise Program_Error" node to raise | |
| Program_Error if an exception is propagated from an Adjust or Finalize | |
| operation. | |
| (Insert_Actions_In_Scope_Around): If the statement to be wrapped | |
| appears in the optional statement list of a triggering alternative, the | |
| scope actions can be inserted directly there, and not in the list that | |
| includes the asynchronous select itself. | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| Hristian Kirtchev <kirtchev@adacore.com> | |
| * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of | |
| generated exception handler appropriately when debugging generated code. | |
| Deal properly with No_Exception_Propagation restriction mode. | |
| (Expand_N_Abort_Statement): Add an unchecked type conversion from | |
| System.Address to System.Tasking.Task_Id when processing the result of | |
| the predefined primitive _disp_get_task_id. | |
| (Expand_N_Asynchronous_Select): Clarify comment. | |
| (Expand_N_Protected_Type_Declaration): Minor code cleanup. | |
| (Find_Parameter_Type): New routine inside Type_Conformant_Parameters. | |
| (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup. | |
| (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for | |
| privals and for generated call to Complete_Entry_Body, for better gdb | |
| behavior. | |
| (Copy_Result_Type): Utility to construct a parameter and result profile | |
| for protected functions whose return type is an anonymous access to | |
| subprogram. | |
| (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type): | |
| call the above. | |
| (Build_Task_Activation_Call): Insert Activate_Tasks call at proper | |
| point when the local-raise-to-goto transformation has taken place. | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| Nicolas Setton <setton@adacore.com> | |
| * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its | |
| functionality when the backend is generating code. | |
| Otherwise any serious error | |
| reported by the backend calling the frontend routine Error_Msg | |
| changes the Compilation_Mode to Check_Semantics, disables the | |
| functionality of this routine and causes the generation of | |
| spureous additional errors. | |
| * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the | |
| debugging information now generated by the compiler for fat-pointer | |
| types. | |
| Document the contents of DW_AT_producer in the GNAT Vendor extensions to | |
| DWARF2/3. | |
| Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram | |
| (GARLIC_Support.Build_Subprogram_Receiving_Stubs, | |
| PolyORB_Support.Build_Subprogram_Receiving_Stubs): | |
| For a remote call to a function with a classwide return type, apply an | |
| E.4(18) check to the returned value. | |
| (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for | |
| stream attributes of the designated type of an RACW, as they are not | |
| dispatching primitive operations. | |
| 2007-06-06 Geert Bosch <bosch@adacore.com> | |
| * exp_fixd.adb (Integer_Literal): Add optional argument to construct a | |
| negative literal | |
| (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always | |
| positive | |
| (Do_Divide_Fixed_Universal): Handle case of negative Frac. | |
| (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always | |
| positive | |
| (Do_Multiply_Fixed_Universal): Handle case of negative Frac. | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this | |
| attribute compiling package Ada.Tags under No_Run_Time_Mode. | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for | |
| deallocation of class-wide interface objects. | |
| (Expand_Dispatching_Constructor_Call): Take into account that if the | |
| result of the dispatching constructor is an interface type, the | |
| function returns a class-wide interface type; otherwise the returned | |
| object would be actual. The frontend previously accepted returning | |
| interface types because Expand_Interface_Actuals silently performed | |
| the management of the returned type "as if" it were a class-wide | |
| interface type. | |
| (Expand_Dispatching_Constructor_Call): Replace call to | |
| Make_DT_Access_Action by direct call to Make_Function_Call. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to | |
| compute masking constant, since we now set Esize properly to the | |
| underlying size. | |
| (Create_Packed_Array_Type): Set proper Esize value adjusted as required | |
| to match the alignment. | |
| (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for | |
| packed arrays of 8 bits or less. | |
| * freeze.adb (Freeze_Entity): When freezing the formals of a | |
| subprogram, freeze the designated type of a parameter of an access type | |
| only if it is an access parameter. | |
| Increase size of C convention enumeration object | |
| (Freeze_Entity, array type case): Make sure Esize value is properly | |
| adjusted for the alignment if it is known. | |
| (Freeze_Entity, array type case): When checking bit packed arrays for | |
| the size being incorrect, check RM_Size, not Esize. | |
| (Freeze_Record_Type): Check for bad discriminated record convention | |
| (In_Exp_Body): Return true if the body is generated for a subprogram | |
| renaming, either an attribute renaming or a renaming as body. | |
| (Check_Itype): If the designated type of an anonymous access component | |
| is a non-protected subprogram type, indicate that it is frozen, to | |
| prevent out-of-scope freeze node at some subsequent call. | |
| (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism | |
| only if the subprogram is neither imported nor exported, as well as the | |
| NCA descriptor class if the subprogram is exported. | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a | |
| default initialization on an imported object, when there is no | |
| initialization call generated for it. | |
| (Expand_Pragma_Assert): Add handling of No_Exception_Propagation | |
| restriction | |
| * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma | |
| Static_Elaboration_Desired. | |
| Remove pragma Thread_Body. | |
| Implement a new pragma No_Body | |
| Removes the Explicit_Overriding pragma | |
| Remove Optional_Overriding pragma | |
| (Prag): Deal with Universal_Aliasing. | |
| (Name_CIL, Name_CIL_Constructor, Convention_CIL, | |
| Pragma_CIL_Constructor): New names. | |
| * sem_cat.adb (Validate_Object_Declaration): An initialization that | |
| uses the equivalent aggregate of a type must be treated as an implicit | |
| initialization. | |
| (Get_Categorization): Check a unit for pragma Preelaborate only if it | |
| has none of the other categories. | |
| (Process_Import_Or_Interface_Pragma): Report an error for an attempt | |
| to apply Import to an object renaming declaration. | |
| * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported | |
| from a C++ class should be declared as limited and that it will be | |
| considererd limited. | |
| (Analyze_Pragma): Warn that a type specified with pragma CPP_Class | |
| should be declared as limited and that it will be considererd limited. | |
| (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas | |
| (Analyze_Pragma, case Export): Diagnose export of enumeration literal | |
| (Analyze_Pragma): Deal with Universal_Aliasing. | |
| (Sig_Flags): Likewise. | |
| (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP. | |
| (Overflow_Checks_Unsuppressed): New flag. | |
| (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed. | |
| (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in | |
| case of JVM or .NET targets, and compiling user code. | |
| Add debugging convenience routine rv | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that | |
| are interface type. | |
| (Build_Elementary_Input_Call): For floating-point use right type in the | |
| absence of strange size or stream size clauses. | |
| (Build_Elementary_Write_Call): Same fix | |
| (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute | |
| set to value that does not match base type size. | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an | |
| object of a limited type can be initialized with a call to a function | |
| that returns in place. If the limited type has unknown discriminants, | |
| and the underlying type is a constrained composite type, build an actual | |
| subtype from the function call, as is done for private types. | |
| (Side_Effect_Free): An expression that is the renaming of an object or | |
| whose prefix is the renaming of a object, is not side-effect free | |
| because it may be assigned through the renaming and its value must be | |
| captured in a temporary. | |
| (Has_Controlled_Coextensions): New routine. | |
| (Expand_Subtype_From_Expr): Do nothing if type is a limited interface, | |
| as is done for other limited types. | |
| (Non_Limited_Designated_Type): new predicate. | |
| (Make_CW_Equivalent_Type): Modified to handle class-wide interface | |
| objects. | |
| Remove all handling of with_type clauses. | |
| * par-ch10.adb: Remove all handling of with_type clauses. | |
| * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the | |
| checksum if the main source could not be parsed. | |
| (Loat_Unit): When processing a child unit, determine properly whether | |
| the parent unit is a renaming when the parent is itself a child unit. | |
| Remove handling of with_type clauses. | |
| * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function. | |
| (Set_Is_Static_Coextension): New procedure. | |
| (Has_Local_Raise): New function | |
| (Set_Has_Local_Raise): New procedure | |
| (Renaming_Exception): New field | |
| (Has_Init_Expression): New flag | |
| (Delay_Finalize_Attach): Remove because flag is obsolete. | |
| (Set_Delay_Finalize_Attach): Remove because flag is obsolete. | |
| Remove all handling of with_type clauses. | |
| (Exception_Junk): Can now be set in N_Block_Statement | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * frontend.adb (Frontend): Return immediately if the main source could | |
| not be parsed, because of preprocessing errors. | |
| * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully. | |
| (Gnat1drv): Exit with errors if the main source could not be parsed, | |
| because of preprocessing errors. | |
| (Check_Rep_Info): New procedure | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * g-hesorg.ads, g-heasor.ads, | |
| g-busorg.ads, g-bubsor.ads: Update documentation | |
| GNAT.Heap/Bubble_Sort_G is now pure | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * g-catiio.ads, g-catiio.adb (Image): Check for null picture string | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * g-comlin.ads, g-comlin.adb: | |
| Add new warning for renaming of function return objects | |
| * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size | |
| (Tree_Read): Use size of object instead of type'object_size, since the | |
| latter is incorrect for packed array types. | |
| (Tree_Write): Same fix | |
| * opt.ads: Add new warning for renaming of function return objects | |
| (Generating_Code): New boolean variable used to indicate that the | |
| frontend as finished its work and has called the backend to process | |
| the tree and generate the object file. | |
| (GCC_Version): Is now private | |
| (Static_Dispatch_Tables): New constant declaration. | |
| (Overflow_Checks_Unsuppressed): New flag. | |
| (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed. | |
| (List_Closure): New flag for gnatbind (-R) | |
| Zero_Formatting: New flag for gnatbind (-Z) | |
| (Special_Exception_Package_Used): New flag. | |
| (Warn_On_Unrepped_Components): New flag. | |
| * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed | |
| unit is a compilation unit, rather than relying on its scope, so that | |
| Standard can be renamed. | |
| (Analyze_Object_Renaming): Add new warning for renaming of function | |
| return objects. | |
| Also reject attempt to rename function return object in Ada 83 mode. | |
| (Attribute_Renaming): In case of tagged types, add the body of the | |
| generated function to the freezing actions of the type. | |
| (Find_Type): A protected type is visible right after the reserved word | |
| "is" is encountered in its type declaration. Set the entity and type | |
| rather than emitting an error message. | |
| (New_Scope): Properly propagate Discard_Names to inner scopes | |
| (Check_Nested_Access): New procedure. | |
| (Has_Nested_Access, Set_Has_Nested_Access): New procedures. | |
| (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. | |
| * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning | |
| Add new warning for renaming of function return objects | |
| (Check_References): Suppress warnings for objects whose type or | |
| base type has Warnings suppressed. | |
| (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C | |
| (Set_Warning_Switch): Include new -gnatwc in -gnatwa | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| Emmanuel Briot <briot@adacore.com> | |
| Olivier Hainque <hainque@adacore.com> | |
| * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the | |
| absolute value of Header.Block_Size when displaying the freed physical | |
| memory in traces. | |
| (Allocate): Compute Storage_Address using Integer_Address, not | |
| Storage_Offset, because the range of Storage_Offset may not be large | |
| enough. | |
| (Configure): New parameter Low_Level_Traces | |
| (Allocate, Deallocation, Free_Physically): Added low-level traces | |
| (Configure): new parameter Errors_To_Stdout. | |
| (Output_File): new subprogram | |
| (Deallocate, Dereference): Send error messages to the proper stream | |
| (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as | |
| documented. Previous code would send it to the current output file | |
| defined in GNAT.IO, which might not be stdout | |
| (Is_Valid): Adjust comment to mention that a positive reply means that | |
| Header_Of may be used to retrieve the allocation header associated with | |
| the subprogram Storage address argument. Return False early if this | |
| address argument is misaligned. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept | |
| switch -P | |
| (ASIS_Main): New global variable | |
| (Get_Closure): New procedure | |
| (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat | |
| check, metric or pretty. Call Get_Closure in this case. | |
| (Check_Files): For GNAT LIST, check all sources of all projects when | |
| All_Projects is True. | |
| (GNATCmd): Accept -U for GNAT LIST | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK= | |
| has been specified | |
| Correct error message when invocation of the linker fails | |
| Add explicit size clause for the C imported variables | |
| Object_List_File_Supported and Using_GNU_Linker to emphasize that | |
| we expect char size. | |
| Read target parameters earlier, since this is needed to set | |
| Target_VM properly. Also do not use -static/shared-libgcc for non GCC | |
| targets. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * gnatls.adb: | |
| Add 3 spaces before the default project directory when displaying | |
| the project search path. | |
| Add new command line switch '-l' to display license information. | |
| 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com> | |
| * gmem.c: Add support for timestamps on memory operations. | |
| * memtrack.adb, gnatmem.adb: Add support for timestamps on memory | |
| operations (not used currently, just foundation for future | |
| enhancements). Add possibility to perform full dump of gmem.out file. | |
| (Print_Back_Traces): Declare accesses to root arrays constants since | |
| they aren't modified. | |
| (Print_Back_Traces): allocate root arrays on the heap rather than stack. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * gnatsym.adb: Update Copyright notice | |
| (Parse_Cmd_Line): Accept new switch -D | |
| (Gnatsym): In Direct policy (switch -D) copy reference file to symbol | |
| file. | |
| * prj.ads (Policy): New policy Direct | |
| (Yes_No_Unknown): New enumeration type | |
| (Project_Data): New component Libgnarl_Needed | |
| * prj-nmsc.adb (Check_For_Source): When recording a source file make | |
| use the untouched pathname casing. | |
| (Get_Directories): Ensure that the Display_Exec_Directory is using the | |
| proper casing on non case-sensitive platforms like Windows. | |
| (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s) | |
| on all platforms, as it is not possible to know which one is allowed | |
| before processing the project files. | |
| (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is | |
| specified when symbol policy is Direct. Check that when there is a | |
| symbol file defined (either by default or with attribute | |
| Library_Symbol_File) it is not the same as the reference symbol file. | |
| (Check_Stand_Alone_Library): Recognize new symbol policy Direct. | |
| (Look_For_Sources): Allow Locally_Removed_Files to be declare in non | |
| extending projects. | |
| (Record_Ada_Source): Record a source that has been locally removed in an | |
| imported project. | |
| * symbols.ads (Policy): New policy Direct | |
| * symbols-vms.adb (Initialize): Take new policy Direct in case | |
| statement | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory): | |
| Correct obvious bug (return Dir; instead of return Directory;). | |
| (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| * g-pehage.adb (Produce): Open output files in Binary mode, so that | |
| they have UNIX line endings (LF only) even on Windows, and thus pass | |
| all GNAT style checks. | |
| 2007-06-06 Emmanuel Briot <briot@adacore.com> | |
| * g-regpat.adb (Quote): Fix improper quoting of '.' | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by | |
| default, set False on a per-runtime basis. | |
| (Need_Netdb_Buffer): New constant. | |
| * g-socket.ads, g-socket.adb: Import new package | |
| GNAT.Sockets.Thin.Task_Safe_NetDB. | |
| (Raise_Host_Error): Use Host_Error_Message from platform-specific thin | |
| binding to obtain proper message. | |
| (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close. | |
| Replace various occurrences of Arry (Arry'First)'Address with the | |
| equivalent Arry'Address (GNAT always follows implementation advice from | |
| 13.3(14)). | |
| (Get_Host_By_Address, Get_Host_By_Name, | |
| Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock; | |
| instead, rely on platform-specific task safe netdb operations provided | |
| by g-socthi. | |
| * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal | |
| parameter Process_Blocking_IO. | |
| (Host_Error_Messages): Add stub body. | |
| (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. | |
| (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname, | |
| Safe_Getservbyport): Move functions into new child package | |
| Task_Safe_NetDB. | |
| (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr, | |
| Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines. | |
| (In_Addr): Add alignment clause. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * g-trasym.ads, g-traceb.ads: Update list of supported targets | |
| Add note about symbolic traceback | |
| 2007-06-06 Pascal Obry <obry@adacore.com> | |
| * hostparm.ads (Normalized_CWD): Use the host directory separator | |
| instead of the hardcoded forward slash which is not the proper | |
| character on Windows for example. | |
| (Java_VM): Removed. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| * a-clrefi.adb, a-clrefi.ads: New files | |
| * impunit.adb: Add s-os_lib in the list of user visible units. | |
| (Non_Imp_File_Names_95): Add a-clrefi to this list | |
| Remove obsolete run-time entries. | |
| (Non_Imp_File_Names_05): Add Ada 2005 entries for: | |
| "a-exetim" -- Ada.Execution_Time | |
| "a-extiti" -- Ada.Execution_Time.Timers | |
| * mlib-prj.ads, mlib-prj.adb | |
| (Build_Library): Use untouched object dir and library dir. At the | |
| same time makes sure that the checks are done using the canonical | |
| form. Removes hard-coded directory separator and use the proper host | |
| one instead. | |
| (Process_Project): Do not look in object directory to check if libgnarl | |
| is needed for a library, if there is no object directory. | |
| (Build_Library): Scan the ALI files to decide if libgnarl is needed for | |
| linking. | |
| (Build_Library): When invoking gnatbind, use a response file if the | |
| total size of the arguments is too large. | |
| * Makefile.rtl: (g-sttsne): New object file. | |
| Add entry for a-clrefi, s-utf_32, System.Exceptions | |
| * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o. | |
| (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o. | |
| (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o | |
| Change g-string to s-string, g-os_lib to s-os_lib | |
| Change all g-utf_32 references to s-utf_32 | |
| 2007-06-06 Tristan Gingold <gingold@adacore.com> | |
| Olivier Hainque <hainque@adacore.com> | |
| * init.c: Do not adjust IP of an imported VMS exception of ia64. | |
| LIB$STOP is called to raise an exception and the IP of the exception | |
| is the instruction right after the call. | |
| (__gnat_adjust_context_for_raise, AIX): Implement. | |
| (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call | |
| adjust_context_for_raise before Raise_From_Signal_Hanler. | |
| (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure | |
| siginfo is passed to the handler, necessary to let the zcx propagation | |
| engine unwind past it. | |
| 2007-06-06 Olivier Hainque <hainque@adacore.com> | |
| * initialize.c (__gnat_initialize for vxworks): Update documentation | |
| on the ZCX support, using different sets of crtstuff objects than with | |
| GCC 3.4. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package | |
| spec from body | |
| (Layout_Type): Fix recomputation of size from alignment. | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * sem_ch12.adb (Analyze_Associations): Diagnose use of an others | |
| association in an instance. | |
| (Copy_Generic_Node): If the node is a string literal, no need to copy | |
| its descendants. | |
| (Is_Generic_Formal): For a formal subprogram, the declaration is the | |
| grandparent of the entity. | |
| (Analyze_Formal_Interface_Type): Transform into a full type declaration, | |
| to simplify handling of formal interfaces that derive from other formal | |
| interfaces. | |
| (Instantiate_Subprogram_Body): The defining unit name of the body of | |
| the instance should be a defining identifier. | |
| (Install_Formal_Packages): make global to the package, for use in | |
| instantiations of child units. | |
| (Analyze_Package_Instantiation): Do not attempt to set information on an | |
| enclosing master of an entry when expansion is disabled. | |
| (Instantiate_Type): If the actual is a tagged synchronized type and the | |
| generic ancestor is an interface, create a generic actual for the | |
| corresponding record. | |
| (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type | |
| declaration, to ensure that the interface list is processed correctly. | |
| (Inline_Instance_Body): If enclosing scope is an instance body, remove | |
| its entities from visibiility as well. | |
| (Pre_Analyze_Actuals): if the actual is an allocator with constraints | |
| given with a named association, analyze the expression only, not the | |
| discriminant association itself. | |
| (Reset_Entity): If the analysis of a selected component is transformed | |
| into an expanded name in the prefix of a call with parameters, do not | |
| transform the original node into an expanded name, to prevent visibility | |
| errors in the case of nested generics. | |
| (Check_Private_View): For an array type, check whether the index types | |
| may need exchanging. | |
| 2007-06-06 Arnaud Charlet <charlet@adacore.com> | |
| Vincent Celier <celier@adacore.com> | |
| * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java, | |
| since both are separated. | |
| Add support for imported CIL packages. | |
| Add further special handling of "value_type" for CIL. | |
| Add special handling of pragma Import for CIL. | |
| * make.ads, make.adb: When switch -eS is used, direct all outputs to | |
| standard output instead of standard error, except errors. | |
| (Absolute_Path): Use untouched casing for the parent directory. | |
| (Add_Library_Search_Dir): Use the untouched directory name. | |
| (Add_Source_Search_Dir): Idem. | |
| (Change_To_Object_Directory): Update output to use proper casing. | |
| (Create_Binder_Mapping_File): Use the untouched filename to set | |
| ALI_Name. | |
| (Gnatmake): Use untouched library and executable directory names. | |
| (Insert_Project_Sources): Use untouched filename for spec and body. | |
| (Is_In_Object_Directory): Use untouched object directory. | |
| (Mark_Directory): Idem. | |
| (Collect_Arguments_And_Compile): Ensure that Full_Source_File always | |
| contains the non-canonical filename in all cases. | |
| (Change_To_Object_Directory): In verbose mode, display the name of the | |
| object directory we're changing to. | |
| (Compile_Sources): Make sure, when a project file is used, to compile | |
| the body of the unit, when there is one, even when only the spec is | |
| recorded in an ALI file. | |
| (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the | |
| spec to the body. | |
| (Report_Compilation_Failed): New procedure | |
| (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg): | |
| procedures moved from the spec to the body. | |
| (Extract_Failure): Removed, not used | |
| Replace explicit raises of exception Bind_Failed and Link_Failed with | |
| calls to Make_Failed with the proper message. | |
| Replace explicit raises of exception Compilation_Failed with calls to | |
| procedure Report_Compilation_Failed. | |
| (Initialize): Create mapping files unconditionally when using project | |
| files. | |
| * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL, | |
| Pragma_CIL_Constructor): New names. | |
| * targparm.ads, targparm.adb | |
| (Compiler_System_Version): Removed, no longer used. | |
| (Get_Target_Parameters): Relax checks on system.ads validity. Add | |
| handling of two new system flags: JVM and CLI. | |
| 2007-06-06 Jose Ruiz <ruiz@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run | |
| time, use the default s-interr body that provides interrupt support | |
| based on signals. | |
| (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of | |
| a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b}, | |
| g-soccon.ads, and s-taprop.adb for the marte run time. | |
| (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and | |
| timers are supported on marte. | |
| (EH_MECHANISM for marte): Do not use ZCX. | |
| (THREADSLIB for marte): Use -lmarte. | |
| Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS | |
| Add mlib-tgt-specific.o to gnatmake objects | |
| mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no | |
| longer of MLib.Tgt. | |
| (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks | |
| 6, either kernel or rtp, use a specialized version of s-osinte.ads. | |
| 2007-06-06 Pascal Obry <obry@adacore.com> | |
| * mkdir.c (__gnat_mkdir): Add support for UTF-8. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory | |
| separator, use instead the proper host directory separator. | |
| (Copy_ALI_Files): Make sure that an already existing ALI file in the | |
| ALI copy dir is writable, before doing the copy. | |
| * mlib-utl.ads, mlib-utl.adb: | |
| (Gcc): If length of command line is too long, put the list of object | |
| files in a response file, if this is supported by the platform. | |
| (Ar): If invocation of the archive builder is allowed to be done in | |
| chunks and building it in one shot would go above an OS dependent | |
| limit on the number of characters on the command line, build the archive | |
| in chunks. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name | |
| of specified object file is not equal to base name of source. | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| Hristian Kirtchev <kirtchev@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to | |
| the full type declaration. | |
| (Analyze_Component_Declaration): Add local variable E to capture the | |
| initialization expression of the declaration. Replace the occurences of | |
| Expression (N) with E. | |
| (OK_For_Limited_Init_In_05): Allow initialization of class-wide | |
| limited interface object with a function call. | |
| (Array_Type_Declaration): If the declaration lacks subtype marks for | |
| indices, create a simple index list to prevent cascaded errors. | |
| (Is_Null_Extension): Ignore internal components created for secondary | |
| tags when checking whether a record extension is a null extension. | |
| (Check_Abstract_Interfaces): Add missing support for interface subtypes | |
| and generic formals. | |
| (Derived_Type_Declaration): Add missing support for interface subtypes | |
| and generic formals. | |
| (Analyze_Object_Declaration): If an initialization expression is | |
| present, traverse its subtree and mark all allocators as static | |
| coextensions. | |
| (Add_Interface_Tag_Component): When looking for components that may be | |
| secondary tags, ignore pragmas that can appear within a record | |
| declaration. | |
| (Check_Abstract_Overriding): an inherited function that dispatches on | |
| result does not need to be overriden if the controlling type is a null | |
| extension. | |
| (Mentions_T): Handle properly a 'class attribute in an anonymous access | |
| component declaration, when the prefix is an expanded name. | |
| (Inherit_Component): If the derivation is for a private extension, | |
| inherited components remain visible and their ekind should not be set | |
| to Void. | |
| (Find_Type_Of_Object): In the case of an access definition, always set | |
| Is_Local_Anonymous_Access. We were previously not marking the anonymous | |
| access type of a return object as a local anonymous type. | |
| (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete | |
| range with character literal bounds. | |
| (Constrain_Array): Initialize the Packed_Array_Type field to Empty. | |
| (Access_Subprogram_Declaration): Indicate that the type declaration | |
| depends on an incomplete type only if the incomplete type is declared | |
| in an open scope. | |
| (Analyze_Subtype_Declaration): Handle properly subtypes of | |
| synchronized types that are tagged, and that may appear as generic | |
| actuals. | |
| (Access_Subprogram_Declaration): An anonymous access to subprogram can | |
| appear as an access discriminant in a private type declaration. | |
| (Add_Interface_Tag_Components): Complete decoration of the component | |
| containing the tag of a secondary dispatch table and the component | |
| containing the offset to the base of the object (this latter component | |
| is only generated when the parent type has discriminants --as documented | |
| in this routine). | |
| (Inherit_Components): Use the new decoration of the tag components to | |
| improve the condition that avoids inheriting the components associated | |
| with secondary tags of the parent. | |
| (Build_Discriminanted_Subtype): Indicate to the backend that the | |
| size of record types associated with dispatch tables is known at | |
| compile time. | |
| (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed. | |
| (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface | |
| to include task, protected, and synchronized interfaces as limited | |
| interfaces. | |
| (Process_Discriminants): Remove the setting of | |
| Is_Local_Anonymous_Access on the type of (anonymous) access | |
| discriminants of nonlimited types. | |
| (Analyze_Interface_Type_Declaration): Complete the decoration of the | |
| class-wide entity it is is already present. This situation occurs if | |
| the limited-view has been previously built. | |
| (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep | |
| field. | |
| (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute | |
| Related_Interface. | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components | |
| of the type that specify the position of interface tags when the type | |
| inherits discriminated array components from the parent type. | |
| If a component is initialized with a box, check for the presence of a | |
| default expression in its declaration before using its default | |
| initialization procedure. | |
| (Resolve_Record_Aggregate): If a component is box-initialized, and the | |
| component type has a discriminants, create a partial aggregate for it | |
| by copying the discriminants of the component subtype. | |
| Reject attempt to initialize a discriminant with a box. | |
| (Array_Aggr_Subtype): Indicate to the backend that the size of arrays | |
| associated with dispatch tables is known at compile time. | |
| (Get_Value): If an association in a record aggregate has a box | |
| association, and the corresponding record component has a default | |
| expression, always copy the default expression, even when the | |
| association has a single choice, in order to create a proper | |
| association for the expanded aggregate. | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * par-ch12.adb (P_Generic_Associations): The source position of an | |
| Others association is that of the others keyword, not that of the token | |
| that follows the box. | |
| (P_Formal_Type_Definition): Handle formal access types that carry a | |
| not null indicator. | |
| * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If | |
| multiple identifier are present, save Scan_State before scanning the | |
| colon, to ensure that separate trees are constructed for each | |
| declaration. | |
| (P_Identifier_Declarations): For object declaration, set new flag | |
| Has_Init_Expression if initialization expression present. | |
| (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL | |
| Improve NOT NULL error messages | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * par-ch4.adb: (P_Name): Recover from literal used as name | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * prep.ads, prep.adb (Expression): New Boolean parameter Complemented, | |
| defaulted to False. | |
| In the "not" case, recursive call with Complemented set to True. | |
| Do not allow "or" or "and" operators when Complemented is True. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * prj.adb (Project_Empty): Gives default value for new component | |
| Libgnarl_Needed | |
| * prj-attr.ads: Minor reformatting | |
| * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object | |
| directory using the untouched casing. | |
| (For_All_Source_Dirs): Idem. | |
| * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record | |
| directories specified with switches -aP. | |
| (Add_Search_Project_Directory): New procedure | |
| (Initialize_Project_Path): Put the directories in table | |
| Search_Directories in the project search path. | |
| (Initialize_Project_Path): For VMS, transform into canonical form the | |
| project path. | |
| 2007-06-06 Arnaud Charlet <charlet@adacore.com> | |
| * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return | |
| true if configurable run-time or No_Run_Time is set. | |
| (Set_Restriction): Avoid setting restriction No_Elaboration_Code when | |
| processing an unit which is not the one being compiled. | |
| 2007-06-06 Arnaud Charlet <charlet@adacore.com> | |
| * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax. | |
| Replace UC by Ada.UC | |
| * s-bitops.adb: Get rid of System.Pure_Exceptions. | |
| Replace UC by Ada.UC | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * scng.adb: (Check_End_Of_Line): Deal with very long lines | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names | |
| Remove no longer used nodes. | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check | |
| on obsolescent withed unit in case of limited-withed units. | |
| (Analyze_Compilation_Unit): Add guard to code that removed an | |
| instantiation from visibility, to prevent compiler aborts when | |
| instantiation is abandoned early on. | |
| (Install_Limited_Withed_Unit): Recognize a limited-with clause on the | |
| current unit being analyzed, and Distinguish local incomplete types | |
| from limited views of types declared elsewhere. | |
| (Build_Limited_Views.Decorate_Tagged_Type): Add documentation | |
| to state that the class-wide entity is shared by the limited-view | |
| and the full-view. | |
| (Analyze_With_Clause): Improve placement of flag for case of | |
| unimplemented unit. | |
| (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a | |
| manner similar to GNAT.Current_Exception. This is a violation of | |
| restriction (No_Exception_Propagation), and also inhibits the | |
| optimization of local raise to goto. | |
| (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed, | |
| and if so set Most_Recent_Exception_Used flag in Opt, and also check | |
| for violation of restriction No_Exception_Propagation. | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| Hristian Kirtchev <kirtchev@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the | |
| use of entity Exception_Occurrence if it is not available in the | |
| target run-time. | |
| * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When | |
| concurrent types are declared within an Ada 2005 generic, build their | |
| corresponding record types since they are needed for overriding-related | |
| semantic checks. | |
| (Analyze_Protected_Type): Rearrange and simplify code for testing that a | |
| protected type does not implement a task interface or a nonlimited | |
| interface. | |
| (Analyze_Task_Type): Rearrange and simplify code for testing that a task | |
| type does not implement a protected interface or a nonlimited interface. | |
| (Single_Task_Declaration, Single_Protected_Declaration): use original | |
| entity for variable declaration, to ensure that debugging information | |
| is correcty generated. | |
| (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander | |
| routines if the expander is not active. | |
| (Analyze_Task_Body): Mark all handlers to stop optimization of local | |
| raise, since special things happen for task exception handlers. | |
| * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for | |
| concurrent types declared within a generic. | |
| (Check_Dispatching_Operation): Do not emit warning about late interface | |
| operations in the context of an instance. | |
| (Check_Dispatching_Call): Remove restriction against calling a | |
| dispatching operation with a limited controlling result. | |
| (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and | |
| Register_Interface_DT_Entry by calls to Register_Primitive. | |
| (Check_Dispatching_Formals): Handle properly a function with a | |
| controlling access result. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size): | |
| Check for restriction No_Implementation_Attributes if in Ada 95 mode. | |
| (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available | |
| (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error | |
| message when using a VM, since this attribute is not supported. | |
| (Analyze_Record_Representation_Clause): Give unrepped component warnings | |
| * usage.adb: Add new warning for renaming of function return objects | |
| Indicate that -gnatwp and -gnatwP concern front-end inlining | |
| Add line for -gnatyg | |
| Add usage information for -gnatw.c/C | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch5.adb | |
| (Find_Var): Do not consider function call in test for infinite loop | |
| warning if warnings set off for function entity. | |
| (One_Bound): Do not create a temporary for a loop bound if it is a | |
| character literal. | |
| (Analyze_Assignment): Traverse the right hand side of an assignment and | |
| mark all allocators as static coextensions. | |
| (Analyze_Assignment): Exempt assignments involving a dispatching call | |
| to a function with a controlling access result from the check requiring | |
| the target to be class-wide. | |
| 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the | |
| chain of coextensions when an allocator serves as the root of such a | |
| chain. | |
| (Propagate_Coextensions): Remove the test for the root being an | |
| allocator. | |
| (Resolve_Allocator): Add condition to ensure that all future decoration | |
| occurs on an allocator node. Add processing and cleanup for static | |
| coextensions. | |
| (Valid_Conversion): If the operand type is the limited view of a | |
| class-wide type, use the non-limited view is available to determine | |
| legality of operation. | |
| (Ambiguous_Character): move to spec, for use elsewhere. | |
| (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode | |
| (Resolve_Range): Diagnose properly an ambiguous range whose bounds are | |
| character literals. | |
| (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting | |
| Do_Division_Check flag explicitly. | |
| (Resolve_Actuals): If the actual is of a synchronized type, and the | |
| formal is of the corresponding record type, this is a call to a | |
| primitive operation of the type, that is declared outside of the type; | |
| the actual must be unchecked-converted to the type of the actual | |
| (Resolve_Call): Kill all current values for any subprogram call if | |
| flag Suppress_Value_Tracking_On_Call is set. | |
| (Resolve_Type_Conversion): Generate error message the the operand | |
| or target of interface conversions come from a limited view. | |
| (Check_Infinite_Recursion): Ignore generated calls | |
| (Check_Allocator_Discrim_Accessibility): New procedure for checking | |
| that an expression that constrains an access discriminant in an | |
| allocator does not denote an object with a deeper level than the | |
| allocator's access type. | |
| (Resolve_Allocator): In the case of an allocator initialized by an | |
| aggregate of a discriminated type, check that associations for any | |
| access discriminants satisfy accessibility requirements by calling | |
| Check_Allocator_Discrim_Accessibility. | |
| (Resolve_Equality_Op): Handle comparisons of anonymous access to | |
| subprogram types in the same fashion as other anonymous access types. | |
| (Resolve_Concatenation_Arg): Remove initial character '\' in an error | |
| message that is not a continuation message. | |
| (Resolve_Type_Conversion): Add missing support for conversion to | |
| interface type. | |
| (Resolve_Actuals): Introduce a transient scope around the call if an | |
| actual is a call to a function returning a limited type, because the | |
| resulting value must be finalized after the call. | |
| (Resolve_Actuals): If the call was given in prefix notations, check | |
| whether an implicit 'Access reference or implicit dereference must be | |
| added to make the actual conform to the controlling formal. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body | |
| (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit | |
| overriding of an inherited private subprogram now there is no need to | |
| inherit its dispatching slot and reduce the size of the dispatch table. | |
| Set_All_DT_Position now ensures that the same slot is now assigned to | |
| both entities. This is required to statically build the dispatch table. | |
| (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need | |
| of calling Set_All_DT_Position to re-evaluate the position of the | |
| entries in the dispatch table. Such reevaluation is not desired if | |
| the tagged type is already frozen. | |
| 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute | |
| reference acts as an lvalue when the attribute name modifies the prefix | |
| (Is_Coextension_Root): New routine. | |
| (Mark_Static_Coextensions): New routine. | |
| (Type_Access_Level): Revise code for checking the level of the | |
| anonymous access type of a return object. | |
| (Safe_To_Capture_Value): Not safe to capture if Address_Taken | |
| (Matches_Prefixed_View_Profile): Remove the no longer necessary | |
| retrieval of the corresponding controlling record type. | |
| (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of | |
| concurrent types declared within a generic as well as class wide types. | |
| Emit a mode incompatibility error whenever a protected entry or routine | |
| override an interface routine whose first parameter is not of mode | |
| "out", "in out" or access to variable. | |
| (Overrides_Synchronized_Primitive): Rename to | |
| Find_Overridden_Synchronized_Primitive. | |
| (Collect_Interface_Components): New subprogram that collects all the | |
| components of a tagged record containing tags of secondary dispatch | |
| tables. | |
| (Add_Global_Declaration): New procedure | |
| (Abstract_Interface_List): Handle properly the case of a subtype of a | |
| private extension. | |
| (Type_Access_Level): In the case of a type whose parent scope is a | |
| return statement, call Type_Access_Level recursively on the enclosing | |
| function's result type to determine the level of the return object's | |
| type. | |
| (Build_Elaboration_Entity): Build name of elaboration entity from the | |
| scope chain of the entity, rather than the unit name of the file name. | |
| (Check_Nested_Access): New procedure. | |
| (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures. | |
| (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. | |
| (Get_Renamed_Entity): Utility routine for performing common operation | |
| of chasing the Renamed_Entity field of an entity. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on | |
| elaboration model | |
| (Check_A_Call): Add check for entry call which was causing blowup | |
| 2007-06-06 Olivier Hainque <hainque@adacore.com> | |
| * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add | |
| special code on ia64-vms to handle major incompatibilities between the | |
| GCC unwinding ABI and the VMS Condition Handling Facility, both calling | |
| this routine with a very different set of arguments and expectations on | |
| the return value. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| * socket.c (__gnat_close_signalling_fd): New function. | |
| (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname, | |
| __gnat_safe_getservbyname, __gnat_safe_getservbyport): | |
| New supporting functions for task safe Netdb operations. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| Olivier Hainque <hainque@adacore.com> | |
| * a-except-2005.ads, a-except-2005.adb | |
| (Raise_From_Controlled_Operation): New procedure in | |
| (private part of) Ada.Exceptions (standard runtime version). Used to | |
| provide informational exception message when Program_Error is raised as | |
| a result of an Adjust or Finalize operation propagating an exception. | |
| (Rmsg_28): Fix description for E.4(18) check. | |
| (Raise_Current_Excep): Call Debug_Raise_Exception just before | |
| propagation starts, to let debuggers know about the event in a reliable | |
| fashion. | |
| Take the address of E and dereference to make sure it is homed on stack | |
| and prevent the stores from being deleted, necessary for proper | |
| debugger behavior on "break exception" hits. | |
| (Local_Raise): Moved to System.Exceptions | |
| * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate | |
| exception message from the current occurrence and raise Program_Error | |
| has been moved to Ada.Exceptions.Raise_From_Controlled_Operation. | |
| 2007-06-06 Jose Ruiz <ruiz@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| * s-taprob.adb (Unlock): Change the ceiling priority of the underlying | |
| lock, if needed. | |
| * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling | |
| priority associated to a lock. | |
| * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax | |
| assertion to take into account case of no abort restriction. | |
| (Initialize_Protection_Entries): Add initialization for the field | |
| New_Ceiling associated to the protected object. | |
| (Unlock_Entries): Change the ceiling priority of the underlying lock, if | |
| needed. | |
| * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest, | |
| since this function needs to be set consistently with Update_Exception. | |
| * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest, | |
| since this function needs to be set consistently with Update_Exception. | |
| * s-taskin.ads: Update comments on | |
| Interrupt_Server_Blocked_On_Event_Flag. | |
| (Unbind_Handler): Fix handling of server_task wakeup | |
| (Server_Task): Set self's state so that Unbind_Handler can take | |
| appropriate actions. | |
| (Common_ATCB): Now use a constant from System.Parameters to determine | |
| the max size of the Task_Image field. | |
| * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the | |
| Initialize_Analyzer function. | |
| ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to | |
| take into account case of no abort restriction. | |
| ([Vulnerable_]Complete_Master): Modify assertion. | |
| * s-tataat.adb (Finalize): Use the nestable versions of | |
| Defer/Undefer_Abort. | |
| * s-tpobop.adb (Protected_Entry_Call): Relax assertion. | |
| * s-tpobop.ads: Update comments. | |
| * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead | |
| of locking the object manually, to avoid inconsistencies between | |
| Lock/Unlock_Entry assertions. | |
| * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when | |
| terminating | |
| application and System.Parameters.No_Abort is True. | |
| Update comments on Interrupt_Server_Blocked_On_Event_Flag. | |
| (Unbind_Handler): Fix handling of server_task wakeup | |
| (Server_Task): Set self's state so that Unbind_Handler can take | |
| appropriate actions. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure | |
| declarations instead of an explicit null body, for conciseness. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an | |
| illegal aggregate and the type is still Any_Composite. | |
| (Subtypes_Statically_Match): Fix problem of empty discriminant list | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object, | |
| to prevent subsequent expansion. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body | |
| 2007-06-06 Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for | |
| exceptions. | |
| (Write_Itype): Handle case of string literal subtype, which | |
| comes up in this context. | |
| (Update_Itype): when debugging expanded code, update sloc of itypes | |
| associated with defining_identifiers and ranges, for gdb use. | |
| (Sprint_Node_Actual): Add static keyword to object or exception | |
| declaration output if Is_Statically_Allocated is True. | |
| (Sprint_End_Label): Set entity of end marker for a subprogram, package, | |
| or task body, so that the tree carries the proper Sloc information for | |
| debugging use. | |
| (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes | |
| 2007-06-06 Arnaud Charlet <charlet@adacore.com> | |
| * s-secsta.adb (Chunk): Ensure this object has a static size known at | |
| compile time, to avoid dynamic memory allocation | |
| (Elaboration code): Only use dynamic memory allocation when needed. | |
| 2007-06-06 Quentin Ochem <ochem@adacore.com> | |
| * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter | |
| "Overflow_Guard". | |
| (Stack_Analyzer): Added field "Overflow_Guard" | |
| (Task_Result): Added field "Overflow_Guard". | |
| (Index_Str): New constant. | |
| (Task_Name_Str): New constant. | |
| (Actual_Size_Str): New constant. | |
| (Pattern_Array_Element_Size): New constant. | |
| (Get_Usage_Range): New subprogram. | |
| (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len. | |
| Now align the output. | |
| Added comments. | |
| (Initialize): Added value for Overflow_Guard. | |
| (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant. | |
| Update the value of the overflow guard according to the actual | |
| beginning of the pattern array. | |
| (Initialize_Analyzer): Added parameter Overflow_Guard. | |
| Take this parameter into accound when computing the max size. | |
| (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant. | |
| (Report_Result): Removed extra useless procedure. | |
| Updated call to Output_Result. | |
| Moved full computation of the Task_Result here. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| * g-soccon-darwin.ads, gen-soccon.c: Add new constant | |
| Thread_Blocking_IO, always True by default, set False on a per-runtime | |
| basis. | |
| Add Windows-specific constants | |
| Add new constant Need_Netdb_Buffer. | |
| Add new macros to indicate whether getXXXbyYYY is thread safe and, if | |
| not, whether to use getXXXbyYYY_r. | |
| * gsocket.h: Add new constant Need_Netdb_Buffer. | |
| Add new macros to indicate whether getXXXbyYYY is thread safe and, if | |
| not, whether to use getXXXbyYYY_r. | |
| 2007-06-06 Eric Botcazou <ebotcazou@adacore.com> | |
| * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier | |
| than their first call. | |
| Add type Dummy_Communication_Block used in the generation of the pre- | |
| defined dispatching primitive _disp_asynchronous_select. | |
| (Storage_Element): Put Pragma Universal_Aliasing on it. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean | |
| function. | |
| * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive | |
| letter if it is not followed by a '/' or a '\'. | |
| (Windows): New Boolean function | |
| * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma | |
| Ada 2005. | |
| (Containing_Directory): On Windows, keep at least one '/' or '\' after a | |
| drive letter. | |
| (Containing_Directory): Raise Use_Error when the directory is a root | |
| directory. | |
| (Extension): When returning the result, use a conversion to Result_Type, | |
| not a qualification. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure | |
| (Set_Style_Check_Options): Recognize new -gnatyg style switch | |
| * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set | |
| Warn_On_Non_Local_Exception to False, to turn off warnings for | |
| No_Exception_Propagation in ZFP runtime. | |
| (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC | |
| back-ends. | |
| (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * switch-b.adb (Scan_Binder_Switches): Add processing for new | |
| switches -R and -Z | |
| * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E | |
| (Scan_Make_Switches): Recognize new switch -aP | |
| 2007-06-06 Matthew Gingell <gingell@adacore.com> | |
| Jose Ruiz <ruiz@adacore.com> | |
| * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the | |
| VxWorks task descriptor in the Ada run time, call a C subprogram | |
| (__gnat_get_stack_info) that extracts the required information. | |
| * sysdep.c: Back out temporary lynxos workaround. | |
| (__gnat_get_stack_info): Add this procedure that passes to the Ada run | |
| time the stack information associated to the currently executing task. | |
| Only VxWorks systems require this function. | |
| 2007-06-06 Eric Botcazou <ebotcazou@adacore.com> | |
| * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not | |
| add the stack bias if the offset is computed from a frame address. | |
| (__gnat_backtrace): Adjust for above change. | |
| 2007-06-06 Thomas Quinot <quinot@adacore.com> | |
| * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to | |
| PE_Non_Transportable_Actual. | |
| (By_Descriptor_Last): New constant. | |
| (By_Copy_Return): Likewise. | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as | |
| is. | |
| * vms_data.ads: Add entries for -gnatw.x and -gnatw.X | |
| /STYLE_CHECKS=GNAT: Change meaning to -gnatyg | |
| /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg | |
| Add missing comment for /OPTIMIZE=SPACE | |
| Add entry for OPTIMIZE=SPACE | |
| Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST | |
| Add documentation for new qualifiers corresponding to -gnatw.c/.C | |
| 2007-06-06 Vincent Celier <celier@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and | |
| -gnatw.C) | |
| * gnat_ugn.texi: Fix ordering of -g switch for gnatmake | |
| Document gnatbind switch -a | |
| (case Constructions): Document that variables declarations are allowed | |
| for previously declared variables. | |
| Fix external lib project example | |
| -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL | |
| Indicate that "#if not X or Y then" is not allowed in input files to | |
| gnatprep. | |
| Document gnatw.x and gnatw.X warning flags | |
| Mention -Winline switch to activate warnings when back-end inlining is | |
| ineffective. | |
| Add gnatcheck rule descriptions | |
| Describe how to use the GNAT driver to call a tool on a closure. | |
| Describe how to run project-wide checks or metrics. | |
| Document gnatbind's -R option | |
| Updated to account for Ada 2005 support | |
| * gnat_rm.texi (Case Construction): Allow variable declarations for | |
| previously declared variables. | |
| (Representation Clauses and Pragmas): Lift restriction on alignment | |
| clauses for record types. | |
| (Ada.Characters.*): Fix typo in reference to A.3.3(27). | |
| Document No_Exception_Propagation restriction | |
| Document No_Body pragma | |
| Updated to account for Ada 2005 support; corrected some typos | |
| (Implementation Defined Pragmas): Document pragma Universal_Aliasing. | |
| * gnat-style.texi: Make it clear that we never use mode IN for | |
| procedures or functions | |
| * ug_words: Add entries for -gnatw.x and -gnatw.X | |
| Add entries for -gnatw.c/.C | |
| 2007-06-06 Pascal Obry <obry@adacore.com> | |
| Vincent Celier <celier@adacore.com> | |
| * makegpr.adb (Add_Archive_Path): Use untouched object and library | |
| dirs and library name. | |
| (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate | |
| comments. | |
| (Build_Library): Idem. | |
| (Compile_Individual_Sources): Idem. | |
| (Compile_Link_With_Gnatmake): Idem. | |
| (Compile_Sources): Idem. | |
| (Get_Imported_Directories): Idem. | |
| (Link_Executables): Idem. Same change for the executable dir. | |
| (Check_Compilation_Needed): C_Source_Path new variable containing | |
| the canonical form of Source_Path to check against the source names | |
| in the dependency file. | |
| (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In | |
| verbose mode, display the name of the object directory we're changing | |
| to. | |
| (Saved_Switches): New name of table X_Switches | |
| (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches | |
| (Usage): New line for switch -aP | |
| (Get_Imported_Directories.Add): Make sure that Add_Arg is True before | |
| testing if a directory should be added to the search path. | |
| 2007-06-06 Javier Miranda <miranda@adacore.com> | |
| * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, | |
| a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object | |
| declaration after freezing point of all its associated tagged types; | |
| otherwise such types are frozen too early. | |
| 2007-06-06 Robert Dewar <dewar@adacore.com> | |
| * a-reatim.adb: Documentation addition | |
| * g-cgideb.adb: Minor code reorganization | |
| * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb, | |
| mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads, | |
| s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting. | |
| * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete | |
| function. Change name New_Scope to Push_Scope | |
| (Get_Debug_Flag_K): Remove unused obsolete function. | |
| * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to | |
| Push_Scope. | |
| * makeusg.adb: Update Copyright notice | |
| Add line for switch -aP | |
| * makeusg.adb: Fix wording of some usage messages | |
| * s-assert.adb (Raise_Assert_Failure): Add call to | |
| Debug_Raise_Assert_Failure. | |
| * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min | |
| (2, Standard'Alignment) for compatibility with AAMP (where alignment | |
| is restricted to 1). | |
| * s-wchjis.adb: Remove use of System.Pure_Exceptions | |
| * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the | |
| node location to No_Location when we're not debugging the expanded | |
| code. | |
| 2007-05-22 Alexandre Oliva <aoliva@redhat.com> | |
| * misc.c (enumerate_modes): Consider log2_b to always be one. | |
| 2007-05-14 Rafael Ávila de Espíndola <espindola@google.com> | |
| * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove. | |
| 2007-05-02 Pascal Obry <obry@adacore.com> | |
| * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation | |
| to use Stream_IO.File_Type. This is needed to make use of the UTF-8 | |
| encoding support of Stream_IO. | |
| (Write_Unit): Idem. | |
| * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the | |
| filename and corresponding encoding to match the OS requirement. | |
| (__gnat_file_exists): Do not call __gnat_stat() on Windows as this | |
| routine will fail on specific devices like CON: AUX: ... | |
| PR ada/29856: Add missing braces | |
| 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
| PR ada/31660 | |
| * ada-tree.h (lang_tree_node): Fix typo in chain_next. | |
| 2007-04-21 Jan Hubicka <jh@suse.cz> | |
| * misc.c (gnat_expand_body): Don't call target for destructors, | |
| avoid redundant check on syntax errors. | |
| 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
| * ada-tree.h (lang_tree_node): Use GENERIC_NEXT | |
| instead of checking GIMPLE_STMT_P in chain_next. | |
| 2007-04-17 Andreas Krebbel <krebbel1@de.ibm.com> | |
| PR ada/31576 | |
| * system-linux-alpha.ads: Disable constant condition warning for the | |
| Default_Bit_Order variable. | |
| * system-linux-s390.ads: Likewise. | |
| * system-linux-s390x.ads: Likewise. | |
| * system-linux-sparc.ads: Likewise. | |
| 2007-04-06 Javier Miranda <miranda@adacore.com> | |
| Matt Heaney <heaney@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, | |
| a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads, | |
| a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb, | |
| a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads, | |
| a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads, | |
| a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads, | |
| a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads, | |
| a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads, | |
| a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, | |
| a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads, | |
| a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads, | |
| a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads, | |
| a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads, | |
| a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads, | |
| a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads, | |
| a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads, | |
| a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads, | |
| i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads, | |
| unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads, | |
| a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads, | |
| a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads, | |
| a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads, | |
| expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads, | |
| s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb, | |
| s-taprop-tru64.adb, s-taprop-irix.adb, | |
| s-taprop-hpux-dce.adb, s-traceb-hpux.adb, | |
| s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb, | |
| s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb, | |
| s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, | |
| s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, | |
| a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, | |
| a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, | |
| g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, | |
| s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, | |
| s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, | |
| s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, | |
| s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, | |
| s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, | |
| s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, | |
| a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, | |
| a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, | |
| a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, | |
| a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, | |
| a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, | |
| a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous | |
| access types. | |
| Update documentation. | |
| Minor rewording. | |
| 2007-04-06 Robert Dewar <dewar@adacore.com> | |
| * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, | |
| system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, | |
| system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads, | |
| system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, | |
| system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads, | |
| system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, | |
| system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, | |
| system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads, | |
| system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads, | |
| system-hpux-ia64.ads, targparm.adb, | |
| targparm.ads (Functions_Return_By_DSP_On_Target): Removed | |
| * system.ads: Move Functions_Return_By_DSP to obsolete section, | |
| kept for bootstrap purposes only. | |
| 2007-04-06 Arnaud Charlet <charlet@adacore.com> | |
| * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, | |
| s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads, | |
| s-taprop-posix.adb (Create_Task): Fix handling of Task_Info. | |
| (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants. | |
| 2007-04-06 Robert Dewar <dewar@adacore.com> | |
| * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb | |
| (Local_Raise): New dummy procedure called when a raise is converted | |
| to a local goto. Used for debugger to detect that the exception | |
| is raised. | |
| * debug.adb: Document new d.g flag (expand local raise statements to | |
| gotos even if pragma Restriction (No_Exception_Propagation) is not set) | |
| * exp_sel.adb: Use Make_Implicit_Exception_Handler | |
| * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to | |
| suppress warnings for unused handlers. | |
| (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress | |
| warnings for raise statements not handled locally. | |
| (Get_RT_Exception_Entity): New function | |
| (Get_Local_Call_Entity): New function | |
| (Find_Local_Handler): New function | |
| (Warn_If_No_Propagation): New procedure | |
| (Expand_At_End_Handler): Call Make_Implicit_Handler | |
| (Expand_Exception_Handlers): Major additions to deal with local handlers | |
| (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error, | |
| Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling | |
| for local raise | |
| * exp_ch11.ads (Get_RT_Exception_Entity): New function | |
| (Get_Local_Call_Entity): New function | |
| * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list | |
| of restrictions that the binder will never suggest adding. | |
| * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field | |
| to No_Elist. | |
| * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not | |
| be with'ed in the presence of pragma Restriction | |
| (No_Exception_Propagation). | |
| * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes | |
| * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice | |
| parameter, then the handler is not a suitable target for a local raise, | |
| and this is a violation of restriction No_Exception_Propagation. | |
| (Analyze_Handled_Statements): Analyze choice parameters in exception | |
| handlers before analyzing statement sequence (needed for proper | |
| detection of local raise statements). | |
| (Analyze_Raise_Statement): Reraise statement is a violation of the | |
| No_Exception_Propagation restriction. | |
| * s-rident.ads: Add new restriction No_Exception_Propagation | |
| * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New | |
| function, like Make_Exception_Handler but sets Local_Raise_Statements | |
| to No_List. | |
| (Add_Unique_Serial_Number): Deal with case where this is called during | |
| processing of configuration pragmas. | |
| 2007-04-06 Thomas Quinot <quinot@adacore.com> | |
| Pat Rogers <rogers@adacore.com> | |
| Pascal Obry <obry@adacore.com> | |
| * g-stsifd-sockets.adb: New file. | |
| * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb, | |
| g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads, | |
| g-socthi-vms.adb: Move signalling | |
| fd management to a nested package, so that they can conveniently be | |
| moved to a subunit that is shared across Windows, VMS, and VxWorks | |
| (Ada implementation) or completed with imported bodies from socket.c | |
| (UNIX case). | |
| (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New | |
| subprograms. | |
| (Check_Selector): Use Read_Signalling_Fd to read and discard data from | |
| the signalling file descriptor. | |
| (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the | |
| signalling file descriptor. | |
| (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds | |
| instead of creating a pair of sockets for signalling here. | |
| * g-socthi.adb: Ditto. | |
| Set the runtime process to ignore SIGPIPEs on platforms that support | |
| neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality. | |
| * g-socthi-mingw.adb: Ditto. | |
| (WS_Version): Use Windows 2.2. | |
| Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API. | |
| * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support. | |
| Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API. | |
| * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb. | |
| added GNAT byte swapping facility | |
| Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6. | |
| * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files. | |
| * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd): | |
| New subprograms. | |
| (__gnat_create_signalling_fds): New subprogram. | |
| Set the runtime process to ignore SIGPIPEs on platforms that support | |
| neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality. | |
| 2007-04-06 Hristian Kirtchev <kirtchev@adacore.com> | |
| Vincent Celier <celier@adacore.com> | |
| * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb: | |
| New version of Ada.Calendar which supports the new upper bound of Ada | |
| time (2399-12-31 86_399.999999999). | |
| The following modifications have been made to the package: | |
| - New representation of time as count of nanoseconds since the start of | |
| Ada time (1901-1-1 0.0). | |
| - Target independent Split and Time_Of routines which service both | |
| Ada 95 and Ada 2005 code. | |
| - Target independent interface to the Ada 2005 children of Calendar. | |
| - Integrated leap seconds into Ada 95 and Ada 2005 mode. | |
| - Handling of non-leap centenial years. | |
| - Updated clock function. | |
| - Updated arithmetic and comparison operators. | |
| * a-caldel.adb (To_Duration): Add call to target independent routine in | |
| Ada.Calendar to handle the conversion of time to duration. | |
| * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off | |
| (UTC Offset). | |
| If timezone is obviously incorrect (outside of -14 hours .. 14 hours), | |
| set off to 0. | |
| (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these | |
| targets do not have a natural time zone, GMT is used as a default. | |
| (__gnat_get_task_options): New. | |
| * a-direct.adb (Modification_Time): Add with and use clauses for | |
| Ada.Calendar and Ada. | |
| Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion | |
| since it is no longer needed. | |
| (Duration_To_Time): Removed. | |
| (OS_Time_To_Long_Integer): Removed. | |
| (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar. | |
| Formatting Time_Of routines which automatically handle time zones, | |
| buffer periods and leap seconds. | |
| * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to | |
| target independent routines in Ada.Calendar. | |
| * a-calfor.ads, a-calfor.adb: | |
| Code cleanup and addition of validity checks in various routines. | |
| (Day_Of_Week, Split, Time_Of): Add call to target independent routine in | |
| Ada.Calendar. | |
| * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target | |
| independent routine in Ada.Calendar. | |
| 2007-04-06 Olivier Hainque <hainque@adacore.com> | |
| * adaint.c: | |
| (convert_addresses): Adjust prototype and dummy definition to expect an | |
| extra file_name argument. | |
| * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses, | |
| filling the now expected file_name argument with the appropriate | |
| argv[0] expansion. | |
| (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it. | |
| (tracebk): Array of void * instead of char *, corresponding to what | |
| convert_addresses expects. | |
| (exename): New static global, to hold the executable file name to be | |
| used in all convert_addresses invocations. | |
| (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type | |
| change. | |
| (__gnat_gmem_a2l_initialize): Resolve exename. | |
| (__gnat_convert_addresses): Use exename as the convert_addresses | |
| file_name argument. | |
| * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported | |
| "convert_addresses", now expecting a filename argument. Import the | |
| necessary entities to compute the filename to use and pass it to | |
| convert_addresses. | |
| 2007-04-06 Matt Gingell <gingell@adacore.com> | |
| * system-aix.ads: Back out previous change. | |
| (Functions_Return_By_DSP): Removed | |
| 2007-04-06 Pascal Obry <obry@adacore.com> | |
| * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one | |
| or the monotonic used by Ada.Real_Time) to compute the sleep duration | |
| on Windows. | |
| 2007-04-06 Jose Ruiz <ruiz@adacore.com> | |
| * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this | |
| function. Its value changes in different VxWorks versions, and it is | |
| now handled by the function __gnat_get_task_options. | |
| * s-taprop-vxworks.adb (Create_Task): Call the function | |
| __gnat_get_task_options to get the required options for creating a task. | |
| 2007-04-06 Pascal Obry <obry@adacore.com> | |
| Thomas Quinot <quinot@adacore.com> | |
| * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when | |
| dealing with filename. | |
| (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the | |
| filename from a standard string to a wide-string depending on the | |
| encoding value. | |
| (__gnat_freopen): Idem. | |
| (__gnat_current_time): New function (wrapper for time(3) standard C | |
| function). | |
| * g-os_lib.ads (Current_Time): New function. Returns the current | |
| system time as an OS_Time value. | |
| * s-osprim.ads (Clock): Add more precise definition of UNIX epoch. | |
| (Monotonic_Clock): Same. | |
| 2007-04-06 Quentin Ochem <ochem@adacore.com> | |
| * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is | |
| not on a natural. | |
| (Scan_ALI): Cancel the xref line if there has been a reading ALI error. | |
| 2007-04-06 Jose Ruiz <ruiz@adacore.com> | |
| * a-retide.adb: Add elaboration code to ensure that the tasking run | |
| time is initialized when using delay operations even when no task is | |
| created. | |
| 2007-04-06 Javier Miranda <miranda@adacore.com> | |
| * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove | |
| component Num_Prim_Ops. | |
| (Set_Num_Prim_Ops): Removed. | |
| Remove all the assertions because all the routines of this | |
| package are inline always. | |
| (Get_Offset_Index): Add support to primary dispatch tables. | |
| Move the documentation about the dispatch table to a-tags.ads | |
| (Set_External_Tag): Removed | |
| (Inherit_TSD): Removed. | |
| (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations | |
| moved to a-tags.ads | |
| (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags, | |
| Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences | |
| of the TSD field "Table" because this field has been renamed to | |
| "Ifaces_Table". | |
| (Inherit_CPP_DT): Removed. | |
| (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature, | |
| Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These | |
| declarations have been moved to a-tags.ads | |
| (Check_Size): Removed. | |
| (Expanded_Name): Updated to get access to the new field of TSD | |
| containing the address of the expanded name. | |
| (Get_Access_Level/Set_Access_Level): Removed. | |
| (Get_Predefined_Prim_Op_Address): Removed. | |
| (Set_Predefined_Prim_Op_Address): Removed. | |
| (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed. | |
| (Get_Remotely_Callable/Set_Remotely_Callable): Removed. | |
| (Set_Expanded_Name): Removed. | |
| (Inherit_DT): Removed. | |
| (Inherit_CPP_DT): Removed. | |
| (Set_RC_Offset): Removed. | |
| (Set_TSD): Removed. | |
| (Base_Address): New function that displaces "this" to point to the base | |
| of the object (that is, to point to the primary tag of the object). | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an | |
| anonymous access component, do not create a master_id if type already | |
| has one, as may happen if the type is a subcomponent of a packed array | |
| type. | |
| (Build_Init_Procedure, Component_Needs_Simple_Initialization, | |
| Initialize_Tag): Remove code associated with the old CPP pragmas. | |
| CPP_Virtual and CPP_Vtable are no longer supported. | |
| (Build_Offset_To_Top_Internal): Add support for concurrent record types | |
| (Build_Offset_To_Top_Functions): Add support for concurrent record types | |
| (Freeze_Record_Type): Remove call to | |
| Init_Predefined_Interface_Primitives. | |
| (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the | |
| code required to initialize the tags of the secondary dispatch tables. | |
| This leaves the algoritm more clear. | |
| (Init_Secondary_Tags): Add support for concurrent record types | |
| (Make_Predefined_Primitive_Specs): Code cleanup. | |
| (Predefined_Primitive_Bodies): Code cleanup. | |
| (Build_Master_Renaming): New local subprogram. | |
| (Expand_N_Full_Type_Declaration): Build the master_id associated with | |
| anonymous access to task type components. | |
| (Expand_N_Subtype_Indication): The bounds of a range constraint in a | |
| subtype indication are resolved during analysis, and must not be done | |
| here. | |
| (Stream_Operation_OK): Check Restriction_Active before RTE_Available. | |
| 2007-04-06 Geert Bosch <bosch@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing | |
| for conversion of a Float_Type'Truncation to integer. | |
| * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to | |
| check if a node is an attribute that can be handled directly by the | |
| back end. | |
| (Expand_N_Attribute_Reference): Suppress expansion of floating-point | |
| attributes that can be handled directly by the back end. | |
| (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access): | |
| use new predicate Is_Access_Protected_Subprogram_Type. | |
| (Expand_N_Attribute_Reference, case 'Write): The reference is legal for | |
| and Unchecked_Union if it is generated as part of the default Output | |
| procedure for a type with default discriminants. | |
| (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls | |
| if we are compiling under restriction No_Dispatching_Calls. | |
| (Constrained): Use Underlying_Type, in case the type is private without | |
| discriminants, but the full type has discriminants. | |
| (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by | |
| call to Build_Get_Access_Level. | |
| (Expand_N_Attribute_Reference): The use of 'Address with class-wide | |
| interface objects requires a call to the run-time subprogram that | |
| returns the base address of the object. | |
| (Valid_Conversion): Improve error message on illegal attempt to store | |
| an anonymous access to subprogram value into a record component. | |
| * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access = | |
| null". | |
| (Simplify_Type_Conversion): New procedure that performs simplification | |
| of Int_Type (Float_Type'Truncation (X)). | |
| (Resolve_Type_Conversion): Call above procedure after resolving operand | |
| and before performing checks. This replaces the existing ineffective | |
| code in Exp_Ch4. | |
| (Set_String_Literal_Subtype): When creating the internal static lower | |
| bound subtype for a string literal, use a newly created copy of the | |
| subtree representing the lower bound. | |
| (Resolve_Call): Exclude build-in-place function calls from transient | |
| scope treatment. Update comments to describe this exception. | |
| (Resolve_Equality_Op): In case of dispatching call check violation of | |
| restriction No_Dispatching_Calls. | |
| (Resolve_Call): If the call returns an array, the context imposes the | |
| component type of the array, and the function has one non-defaulted | |
| parameter, rewrite the call as the indexing of a call with a single | |
| parameter, to handle an Ada 2005 syntactic ambiguity for calls written | |
| in prefix form. | |
| (Resolve_Actuals): If an actual is an allocator for an access parameter, | |
| the master of the created object is the innermost enclosing statement. | |
| (Remove_Conversions): For a binary operator, check if type of second | |
| formal is numeric, to check if an abstract interpretation is present | |
| in the case of exponentiation as well. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When | |
| copying a parameter list in a call, set properly the First_Named_Formal | |
| and Next_Named_Formal fields in the new list and in the enclosing call. | |
| (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten | |
| names, to ease typing in the debugger. Improve comments. | |
| (Watch_Node): New variable, intended to be set in the debugger. | |
| (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on, | |
| called when the watched node is created. | |
| (New_Node_Debugging_Output): Combined version of local procedures | |
| New_Node_Debugging_Output and New_Entity_Debugging_Output, now global, | |
| with a parameter so that conditional breakpoints like "if Node = 12345" | |
| work. | |
| (New_Node, New_Entity): Call the global New_Node_Debugging_Output. | |
| Add Elist1 function | |
| 2007-04-06 Thomas Quinot <quinot@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * checks.ads, checks.adb (Selected_Range_Checks): No range check is | |
| required for a conversion between two access-to-unconstrained-array | |
| types. | |
| (Expr_Known_Valid): Validity checks do not apply to discriminants, but | |
| to discriminant constraints on discriminant objects. This rule must | |
| apply as well to discriminants of protected types in private components. | |
| (Null_Exclusion_Static_Checks): If No_Initialization is set on an | |
| object of a null-excluding access type then don't require the | |
| the object declaration to have an expression and don't emit a | |
| run-time check. | |
| 2007-04-06 Arnaud Charlet <charlet@adacore.com> | |
| Eric Botcazou <botcazou@adacore.com> | |
| * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type | |
| and made constant. | |
| * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter | |
| Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't | |
| carry any. | |
| * fe.h (Compiler_Abort): Add third parameter. | |
| * misc.c (internal_error_function): Build third argument from current | |
| input location and pass it to Compiler_Abort. | |
| 2007-04-06 Gary Dismukes <dismukes@adacore.com> | |
| * cstand.adb (Create_Standard): When the target's storage unit size is | |
| greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on | |
| Standard_String. | |
| 2007-04-06 Nicolas Roche <roche@adacore.com> | |
| * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which | |
| absolute path can have the following form: device:/a/b. In this case | |
| '/' should be inserted between the path and the filename. | |
| 2007-04-06 Olivier Hainque <hainque@adacore.com> | |
| Eric Botcazou <botcazou@adacore.com> | |
| * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external | |
| VAR_DECL to a CONST_DECL we make for a public constant when we know the | |
| corresponding definition has created the so made visible variable. | |
| Handle anonymous access to protected subprogram. | |
| (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an | |
| object with an address clause volatile. Re-enable original fix. | |
| <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type | |
| too. | |
| (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL | |
| associated with either the Equivalent or Root type, instead of the | |
| naked type node. | |
| (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET | |
| subtree for every field of a global record type. | |
| (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has | |
| discriminants, invoke again variable_size on its newly computed sizes. | |
| 2007-04-06 Robert Dewar <dewar@adacore.com> | |
| Thomas Quinot <quinot@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function | |
| (Next_Component_Or_Discriminant): New function and procedure | |
| (First_Index, First_Literal, Master_Id, | |
| Set_First_Index, Set_First_Literal, Set_Master_Id): | |
| Add missing Ekind assertions. | |
| (Is_Access_Protected_Subprogram_Type): New predicate. | |
| (Has_RACW): New entity flag, set on package entities to indicate that | |
| the package contains the declaration of a remote accecss-to-classwide | |
| type. | |
| (E_Return_Statement): This node type has the Finalization_Chain_Entity | |
| attribute, in case the result type has controlled parts. | |
| (Requires_Overriding): Add this new flag, because "requires | |
| overriding" is subtly different from "is abstract" (see AI-228). | |
| (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and | |
| Is_Abstract_Type. Make sure these are called only when appropriate. | |
| (Has_Pragma_Unreferenced_Objects): New flag | |
| * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is | |
| class-wide, the tag of the right-hand side must be an exact match, not | |
| an ancestor of that of the object on left-hand side. | |
| (Move_Activation_Chain): New procedure to create the call to | |
| System.Tasking.Stages.Move_Activation_Chain. | |
| (Expand_N_Extended_Return_Statement): Generate code to call | |
| System.Finalization_Implementation.Move_Final_List at the end of a | |
| return statement if the function's result type has controlled parts. | |
| Move asserts to Build_In_Place_Formal. | |
| (Move_Final_List): New function to create the call statement. | |
| (Expand_N_Assignment_Statement): In case of assignment to a class-wide | |
| tagged type, replace generation of call to the run-time subprogram | |
| CW_Membership by call to Build_CW_Membership. | |
| (Expand_N_Return_Statement): Replace generation of call to the run-time | |
| subprogram Get_Access_Level by call to Build_Get_Access_Level. | |
| (Expand_N_Simple_Function_Return): Replace generation of call to the | |
| run-time subprogram Get_Access_Level by call to Build_Get_Access_Level. | |
| * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate | |
| Is_Access_Protected_Subprogram_Type, to handle both named and anonymous | |
| access to protected operations. | |
| (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the | |
| master and chain actual parameters to a build-in-place function call | |
| involving tasks. | |
| (BIP_Formal_Suffix): Add new enumeration literals to complete the case | |
| statement. | |
| (Make_Build_In_Place_Call_In_Allocator, | |
| Make_Build_In_Place_Call_In_Anonymous_Context, | |
| Make_Build_In_Place_Call_In_Assignment, | |
| Make_Build_In_Place_Call_In_Object_Declaration): Call | |
| Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master. | |
| (Expand_Inlined_Call): If the subprogram is a null procedure, or a | |
| stubbed procedure with a null body, replace the call with a null | |
| statement without using the full inlining machinery, for efficiency | |
| and to avoid invalid values in source file table entries. | |
| * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for | |
| renamings of calls to build-in-place functions. | |
| * rtsfind.adb (RTE_Record_Component_Available): New subprogram that | |
| provides the functionality of RTE_Available to record components. | |
| (RTU_Entity): The function Entity has been renamed to RTU_Entity | |
| to avoid undesired overloading. | |
| (Entity): New subprogram that returns the entity for the referened | |
| unit. If this unit has not been loaded, it returns Empty. | |
| (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities. | |
| Remove no longer used entities. | |
| (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities. | |
| (RE_Type_Specific_Data): New entity. | |
| (RE_Move_Any_Value): New entity. | |
| (RE_TA_A, RE_Get_Any_Type): New entities. | |
| (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count, | |
| RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable, | |
| RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added. | |
| (Entity): New subprogram that returns the entity for the referened | |
| unit. If this unit has not been loaded, it returns Empty. | |
| (RTE): Addition of a new formal that extends the search to the scopes | |
| of the record types found in the chain of the package. | |
| * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print | |
| "abstract subprograms must be visible" message, whether or not the type | |
| is an interface; that is, remove the special case for interface types. | |
| (Analyze_Function_Return): Remove error message "return of task objects | |
| is not yet implemented" because this is now implemented. | |
| (Create_Extra_Formals): Add the extra master and activation chain | |
| formals in case the result type has tasks. | |
| Remove error message "return of limited controlled objects is not yet | |
| implemented". | |
| (Create_Extra_Formals): Add the extra caller's finalization list formal | |
| in case the result type has controlled parts. | |
| (Process_Formals): In case of access formal types there is no need | |
| to continue with the analysis of the formals if we already notified | |
| errors. | |
| (Check_Overriding_Indicator): Add code to check overriding of predefined | |
| operators. | |
| (Create_Extra_Formals): Prevent creation of useless Extra_Constrained | |
| flags for formals that do not require them,. | |
| (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless | |
| hidden entity is use visible or directly visible. | |
| (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body, | |
| Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification, | |
| Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator, | |
| New_Overloaded_Entity): Split Is_Abstract flag into | |
| Is_Abstract_Subprogram and Is_Abstract_Type. | |
| * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move | |
| a return statement's finalization list to the caller's list, used for | |
| build-in-place functions with result type with controlled parts. | |
| Remove no longer used entities. | |
| * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no | |
| longer needed, because the full type is now limited, and therefore a | |
| pass-by-reference type. | |
| (Foreign_Task_Level): New constant. | |
| * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to | |
| move tasks from the activation chain belonging to a return statement to | |
| the one passed in by the caller, and update the master to the one | |
| passed in by the caller. | |
| (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master | |
| of unactivated tasks, so we don't kill the ones that are being returned | |
| by a build-in-place function. | |
| (Create_Task): Ignore AI-280 for foreign threads. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * errout.adb (Unwind_Internal_Type): Use predicate | |
| Is_Access__Protected_Subprogram_Type. | |
| * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant | |
| (Freeze_Entity, packed array case): Do not override explicitly set | |
| alignment and size clauses. | |
| (Freeze_Entity): An entity declared in an outer scope can be frozen if | |
| the enclosing subprogram is a child unit body that acts as a spec. | |
| (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type. | |
| (Freeze_Record_Type): New Ada 2005 processing for reverse bit order | |
| Remove all code for DSP option | |
| * layout.adb (Layout_Record_Type): Use First/ | |
| Next_Component_Or_Discriminant | |
| (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type, | |
| to handle properly the anonymous access case. | |
| * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type | |
| for all access attributes, because overload resolution should work the | |
| same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This | |
| causes the error message for the ambiguous "X'Access = Y'Access" and | |
| "X'Unrestricted_Access = Y'Access" and so forth to match. | |
| (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type, | |
| now that anonymous access to protected operations have their own kind. | |
| (Resolve_Attribute): In case of dispatching call check the violation of | |
| restriction No_Dispatching_Calls. | |
| (Check_Array_Type): Check new -gnatyA array index style option | |
| * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an | |
| attempt to derive from a synchronized tagged type. | |
| (Analyze_Type_Declaration): If there is a incomplete tagged view of the | |
| type, inherit the class-wide type already created, because it may | |
| already have been used in a self-referential anonymous access component. | |
| (Mentions_T): Recognize self-referential anonymous access components | |
| that use (a subtype of) the class-wide type of the enclosing type. | |
| (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass | |
| Derived_Type for Prev formal on call to | |
| Check_Anonymous_Access_Components rather than Empty. | |
| (Make_Incomplete_Type_Declaration): Add test for case where the type has | |
| a record extension in deciding whether to create a class-wide type, | |
| rather than just checking Tagged_Present. | |
| (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies | |
| to stand-alone object declarations as well as component declarations. | |
| (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to | |
| prevent accidental overwriting when enclosing package appears in | |
| a limited_with_clause. | |
| (Array_Type_Declaration): If the component type is an anonymous access, | |
| the associated_node for the itype is the type declaration itself. | |
| (Add_Interface_Tag_Components): Modified to support concurrent | |
| types with abstract interfaces. | |
| (Check_Abstract_Interfaces): New subprogram that verifies the ARM | |
| rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2). | |
| (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration | |
| to complete the decoration of synchronized interface types. Add also | |
| a call to Check_Abstract_Interfaces to verify the ARM rules. | |
| (Derive_Interface_Subprograms): Modified to support concurrent types | |
| with abstract interfaces. | |
| (Analyze_Subtype_Indication): Resolve the range with the given subtype | |
| mark, rather than delaying the full resolution depending on context. | |
| (Analyze_Component_Declaration,Analyze_Interface_Declaration, | |
| Analyze_Object_Declaration,Analyze_Subtype_Declaration, | |
| Array_Type_Declaration,Build_Derived_Record_Type, | |
| Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion, | |
| Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type, | |
| Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into | |
| Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are | |
| called only when appropriate. | |
| (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type | |
| to private type. | |
| (Analyze_Subtype_Declaration): For an access subtype declaration, create | |
| an itype reference for the anonymous designated subtype, to prevent | |
| scope anonmalies in gigi. | |
| (Build_Itype_Reference): New utility, to simplify construction of such | |
| references. | |
| 2007-04-06 Vincent Celier <celier@adacore.com> | |
| * errutil.adb (Initialize): Initialize warnings table, if all warnings | |
| are suppressed, supply an initial dummy entry covering all possible | |
| source locations. | |
| * make.adb (Scan_Make_Arg): Reject options that should start with "--" | |
| and start with only one, such as "-RTS=none". | |
| (Collect_Arguments): Do not check for sources outside of projects. | |
| Do not collect arguments if project is externally built. | |
| (Compile_Sources): Do nothing, not even check if the source is up to | |
| date, if its project is externally built. | |
| (Compile): When compiling a predefined source, add -gnatpg | |
| as the second switch, after -c. | |
| (Compile_Sources): Allow compilation of Annex J renames without -a | |
| (Is_In_Object_Directory): Check if the ALI file is in the object | |
| even if there is no project extension. | |
| (Create_Binder_Mapping_File): Only put a unit in the mapping file for | |
| gnatbind if the ALI file effectively exists. | |
| (Initialize): Add the directory where gnatmake is invoked in front of | |
| the path if it is invoked from a bin directory, even without directory | |
| information, so that the correct GNAT tools will be used when spawned | |
| without directory information. | |
| * makeusg.adb: Change switch -S to -eS | |
| Add lines for new switches -we, -wn and -ws | |
| Add line for new switch -p | |
| * prj-proc.adb (Process): Set Success to False when Warning_Mode is | |
| Treat_As_Error and there are warnings. | |
| * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip | |
| -gnatww Change gnatmake switch -S to -eS | |
| (Scan_Make_Switches): Code reorganisation. Process separately multi | |
| character switches and single character switches. | |
| (Scan_Make_Switches): New Boolean out parameter Success. Set Success to | |
| False when switch is not recognized by gnatmake. | |
| (Scan_Make_Switches): Set Setup_Projects True when -p or | |
| --create-missing-dirs is specified. | |
| * fname.adb (Is_Predefined_File_Name): Return True for annex J | |
| renamings Calendar, Machine_Code, Unchecked_Conversion and | |
| Unchecked_Deallocation only when Renamings_Included is True. | |
| * par.adb: Allow library units Calendar, Machine_Code, | |
| Unchecked_Conversion and Unchecked_Deallocation to be recompiled even | |
| when -gnatg is not specified. | |
| (P_Interface_Type_Definition): Remove the formal Is_Synchronized because | |
| there is no need to generate always a record_definition_node in case | |
| of synchronized interface types. | |
| (SIS_Entry_Active): Initialize global variable to False | |
| (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to | |
| indicate cases where AI-447 says "not null" is legal. | |
| * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function | |
| * makegpr.adb (Check_Compilation_Needed): Take into account dependency | |
| files with with several lines starting with the object fileb name. | |
| (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs | |
| is specified. | |
| (Initialize): Add the directory where gprmake is invoked in front of the | |
| path, if it is invoked from a bin directory or with directory | |
| information, so that the correct GNAT tools will be used when invoked | |
| directly. | |
| (Check_Compilation_Needed): Process correctly backslashes on Windows. | |
| * vms_data.ads: Update switches/qualifiers | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Thomas Quinot <quinot@adacore.com> | |
| * exp_aggr.adb: | |
| If the array component is a discriminated record, the array aggregate | |
| is non-static even if the component is given by an aggregate with | |
| static components. | |
| (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant | |
| (Convert_Aggr_In_Allocator): If the allocator is for an access | |
| discriminant and the type is controlled. do not place on a finalization | |
| list at this point. The proper list will be determined from the | |
| enclosing object. | |
| (Build_Record_Aggr_Code): If aggregate has box-initialized components, | |
| initialize record controller if needed, before the components, to ensure | |
| that they are properly finalized. | |
| (Build_Record_Aggr_Code): For the case of an array component that has a | |
| corresponding array aggregate in the record aggregate, perform sliding | |
| if required. | |
| 2007-04-06 Javier Miranda <miranda@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the | |
| run-time subprogram Set_External_Tag by call to Build_Set_External_Tag. | |
| * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time | |
| accessibility on class-wide allocators if the allocator occurs at the | |
| same scope level as the allocator's type. The check is guaranteed to | |
| succeed in that case, even when the expression originates from a | |
| parameter of the containing subprogram. | |
| (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling | |
| under No_Dispatching_Calls restriction. During the semantic analysis | |
| we already notified such violation. | |
| (Tagged_Membership): Constant folding. There is no need to check | |
| the tag at run-time if the type of the right operand is non | |
| class-wide abstract. | |
| Replace call to Is_Ancestor by call to Is_Parent | |
| to support concurrent types with interface types. | |
| (Expand_N_Allocator): Add an assertion associated with the generation | |
| of the master_id. | |
| (Expand_N_Slice): Do not enable range check to nodes associated | |
| with the frontend expansion of the dispatch table. | |
| (Is_Local_Access_Discriminant): Subsidiary function to | |
| Expand_N_Allocator. | |
| (Tagged_Membership): Replace generation of call to the run-time | |
| subprogram CW_Membership by call to Build_CW_Membership. | |
| (Expand_Allocator_Expression): Replace generation of call to the | |
| run-time subprogram Get_Access_Level by call to Build_Get_Access_Level. | |
| * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to | |
| initialize most the TSD components by means of an aggregate. | |
| Modify the declaration of the object containing the TSD | |
| because we now expand code that has a higher level of abstraction. | |
| The TSD has a discriminant containing the Inheritance Depth Level, | |
| value that is used in the membership test but also to fix the size | |
| of the table of ancestors. | |
| (Expand_Interface_Conversion): Insert function body at the closest place | |
| to the conversion expression, to prevent access-before-elaboration | |
| errors in the backend. | |
| Code improved to reduce the size of the dispatch table if | |
| compiling under restriction No_Dispatching_Calls plus code cleanup. | |
| Code reorganization plus removal of calls to Set_Num_Prim_Ops | |
| (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops. | |
| (Expand_Dispatching_Call): Minor code reorganization plus addition of | |
| code to return immediately if compiling under No_Dispatching_Calls | |
| restriction. | |
| (Set_All_DT_Position): Remove code associated with the old CPP pragmas. | |
| CPP_Virtual and CPP_Vtable are no longer supported. | |
| (Expand_Interface_Conversion): Add missing support for interface type | |
| derivations. | |
| (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to | |
| Is_Parent to support concurrent types with interfaces. | |
| (Init_Predefined_Interface_Primitives): Removed. | |
| (Make_Secondary_DT): Modified to support concurrent record types. | |
| (Set_All_DT_Position): Modified to support concurrent record types. | |
| (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated | |
| with Get_External_Tag, Inherit_TSD, Set_External_Tag. | |
| (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated | |
| with CW_Membership. | |
| (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated | |
| with Get_Access_Level, Get_Predefined_Prim_Op_Address, | |
| Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT, | |
| Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address, | |
| Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD. | |
| (Expand_Dispatching_Call): Replace generation of call to the run-time | |
| subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by | |
| calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_ | |
| Address. | |
| (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to | |
| the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_ | |
| Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and | |
| Build_Set_Prim_Op_Address. | |
| (Get_Remotely_Callable): Subprogram removed. | |
| (Init_Predefined_Interface_Primitives): Replace generation of call to | |
| the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_ | |
| Prims. | |
| * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to | |
| First (Parameter_Associations ()) with the call to First_Actual that | |
| returns an actual parameter expression for both named and positional | |
| associations. | |
| * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call | |
| check violation of restriction No_Dispatching_Calls. | |
| (Check_Controlling_Type): A formal of a tagged incomplete type is a | |
| controlling argument. | |
| * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use | |
| First/Next_Component_Or_Discriminant | |
| (Insert_Actions): Add entries for new N_Push and N_Pop nodes | |
| (Find_Implemented_Interface): Removed. All the calls to this subprogram | |
| specify Any_Limited_Interface, and this functionality is already | |
| provided by the function Has_Abstract_Interfaces. | |
| (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to | |
| support concurrent types implementing interfaces. | |
| (Find_Implemented_Interface): Removed. All the calls to this subprogram | |
| specify kind Any_Limited_Interface, and this functionality is already | |
| provided by the function Has_Abstract_Interfaces. | |
| (Remove_Side_Effects): replace Controlled_Type by | |
| CW_Or_Controlled_Type whenever the issue is related to | |
| using or not the secondary stack. | |
| * par-ch12.adb (P_Formal_Type_Definition): Update calls to | |
| P_Interface_Type_Definition to fulfill the new interface (the formal | |
| Is_Synchronized is no longer required). | |
| * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o | |
| Update dependencies. | |
| * exp_atag.ads, exp_atag.adb: New file | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| Cyrille Comar <comar@adacore.com> | |
| * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is | |
| anonymous, use finalization list of enclosing dynamic scope. | |
| (Expand_N_Package_Declaration): For a library package declaration | |
| without a corresponding body, generate RACW subprogram bodies in the | |
| spec (just as we do for the task activation call). | |
| (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and | |
| Is_Abstract_Type. Make sure these are called only when appropriate. | |
| Remove all code for DSP option | |
| (CW_Or_Controlled_Type): new subprogram. | |
| 2007-04-06 Eric Botcazou <botcazou@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean | |
| parameter. If it is set to true, return a result capped according to | |
| the global upper bound for the index of an entry family. | |
| (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset | |
| (Build_Find_Body_Index): Adjust for above change. | |
| (Entry_Index_Expression): Likewise. | |
| (Is_Potentially_Large_Family): New function extracted from... | |
| (Collect_Entry_Families): ...here. Call it to detect whether the family | |
| is potentially large. | |
| (Build_Entry_Count_Expression): If the family is potentially large, call | |
| Family_Size with 'Cap' set to true. | |
| (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate | |
| a protected version of an operation declared in the private part of | |
| a protected object, because they may be invoked through a callback. | |
| (Set_Privals): If the type of a private component is an anonymous access | |
| type, do not create a new itype for each protected body. | |
| If the body of a protected operation creates | |
| controlled types (including allocators for class-widetypes), the | |
| body of the corresponding protected subprogram must include a | |
| finalization list. | |
| (Build_Activation_Chain_Entity): Build the chain entity for extended | |
| return statements. | |
| (Type_Conformant_Parameters): Use common predicate Conforming_Types | |
| to determine whether operation overrides an inherited primitive. | |
| (Build_Wrapper_Spec): Add code to examine the parents while looking | |
| for a possible overriding candidate. | |
| (Build_Simple_Entry_Call): Set No_Initialization on the object used to | |
| hold an actual parameter value since its initialization is separated | |
| from the the declaration. Prevents errors on null-excluding access | |
| formals. | |
| 2007-04-06 Thomas Quinot <quinot@adacore.com> | |
| Pablo Oliveira <oliveira@adacore.com> | |
| * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call): | |
| Do an Unchecked_Conversion to handle the passage from the Underlying | |
| Type to the Base Type when calling Build_To_Any_Call and | |
| Build_From_Any_Call. | |
| (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or | |
| E_Constant, depending upon Variable formal. | |
| (GARLIC_Support.Build_Subprogram_Receiving_Stubs, | |
| PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal | |
| parameter that requires an extra constrained parameter, declare | |
| temporary for actual as a variable, not a constant. | |
| (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when | |
| the unit being compiled is the one that contains the stub type. | |
| Change primitive operation name for the RACW associated with a RAS | |
| from Call to _Call so it cannot clash with any legal identifier. | |
| (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant | |
| Is_RAS. | |
| (Append_RACW_Bodies): New subprogram. | |
| (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to | |
| Add_Receiving_Stubs_To_Declarations functions. | |
| When expanding a package body, this list correspond to the | |
| statements in the HSS at the end of the pacakge. | |
| When expanding a package spec, this list correspond to the | |
| spec declarations. | |
| (Add_Receiving_Stubs_To_Declarations): Append the function | |
| registering the receiving stubs at the end of the 'Stmts' list. | |
| (RCI_Package_Locator): Pass the new Version generic formal when | |
| instantiating a RCI_Locator package. | |
| (Build_From_Any_Function): To compute the High bound for an | |
| unconstrained array actual, we add the Low bound with the length. | |
| Thus we must convert the low bound and the length to an appropriate | |
| type before doing the sum. | |
| (Build_Subprogram_Receiving_Stubs, PolyORB): | |
| * Retrieve the extra formals parameters at the | |
| end of the parameter stream. | |
| * Use Move_Any_Value to write back out parameters | |
| after executing the request as it is more efficient | |
| than Copy_Any_Value. | |
| * Build the any containing Extra Formals with the | |
| appropriate typecode. | |
| (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an | |
| empty Component_List. | |
| (Build_Actual_Object_Declaration): New subprogram. Build and insert into | |
| the tree the declaration for an object that serves as actual parameter | |
| in server-side stubs. | |
| (GARLIC_Support.Build_Subprogram_Receiving_Stubs, | |
| PolyORB_Support.Build_Subprogram_Receiving_Stubs): | |
| Use Build_Actual_Object_Declaration to prepare the actuals. | |
| (Add_Parameter_To_NVList): Set the parameter mode to In for | |
| Extra Constrained Parameters. | |
| (Build_General_Calling_Stubs): Set the parameter type to boolean for | |
| Extra Constrained parameters. | |
| (Build_To_Any_Function, Build_From_Any_Function, | |
| Built_TypeCode_Function): When Typ is implicit, call the correct | |
| function with the first not implicit parent type. | |
| (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element, | |
| (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the | |
| typecode from the Etype. Therefore we retrieve the correct typecode | |
| with a call to Get_Any_Type. | |
| (Copy_Specification): Do controlling formal type substitution based on | |
| Is_Controlling_Formal flag, instead of caller-provided object type. | |
| (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for | |
| a RACW primitive operation, we might get a subprogram declaration for an | |
| ancestor of the RACW designated type (not for the designated type | |
| itself), in the case where this operation is inherited. In this case we | |
| have no easy means of determining the original tagged type for which | |
| the primitive was declared, so instead we now rely on | |
| Copy_Specification to use the Is_Controlling_Formal flag to determine | |
| which formals require type substitution. | |
| 2007-04-06 Robert Dewar <dewar@adacore.com> | |
| Ed Schonberg <schonberg@adacore.com> | |
| * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in | |
| GNAT.Current_Exception are not allowed if pragma Restrictions | |
| (No_Exception_Propagation) is set and in any case make the associated | |
| handler unsuitable as a target for a local raise statement. | |
| (Expand_Dispatching_Constructor_Call): Replace generation of call to the | |
| run-time subprogram CW_Membership by call to Build_CW_Membership. | |
| (Expand_Dispatching_Constructor_Call): If the dispatching tag is given | |
| by a function call, a temporary must be created before expanding the | |
| Constructor_Call itself, to prevent out-of-order elaboration in the | |
| back-end when stack checking is enabled.. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the | |
| result are the bounds of the left operand, not the right. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| * exp_strm.adb | |
| (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use | |
| discriminant defaults. | |
| (Build_Record_Or_Elementary_Output_Procedure): Ditto. | |
| (Make_Component_List_Attributes): Ditto. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat | |
| an association with a box as providing a value even though the | |
| initialization procedure for the type is not available. | |
| (Resolve_Record_Aggregate): Check that a choice of an association with a | |
| box corresponds to a component of the type. | |
| (Resolve_Record_Aggregate): Split Is_Abstract flag into | |
| Is_Abstract_Subprogram and Is_Abstract_Type. | |
| * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for | |
| assert. | |
| * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into | |
| Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are | |
| called only when appropriate. | |
| 2007-04-06 Olivier Hainque <hainque@adacore.com> | |
| * g-alleve.ads (Low Level Vector type definitions): Map each to the | |
| associated vector view instead of all to the unsigned char view. | |
| * g-altcon.adb (Generic_Conversions): New internal generic package, | |
| offering facilities for all the Vector/View conversion routines | |
| implemented by this unit. | |
| (To_View/To_Vector - all versions): Reimplemented in a systematic | |
| manner, using the internal Generic_Conversions facilities. | |
| 2007-04-06 Pascal Obry <obry@adacore.com> | |
| * g-arrspl.adb (Free) [Element_Access]: New routine to free the source | |
| string. | |
| (Create): Free the source string before storing the new one. | |
| 2007-04-06 Vincent Celier <celier@adacore.com> | |
| * g-debpoo.adb (Validity): New package with a complete new | |
| implementation of subprograms Is_Valid and Set_Valid. | |
| (Is_Valid): Move to local package Validity | |
| (Set_Valid): Move to local package Validity | |
| 2007-04-06 Arnaud Charlet <charlet@adacore.com> | |
| Pablo Oliveira <oliveira@adacore.com> | |
| * g-expect.adb (Get_Command_Output): When expanding the output buffer | |
| we must ensure that there is enough place for the new data we are going | |
| to copy in. | |
| 2007-04-06 Thomas Quinot <quinot@adacore.com> | |
| * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding | |
| computation. | |
| 2007-04-06 Jose Ruiz <ruiz@adacore.com> | |
| Vincent Celier <celier@adacore.com> | |
| * gnatcmd.adb (B_Start): Add prefix of binder generated file. | |
| (Stack_String): Add this String that contains the name of the Stack | |
| package in the project file. | |
| (Packages_To_Check_By_Stack): Add this list that contains the packages | |
| to be checked by gnatstack, which are the naming and the stack packages. | |
| (Check_Files): If no .ci files were specified for gnatstack we add all | |
| the .ci files belonging to the projects, including binder generated | |
| files. | |
| (Non_VMS_Usage): Document that gnatstack accept project file switches. | |
| (GNATCmd): Update the B_Start variable if we are in a VMS environment. | |
| Add gnatstack to the list of commands that use project file related | |
| switches, and get the single attribute Switches from the stack package | |
| in a project file when calling gnatstack. Parse the -U flag for | |
| processing files belonging to all projects in the project tree. | |
| Remove all processing for command Setup | |
| * prj-attr.adb: Add new package Stack with single attribute Switches | |
| * vms_conv.ads (Command_Type): Add command Stack. | |
| Move to body declarations that are only used in the body: types Item_Id, | |
| Translation_Type, Item_Ptr, Item and its subtypes. | |
| * vms_conv.adb: (Initialize): Add data for new command Stack. | |
| Add declarations moved from the spec: types Item_Id, Translation_Type, | |
| Item_Ptr, Item and its subtypes. | |
| (Cargs_Buffer): New table | |
| (Cargs): New Boolean global variable | |
| (Process_Buffer): New procedure to create arguments | |
| (Place): Put character in table Buffer or Cargs_Buffer depending on the | |
| value of Cargs. | |
| (Process_Argument): Set Cargs when processing qualifiers for GNAT | |
| COMPILE | |
| (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not | |
| empty, for table Cargs_Buffer. | |
| (Initialize): Remove component Setup in Command_List | |
| 2007-04-06 Vincent Celier <celier@adacore.com> | |
| * gprep.adb (Process_Files.Process_One_File): Use full file name when | |
| issuing pragma Source_Reference. | |
| 2007-04-06 Emmanuel Briot <briot@adacore.com> | |
| * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of | |
| [[:xdigit:]] character class. | |
| Also raise an exception when an invalid character class is used. | |
| 2007-04-06 Pascal Obry <obry@adacore.com> | |
| * i-cstrea.ads: (fopen): Add encoding parameter. | |
| (freopen): Idem. | |
| Change reference from a-sysdep.c to sysdep.c in comment. | |
| Update copyright notice. | |
| This set of patch add support for the encoding form parameter. | |
| * mingw32.h (S2WSU): New macro to convert from a string to a | |
| wide-string using the UTF-8 encoding. The S2WS macro supports now only | |
| standard 8bits encoding. | |
| (WS2SU): As above but converting from wide-sring to string. | |
| This is needed as it is necessary to have access to both versions in the | |
| runtime for the form parameter encoding support. | |
| This set of patch add support for the encoding form parameter. | |
| (S2WS): Improve implementation to handle cases where the filename is not | |
| UTF-8 encoded. In this case we default to using the current code page | |
| for the conversion. | |
| * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration | |
| type (UTF8, ASCII_8bits). This enumeration has a rep clause to match | |
| the constants defined in adaint.h. | |
| (fopen): Add encoding parameter. | |
| (freopen): Idem. | |
| * s-ficobl.ads (AFCB): Add Encoding field to record the filename | |
| encoding. This is needed for the Reset routine (freopen low level-call). | |
| * s-fileio.adb (Open): Decode encoding form parameter and set the | |
| corresponding encoding value into AFCB structure. | |
| (Reset): Pass the encoding value to freopen. | |
| (Close): Move the call to Lock_Task to the beginning of the procedure. | |
| 2007-04-06 Geert Bosch <bosch@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * i-fortra.ads: Add Double_Complex type. | |
| * impunit.adb: (Is_Known_Unit): New function | |
| Add Gnat.Byte_Swapping | |
| Add GNAT.SHA1 | |
| Add new Ada 2005 units | |
| Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays, | |
| Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays, | |
| Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays, | |
| Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays | |
| * impunit.ads (Is_Known_Unit): New function | |
| * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb, | |
| a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads, | |
| a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb, | |
| g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.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-gerebl.ads, s-gerela.adb, s-gerela.ads: | |
| New files. | |
| * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio | |
| * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units. | |
| 2007-04-06 Eric Botcazou <botcazou@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except | |
| __gnat_adjust_context_for_raise. | |
| (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same | |
| implementation of floating point operations as native x86 targets. | |
| So the FPU should be initialized in the same way using finit. Fix | |
| floating point operations accuracy issues. | |
| (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction | |
| member in struct sigaction, so as to avoid warning for incompatible | |
| pointer types. | |
| 2007-04-06 Serguei Rybin <rybin@adacore.com> | |
| * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the | |
| switches from previously loaded tree | |
| 2007-04-06 Thomas Quinot <quinot@adacore.com> | |
| * lib-writ.adb (Write_With_Lines): Factor duplicated code between the | |
| cases where a given dependency has a body or not. | |
| (Write_With_File_Names): New subprogram, common code for the two cases | |
| above. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * lib-xref.ads, lib-xref.adb: | |
| Modify the loop that collects type references, to include interface | |
| types that the type implements. List each of these interfaces when | |
| building the entry for the type. | |
| (Generate_Definition): Initialize component Def and Typ of new entry | |
| in table Xrefs, to avoid to have these components unitialized. | |
| (Output_References): Split Is_Abstract flag into | |
| Is_Abstract_Subprogram and Is_Abstract_Type. | |
| (Generate_Reference): Add barrier to do not generate the warning | |
| associated with Ada 2005 entities with entities generated by the | |
| expander. | |
| 2007-04-06 Robert Dewar <dewar@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| Vincent Celier <celier@adacore.com> | |
| * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation | |
| Update 'Exception Handling Control' chapter which was outdated. | |
| Minor fix to documentation of -gnatwq | |
| Remove section "Adapting the Run Time to a New C++ Compiler" because | |
| it is now obsolete. | |
| Add passage on need of -nostart-files in some non-ada-main cases. | |
| Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake | |
| Update documentation about Interfacing with C++ | |
| Add documentation for new gnatmake switch -p | |
| Add missing protocol part in URLs. | |
| Document -gnatyA | |
| Document pragma Compile_Time_Error | |
| Add documentation for Object_Size indicating that stand alone | |
| objects can have a larger size in some cases. | |
| Add node for GNAT.Byte_Swapping, GNAT.SHA1 | |
| Update reference to the Ravenscar profile. | |
| Document pragma Unreferenced_Objects | |
| * gnat-style.texi: Fix typo | |
| 2007-04-06 Vincent Celier <celier@adacore.com> | |
| * mlib.adb (Building_Library): Only output "building a library..." in | |
| verbose mode | |
| * mlib-prj.adb (Build_Library): Only output lists of object and ALI | |
| files in verbose mode. | |
| * mlib-utl.adb (Ar): Only output the first object files when not in | |
| verbose mode. | |
| (Gcc): Do not display all the object files if not in verbose mode, only | |
| the first one. | |
| 2007-04-06 Robert Dewar <dewar@adacore.com> | |
| * namet.ads, namet.adb (wn): Improve this debugging routine. Calling | |
| it no longer destroys the contents of Name_Buffer or Name_Len and | |
| non-standard and invalid names are handled better. | |
| (Get_Decoded_Name_String): Improve performance by using | |
| Name_Has_No_Encodings flag in the name table. | |
| (Is_Valid_Name): New function to determine whether a Name_Id is valid. | |
| Used for debugging printouts. | |
| 2007-04-06 Robert Dewar <dewar@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location | |
| (P_Interface_Type_Definition): Remove the formal Is_Synchronized because | |
| there is no need to generate always a record_definition_node in case | |
| of synchronized interface types. | |
| (P_Type_Declaration): Update calls to P_Interface_Type_Definition. | |
| (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being | |
| illegal in Ada 95, in cases where it is legal. Change the warnings to | |
| errors in other cases. Don't give the error unless the "not null" | |
| parses properly. Correct the source position at which the error occurs. | |
| (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to | |
| P_Null_Exclusion, to suppress "not null" warnings. | |
| (P_Identifier_Declarations): Code cleanup. Removed unrequired label and | |
| associated goto statements. | |
| * par-endh.adb (Pop_End_Context): Allow more flexibility in placement | |
| of END RECORD | |
| * scans.ads (Type_Token_Location): New flag | |
| * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS | |
| (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to | |
| P_Null_Exclusion, to suppress "not null" warnings. | |
| 2007-04-06 Robert Dewar <dewar@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| Vincent Celier <celier@adacore.com> | |
| * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error | |
| (Extensions_Allowed): No longer sets Ada_Version | |
| Entry for pragma Unreferenced_Objects | |
| * sem_prag.adb (Analyze_Pragma, case Priority): Force with of | |
| system.tasking if pragma priority used in a procedure | |
| (Analyze_Pragma, case Warning): Handle dot warning switches | |
| (Process_Compile_Time_Warning_Or_Error): New procedure | |
| (Analyze_Pragma): Add processing for Compile_Time_Error | |
| Add support for extra arguments External_Name and Link_Name. | |
| Remove code associated with pragmas CPP_Virtual and CPP_Vtable. | |
| (Process_Import_Or_Interface): Add support for the use of pragma Import | |
| with tagged types. | |
| (Extensions_Allowed): No longer affects Ada_Version | |
| (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and | |
| Is_Abstract_Type. Make sure these are called only when appropriate. | |
| Add processing for pragma Unreferenced_Objects | |
| * snames.h, snames.ads, snames.adb: Add entry for pragma | |
| Compile_Time_Error | |
| Add new standard name Minimum_Binder_Options for new gprmake | |
| Add new standard names for gprmake: Archive_Suffix, | |
| Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported, | |
| Library_Support, Library_Version_Options, | |
| Shared_Library_Minimum_Options, | |
| Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported. | |
| Change Name_Call to Name_uCall so that it cannot clash with a legal | |
| subprogram name. | |
| Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix | |
| Append C_Plus_Plus to convention identifiers as synonym for CPP | |
| Add new standard names Stack and Builder_Switches | |
| Add new standard names: Compiler_Minimum_Options, Global_Config_File, | |
| Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File, | |
| Run_Path_Option, Toolchain_Version. | |
| Entry for pragma Unreferenced_Objects | |
| * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD | |
| switches, without repetition of "eD". Make sure that last character of | |
| -gnatep= switch is not taken as -gnat switch character. | |
| Complete rewrite of circuit for handling saving compilation options | |
| Occasioned by need to support dot switchs for -gnatw, but cleans up | |
| things in general. | |
| -gnatX does not affect Ada_Version | |
| Include -gnatyA in -gnatg style switches | |
| * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude | |
| warnings on return objects. | |
| (Warn_On_Useless_Assignment): Exclude warnings on return objects | |
| (Set_Dot_Warning_Switch): New procedure | |
| (Check_References): Add missing case of test for | |
| Has_Pragma_Unreferenced_Objects | |
| (Output_Unreferenced_Messages): Implement effect of new pragma | |
| Unreferenced_Objects, remove special casing of limited controlled | |
| variables. | |
| 2007-04-06 Vincent Celier <celier@adacore.com> | |
| * prj-ext.adb (Initialize_Project_Path): New procedure that initialize | |
| the default project path, initially done during elaboration of the | |
| package. | |
| If the prefix returned by Sdefault is null, get the prefix from a call | |
| to Executable_Prefix_Path. | |
| (Project_Path): Call Initialize_Project_Path if Current_Project_Path is | |
| null. | |
| * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non | |
| canonical directory name to open the directory from which files are | |
| retrieved. | |
| (Record_Other_Sources): Idem. | |
| (Locate_Directory): Add the possibility to create automatically missing | |
| directories when Setup_Projects is True. | |
| Call Locate_Directory so that the directory will be created when | |
| Setup_Projects is True, for object dir, library dir, library ALI dir, | |
| library source copy dir and exec dir. | |
| * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older | |
| versions of GNAT. | |
| 2007-04-06 Robert Dewar <dewar@adacore.com> | |
| * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): | |
| Use First/Next_Component_Or_Discriminant | |
| (Analyze_Record_Representation_Clause): | |
| Use First/Next_Component_Or_Discriminant | |
| (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant | |
| (Analyze_Attribute_Definition_Clause, case Value_Size): Reject | |
| definition if type is unconstrained. | |
| (Adjust_Record_For_Reverse_Bit_Order): New procedure | |
| (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into | |
| Is_Abstract_Subprogram and Is_Abstract_Type. | |
| (Adjust_Record_For_Reverse_Bit_Order): New procedure | |
| * repinfo.adb (List_Record_Info): Use First/ | |
| Next_Component_Or_Discriminant. | |
| * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index): | |
| New procedure. | |
| * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch | |
| Include -gnatyA in default switches | |
| * opt.ads: (Warn_On_Non_Local_Exception): New flag | |
| (Warn_On_Reverse_Bit_Order): New flag | |
| (Extensions_Allowed): Update the documentation. | |
| (Warn_On_Questionable_Missing_Parens): Now on by default | |
| * usage.adb: Add documentation of -gnatw.x/X switches | |
| Document new -gnatyA style switch | |
| -gnatq warnings are on by default | |
| 2007-04-06 Ed Falis <falis@adacore.com> | |
| * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last | |
| full word is no longer compared twice. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| * sem_ch10.adb (Install_Limited_Context_Clauses. | |
| Expand_Limited_With_Clause): Use a new copy of selector name in the | |
| call to Make_With_Clause. This fixes the tree structure for ASIS | |
| purposes. Nothing is changed in the compiler behaviour. | |
| (Process_Body_Clauses): Handle properly use clauses whose prefix is | |
| a package renaming. | |
| (Install_Limited_With_Clauses): Do not install non-limited view when it | |
| is still incomplete. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual | |
| when capturing size information, instead of base type, which for a | |
| formal array type will be the unconstrained type. | |
| (Analyze_Formal_Object_Declaration): Add check for illegal default | |
| expressions for a formal in object of a limited type. | |
| (Instantiate_Object): Ditto. | |
| (Check_Formal_Package_Instance): Skip entities that are formal objects, | |
| because they were defaulted in the formal package and no check applies | |
| to them. | |
| (Check_Formal_Package_Instance): Extend conformance check to other | |
| discrete types beyond Integer. | |
| (Process_Default): Copy directly the unmatched formal. A generic copy | |
| has already been performed in Analyze_Formal_Package. | |
| (Analyze_Associations): If a formal subprogram has no match, check for | |
| partial parametrization before looking for a default, to prevent | |
| spurious errors. | |
| (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do | |
| not set the instantiation environment before analyzing the actuals. | |
| Fixes regression on 8515-003 with implementation of AI-133. | |
| Set_Instance_Env checks whether the generic unit is a predefined | |
| unit, in which case the instance must be analyzed with the latest Ada | |
| mode. This setting must take place after analysis of the actuals, | |
| because the actuals must be analyzed and frozen in the Ada mode extant | |
| outside of the current instantiation. | |
| (Save_Env, Restore_Env): Preserve and restore the configuration | |
| parameters so that predefined units can be compiled in the proper Ada | |
| mode. | |
| (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram, | |
| Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram | |
| and Is_Abstract_Type. | |
| (Analyze_Formal_Package): For better error recovery, Add exception | |
| handler to catch Instantion_Error, which can be raised in | |
| Analyze_Associations | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Bob Duff <duff@adacore.com> | |
| Gary Dismukes <dismukes@adacore.com> | |
| * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the | |
| prefix type is a discriminated subtype of the type of the formal. | |
| (Analyze_Allocator): Collect all coextensions regardless of the context. | |
| Whether they can be allocated statically is determined in exp_ch4. | |
| (Analyze_Selected_Component): If the prefix is a limited view and the | |
| non-limited view is available, use the non-limited one. | |
| (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and | |
| therefore illegal), suggest a qualified expression rather than a type | |
| conversion, because a type conversion would be illegal in this context. | |
| (Anayze_Allocator): Trace recursively all nested allocators so that all | |
| coextensions are on the corresponding list for the root. Do no mark | |
| coextensions if the root allocator is within a declaration for a stack- | |
| allocated object, because the access discriminants will be allocated on | |
| the stack as well. | |
| (Analyze_Call): Remove restriction on calls to limited functions for the | |
| cases of generic actuals for formal objects, defaults for formal objects | |
| and defaults for record components. | |
| (Analyze_Allocator): Before analysis, chain coextensions on the proper | |
| element list. Their expansion is delayed until the enclosing allocator | |
| is processed and its finalization list constructed. | |
| (Try_Primitive_Operation): If the prefix is a concurrent type, looks | |
| for an operation with the given name among the primitive operations of | |
| the corresponding record type. | |
| (Analyze_Selected_Component): If the prefix is a task type that | |
| implements an interface, and there is no entry with the given name, | |
| check whether there is another primitive operation (e.g. a function) | |
| with that name. | |
| (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle | |
| properly the indexing of a function call written in prefix form, where | |
| the function returns an array type, and all parameters of the function | |
| except the first have defaults. | |
| (Analyze_Equality_Op): If this is a call to an implicit inequality, keep | |
| the original operands, rather than relocating them, for efficiency and | |
| to work properly when an operand is overloaded. | |
| (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split | |
| Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. | |
| (Analyze_Selected_Component): If the prefix is a private extension, only | |
| scan the visible components, not those of the full view. | |
| (Try_Primitive_Operation): If the operation is a procedure, collect all | |
| possible interpretations, as for a function, because in the presence of | |
| classwide parameters several primitive operations of the type can match | |
| the given arguments. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a | |
| tag-indeterminate call to an abstract function, when the left-hand side | |
| is not classwide. | |
| (Analyze_Loop_Statement): Improve detection of infinite loops | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Thomas Quinot <quinot@adacore.com> | |
| * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move | |
| out of Analyze_Package_Declaration, because processing must be applied | |
| to package bodies as well, for deferred constants completed by pragmas. | |
| (Analyze_Package_Declaration): When the package declaration being | |
| analyzed does not require an explicit body, call Check_Completion. | |
| (May_Need_Implicit_Body): An implicit body is required when a package | |
| spec contains the declaration of a remote access-to-classwide type. | |
| (Analyze_Package_Body): If the package contains RACWs, append the | |
| pending subprogram bodies generated by exp_dist at the end of the body. | |
| (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into | |
| Is_Abstract_Subprogram and Is_Abstract_Type. | |
| (Preserve_Full_Attributes): The full entity list is not an attribute | |
| that must be preserved from full to partial view. | |
| * sem_dist.adb (Add_RAS_Dereference_TSS): | |
| Change primitive name to _Call so it cannot clash with any legal | |
| identifier, and be special-cased in Check_Completion. | |
| Mark the full view of the designated type for the RACW associated with | |
| a RAS as Comes_From_Source to get proper view switching when installing | |
| private declarations. | |
| Provite a placeholder nested package body along with the nested spec | |
| to have a place for Append_RACW_Bodies to generate the calling stubs | |
| and stream attributes. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * sem_ch8.adb (Has_Components): If the argument is an incomplete type | |
| that is a limited view, check the non-limited view if available. | |
| (Undefined): Refine error message for missing with of Text_IO | |
| (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message | |
| to distinguish real missing with cases. | |
| Fix format of all missing with messages | |
| (Analyze_Subprogram_Renaming): Emit proper error message on illegal | |
| renaming as body when renamed entity is abstract. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make | |
| predicate recursive, to handle complex expressions on literals whose | |
| spurious ambiguity comes from the abstract interpretation of some | |
| subexpression. | |
| (Interface_Present_In_Ancestor): Add support to concurrent record | |
| types. | |
| (Add_One_Interp,Disambiguate): Split Is_Abstract flag into | |
| Is_Abstract_Subprogram and Is_Abstract_Type. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Javier Miranda <miranda@adacore.com> | |
| * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a | |
| dereference of a local object R created as a reference to another | |
| object O, use the access level of O. | |
| (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types, | |
| rather than local Same_Formal_Type, to check whether protected operation | |
| overrides an inherited one. | |
| (Same_Formal_Type): New predicate, used when matching signatures of | |
| overriding synchronized operations, to handle the case when a formal | |
| has a type that is a generic actual. | |
| (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by | |
| predicate Is_Concurrent_Type. This ensures supportin case of subtypes. | |
| (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve | |
| syntactic ambiguities involving indexing of function calls that return | |
| arrays. | |
| (Abstract_Interface_List): New subprogram that returns the list of | |
| abstract interfaces associated with a concurrent type or a | |
| concurrent record type. | |
| (Interface_Present_In_Parent): New subprogram used to check if a | |
| given type or some of its parents implement a given interface. | |
| (Collect_Abstract_Interfaces): Add support for concurrent types | |
| with interface types. | |
| (Has_Abstract_Interfaces): Add support for concurrent types with | |
| interface types. | |
| (Is_Parent): New subprogram that determines whether E1 is a parent | |
| of E2. For a concurrent type its parent is the first element of its | |
| list of interface types; for other types this function provides the | |
| same result than Is_Ancestor. | |
| (Enclosing_Subprogram): Add test for N_Extended_Return_Statement. | |
| (Collect_Synchronized_Interfaces): Removed because the subprogram | |
| Collect_Abstract_Interfaces provides this functionality. | |
| (Collect_Abstract_Interfaces): Minor update to give support to | |
| concurrent types and thus avoid undesired code duplication. | |
| (Get_Subprogram_Entity): Handle entry calls. | |
| (May_Be_Lvalue): Include actuals that appear as in-out parameters in | |
| entry calls. | |
| (Enter_Name): Do not give -gnatwh hiding warning for record component | |
| entities, they never result in hiding. | |
| 2007-04-06 Ed Schonberg <schonberg@adacore.com> | |
| Robert Dewar <dewar@adacore.com> | |
| * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators, | |
| to chain nested components that are allocators for access discriminants | |
| of the enclosing object. | |
| Add N_Push and N_Pop nodes | |
| New field Exception_Label added | |
| (Local_Raise_Statements): New field in N_Exception_Handler_Node | |
| (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node | |
| (Is_Coextension): New flag for allocators, to mark allocators that | |
| correspond to access discriminants of dynamically allocated objects. | |
| (N_Block_Statement): Document the fact that the corresponding entity | |
| can be an E_Return_Statement. | |
| (Is_Coextension): New flag for allocators. | |
| Remove all code for DSP option | |
| * sprint.ads, sprint.adb: Display basic information for class_wide | |
| subtypes. Add handling of N_Push and N_Pop nodes | |
| 2007-04-06 Arnaud Charlet <charlet@adacore.com> | |
| * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion | |
| before propagating exception. | |
| 2007-04-06 Olivier Hainque <hainque@adacore.com> | |
| * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield | |
| an address always within the call instruction from a return address. | |
| 2007-04-06 Olivier Hainque <hainque@adacore.com> | |
| Eric Botcazou <botcazou@adacore.com> | |
| * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an | |
| expression with a COMPOUND_EXPR including the call instead of emitting | |
| the call directly here. | |
| (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the | |
| high bound is constant and the slice is empty. Tidy. | |
| (tree_transform, case N_Op_Not): Handle properly the case where the | |
| operation applies to a private type whose full view is a modular type. | |
| (Case_Statement_To_gnu): If an alternative is an E_Constant with an | |
| Address_Clause, use the associated Expression as the GNAT tree | |
| representing the choice value to ensure the corresponding GCC tree is | |
| of the proper kind. | |
| (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole | |
| instead of just the operands, as the base GCC stabilize_reference does. | |
| <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not | |
| requested; otherwise fail. | |
| (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P. | |
| 2007-04-06 Thomas Quinot <quinot@adacore.com> | |
| * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous | |
| implementation of UI_Div. | |
| (UI_Div): Reimplement as a call to UI_Div_Rem. | |
| (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the | |
| remainder, avoiding the cost of a multiplication and a subtraction. | |
| (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem | |
| provides both quotient and remainder in a single computation. | |
| (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic | |
| functions for uint. | |
| (UI_Modular_Inverse): Add a note that the behaviour of this subprogram | |
| is undefined if the given n is not inversible. | |
| 2007-04-06 Olivier Hainque <hainque@adacore.com> | |
| * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and | |
| BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion | |
| opcodes. | |
| 2007-04-06 Eric Botcazou <botcazou@adacore.com> | |
| Olivier Hainque <hainque@adacore.com> | |
| * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs | |
| when updating the contents of the old pointer to an unconstrained array. | |
| (end_subprog_body): Set error_gnat_node to Empty. | |
| (write_record_type_debug_info): Do not be unduly sparing with our bytes. | |
| (unchecked_convert): For subtype to base type conversions, require that | |
| the source be a subtype if it is an integer type. | |
| (builtin_decls): New global, vector of available builtin functions. | |
| (gnat_pushdecl): Add global builtin function declaration nodes to the | |
| builtin_decls list. | |
| (gnat_install_builtins): Adjust comments. | |
| (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before | |
| calling gnat_pushdecl, so that it knows when it handed a builtin | |
| function declaration node. | |
| (builtin_decl_for): Search the builtin_decls list. | |
| 2007-04-06 Eric Botcazou <botcazou@adacore.com> | |
| * s-stchop-vxworks.adb: | |
| (Stack_Check): Raise Storage_Error if the argument has wrapped around. | |
| 2007-04-06 Robert Dewar <dewar@adacore.com> | |
| Arnaud Charlet <charlet@adacore.com> | |
| * a-diroro.ads: Inserted the pragma Unimplemented_Unit | |
| * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start | |
| of files | |
| Add mention of -Sev (set initialize_scalars option from environment | |
| variable at run time) in gnatbind usage message. | |
| * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure | |
| * fname-uf.ads: Minor comment fix | |
| * osint.ads: Change pragma Elaborate to Elaborate_All | |
| * par-load.adb: Add documentation. | |
| * sem_cat.ads, sem_cat.adb: Minor code reorganization | |
| * s-parint.ads (RCI_Locator) : Add 'Version' generic formal | |
| * s-secsta.ads: Extra comments | |
| * s-soflin.ads: Minor comment fixes | |
| * s-stratt.ads (Block_Stream_Ops_OK): Removed. | |
| * s-wchcon.ads: Minor comment addition | |
| * treepr.adb: Minor change in message | |
| (Print_Name,Print_Node): Make these debug printouts more robust: print | |
| "no such..." instead of crashing on bad input. | |
| 2007-03-30 Rafael Ávila de Espíndola <espindola@google.com> | |
| * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type | |
| instead of gnat_signed_or_unsigned_type. | |
| * utils.c (gnat_signed_or_unsigned_type): Remove. | |
| * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove | |
| * gigi.h (gnat_signed_or_unsigned_type): Remove | |
| 2007-03-09 Roger Sayle <roger@eyesopen.com> | |
| * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling | |
| fold with the result of buildN. | |
| * decl.c (gnat_to_gnu_entity): Likewise. | |
| * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise. | |
| * utils.c (finish_record_type, merge_sizes, max_size, convert): | |
| Likewise. | |
| * utils2.c (gnat_truthvalue_conversion, compare_arrays, | |
| nonbinary_modular_operation, build_binary_op, build_unary_op, | |
| build_cond_expr): Likewise. | |
| * utils.c (convert): Use fold_build1 when casting values to void. | |
| * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and | |
| fold_convert instead of convert when appropriate. | |
| 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com> | |
| * Make-lang.in: Add install-pdf target as copied from | |
| automake v1.10 rules. | |
| 2007-02-28 Andreas Schwab <schwab@suse.de> | |
| * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on | |
| $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi. | |
| (doc/gnat-style.info): Likewise. | |
| 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com> | |
| * gnat-style.texi: Standardize title page. | |
| * gnat_rm.texi: Likewise. | |
| * gnat_ugn.texi: Likewise. | |
| 2007-02-25 Mark Mitchell <mark@codesourcery.com> | |
| * decl.c (annotate_value): Adjust for refactoring of tree_map | |
| hierarchy. | |
| 2007-02-24 Mark Mitchell <mark@codesourcery.com> | |
| * decl.c (annotate_value): Adjust for refactoring of tree_map | |
| hierarchy. | |
| 2007-02-21 Ed Schonberg <schonberg@adacore.com> | |
| PR ada/18819 | |
| * sem_ch3.adb (Create_Constrained_Components): for a subtype of an | |
| untagged derived type, add hidden components to keep discriminant | |
| layout consistent, when a given discriminant of the derived type | |
| constraints several discriminants of the parent type. | |
| 2007-02-16 Eric Botcazou <ebotcazou@adacore.com> | |
| Sandra Loosemore <sandra@codesourcery.com> | |
| * trans.c (call_to_gnu): Use build_call_list instead of build3 to | |
| build the call expression. | |
| (gnat_stabilize_reference_1): Handle tcc_vl_exp. | |
| * utils.c (max_size) <tcc_exceptional>: Delete. | |
| <tcc_vl_exp>: New case. | |
| <tcc_expression>: Delete CALL_EXPR subcase. | |
| (build_global_cdtor): Use build_call_nary instead of build3. | |
| * utils2.c (build_call_1_expr): Likewise. | |
| (build_call_2_expr): Likewise. | |
| (build_call_0_expr): Likewise. | |
| (build_call_alloc_dealloc): Likewise. | |
| 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com> | |
| * raise-gcc.c (get_region_description_for, get_call_site_action_for, | |
| get_action_description_for): Replace _Unwind_Word with _uleb128_t | |
| and _Unwind_SWord with _sleb128_t. | |
| 2007-02-06 Paolo Bonzini <bonzini@gnu.org> | |
| * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency. | |
| * decl.c: Include gt-ada-decl.h. | |
| (annotate_value_cache): New. | |
| (annotate_value): Use it instead of TREE_COMPLEXITY. | |
| 2007-02-03 Kazu Hirata <kazu@codesourcery.com> | |
| * misc.c, utils2.c: Fix comment typos. | |
| 2007-01-24 Roger Sayle <roger@eyesopen.com> | |
| * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of | |
| TREE_CONSTANT_OVERFLOW. | |
| (allocatable_size_p, annotate_value): Likewise. | |
| * trans.c (gnat_to_gnu): Likewise. | |
| * utils.c (unchecked_convert): Likewise. | |
| * utils2.c (build_simple_component_ref): Likewise. | |
| 2007-01-23 Richard Guenther <rguenther@suse.de> | |
| PR bootstrap/30541 | |
| * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE). | |
| (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX. | |
| (gnatboot3): Likewise. | |
| (GNATBIND): Do not define. | |
| * Makefile.in (GNATBIND): Do not define. | |
| 2007-01-08 Richard Guenther <rguenther@suse.de> | |
| * cuintp.c (build_cst_from_int): Use built_int_cst_type. | |
| * trans.c (gnat_to_gnu): Likewise. | |
| Copyright (C) 2007 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. |