aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/einfo.ads
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2015-05-22 10:50:19 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2015-05-22 12:50:19 +0200
commited05b790079613774f72ddb421f2d751fcac03fd (patch)
tree1443c116f271fa91e506418a3760bec66ff39650 /gcc/ada/einfo.ads
parent6eb187f6f31be9ba4e80c08110482291a637ddba (diff)
downloadgcc-ed05b790079613774f72ddb421f2d751fcac03fd.zip
gcc-ed05b790079613774f72ddb421f2d751fcac03fd.tar.gz
gcc-ed05b790079613774f72ddb421f2d751fcac03fd.tar.bz2
debug.adb: Update documentation.
2015-05-22 Robert Dewar <dewar@adacore.com> * debug.adb: Update documentation. * einfo.ads, einfo.adb (Needs_Typedef): New flag * exp_unst.adb (Unnest_Subprogram): Mark AREC types as needing typedef's in C. * frontend.adb: Update comments. * gnat1drv.adb (Adjust_Global_Switches): Set all needed flags for -gnatd.V * opt.ads (Generate_C_Code): New switch. * osint-c.adb (Write_C_File_Info): Removed, not used (Write_H_File_Info): Removed, not used * osint-c.ads (Write_C_File_Info): Removed, not used (Write_H_File_Info): Removed, not used * osint.ads (Write_Info): Minor comment updates. (Output_FD): Moved from private part to public part of spec. * sem.adb (Semantics): Force expansion on if in Generate_C_Code mode. * atree.ads: minor typo in comment. * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Do not allow VFA on composite object with aliased component. From-SVN: r223546
Diffstat (limited to 'gcc/ada/einfo.ads')
-rw-r--r--gcc/ada/einfo.ads17
1 files changed, 16 insertions, 1 deletions
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index f687d3d..5fe5da8 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -1405,7 +1405,9 @@ package Einfo is
-- Has_Aliased_Components (Flag135) [implementation base type only]
-- Defined in array type entities. Indicates that the component type
--- of the array is aliased.
+-- of the array is aliased. Should this also be set for records to
+-- indicate that at least one component is aliased (see processing in
+-- Sem_Prag.Process_Atomic_Independent_Shared_Volatile???)
-- Has_Alignment_Clause (Flag46)
-- Defined in all type entities and objects. Indicates if an alignment
@@ -3348,6 +3350,14 @@ package Einfo is
-- interpreted as an indexing of the result of the call. It is also
-- used to resolve various cases of entry calls.
+-- Needs_Typedef (Flag286)
+-- Defined for all types and subtypes. Set if it is essential to generate
+-- a typedef when we are generating C code from Cprint. Normally we
+-- generate typedef's only for source entities, and not for internally
+-- generated types, but there are cases, notably the AREC types generated
+-- in Exp_Unst when we are unnesting subprograms where we must generate
+-- typedef's for non-source types.
+
-- Never_Set_In_Source (Flag115)
-- Defined in all entities, but can be set only for variables and
-- parameters. This flag is set if the object is never assigned a value
@@ -5441,6 +5451,7 @@ package Einfo is
-- May_Inherit_Delayed_Rep_Aspects (Flag262)
-- Must_Be_On_Byte_Boundary (Flag183)
-- Must_Have_Preelab_Init (Flag208)
+ -- Needs_Typedef (Flag286)
-- Optimize_Alignment_Space (Flag241)
-- Optimize_Alignment_Time (Flag242)
-- Partial_View_Has_Unknown_Discr (Flag280)
@@ -6965,6 +6976,7 @@ package Einfo is
function Must_Have_Preelab_Init (Id : E) return B;
function Needs_Debug_Info (Id : E) return B;
function Needs_No_Actuals (Id : E) return B;
+ function Needs_Typedef (Id : E) return B;
function Never_Set_In_Source (Id : E) return B;
function Next_Inlined_Subprogram (Id : E) return E;
function No_Dynamic_Predicate_On_Actual (Id : E) return B;
@@ -7622,6 +7634,7 @@ package Einfo is
procedure Set_Must_Have_Preelab_Init (Id : E; V : B := True);
procedure Set_Needs_Debug_Info (Id : E; V : B := True);
procedure Set_Needs_No_Actuals (Id : E; V : B := True);
+ procedure Set_Needs_Typedef (Id : E; V : B := True);
procedure Set_Never_Set_In_Source (Id : E; V : B := True);
procedure Set_Next_Inlined_Subprogram (Id : E; V : E);
procedure Set_No_Dynamic_Predicate_On_Actual (Id : E; V : B := True);
@@ -8433,6 +8446,7 @@ package Einfo is
pragma Inline (Must_Have_Preelab_Init);
pragma Inline (Needs_Debug_Info);
pragma Inline (Needs_No_Actuals);
+ pragma Inline (Needs_Typedef);
pragma Inline (Never_Set_In_Source);
pragma Inline (Next_Index);
pragma Inline (Next_Inlined_Subprogram);
@@ -8890,6 +8904,7 @@ package Einfo is
pragma Inline (Set_Must_Have_Preelab_Init);
pragma Inline (Set_Needs_Debug_Info);
pragma Inline (Set_Needs_No_Actuals);
+ pragma Inline (Set_Needs_Typedef);
pragma Inline (Set_Never_Set_In_Source);
pragma Inline (Set_Next_Inlined_Subprogram);
pragma Inline (Set_No_Dynamic_Predicate_On_Actual);