OSDN Git Service

* gcc.dg/vect/O3-vect-pr34223.c: Check vect_int_mult.
[pf3gnuchains/gcc-fork.git] / gcc / ada / osint-c.ads
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT COMPILER COMPONENTS                         --
4 --                                                                          --
5 --                              O S I N T - C                               --
6 --                                                                          --
7 --                                 S p e c                                  --
8 --                                                                          --
9 --          Copyright (C) 2001-2008, 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 --  This package contains the low level, operating system routines used only
27 --  in the GNAT compiler for command line processing and file input output.
28
29 package Osint.C is
30
31    procedure Set_Output_Object_File_Name (Name : String);
32    --  Called by the subprogram processing the command line when an
33    --  output object file name is found.
34
35    function More_Source_Files return Boolean;
36    --  Indicates whether more source file remain to be processed. Returns
37    --  False right away if no source files, or if all source files have
38    --  been processed.
39
40    function Next_Main_Source return File_Name_Type;
41    --  This function returns the name of the next main source file specified
42    --  on the command line. It is an error to call Next_Main_Source if no more
43    --  source files exist (i.e. Next_Main_Source may be called only if a
44    --  previous call to More_Source_Files returned True). This name is the
45    --  simple file name (without any directory information).
46
47    ------------------------------
48    -- Debug Source File Output --
49    ------------------------------
50
51    --  These routines are used by the compiler to generate the debug source
52    --  file for the Debug_Generated_Code (-gnatD switch) option. Note that
53    --  debug source file writing occurs at a completely different point in
54    --  the processing from library information output, or representation
55    --  output, so the code in the body can assume that no two of these
56    --  functions are ever used at the same time.
57
58    function Create_Debug_File (Src : File_Name_Type) return File_Name_Type;
59    --  Given the simple name of a source file, this routine creates the
60    --  corresponding debug file, and returns its full name.
61
62    procedure Write_Debug_Info (Info : String);
63    --  Writes contents of given string as next line of the current debug
64    --  source file created by the most recent call to Create_Debug_File.
65    --  Info does not contain end of line or other formatting characters.
66
67    procedure Close_Debug_File;
68    --  Close current debug file created by the most recent call to
69    --  Create_Debug_File.
70
71    function Debug_File_Eol_Length return Nat;
72    --  Returns the number of characters (1 for NL, 2 for CR/LF) written
73    --  at the end of each line by Write_Debug_Info.
74
75    --------------------------------
76    -- Representation File Output --
77    --------------------------------
78
79    --  These routines are used by the compiler to generate the representation
80    --  information to a file if this option is specified (-gnatR?s switch).
81    --  Note that the writing of this file occurs at a completely different
82    --  point in the processing from library information output, or from
83    --  debug file output, so the code in the body can assume that no two
84    --  of these functions are ever used at the same time.
85
86    --  Note: these routines are called from Repinfo, but are not called
87    --  directly, since we do not want Repinfo to depend on Osint. That
88    --  would cause a lot of unwanted junk to be dragged into ASIS. So
89    --  what we do is we have Initialize set the addresses of these three
90    --  procedures in appropriate variables in Repinfo, so that they can
91    --  be called indirectly without creating a dependence.
92
93    procedure Create_Repinfo_File (Src : String);
94    --  Given the simple name of a source file, this routine creates the
95    --  corresponding file to hold representation information. Note that the
96    --  call destroys the contents of Name_Buffer and Name_Len.
97
98    procedure Write_Repinfo_Line (Info : String);
99    --  Writes contents of given string as next line of the current debug
100    --  source file created by the most recent call to Create_Repinfo_File.
101    --  Info does not contain end of line or other formatting characters.
102
103    procedure Close_Repinfo_File;
104    --  Close current debug file created by the most recent call to
105    --  Create_Repinfo_File.
106
107    --------------------------------
108    -- Library Information Output --
109    --------------------------------
110
111    --  These routines are used by the compiler to generate the library
112    --  information file for the main source file being compiled. See section
113    --  above for a discussion of how library information files are stored.
114
115    procedure Create_Output_Library_Info;
116    --  Creates the output library information file for the source file which
117    --  is currently being compiled (i.e. the file which was most recently
118    --  returned by Next_Main_Source).
119
120    procedure Write_Library_Info (Info : String);
121    --  Writes the contents of the referenced string to the library information
122    --  file for the main source file currently being compiled (i.e. the file
123    --  which was most recently opened with a call to Read_Next_File). Info
124    --  represents a single line in the file, but does not contain any line
125    --  termination characters. The implementation of Write_Library_Info is
126    --  responsible for adding necessary end of line and end of file control
127    --  characters to the generated file.
128
129    procedure Close_Output_Library_Info;
130    --  Closes the file created by Create_Output_Library_Info, flushing any
131    --  buffers etc. from writes by Write_Library_Info.
132
133    procedure Read_Library_Info
134      (Name : out File_Name_Type;
135       Text : out Text_Buffer_Ptr);
136    --  The procedure version of Read_Library_Info is used from the compiler
137    --  to read an existing ali file associated with the main unit. If the
138    --  ALI file exists, then its file name is returned in Name, and its
139    --  text is returned in Text. If the file does not exist, then Text is
140    --  set to null.
141
142    ----------------------
143    -- List File Output --
144    ----------------------
145
146    procedure Create_List_File (S : String);
147    --  Creates the file whose name is given by S. If the name starts with a
148    --  period, then the name is xxx & S, where xxx is the name of the main
149    --  source file without the extension stripped. Information is written to
150    --  this file using Write_List_File.
151
152    procedure Write_List_Info (S : String);
153    --  Writes given string to the list file created by Create_List_File
154
155    procedure Close_List_File;
156    --  Close file previously opened by Create_List_File
157
158    --------------------------------
159    -- Semantic Tree Input-Output --
160    --------------------------------
161
162    procedure Tree_Create;
163    --  Creates the tree output file for the source file which is currently
164    --  being compiled (i.e. the file which was most recently returned by
165    --  Next_Main_Source), and initializes Tree_IO.Tree_Write for output.
166
167    procedure Tree_Close;
168    --  Closes the file previously opened by Tree_Create
169
170 end Osint.C;