From: charlet Date: Mon, 7 Nov 2011 16:30:55 +0000 (+0000) Subject: 2011-11-07 Olivier Hainque X-Git-Tag: upstream/4.9.2~16370 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=33f8b1a31eab530a8f77a64b8d3dd362eae75036;p=platform%2Fupstream%2Flinaro-gcc.git 2011-11-07 Olivier Hainque * sigtramp-ppcvxw.c: Add general comments. (CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add rules for r2 to r13, plus CTR and XER. (CFA_REG): New, register number used to hold the local CFA. (CFI_DEF_CFA, SIGTRAMP_BODY): Use it. Make that 15, not 14, with documentation. (TCR): Undef before definition, preventing conflict with reg number in VxWorks headers. 2011-11-07 Robert Dewar * exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb, aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting. * gcc-interface/Make-lang.in: Update dependencies. 2011-11-07 Ed Schonberg * exp_ch6.adb: A tagged type is a legal actual for an aliased formal. 2011-11-07 Pascal Obry * g-socket.adb, g-socket.ads: Minor reformatting. 2011-11-07 Robert Dewar * sem_res.adb (Resolve_Actuals): Minor error message improvement. 2011-11-07 Robert Dewar * gnat_ugn.texi: Add discussion of default mode handling of source representation with no -gnatW option given, in particular noting that NEL (next line) is not recognized in this context. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181094 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index c24abec..51b2719 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,39 @@ +2011-11-07 Olivier Hainque + + * sigtramp-ppcvxw.c: Add general comments. + (CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add + rules for r2 to r13, plus CTR and XER. + (CFA_REG): New, register number used to hold the local CFA. + (CFI_DEF_CFA, SIGTRAMP_BODY): Use it. + Make that 15, not 14, with documentation. + (TCR): Undef before definition, preventing conflict with reg number in + VxWorks headers. + +2011-11-07 Robert Dewar + + * exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb, + aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-11-07 Ed Schonberg + + * exp_ch6.adb: A tagged type is a legal actual for an aliased + formal. + +2011-11-07 Pascal Obry + + * g-socket.adb, g-socket.ads: Minor reformatting. + +2011-11-07 Robert Dewar + + * sem_res.adb (Resolve_Actuals): Minor error message improvement. + +2011-11-07 Robert Dewar + + * gnat_ugn.texi: Add discussion of default mode handling of + source representation with no -gnatW option given, in particular + noting that NEL (next line) is not recognized in this context. + 2011-11-07 Yannick Moy * sem_util.adb (Note_Possible_Modification): In Alfa mode, diff --git a/gcc/ada/a-cohama.adb b/gcc/ada/a-cohama.adb index bb72988..351030d 100644 --- a/gcc/ada/a-cohama.adb +++ b/gcc/ada/a-cohama.adb @@ -846,8 +846,8 @@ package body Ada.Containers.Hashed_Maps is --------------- function Constant_Reference - (Container : aliased Map; Position : Cursor) - return Constant_Reference_Type + (Container : aliased Map; + Position : Cursor) return Constant_Reference_Type is pragma Unreferenced (Container); begin @@ -855,8 +855,8 @@ package body Ada.Containers.Hashed_Maps is end Constant_Reference; function Reference - (Container : aliased in out Map; Position : Cursor) - return Reference_Type + (Container : aliased in out Map; + Position : Cursor) return Reference_Type is pragma Unreferenced (Container); begin @@ -864,16 +864,16 @@ package body Ada.Containers.Hashed_Maps is end Reference; function Constant_Reference - (Container : aliased Map; Key : Key_Type) - return Constant_Reference_Type + (Container : aliased Map; + Key : Key_Type) return Constant_Reference_Type is begin return (Element => Container.Element (Key)'Unrestricted_Access); end Constant_Reference; function Reference - (Container : aliased in out Map; Key : Key_Type) - return Reference_Type + (Container : aliased in out Map; + Key : Key_Type) return Reference_Type is begin return (Element => Container.Element (Key)'Unrestricted_Access); diff --git a/gcc/ada/a-cohama.ads b/gcc/ada/a-cohama.ads index a13d14c..5f01994 100644 --- a/gcc/ada/a-cohama.ads +++ b/gcc/ada/a-cohama.ads @@ -311,28 +311,28 @@ package Ada.Containers.Hashed_Maps is for Reference_Type'Read use Read; function Constant_Reference - (Container : aliased Map; Position : Cursor) - return Constant_Reference_Type; + (Container : aliased Map; + Position : Cursor) return Constant_Reference_Type; function Reference - (Container : aliased in out Map; Position : Cursor) - return Reference_Type; + (Container : aliased in out Map; + Position : Cursor) return Reference_Type; function Constant_Reference - (Container : aliased Map; Key : Key_Type) - return Constant_Reference_Type; + (Container : aliased Map; + Key : Key_Type) return Constant_Reference_Type; function Reference - (Container : aliased in out Map; Key : Key_Type) - return Reference_Type; + (Container : aliased in out Map; + Key : Key_Type) return Reference_Type; procedure Iterate (Container : Map; Process : not null access procedure (Position : Cursor)); -- Calls Process for each node in the map - function Iterate (Container : Map) - return Map_Iterator_Interfaces.Forward_Iterator'class; + function Iterate + (Container : Map) return Map_Iterator_Interfaces.Forward_Iterator'class; private pragma Inline ("="); diff --git a/gcc/ada/aspects.ads b/gcc/ada/aspects.ads index a281d9c..582a71e 100755 --- a/gcc/ada/aspects.ads +++ b/gcc/ada/aspects.ads @@ -180,13 +180,13 @@ package Aspects is -- to the class-wide type as well. Inherited_Aspect : constant array (Aspect_Id) of Boolean := - (Aspect_Constant_Indexing => True, - Aspect_Default_Iterator => True, - Aspect_Implicit_Dereference => True, - Aspect_Iterator_Element => True, - Aspect_Remote_Types => True, - Aspect_Variable_Indexing => True, - others => False); + (Aspect_Constant_Indexing => True, + Aspect_Default_Iterator => True, + Aspect_Implicit_Dereference => True, + Aspect_Iterator_Element => True, + Aspect_Remote_Types => True, + Aspect_Variable_Indexing => True, + others => False); -- The following subtype defines aspects corresponding to library unit -- pragmas, these can only validly appear as aspects for library units, diff --git a/gcc/ada/atree.ads b/gcc/ada/atree.ads index bbb6e3e..305e914 100644 --- a/gcc/ada/atree.ads +++ b/gcc/ada/atree.ads @@ -151,16 +151,16 @@ package Atree is -- it is useful to be able to do untyped traversals, and an internal -- package in Atree allows for direct untyped accesses in such cases. - -- Flag4 Sixteen Boolean flags (use depends on Nkind and + -- Flag4 Fifteen Boolean flags (use depends on Nkind and -- Flag5 Ekind, as described for FieldN). Again the access -- Flag6 is usually via subprograms in Sinfo and Einfo which -- Flag7 provide high-level synonyms for these flags, and -- Flag8 contain debugging code that checks that the values -- Flag9 in Nkind and Ekind are appropriate for the access. -- Flag10 - -- Flag11 Note that Flag1-2 are missing from this list. For + -- Flag11 Note that Flag1-3 are missing from this list. For -- Flag12 historical reasons, these flag names are unused. - -- Flag13 What about Flag3??? + -- Flag13 -- Flag14 -- Flag15 -- Flag16 diff --git a/gcc/ada/exp_alfa.adb b/gcc/ada/exp_alfa.adb index e2424da..ab0e40f 100644 --- a/gcc/ada/exp_alfa.adb +++ b/gcc/ada/exp_alfa.adb @@ -297,13 +297,10 @@ package body Exp_Alfa is T : constant Entity_Id := Etype (N); begin - -- Substitute a reference to a renaming with the actual renamed object + -- Replace a reference to a renaming with the actual renamed object - if Ekind (E) in Object_Kind - and then Present (Renamed_Object (E)) - then + if Ekind (E) in Object_Kind and then Present (Renamed_Object (E)) then Rewrite (N, New_Copy_Tree (Renamed_Object (E))); - Reset_Analyzed_Flags (N); Analyze_And_Resolve (N, T); end if; diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb index d609931..6049c45 100644 --- a/gcc/ada/exp_ch6.adb +++ b/gcc/ada/exp_ch6.adb @@ -2652,10 +2652,13 @@ package body Exp_Ch6 is end if; end if; - -- For Ada 2012, if a parameter is aliased, the actual must be an - -- aliased object. + -- For Ada 2012, if a parameter is aliased, the actual must be a + -- tagged type or an aliased view of an object. - if Is_Aliased (Formal) and then not Is_Aliased_View (Actual) then + if Is_Aliased (Formal) + and then not Is_Aliased_View (Actual) + and then not Is_Tagged_Type (Etype (Formal)) + then Error_Msg_NE ("actual for aliased formal& must be aliased object", Actual, Formal); diff --git a/gcc/ada/exp_ch8.adb b/gcc/ada/exp_ch8.adb index f6f62d7..a0e9d4c 100644 --- a/gcc/ada/exp_ch8.adb +++ b/gcc/ada/exp_ch8.adb @@ -50,7 +50,6 @@ package body Exp_Ch8 is procedure Expand_N_Exception_Renaming_Declaration (N : Node_Id) is Decl : constant Node_Id := Debug_Renaming_Declaration (N); - begin if Present (Decl) then Insert_Action (N, Decl); diff --git a/gcc/ada/exp_ch8.ads b/gcc/ada/exp_ch8.ads index d5dd37c..1dc066c 100644 --- a/gcc/ada/exp_ch8.ads +++ b/gcc/ada/exp_ch8.ads @@ -32,5 +32,4 @@ package Exp_Ch8 is procedure Expand_N_Object_Renaming_Declaration (N : Node_Id); procedure Expand_N_Package_Renaming_Declaration (N : Node_Id); procedure Expand_N_Subprogram_Renaming_Declaration (N : Node_Id); - end Exp_Ch8; diff --git a/gcc/ada/exp_util.ads b/gcc/ada/exp_util.ads index f293b8f..c0e0082 100644 --- a/gcc/ada/exp_util.ads +++ b/gcc/ada/exp_util.ads @@ -353,7 +353,8 @@ package Exp_Util is procedure Evaluate_Name (Nam : Node_Id); -- Remove the all side effects from a name which appears as part of an - -- object renaming declaration. + -- object renaming declaration. More comments are needed here that explain + -- how this differs from Force_Evaluation and Remove_Side_Effects ??? procedure Evolve_And_Then (Cond : in out Node_Id; Cond1 : Node_Id); -- Rewrites Cond with the expression: Cond and then Cond1. If Cond is diff --git a/gcc/ada/g-socket.adb b/gcc/ada/g-socket.adb index bf1fe9f..d48065a 100644 --- a/gcc/ada/g-socket.adb +++ b/gcc/ada/g-socket.adb @@ -36,8 +36,8 @@ with Ada.Unchecked_Conversion; with Interfaces.C.Strings; -with GNAT.Sockets.Thin_Common; use GNAT.Sockets.Thin_Common; -with GNAT.Sockets.Thin; use GNAT.Sockets.Thin; +with GNAT.Sockets.Thin_Common; use GNAT.Sockets.Thin_Common; +with GNAT.Sockets.Thin; use GNAT.Sockets.Thin; with GNAT.Sockets.Linker_Options; pragma Warnings (Off, GNAT.Sockets.Linker_Options); @@ -246,11 +246,11 @@ package body GNAT.Sockets is -- Type and Stream_Socket_Stream_Type. procedure Wait_On_Socket - (Socket : Socket_Type; - For_Read : Boolean; - Timeout : Selector_Duration; - Selector : access Selector_Type := null; - Status : out Selector_Status); + (Socket : Socket_Type; + For_Read : Boolean; + Timeout : Selector_Duration; + Selector : access Selector_Type := null; + Status : out Selector_Status); -- Common code for variants of socket operations supporting a timeout: -- block in Check_Selector on Socket for at most the indicated timeout. -- If For_Read is True, Socket is added to the read set for this call, else @@ -490,8 +490,8 @@ package body GNAT.Sockets is -- that Fd is within range (otherwise behaviour is undefined). elsif Fd < 0 or else Fd >= SOSC.FD_SETSIZE then - raise Constraint_Error with "invalid value for socket set: " - & Image (Fd); + raise Constraint_Error + with "invalid value for socket set: " & Image (Fd); end if; end Check_For_Fd_Set; @@ -731,11 +731,11 @@ package body GNAT.Sockets is -- Wait for socket to become available for writing Wait_On_Socket - (Socket => Socket, - For_Read => False, - Timeout => Timeout, - Selector => Selector, - Status => Status); + (Socket => Socket, + For_Read => False, + Timeout => Timeout, + Selector => Selector, + Status => Status); -- Reset the socket to blocking I/O @@ -1580,11 +1580,11 @@ package body GNAT.Sockets is -------------------- procedure Wait_On_Socket - (Socket : Socket_Type; - For_Read : Boolean; - Timeout : Selector_Duration; - Selector : access Selector_Type := null; - Status : out Selector_Status) + (Socket : Socket_Type; + For_Read : Boolean; + Timeout : Selector_Duration; + Selector : access Selector_Type := null; + Status : out Selector_Status) is type Local_Selector_Access is access Selector_Type; for Local_Selector_Access'Storage_Size use Selector_Type'Size; diff --git a/gcc/ada/g-socket.ads b/gcc/ada/g-socket.ads index 0198328..4625562 100644 --- a/gcc/ada/g-socket.ads +++ b/gcc/ada/g-socket.ads @@ -432,8 +432,8 @@ package GNAT.Sockets is Immediate : constant Duration := 0.0; - Forever : constant Duration := - Duration'Min (Duration'Last, 1.0 * SOSC.MAX_tv_sec); + Forever : constant Duration := + Duration'Min (Duration'Last, 1.0 * SOSC.MAX_tv_sec); -- Largest possible Duration that is also a valid value for struct timeval subtype Timeval_Duration is Duration range Immediate .. Forever; @@ -1146,7 +1146,6 @@ private R_Sig_Socket : Socket_Type := No_Socket; W_Sig_Socket : Socket_Type := No_Socket; -- Signalling sockets used to abort a select operation - end case; end record; @@ -1234,10 +1233,10 @@ private end record; type Service_Entry_Type (Aliases_Length : Natural) is record - Official : Name_Type; - Aliases : Name_Array (1 .. Aliases_Length); - Port : Port_Type; - Protocol : Name_Type; + Official : Name_Type; + Aliases : Name_Array (1 .. Aliases_Length); + Port : Port_Type; + Protocol : Name_Type; end record; type Request_Flag_Type is mod 2 ** 8; diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index 17a7d87..221d326 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -1773,7 +1773,7 @@ ada/exp_alfa.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/debug.ads ada/einfo.ads ada/einfo.adb \ ada/exp_alfa.ads ada/exp_alfa.adb ada/exp_attr.ads ada/exp_ch4.ads \ - ada/exp_ch6.ads ada/exp_ch8.ads ada/exp_dbug.ads ada/exp_tss.ads \ + ada/exp_ch6.ads ada/exp_dbug.ads ada/exp_tss.ads ada/exp_util.ads \ ada/gnat.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ ada/opt.ads ada/output.ads ada/rtsfind.ads ada/sem_aux.ads \ @@ -4070,42 +4070,42 @@ ada/sem_ch3.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/validsw.ads ada/warnsw.ads ada/widechar.ads ada/sem_ch4.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ - ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/aspects.adb \ - ada/atree.ads ada/atree.adb ada/casing.ads ada/checks.ads ada/csets.ads \ - ada/debug.ads ada/debug_a.ads ada/einfo.ads ada/einfo.adb \ - ada/elists.ads ada/elists.adb ada/err_vars.ads ada/errout.ads \ - ada/errout.adb ada/erroutc.ads ada/erroutc.adb ada/eval_fat.ads \ - ada/exp_ch11.ads ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_code.ads \ - ada/exp_disp.ads ada/exp_tss.ads ada/exp_util.ads ada/expander.ads \ - ada/fname.ads ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads \ - ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ - ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ - ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ - ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ - ada/namet.ads ada/namet.adb ada/namet-sp.ads ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \ - ada/par_sco.ads ada/put_alfa.ads ada/restrict.ads ada/restrict.adb \ - ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb \ - ada/sem_aggr.ads ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb \ - ada/sem_case.ads ada/sem_case.adb ada/sem_cat.ads ada/sem_ch10.ads \ - ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads \ - ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch4.adb ada/sem_ch5.ads \ - ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ - ada/sem_disp.ads ada/sem_dist.ads ada/sem_elab.ads ada/sem_elim.ads \ - ada/sem_eval.ads ada/sem_eval.adb ada/sem_intr.ads ada/sem_prag.ads \ - ada/sem_res.ads ada/sem_res.adb ada/sem_type.ads ada/sem_util.ads \ - ada/sem_util.adb ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads \ - ada/sinfo.adb ada/sinfo-cn.ads ada/sinput.ads ada/snames.ads \ - ada/stand.ads ada/stringt.ads ada/stringt.adb ada/style.ads \ - ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \ - ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ - ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ - ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ - ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ - ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ - ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \ - ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads + ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ + ada/atree.adb ada/casing.ads ada/checks.ads ada/csets.ads ada/debug.ads \ + ada/debug_a.ads ada/einfo.ads ada/einfo.adb ada/elists.ads \ + ada/elists.adb ada/err_vars.ads ada/errout.ads ada/errout.adb \ + ada/erroutc.ads ada/erroutc.adb ada/eval_fat.ads ada/exp_ch11.ads \ + ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_code.ads ada/exp_disp.ads \ + ada/exp_tss.ads ada/exp_util.ads ada/expander.ads ada/fname.ads \ + ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ + ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/itypes.ads \ + ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ + ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ + ada/namet.adb ada/namet-sp.ads ada/nlists.ads ada/nlists.adb \ + ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads ada/par_sco.ads \ + ada/put_alfa.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ + ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads \ + ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_case.ads \ + ada/sem_case.adb ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \ + ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ + ada/sem_ch4.ads ada/sem_ch4.adb ada/sem_ch5.ads ada/sem_ch6.ads \ + ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_disp.ads \ + ada/sem_dist.ads ada/sem_elab.ads ada/sem_elim.ads ada/sem_eval.ads \ + ada/sem_eval.adb ada/sem_intr.ads ada/sem_prag.ads ada/sem_res.ads \ + ada/sem_res.adb ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \ + ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb \ + ada/sinfo-cn.ads ada/sinput.ads ada/snames.ads ada/stand.ads \ + ada/stringt.ads ada/stringt.adb ada/style.ads ada/styleg.ads \ + ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ + ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ + ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ + ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \ + ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \ + ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \ + ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/sem_ch5.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 1da9143..253cfff 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -7155,7 +7155,10 @@ used, it must be used consistently throughout the program. However, since brackets encoding is always recognized, it may be conveniently used in standard libraries, allowing these libraries to be used with any of the available coding schemes. -scheme. + +Note that brackets encoding only applies to program text. Within comments, +brackets are considered to be normal graphic characters, and bracket sequences +are never recognized as wide characters. If no @option{-gnatW?} parameter is present, then the default representation is normally Brackets encoding only. However, if the @@ -7169,6 +7172,27 @@ for Wide_Text_IO files if not specifically overridden by a WCEM form parameter. @end table + +When no @option{-gnatW?} is specified, then characters (other than wide +characters represented using brackets notation) are treated as 8-bit +Latin-1 codes. The codes recognized are the Latin-1 graphic characters, +and ASCII format effectors (CR, LF, HT, VT). Other lower half control +characters in the range 16#00#..16#1F# are not accepted in program text +or in comments. Upper half control characters (16#80#..16#9F#) are rejected +in program text, but allowed and ignored in comments. Note in particular +that the Next Line (NEL) character whose encoding is 16#85# is not recognized +as an end of line in this default mode. If your source program contains +instances of the NEL character used as a line terminator, +you must use UTF-8 encoding for the whole +source program. In default mode, all lines must be ended by a standard +end of line sequence (CR, CR/LF, or LF). + +Note that the convention of simply accepting all upper half characters in +comments means that programs that use standard ASCII for program text, but +UTF-8 encoding for comments are accepted in default mode, providing that the +comments are ended by an appropriate (CR, or CR/LF, or LF) line terminator. +This is a common mode for many programs with foreign language comments. + @node File Naming Control @subsection File Naming Control diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index c9e81e9..4b438e1 100644 --- a/gcc/ada/sem_ch4.adb +++ b/gcc/ada/sem_ch4.adb @@ -6507,7 +6507,6 @@ package body Sem_Ch4 is -- Add implicit dereference interpretation Disc := First_Discriminant (Etype (It.Nam)); - while Present (Disc) loop if Has_Implicit_Dereference (Disc) then Add_One_Interp @@ -6517,6 +6516,7 @@ package body Sem_Ch4 is Next_Discriminant (Disc); end loop; + exit; end if; Get_Next_Interp (I, It); diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index d94a6bf..ad59f95 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -3926,16 +3926,16 @@ package body Sem_Res is if Is_Atomic_Object (A) and then not Is_Atomic (Etype (F)) then - Error_Msg_N - ("cannot pass atomic argument to non-atomic formal", - N); + Error_Msg_NE + ("cannot pass atomic argument to non-atomic formal&", + A, F); elsif Is_Volatile_Object (A) and then not Is_Volatile (Etype (F)) then - Error_Msg_N - ("cannot pass volatile argument to non-volatile formal", - N); + Error_Msg_NE + ("cannot pass volatile argument to non-volatile formal&", + A, F); end if; end if; diff --git a/gcc/ada/sigtramp-ppcvxw.c b/gcc/ada/sigtramp-ppcvxw.c index 57a02a7..bebe657 100644 --- a/gcc/ada/sigtramp-ppcvxw.c +++ b/gcc/ada/sigtramp-ppcvxw.c @@ -55,7 +55,11 @@ Checking which variant should apply and getting at sc_pregs is simpler to express in C (we can't use offsetof in toplevel asms and hardcoding constants is not workable with the flurry of VxWorks variants), so this - is the choice for our toplevel interface. */ + is the choice for our toplevel interface. + + Note that the registers we "restore" here are those to which we have + direct access through the system sigcontext structure, which includes + only a partial set of the non-volatiles ABI-wise. */ /* ----------------------------------------- -- Protypes for our internal asm stubs -- @@ -120,8 +124,9 @@ void __gnat_sigtramp (int signo, void *si, void *sc, /* REGNO constants, dwarf column numbers for registers of interest. */ #define REGNO_LR 65 -#define REGNO_XER 76 +#define REGNO_CTR 66 #define REGNO_CR 70 +#define REGNO_XER 76 #define REGNO_GR(N) (N) #define REGNO_PC 67 /* ARG_POINTER_REGNUM */ @@ -139,6 +144,8 @@ void __gnat_sigtramp (int signo, void *si, void *sc, multine contents: */ #define TAB(S) "\t" S #define CR(S) S "\n" + +#undef TCR #define TCR(S) TAB(CR(S)) /*------------------------------ @@ -147,11 +154,18 @@ void __gnat_sigtramp (int signo, void *si, void *sc, /* CFA setup block --------------- - Only non-volatile registers are suitable for a CFA base. We use r14 - here and set it to the value we need in stub body that follows. */ + Only non-volatile registers are suitable for a CFA base. These are the + only ones we can expect to be able retrieve from the unwinding context + while walking up the chain, saved by at least the bottom-most exception + propagation services. We use r15 here and set it to the value we need + in stub body that follows. Note that r14 is inappropriate here, even + though it is non-volatile according to the ABI, because GCC uses it as + an extra SCRATCH on SPE targets. */ + +#define CFA_REG 15 #define CFI_DEF_CFA \ -CR(".cfi_def_cfa 14, 0") +CR(".cfi_def_cfa " S(CFA_REG) ", 0") /* Register location blocks ------------------------ @@ -164,7 +178,18 @@ CR(".cfi_def_cfa 14, 0") #define CFI_COMMON_REGS \ CR("# CFI for common registers\n") \ -TCR(COMMON_CFI(GR(1))) \ +TCR(COMMON_CFI(GR(2))) \ +TCR(COMMON_CFI(GR(3))) \ +TCR(COMMON_CFI(GR(4))) \ +TCR(COMMON_CFI(GR(5))) \ +TCR(COMMON_CFI(GR(6))) \ +TCR(COMMON_CFI(GR(7))) \ +TCR(COMMON_CFI(GR(8))) \ +TCR(COMMON_CFI(GR(9))) \ +TCR(COMMON_CFI(GR(10))) \ +TCR(COMMON_CFI(GR(11))) \ +TCR(COMMON_CFI(GR(12))) \ +TCR(COMMON_CFI(GR(13))) \ TCR(COMMON_CFI(GR(14))) \ TCR(COMMON_CFI(GR(15))) \ TCR(COMMON_CFI(GR(16))) \ @@ -185,6 +210,8 @@ TCR(COMMON_CFI(GR(30))) \ TCR(COMMON_CFI(GR(31))) \ TCR(COMMON_CFI(LR)) \ TCR(COMMON_CFI(CR)) \ +TCR(COMMON_CFI(CTR)) \ +TCR(COMMON_CFI(XER)) \ TCR(COMMON_CFI(PC)) \ TCR(".cfi_return_column " S(REGNO_PC)) @@ -198,10 +225,10 @@ TCR("# registers we're going to modify") \ TCR("stwu %r1,-16(%r1)") \ TCR("mflr %r0") \ TCR("stw %r0,20(%r1)") \ -TCR("stw %r14,8(%r1)") \ +TCR("stw %r" S(CFA_REG) ",8(%r1)") \ TCR("") \ -TCR("# Setup r14 = sc_pregs, that we'll retrieve as our CFA value") \ -TCR("mr %r14, %r7") \ +TCR("# Setup CFA_REG = sc_pregs, that we'll retrieve as our CFA value") \ +TCR("mr %r" S(CFA_REG) ", %r7") \ TCR("") \ TCR("# Call the real handler. The signo, siginfo and sigcontext") \ TCR("# arguments are the same as those we received in r3, r4 and r5") \ @@ -209,7 +236,7 @@ TCR("mtctr %r6") \ TCR("bctrl") \ TCR("") \ TCR("# Restore our callee-saved items, release our frame and return") \ -TCR("lwz %r14,8(%r1)") \ +TCR("lwz %r" S(CFA_REG) ",8(%r1)") \ TCR("lwz %r0,20(%r1)") \ TCR("mtlr %r0") \ TCR("") \