Commit cde4a4b1 by Javier Miranda Committed by Arnaud Charlet

exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this attribute…

exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this attribute compiling package Ada.Tags under...

2007-04-20  Javier Miranda  <miranda@adacore.com>

	* exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
	attribute compiling package Ada.Tags under No_Run_Time_Mode.

From-SVN: r125405
parent 1091ce14
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 2001-2006, Free Software Foundation, Inc. -- -- Copyright (C) 2001-2007, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -29,6 +29,7 @@ with Casing; use Casing; ...@@ -29,6 +29,7 @@ with Casing; use Casing;
with Checks; use Checks; with Checks; use Checks;
with Einfo; use Einfo; with Einfo; use Einfo;
with Exp_Util; use Exp_Util; with Exp_Util; use Exp_Util;
with Lib; use Lib;
with Namet; use Namet; with Namet; use Namet;
with Nmake; use Nmake; with Nmake; use Nmake;
with Nlists; use Nlists; with Nlists; use Nlists;
...@@ -633,11 +634,31 @@ package body Exp_Imgv is ...@@ -633,11 +634,31 @@ package body Exp_Imgv is
-- and decimal types, with Vid set to the Id of the entity for the -- and decimal types, with Vid set to the Id of the entity for the
-- Value routine and Args set to the list of parameters for the call. -- Value routine and Args set to the list of parameters for the call.
Rewrite (N, -- Compiling package Ada.Tags under No_Run_Time_Mode we disable the
Convert_To (Btyp, -- expansion of the attribute into the function call statement to avoid
Make_Function_Call (Loc, -- generating spurious errors caused by the use of Integer_Address'Value
Name => New_Reference_To (RTE (Vid), Loc), -- in our implementation of Ada.Tags.Internal_Tag
Parameter_Associations => Args)));
-- Seems like a bit of a kludge, there should be a better way ???
-- There is a better way, you should also test RTE_Available ???
if No_Run_Time_Mode
and then Rtyp = RTE (RE_Integer_Address)
and then RTU_Loaded (Ada_Tags)
and then Cunit_Entity (Current_Sem_Unit)
= Body_Entity (RTU_Entity (Ada_Tags))
then
Rewrite (N,
Unchecked_Convert_To (Rtyp,
Make_Integer_Literal (Loc, Uint_0)));
else
Rewrite (N,
Convert_To (Btyp,
Make_Function_Call (Loc,
Name => New_Reference_To (RTE (Vid), Loc),
Parameter_Associations => Args)));
end if;
Analyze_And_Resolve (N, Btyp); Analyze_And_Resolve (N, Btyp);
end Expand_Value_Attribute; end Expand_Value_Attribute;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment