diff options
| -rw-r--r-- | ortho/mcode/ortho_code-consts.adb | 31 | 
1 files changed, 17 insertions, 14 deletions
| diff --git a/ortho/mcode/ortho_code-consts.adb b/ortho/mcode/ortho_code-consts.adb index affe82c8d..173adff89 100644 --- a/ortho/mcode/ortho_code-consts.adb +++ b/ortho/mcode/ortho_code-consts.adb @@ -24,6 +24,9 @@ with Ortho_Code.Debug;  package body Ortho_Code.Consts is     type Cnode_Common is record        Kind : OC_Kind; +      Pad1 : Unsigned_8; +      Pad2 : Unsigned_8; +      Pad3 : Unsigned_8;        Lit_Type : O_Tnode;     end record;     for Cnode_Common'Size use 64; @@ -123,14 +126,14 @@ package body Ortho_Code.Consts is        Res : O_Cnode;     begin        Cnodes.Append (Cnode_Common'(Kind => OC_Signed, -                                   Lit_Type => Ltype)); +                                   Lit_Type => Ltype, others => 0));        Res := Cnodes.Last;        Cnodes.Append (To_Cnode_Common (Cnode_Signed'(Val => Value)));        return Res;     end New_Signed_Literal;     function To_Cnode_Common is new Ada.Unchecked_Conversion -     (Source => Cnode_Unsigned, Target => Cnode_Common); +     (Source => Unsigned_64, Target => Cnode_Common);     function New_Unsigned_Literal (Ltype : O_Tnode; Value : Unsigned_64)                                   return O_Cnode @@ -138,9 +141,9 @@ package body Ortho_Code.Consts is        Res : O_Cnode;     begin        Cnodes.Append (Cnode_Common'(Kind => OC_Unsigned, -                                   Lit_Type => Ltype)); +                                   Lit_Type => Ltype, others => 0));        Res := Cnodes.Last; -      Cnodes.Append (To_Cnode_Common (Cnode_Unsigned'(Val => Value))); +      Cnodes.Append (To_Cnode_Common (Value));        return Res;     end New_Unsigned_Literal; @@ -203,7 +206,7 @@ package body Ortho_Code.Consts is          (Source => Cnode_Float, Target => Cnode_Common);     begin        Cnodes.Append (Cnode_Common'(Kind => OC_Float, -                                   Lit_Type => Ltype)); +                                   Lit_Type => Ltype, others => 0));        Res := Cnodes.Last;        Cnodes.Append (To_Cnode_Common (Cnode_Float'(Val => Value)));        return Res; @@ -212,7 +215,7 @@ package body Ortho_Code.Consts is     function New_Null_Access (Ltype : O_Tnode) return O_Cnode is     begin        Cnodes.Append (Cnode_Common'(Kind => OC_Null, -                                   Lit_Type => Ltype)); +                                   Lit_Type => Ltype, others => 0));        return Cnodes.Last;     end New_Null_Access; @@ -228,7 +231,7 @@ package body Ortho_Code.Consts is        Res : O_Cnode;     begin        Cnodes.Append (Cnode_Common'(Kind => OC_Address, -                                   Lit_Type => Atype)); +                                   Lit_Type => Atype, others => 0));        Res := Cnodes.Last;        Cnodes.Append (To_Cnode_Common (Cnode_Addr'(Decl => Decl,                                                    Pad => 0))); @@ -241,7 +244,7 @@ package body Ortho_Code.Consts is        Res : O_Cnode;     begin        Cnodes.Append (Cnode_Common'(Kind => OC_Address, -                                   Lit_Type => Atype)); +                                   Lit_Type => Atype, others => 0));        Res := Cnodes.Last;        Cnodes.Append (To_Cnode_Common (Cnode_Addr'(Decl => Decl,                                                    Pad => 0))); @@ -254,7 +257,7 @@ package body Ortho_Code.Consts is        Res : O_Cnode;     begin        Cnodes.Append (Cnode_Common'(Kind => OC_Subprg_Address, -                                   Lit_Type => Atype)); +                                   Lit_Type => Atype, others => 0));        Res := Cnodes.Last;        Cnodes.Append (To_Cnode_Common (Cnode_Addr'(Decl => Subprg,                                                    Pad => 0))); @@ -284,7 +287,7 @@ package body Ortho_Code.Consts is        Res : O_Cnode;     begin        Cnodes.Append (Cnode_Common'(Kind => OC_Lit, -                                   Lit_Type => Atype)); +                                   Lit_Type => Atype, others => 0));        Res := Cnodes.Last;        Cnodes.Append (To_Cnode_Common (Cnode_Enum'(Id => Id,                                                    Val => Val))); @@ -335,7 +338,7 @@ package body Ortho_Code.Consts is        Val := Els.Allocate (Integer (Num));        Cnodes.Append (Cnode_Common'(Kind => OC_Record, -                                   Lit_Type => Atype)); +                                   Lit_Type => Atype, others => 0));        List := (Res => Cnodes.Last,                 Rec_Field => Get_Type_Record_Fields (Atype),                 El => Val); @@ -368,7 +371,7 @@ package body Ortho_Code.Consts is        Val := Els.Allocate (Integer (Num));        Cnodes.Append (Cnode_Common'(Kind => OC_Array, -                                   Lit_Type => Atype)); +                                   Lit_Type => Atype, others => 0));        List := (Res => Cnodes.Last,                 El => Val);        Cnodes.Append (To_Cnode_Common (Cnode_Aggr'(Els => Val, @@ -413,7 +416,7 @@ package body Ortho_Code.Consts is     begin        if Debug.Flag_Debug_Hli then           Cnodes.Append (Cnode_Common'(Kind => OC_Union, -                                      Lit_Type => Atype)); +                                      Lit_Type => Atype, others => 0));           Res := Cnodes.Last;           Cnodes.Append (To_Cnode_Common (Cnode_Union'(El => Value,                                                        Field => Field))); @@ -445,7 +448,7 @@ package body Ortho_Code.Consts is     begin        if Debug.Flag_Debug_Hli then           Cnodes.Append (Cnode_Common'(Kind => OC_Sizeof, -                                      Lit_Type => Rtype)); +                                      Lit_Type => Rtype, others => 0));           Res := Cnodes.Last;           Cnodes.Append (To_Cnode_Common (Cnode_Sizeof'(Atype => Atype,                                                         Pad => 0))); | 
