OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [ada/] [exp_aggr.ads] - Blame information for rev 320

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 281 jeremybenn
------------------------------------------------------------------------------
2
--                                                                          --
3
--                         GNAT COMPILER COMPONENTS                         --
4
--                                                                          --
5
--                             E X P _ A G G R                              --
6
--                                                                          --
7
--                                 S p e c                                  --
8
--                                                                          --
9
--          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
10
--                                                                          --
11
-- GNAT is free software;  you can  redistribute it  and/or modify it under --
12
-- terms of the  GNU General Public License as published  by the Free Soft- --
13
-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
14
-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
15
-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
16
-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
17
-- for  more details.  You should have  received  a copy of the GNU General --
18
-- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
19
-- http://www.gnu.org/licenses for a complete copy of the license.          --
20
--                                                                          --
21
-- GNAT was originally developed  by the GNAT team at  New York University. --
22
-- Extensive contributions were provided by Ada Core Technologies Inc.      --
23
--                                                                          --
24
------------------------------------------------------------------------------
25
 
26
with Types; use Types;
27
 
28
package Exp_Aggr is
29
 
30
   procedure Expand_N_Aggregate           (N : Node_Id);
31
   procedure Expand_N_Extension_Aggregate (N : Node_Id);
32
 
33
   function Is_Delayed_Aggregate (N : Node_Id) return Boolean;
34
   --  Returns True if N is an aggregate of some kind whose Expansion_Delayed
35
   --  flag is set (see sinfo for meaning of flag).
36
 
37
   procedure Convert_Aggr_In_Object_Decl (N : Node_Id);
38
   --  N is a N_Object_Declaration with an expression which must be an
39
   --  N_Aggregate or N_Extension_Aggregate with Expansion_Delayed.
40
   --  This procedure performs in-place aggregate assignment.
41
 
42
   procedure Convert_Aggr_In_Allocator
43
     (Alloc : Node_Id;
44
      Decl  : Node_Id;
45
      Aggr  : Node_Id);
46
   --  Alloc is the allocator whose expression is the aggregate Aggr.
47
   --  Decl is an N_Object_Declaration created during allocator expansion.
48
   --  This procedure performs in-place aggregate assignment into the
49
   --  temporary declared in Decl, and the allocator becomes an access to
50
   --  that temporary.
51
 
52
   procedure Convert_Aggr_In_Assignment (N : Node_Id);
53
   --  If the right-hand side of an assignment is an aggregate, expand the
54
   --  statement into a series of individual component assignments. This is
55
   --  done if there are non-static values involved in either the bounds or
56
   --  the components, and the aggregate cannot be handled as a whole by the
57
   --  backend.
58
 
59
   function Static_Array_Aggregate (N : Node_Id) return Boolean;
60
   --  N is an array aggregate that may have a component association with
61
   --  an others clause and a range. If bounds are static and the expressions
62
   --  are compile-time known constants, rewrite N as a purely positional
63
   --  aggregate, to be use to initialize variables and components of the type
64
   --  without generating elaboration code.
65
end Exp_Aggr;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.