Commit 9c026b87 by Eric Botcazou Committed by Eric Botcazou

* gcc-interface/decl.c (make_aligning_type): Declare the type.

From-SVN: r159183
parent 35e2a4b8
2010-05-08 Eric Botcazou <ebotcazou@adacore.com> 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (make_aligning_type): Declare the type.
2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_entity): Create variables for size * gcc-interface/decl.c (gnat_to_gnu_entity): Create variables for size
expressions of variant part of record types declared at library level. expressions of variant part of record types declared at library level.
......
...@@ -5955,8 +5955,8 @@ make_aligning_type (tree type, unsigned int align, tree size, ...@@ -5955,8 +5955,8 @@ make_aligning_type (tree type, unsigned int align, tree size,
if (TREE_CODE (name) == TYPE_DECL) if (TREE_CODE (name) == TYPE_DECL)
name = DECL_NAME (name); name = DECL_NAME (name);
name = concat_name (name, "ALIGN");
TYPE_NAME (record_type) = concat_name (name, "_ALIGN"); TYPE_NAME (record_type) = name;
/* Compute VOFFSET and then POS. The next byte position multiple of some /* Compute VOFFSET and then POS. The next byte position multiple of some
alignment after some address is obtained by "and"ing the alignment minus alignment after some address is obtained by "and"ing the alignment minus
...@@ -6001,8 +6001,12 @@ make_aligning_type (tree type, unsigned int align, tree size, ...@@ -6001,8 +6001,12 @@ make_aligning_type (tree type, unsigned int align, tree size,
size_int (room + align / BITS_PER_UNIT)); size_int (room + align / BITS_PER_UNIT));
SET_TYPE_MODE (record_type, BLKmode); SET_TYPE_MODE (record_type, BLKmode);
relate_alias_sets (record_type, type, ALIAS_SET_COPY); relate_alias_sets (record_type, type, ALIAS_SET_COPY);
/* Declare it now since it will never be declared otherwise. This is
necessary to ensure that its subtrees are properly marked. */
create_type_decl (name, record_type, NULL, true, false, Empty);
return record_type; return record_type;
} }
......
2010-05-08 Eric Botcazou <ebotcazou@adacore.com> 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/lto4.ad[sb]: New test.
2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/specs/lto3.ads: New test. * gnat.dg/specs/lto3.ads: New test.
* gnat.dg/specs/lto3_pkg1.ad[sb]: New helper. * gnat.dg/specs/lto3_pkg1.ad[sb]: New helper.
* gnat.dg/specs/lto3_pkg2.ad[sb]: Likewise. * gnat.dg/specs/lto3_pkg2.ad[sb]: Likewise.
......
-- { dg-do compile }
-- { dg-options "-flto" }
package body Lto4 is
procedure SS_Allocate (Stack : Stack_Ptr) is
Chunk : Chunk_Ptr := Stack.Current_Chunk;
begin
Chunk := new Chunk_Id (First => Chunk.Last, Last => Chunk.Last);
end;
end Lto4;
with System.Storage_Elements;
package Lto4 is
package SSE renames System.Storage_Elements;
type SS_Ptr is new SSE.Integer_Address;
type Memory is array (SS_Ptr range <>) of SSE.Storage_Element;
for Memory'Alignment use Standard'Maximum_Alignment;
type Chunk_Id (First, Last : SS_Ptr) is record
Mem : Memory (First .. Last);
end record;
type Chunk_Ptr is access all Chunk_Id;
type Stack_Id is record
Current_Chunk : Chunk_Ptr;
end record;
type Stack_Ptr is access Stack_Id;
procedure SS_Allocate (Stack : Stack_Ptr);
end Lto4;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment