* gcc-interface/decl.c (make_aligning_type): Declare the type.
From-SVN: r159183
This commit is contained in:
parent
35e2a4b842
commit
9c026b8767
@ -1,3 +1,7 @@
|
||||
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
|
||||
|
@ -5955,8 +5955,8 @@ make_aligning_type (tree type, unsigned int align, tree size,
|
||||
|
||||
if (TREE_CODE (name) == TYPE_DECL)
|
||||
name = DECL_NAME (name);
|
||||
|
||||
TYPE_NAME (record_type) = concat_name (name, "_ALIGN");
|
||||
name = concat_name (name, "ALIGN");
|
||||
TYPE_NAME (record_type) = name;
|
||||
|
||||
/* Compute VOFFSET and then POS. The next byte position multiple of some
|
||||
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,
|
||||
size_int (room + align / BITS_PER_UNIT));
|
||||
|
||||
SET_TYPE_MODE (record_type, BLKmode);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
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.
|
||||
|
12
gcc/testsuite/gnat.dg/lto4.adb
Normal file
12
gcc/testsuite/gnat.dg/lto4.adb
Normal file
@ -0,0 +1,12 @@
|
||||
-- { 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;
|
26
gcc/testsuite/gnat.dg/lto4.ads
Normal file
26
gcc/testsuite/gnat.dg/lto4.ads
Normal file
@ -0,0 +1,26 @@
|
||||
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;
|
Loading…
x
Reference in New Issue
Block a user