diff -Nrcpad gcc-4.5.3/gcc/ada/ChangeLog gcc-4.5.4/gcc/ada/ChangeLog *** gcc-4.5.3/gcc/ada/ChangeLog Thu Apr 28 14:11:33 2011 --- gcc-4.5.4/gcc/ada/ChangeLog Mon Jul 2 09:27:29 2012 *************** *** 1,3 **** --- 1,31 ---- + 2012-07-02 Release Manager + + * GCC 4.5.4 released. + + 2012-04-04 Eric Botcazou + + Backport from 4.6 branch + * init.c (__gl_main_cpu): New global variable. + * par-ch3.adb: Remove a couple of blank lines. + * types.ads (Big_String_Ptr): Don't give it zero storage size. + (Source_Buffer_Ptr): Likewise. + * uintp.adb (Hash_Num): Use "mod" operator from Types. + + 2012-01-21 Eric Botcazou + + PR ada/46192 + * gcc-interface/decl.c (gnat_to_gnu_entity) : In the case of a + renaming, preserve the volatileness through the indirection, if any. + + 2012-01-09 Eric Botcazou + + * gcc-interface/trans.c (addressable_p) : Fix thinko. + + 2011-07-14 John David Anglin + + PR ada/46350 + * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast. + 2011-04-28 Release Manager * GCC 4.5.3 released. diff -Nrcpad gcc-4.5.3/gcc/ada/gcc-interface/decl.c gcc-4.5.4/gcc/ada/gcc-interface/decl.c *** gcc-4.5.3/gcc/ada/gcc-interface/decl.c Sun Sep 19 14:03:55 2010 --- gcc-4.5.4/gcc/ada/gcc-interface/decl.c Sat Jan 21 15:04:25 2012 *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 942,947 **** --- 942,955 ---- entity is always accessed indirectly through it. */ else { + /* We need to preserve the volatileness of the renamed + object through the indirection. */ + if (TREE_THIS_VOLATILE (gnu_expr) + && !TYPE_VOLATILE (gnu_type)) + gnu_type + = build_qualified_type (gnu_type, + (TYPE_QUALS (gnu_type) + | TYPE_QUAL_VOLATILE)); gnu_type = build_reference_type (gnu_type); inner_const_flag = TREE_READONLY (gnu_expr); const_flag = true; diff -Nrcpad gcc-4.5.3/gcc/ada/gcc-interface/trans.c gcc-4.5.4/gcc/ada/gcc-interface/trans.c *** gcc-4.5.3/gcc/ada/gcc-interface/trans.c Tue Jan 4 09:44:16 2011 --- gcc-4.5.4/gcc/ada/gcc-interface/trans.c Mon Jan 9 19:31:30 2012 *************** addressable_p (tree gnu_expr, tree gnu_t *** 7017,7023 **** || DECL_ALIGN (TREE_OPERAND (gnu_expr, 1)) >= TYPE_ALIGN (TREE_TYPE (gnu_expr)))) /* The field of a padding record is always addressable. */ ! || TYPE_PADDING_P (TREE_TYPE (TREE_OPERAND (gnu_expr, 0)))) && addressable_p (TREE_OPERAND (gnu_expr, 0), NULL_TREE)); case ARRAY_REF: case ARRAY_RANGE_REF: --- 7017,7023 ---- || DECL_ALIGN (TREE_OPERAND (gnu_expr, 1)) >= TYPE_ALIGN (TREE_TYPE (gnu_expr)))) /* The field of a padding record is always addressable. */ ! || TYPE_IS_PADDING_P (TREE_TYPE (TREE_OPERAND (gnu_expr, 0)))) && addressable_p (TREE_OPERAND (gnu_expr, 0), NULL_TREE)); case ARRAY_REF: case ARRAY_RANGE_REF: diff -Nrcpad gcc-4.5.3/gcc/ada/init.c gcc-4.5.4/gcc/ada/init.c *** gcc-4.5.3/gcc/ada/init.c Mon Jan 25 16:24:20 2010 --- gcc-4.5.4/gcc/ada/init.c Wed Apr 4 08:21:00 2012 *************** extern void Raise_From_Signal_Handler (s *** 86,91 **** --- 86,96 ---- /* Global values computed by the binder. */ int __gl_main_priority = -1; + /* ??? This is needed to build the compiler with a 4.6 compiler, which is not + really supported but happens to essentially work except for this nit. */ + #if (__GNUC__ * 10 + __GNUC_MINOR__ > 45) + int __gl_main_cpu = -1; + #endif int __gl_time_slice_val = -1; char __gl_wc_encoding = 'n'; char __gl_locking_policy = ' '; diff -Nrcpad gcc-4.5.3/gcc/ada/par-ch3.adb gcc-4.5.4/gcc/ada/par-ch3.adb *** gcc-4.5.3/gcc/ada/par-ch3.adb Mon Jul 13 10:22:57 2009 --- gcc-4.5.4/gcc/ada/par-ch3.adb Wed Apr 4 08:21:00 2012 *************** package body Ch3 is *** 111,117 **** -- current token, and if this is the first such message issued, saves -- the message id in Missing_Begin_Msg, for possible later replacement. - --------------------------------- -- Check_Restricted_Expression -- --------------------------------- --- 111,116 ---- *************** package body Ch3 is *** 2107,2113 **** Range_Node : Node_Id; Save_Loc : Source_Ptr; - -- Start of processing for P_Range_Or_Subtype_Mark begin --- 2106,2111 ---- diff -Nrcpad gcc-4.5.3/gcc/ada/s-taprop-hpux-dce.adb gcc-4.5.4/gcc/ada/s-taprop-hpux-dce.adb *** gcc-4.5.3/gcc/ada/s-taprop-hpux-dce.adb Mon Nov 30 10:45:39 2009 --- gcc-4.5.4/gcc/ada/s-taprop-hpux-dce.adb Fri Jul 15 02:37:23 2011 *************** package body System.Task_Primitives.Oper *** 888,895 **** if T.Common.State = Interrupt_Server_Blocked_On_Event_Flag then System.Interrupt_Management.Operations.Interrupt_Self_Process ! (System.Interrupt_Management.Interrupt_ID ! (PIO.Get_Interrupt_ID (T))); end if; end Abort_Task; --- 888,894 ---- if T.Common.State = Interrupt_Server_Blocked_On_Event_Flag then System.Interrupt_Management.Operations.Interrupt_Self_Process ! (PIO.Get_Interrupt_ID (T)); end if; end Abort_Task; diff -Nrcpad gcc-4.5.3/gcc/ada/types.ads gcc-4.5.4/gcc/ada/types.ads *** gcc-4.5.3/gcc/ada/types.ads Wed Oct 28 13:50:10 2009 --- gcc-4.5.4/gcc/ada/types.ads Wed Apr 4 08:21:00 2012 *************** package Types is *** 125,132 **** subtype Big_String is String (Positive); type Big_String_Ptr is access all Big_String; ! for Big_String_Ptr'Storage_Size use 0; ! -- Virtual type for handling imported big strings function To_Big_String_Ptr is new Unchecked_Conversion (System.Address, Big_String_Ptr); --- 125,133 ---- subtype Big_String is String (Positive); type Big_String_Ptr is access all Big_String; ! -- Virtual type for handling imported big strings. Note that we should ! -- never have any allocators for this type, but we don't give a storage ! -- size of zero, since there are legitimate deallocations going on. function To_Big_String_Ptr is new Unchecked_Conversion (System.Address, Big_String_Ptr); *************** package Types is *** 200,212 **** -- Source_Buffer_Ptr, see Osint.Read_Source_File for details. type Source_Buffer_Ptr is access all Big_Source_Buffer; - for Source_Buffer_Ptr'Storage_Size use 0; -- Pointer to source buffer. We use virtual origin addressing for source -- buffers, with thin pointers. The pointer points to a virtual instance -- of type Big_Source_Buffer, where the actual type is in fact of type -- Source_Buffer. The address is adjusted so that the virtual origin -- addressing works correctly. See Osint.Read_Source_Buffer for further ! -- details. subtype Source_Ptr is Text_Ptr; -- Type used to represent a source location, which is a subscript of a --- 201,214 ---- -- Source_Buffer_Ptr, see Osint.Read_Source_File for details. type Source_Buffer_Ptr is access all Big_Source_Buffer; -- Pointer to source buffer. We use virtual origin addressing for source -- buffers, with thin pointers. The pointer points to a virtual instance -- of type Big_Source_Buffer, where the actual type is in fact of type -- Source_Buffer. The address is adjusted so that the virtual origin -- addressing works correctly. See Osint.Read_Source_Buffer for further ! -- details. Again, as for Big_String_Ptr, we should never allocate using ! -- this type, but we don't give a storage size clause of zero, since we ! -- may end up doing deallocations of instances allocated manually. subtype Source_Ptr is Text_Ptr; -- Type used to represent a source location, which is a subscript of a diff -Nrcpad gcc-4.5.3/gcc/ada/uintp.adb gcc-4.5.4/gcc/ada/uintp.adb *** gcc-4.5.3/gcc/ada/uintp.adb Wed Jul 22 10:25:32 2009 --- gcc-4.5.4/gcc/ada/uintp.adb Wed Apr 4 08:21:00 2012 *************** package body Uintp is *** 239,245 **** function Hash_Num (F : Int) return Hnum is begin ! return Standard."mod" (F, Hnum'Range_Length); end Hash_Num; --------------- --- 239,245 ---- function Hash_Num (F : Int) return Hnum is begin ! return Types."mod" (F, Hnum'Range_Length); end Hash_Num; --------------- diff -Nrcpad gcc-4.5.3/gnattools/ChangeLog gcc-4.5.4/gnattools/ChangeLog *** gcc-4.5.3/gnattools/ChangeLog Thu Apr 28 14:09:08 2011 --- gcc-4.5.4/gnattools/ChangeLog Mon Jul 2 09:24:58 2012 *************** *** 1,3 **** --- 1,7 ---- + 2012-07-02 Release Manager + + * GCC 4.5.4 released. + 2011-04-28 Release Manager * GCC 4.5.3 released. diff -Nrcpad gcc-4.5.3/libada/ChangeLog gcc-4.5.4/libada/ChangeLog *** gcc-4.5.3/libada/ChangeLog Thu Apr 28 14:10:13 2011 --- gcc-4.5.4/libada/ChangeLog Mon Jul 2 09:26:08 2012 *************** *** 1,3 **** --- 1,7 ---- + 2012-07-02 Release Manager + + * GCC 4.5.4 released. + 2011-04-28 Release Manager * GCC 4.5.3 released.