Mercurial > hg > CbC > CbC_gcc
comparison gcc/ada/libgnat/g-souinf.ads @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 ------------------------------------------------------------------------------ | |
2 -- -- | |
3 -- GNAT RUN-TIME COMPONENTS -- | |
4 -- -- | |
5 -- G N A T . S O U R C E _ I N F O -- | |
6 -- -- | |
7 -- S p e c -- | |
8 -- -- | |
9 -- Copyright (C) 2000-2017, 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. -- | |
17 -- -- | |
18 -- As a special exception under Section 7 of GPL version 3, you are granted -- | |
19 -- additional permissions described in the GCC Runtime Library Exception, -- | |
20 -- version 3.1, as published by the Free Software Foundation. -- | |
21 -- -- | |
22 -- You should have received a copy of the GNU General Public License and -- | |
23 -- a copy of the GCC Runtime Library Exception along with this program; -- | |
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- | |
25 -- <http://www.gnu.org/licenses/>. -- | |
26 -- -- | |
27 -- GNAT was originally developed by the GNAT team at New York University. -- | |
28 -- Extensive contributions were provided by Ada Core Technologies Inc. -- | |
29 -- -- | |
30 ------------------------------------------------------------------------------ | |
31 | |
32 -- This package provides some useful utility subprograms that provide access | |
33 -- to source code information known at compile time. These subprograms are | |
34 -- intrinsic operations that provide information known to the compiler in | |
35 -- a form that can be embedded into the source program for identification | |
36 -- and logging purposes. For example, an exception handler can print out | |
37 -- the name of the source file in which the exception is handled. | |
38 | |
39 package GNAT.Source_Info is | |
40 pragma Preelaborate; | |
41 -- Note that this unit is Preelaborate, but not Pure, that's because the | |
42 -- functions here such as Line are clearly not pure functions, and normally | |
43 -- we mark intrinsic functions in a Pure unit as Pure, even though they are | |
44 -- imported. | |
45 -- | |
46 -- Historical note: this used to be Pure, but that was when we marked all | |
47 -- intrinsics as not Pure, even in Pure units, so no problems arose. | |
48 | |
49 function File return String with | |
50 Import, Convention => Intrinsic; | |
51 -- Return the name of the current file, not including the path information. | |
52 -- The result is considered to be a static string constant. | |
53 | |
54 function Line return Positive with | |
55 Import, Convention => Intrinsic; | |
56 -- Return the current input line number. The result is considered to be a | |
57 -- static expression. | |
58 | |
59 function Source_Location return String with | |
60 Import, Convention => Intrinsic; | |
61 -- Return a string literal of the form "name:line", where name is the | |
62 -- current source file name without path information, and line is the | |
63 -- current line number. In the event that instantiations are involved, | |
64 -- additional suffixes of the same form are appended after the separating | |
65 -- string " instantiated at ". The result is considered to be a static | |
66 -- string constant. | |
67 | |
68 function Enclosing_Entity return String with | |
69 Import, Convention => Intrinsic; | |
70 -- Return the name of the current subprogram, package, task, entry or | |
71 -- protected subprogram. The string is in exactly the form used for the | |
72 -- declaration of the entity (casing and encoding conventions), and is | |
73 -- considered to be a static string constant. The name is fully qualified | |
74 -- using periods where possible (this is not always possible, notably in | |
75 -- the case of entities appearing in unnamed block statements.) | |
76 -- | |
77 -- Note: if this function is used at the outer level of a generic package, | |
78 -- the string returned will be the name of the instance, not the generic | |
79 -- package itself. This is useful in identifying and logging information | |
80 -- from within generic templates. | |
81 | |
82 function Compilation_ISO_Date return String with | |
83 Import, Convention => Intrinsic; | |
84 -- Returns date of compilation as a static string "yyyy-mm-dd". | |
85 | |
86 function Compilation_Date return String with | |
87 Import, Convention => Intrinsic; | |
88 -- Returns date of compilation as a static string "mmm dd yyyy". This is | |
89 -- in local time form, and is exactly compatible with C macro __DATE__. | |
90 | |
91 function Compilation_Time return String with | |
92 Import, Convention => Intrinsic; | |
93 -- Returns GMT time of compilation as a static string "hh:mm:ss". This is | |
94 -- in local time form, and is exactly compatible with C macro __TIME__. | |
95 | |
96 end GNAT.Source_Info; |