Commit 9479ded4 by Arnaud Charlet

[multiple changes]

2012-10-04  Robert Dewar  <dewar@adacore.com>

	* sem_eval.adb (Fold_Str, Fold_Uint, Fold_Ureal): Reset static
	expression state after Resolve call.

2012-10-04  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma. case Warnngs): Don't make entry
	in the table for Warnings Off pragmas if within an instance.

2012-10-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch9.adb (Analyze_Entry_Body): Transfer
	Has_Pragma_Unreferenced flag from entry formal to corresponding
	entity in body, to prevent spurious warnings when pragma is
	present.

2012-10-04  Robert Dewar  <dewar@adacore.com>

	* s-bignum.adb (Big_Exp): Raise Storage_Error for ludicrously
	large results.

2012-10-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Check_Duplicate_Aspects): Diagnose properly
	aspects that appear in the partial and the full view of a type.

2012-10-04  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads (N_Return_Statement): Removed.

2012-10-04  Tristan Gingold  <gingold@adacore.com>

	* init.c (__gl_zero_cost_exceptions): Comment it as not used
	anymore.
	* bindgen.adb (Gen_Adainit): Do not emit Zero_Cost_Exceptions
	anymore.

2012-10-04  Thomas Quinot  <quinot@adacore.com>

	* prep.adb, prepcomp.adb, gprep.adb, opt.ads: New preprocessor switch
	-a (all source text preserved).

From-SVN: r192072
parent 65f7ed64
2012-10-04 Robert Dewar <dewar@adacore.com>
* sem_eval.adb (Fold_Str, Fold_Uint, Fold_Ureal): Reset static
expression state after Resolve call.
2012-10-04 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Analyze_Pragma. case Warnngs): Don't make entry
in the table for Warnings Off pragmas if within an instance.
2012-10-04 Ed Schonberg <schonberg@adacore.com>
* sem_ch9.adb (Analyze_Entry_Body): Transfer
Has_Pragma_Unreferenced flag from entry formal to corresponding
entity in body, to prevent spurious warnings when pragma is
present.
2012-10-04 Robert Dewar <dewar@adacore.com>
* s-bignum.adb (Big_Exp): Raise Storage_Error for ludicrously
large results.
2012-10-04 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Check_Duplicate_Aspects): Diagnose properly
aspects that appear in the partial and the full view of a type.
2012-10-04 Robert Dewar <dewar@adacore.com>
* sinfo.ads (N_Return_Statement): Removed.
2012-10-04 Tristan Gingold <gingold@adacore.com>
* init.c (__gl_zero_cost_exceptions): Comment it as not used
anymore.
* bindgen.adb (Gen_Adainit): Do not emit Zero_Cost_Exceptions
anymore.
2012-10-04 Thomas Quinot <quinot@adacore.com>
* prep.adb, prepcomp.adb, gprep.adb, opt.ads: New preprocessor switch
-a (all source text preserved).
2012-10-04 Vincent Celier <celier@adacore.com> 2012-10-04 Vincent Celier <celier@adacore.com>
* prj-proc.adb (Recursive_Process): Use project directory * prj-proc.adb (Recursive_Process): Use project directory
......
...@@ -137,7 +137,6 @@ package body Bindgen is ...@@ -137,7 +137,6 @@ package body Bindgen is
-- Num_Interrupt_States : Integer; -- Num_Interrupt_States : Integer;
-- Unreserve_All_Interrupts : Integer; -- Unreserve_All_Interrupts : Integer;
-- Exception_Tracebacks : Integer; -- Exception_Tracebacks : Integer;
-- Zero_Cost_Exceptions : Integer;
-- Detect_Blocking : Integer; -- Detect_Blocking : Integer;
-- Default_Stack_Size : Integer; -- Default_Stack_Size : Integer;
-- Leap_Seconds_Support : Integer; -- Leap_Seconds_Support : Integer;
...@@ -216,9 +215,6 @@ package body Bindgen is ...@@ -216,9 +215,6 @@ package body Bindgen is
-- tracebacks are provided by default, so a value of zero for this -- tracebacks are provided by default, so a value of zero for this
-- parameter does not necessarily mean no trace backs are available. -- parameter does not necessarily mean no trace backs are available.
-- Zero_Cost_Exceptions is set to one if zero cost exceptions are used for
-- this partition, and to zero if longjmp/setjmp exceptions are used.
-- Detect_Blocking indicates whether pragma Detect_Blocking is active or -- Detect_Blocking indicates whether pragma Detect_Blocking is active or
-- not. A value of zero indicates that the pragma is not present, while a -- not. A value of zero indicates that the pragma is not present, while a
-- value of 1 signals its presence in the partition. -- value of 1 signals its presence in the partition.
...@@ -607,9 +603,6 @@ package body Bindgen is ...@@ -607,9 +603,6 @@ package body Bindgen is
"""__gl_exception_tracebacks"");"); """__gl_exception_tracebacks"");");
end if; end if;
WBI (" Zero_Cost_Exceptions : Integer;");
WBI (" pragma Import (C, Zero_Cost_Exceptions, " &
"""__gl_zero_cost_exceptions"");");
WBI (" Detect_Blocking : Integer;"); WBI (" Detect_Blocking : Integer;");
WBI (" pragma Import (C, Detect_Blocking, " & WBI (" pragma Import (C, Detect_Blocking, " &
"""__gl_detect_blocking"");"); """__gl_detect_blocking"");");
...@@ -803,17 +796,6 @@ package body Bindgen is ...@@ -803,17 +796,6 @@ package body Bindgen is
WBI (" Exception_Tracebacks := 1;"); WBI (" Exception_Tracebacks := 1;");
end if; end if;
Set_String (" Zero_Cost_Exceptions := ");
if Zero_Cost_Exceptions_Specified then
Set_String ("1");
else
Set_String ("0");
end if;
Set_String (";");
Write_Statement_Buffer;
Set_String (" Detect_Blocking := "); Set_String (" Detect_Blocking := ");
if Detect_Blocking then if Detect_Blocking then
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 2002-2011, Free Software Foundation, Inc. -- -- Copyright (C) 2002-2012, 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- --
...@@ -720,7 +720,7 @@ package body GPrep is ...@@ -720,7 +720,7 @@ package body GPrep is
loop loop
begin begin
Switch := GNAT.Command_Line.Getopt ("D: b c C r s T u v"); Switch := GNAT.Command_Line.Getopt ("D: a b c C r s T u v");
case Switch is case Switch is
...@@ -731,6 +731,10 @@ package body GPrep is ...@@ -731,6 +731,10 @@ package body GPrep is
Process_Command_Line_Symbol_Definition Process_Command_Line_Symbol_Definition
(S => GNAT.Command_Line.Parameter); (S => GNAT.Command_Line.Parameter);
when 'a' =>
Opt.No_Deletion := True;
Opt.Undefined_Symbols_Are_False := True;
when 'b' => when 'b' =>
Opt.Blank_Deleted_Lines := True; Opt.Blank_Deleted_Lines := True;
......
...@@ -103,12 +103,14 @@ char *__gl_interrupt_states = 0; ...@@ -103,12 +103,14 @@ char *__gl_interrupt_states = 0;
int __gl_num_interrupt_states = 0; int __gl_num_interrupt_states = 0;
int __gl_unreserve_all_interrupts = 0; int __gl_unreserve_all_interrupts = 0;
int __gl_exception_tracebacks = 0; int __gl_exception_tracebacks = 0;
int __gl_zero_cost_exceptions = 0;
int __gl_detect_blocking = 0; int __gl_detect_blocking = 0;
int __gl_default_stack_size = -1; int __gl_default_stack_size = -1;
int __gl_leap_seconds_support = 0; int __gl_leap_seconds_support = 0;
int __gl_canonical_streams = 0; int __gl_canonical_streams = 0;
/* This value is not used anymore, but kept for bootstrapping purpose. */
int __gl_zero_cost_exceptions = 0;
/* Indication of whether synchronous signal handler has already been /* Indication of whether synchronous signal handler has already been
installed by a previous call to adainit. */ installed by a previous call to adainit. */
int __gnat_handler_installed = 0; int __gnat_handler_installed = 0;
......
...@@ -968,6 +968,12 @@ package Opt is ...@@ -968,6 +968,12 @@ package Opt is
-- in this variable (e.g. 2 = select second unit in file). A value of -- in this variable (e.g. 2 = select second unit in file). A value of
-- zero indicates that we are in normal (one unit per file) mode. -- zero indicates that we are in normal (one unit per file) mode.
No_Deletion : Boolean := False;
-- GNATPREP
-- Set by preprocessor switch -a. Do not eliminate any source text. Implies
-- Undefined_Symbols_Are_False. Useful to perform a syntax check on all
-- branches of #if constructs.
No_Main_Subprogram : Boolean := False; No_Main_Subprogram : Boolean := False;
-- GNATMAKE, GNATBIND -- GNATMAKE, GNATBIND
-- Set to True if compilation/binding of a program without main -- Set to True if compilation/binding of a program without main
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 2002-2010, Free Software Foundation, Inc. -- -- Copyright (C) 2002-2012, 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- --
...@@ -292,8 +292,8 @@ package body Prep is ...@@ -292,8 +292,8 @@ package body Prep is
Result.Value := End_String; Result.Value := End_String;
end if; end if;
-- Now, check the syntax of the symbol (we don't allow accented and -- Now, check the syntax of the symbol (we don't allow accented or
-- wide characters) -- wide characters).
if Name_Buffer (1) not in 'a' .. 'z' if Name_Buffer (1) not in 'a' .. 'z'
and then Name_Buffer (1) not in 'A' .. 'Z' and then Name_Buffer (1) not in 'A' .. 'Z'
...@@ -356,7 +356,7 @@ package body Prep is ...@@ -356,7 +356,7 @@ package body Prep is
begin begin
-- Always return False when not inside an #if statement -- Always return False when not inside an #if statement
if Pp_States.Last = Ground then if Opt.No_Deletion or else Pp_States.Last = Ground then
return False; return False;
else else
return Pp_States.Table (Pp_States.Last).Deleting; return Pp_States.Table (Pp_States.Last).Deleting;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 2003-2010, Free Software Foundation, Inc. -- -- Copyright (C) 2003-2012, 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- --
...@@ -60,6 +60,7 @@ package body Prepcomp is ...@@ -60,6 +60,7 @@ package body Prepcomp is
Undef_False : Boolean := False; Undef_False : Boolean := False;
Always_Blank : Boolean := False; Always_Blank : Boolean := False;
Comments : Boolean := False; Comments : Boolean := False;
No_Deletion : Boolean := False;
List_Symbols : Boolean := False; List_Symbols : Boolean := False;
Processed : Boolean := False; Processed : Boolean := False;
end record; end record;
...@@ -73,6 +74,7 @@ package body Prepcomp is ...@@ -73,6 +74,7 @@ package body Prepcomp is
Undef_False => False, Undef_False => False,
Always_Blank => False, Always_Blank => False,
Comments => False, Comments => False,
No_Deletion => False,
List_Symbols => False, List_Symbols => False,
Processed => False); Processed => False);
...@@ -330,6 +332,16 @@ package body Prepcomp is ...@@ -330,6 +332,16 @@ package body Prepcomp is
-- significant. -- significant.
case Sinput.Source (Token_Ptr) is case Sinput.Source (Token_Ptr) is
when 'a' =>
-- All source text preserved (also implies -u)
if Name_Len = 1 then
Current_Data.No_Deletion := True;
Current_Data.Undef_False := True;
OK := True;
end if;
when 'u' => when 'u' =>
-- Undefined symbol are False -- Undefined symbol are False
...@@ -581,15 +593,15 @@ package body Prepcomp is ...@@ -581,15 +593,15 @@ package body Prepcomp is
-- Set the preprocessing flags according to the preprocessing data -- Set the preprocessing flags according to the preprocessing data
if Current_Data.Comments and then not Current_Data.Always_Blank then if Current_Data.Comments and not Current_Data.Always_Blank then
Comment_Deleted_Lines := True; Comment_Deleted_Lines := True;
Blank_Deleted_Lines := False; Blank_Deleted_Lines := False;
else else
Comment_Deleted_Lines := False; Comment_Deleted_Lines := False;
Blank_Deleted_Lines := True; Blank_Deleted_Lines := True;
end if; end if;
No_Deletion := Current_Data.No_Deletion;
Undefined_Symbols_Are_False := Current_Data.Undef_False; Undefined_Symbols_Are_False := Current_Data.Undef_False;
List_Preprocessing_Symbols := Current_Data.List_Symbols; List_Preprocessing_Symbols := Current_Data.List_Symbols;
......
...@@ -341,6 +341,17 @@ package body System.Bignums is ...@@ -341,6 +341,17 @@ package body System.Bignums is
begin begin
Free_Bignum (XY2); Free_Bignum (XY2);
-- Raise storage error if intermediate value is getting too
-- large, which we arbitrarily define as 200 words for now!
if XY2S.Len > 200 then
Free_Bignum (XY2S);
raise Storage_Error with
"exponentiation result is too large";
end if;
-- Otherwise take care of even/odd cases
if (Y and 1) = 0 then if (Y and 1) = 0 then
return XY2S; return XY2S;
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
-- -- -- --
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
with Aspects; use Aspects;
with Atree; use Atree; with Atree; use Atree;
with Checks; use Checks; with Checks; use Checks;
with Debug; use Debug; with Debug; use Debug;
...@@ -14805,6 +14806,11 @@ package body Sem_Ch3 is ...@@ -14805,6 +14806,11 @@ package body Sem_Ch3 is
New_Id : Entity_Id; New_Id : Entity_Id;
Prev_Par : Node_Id; Prev_Par : Node_Id;
procedure Check_Duplicate_Aspects;
-- Check that aspects specified in a completion have not been specified
-- already in the partial view. Type_Invariant and others can be
-- specified on either view but never on both.
procedure Tag_Mismatch; procedure Tag_Mismatch;
-- Diagnose a tagged partial view whose full view is untagged. -- Diagnose a tagged partial view whose full view is untagged.
-- We post the message on the full view, with a reference to -- We post the message on the full view, with a reference to
...@@ -14813,6 +14819,38 @@ package body Sem_Ch3 is ...@@ -14813,6 +14819,38 @@ package body Sem_Ch3 is
-- so we determine the position of the error message from the -- so we determine the position of the error message from the
-- respective slocs of both. -- respective slocs of both.
-----------------------------
-- Check_Duplicate_Aspects --
-----------------------------
procedure Check_Duplicate_Aspects is
Prev_Aspects : constant List_Id := Aspect_Specifications (Prev_Par);
Full_Aspects : constant List_Id := Aspect_Specifications (N);
F_Spec, P_Spec : Node_Id;
begin
if Present (Prev_Aspects) and then Present (Full_Aspects) then
F_Spec := First (Full_Aspects);
while Present (F_Spec) loop
P_Spec := First (Prev_Aspects);
while Present (P_Spec) loop
if
Chars (Identifier (P_Spec)) = Chars (Identifier (F_Spec))
then
Error_Msg_N
("aspect already specified in private declaration",
F_Spec);
Remove (F_Spec);
return;
end if;
Next (P_Spec);
end loop;
Next (F_Spec);
end loop;
end if;
end Check_Duplicate_Aspects;
------------------ ------------------
-- Tag_Mismatch -- -- Tag_Mismatch --
------------------ ------------------
...@@ -15022,6 +15060,10 @@ package body Sem_Ch3 is ...@@ -15022,6 +15060,10 @@ package body Sem_Ch3 is
("declaration of full view must appear in private part", N); ("declaration of full view must appear in private part", N);
end if; end if;
if Ada_Version >= Ada_2012 then
Check_Duplicate_Aspects;
end if;
Copy_And_Swap (Prev, Id); Copy_And_Swap (Prev, Id);
Set_Has_Private_Declaration (Prev); Set_Has_Private_Declaration (Prev);
Set_Has_Private_Declaration (Id); Set_Has_Private_Declaration (Id);
......
...@@ -1345,9 +1345,10 @@ package body Sem_Ch9 is ...@@ -1345,9 +1345,10 @@ package body Sem_Ch9 is
-- Check for unreferenced variables etc. Before the Check_References -- Check for unreferenced variables etc. Before the Check_References
-- call, we transfer Never_Set_In_Source and Referenced flags from -- call, we transfer Never_Set_In_Source and Referenced flags from
-- parameters in the spec to the corresponding entities in the body, -- parameters in the spec to the corresponding entities in the body,
-- since we want the warnings on the body entities. Note that we do -- since we want the warnings on the body entities. Note that we do not
-- not have to transfer Referenced_As_LHS, since that flag can only -- have to transfer Referenced_As_LHS, since that flag can only be set
-- be set for simple variables. -- for simple variables, but we include Has_Pragma_Unreferenced,
-- which may have been specified for a formal in the body.
-- At the same time, we set the flags on the spec entities to suppress -- At the same time, we set the flags on the spec entities to suppress
-- any warnings on the spec formals, since we also scan the spec. -- any warnings on the spec formals, since we also scan the spec.
...@@ -1382,6 +1383,7 @@ package body Sem_Ch9 is ...@@ -1382,6 +1383,7 @@ package body Sem_Ch9 is
Set_Referenced (E2, Referenced (E1)); Set_Referenced (E2, Referenced (E1));
Set_Referenced (E1); Set_Referenced (E1);
Set_Has_Pragma_Unreferenced (E2, Has_Pragma_Unreferenced (E1));
Set_Entry_Component (E2, Entry_Component (E1)); Set_Entry_Component (E2, Entry_Component (E1));
<<Continue>> <<Continue>>
......
...@@ -199,7 +199,7 @@ package body Sem_Eval is ...@@ -199,7 +199,7 @@ package body Sem_Eval is
-- Tests to see if expression N whose single operand is Op1 is foldable, -- Tests to see if expression N whose single operand is Op1 is foldable,
-- i.e. the operand value is known at compile time. If the operation is -- i.e. the operand value is known at compile time. If the operation is
-- foldable, then Fold is True on return, and Stat indicates whether -- foldable, then Fold is True on return, and Stat indicates whether
-- the result is static (i.e. both operands were static). Note that it -- the result is static (i.e. the operand was static). Note that it
-- is quite possible for Fold to be True, and Stat to be False, since -- is quite possible for Fold to be True, and Stat to be False, since
-- there are cases in which we know the value of an operand even though -- there are cases in which we know the value of an operand even though
-- it is not technically static (e.g. the static lower bound of a range -- it is not technically static (e.g. the static lower bound of a range
...@@ -233,7 +233,7 @@ package body Sem_Eval is ...@@ -233,7 +233,7 @@ package body Sem_Eval is
Stat : out Boolean; Stat : out Boolean;
Fold : out Boolean); Fold : out Boolean);
-- Same processing, except applies to an expression N with two operands -- Same processing, except applies to an expression N with two operands
-- Op1 and Op2. -- Op1 and Op2. The result is static only if both operands are static.
function Test_In_Range function Test_In_Range
(N : Node_Id; (N : Node_Id;
...@@ -241,11 +241,11 @@ package body Sem_Eval is ...@@ -241,11 +241,11 @@ package body Sem_Eval is
Assume_Valid : Boolean; Assume_Valid : Boolean;
Fixed_Int : Boolean; Fixed_Int : Boolean;
Int_Real : Boolean) return Range_Membership; Int_Real : Boolean) return Range_Membership;
-- Common processing for Is_In_Range and Is_Out_Of_Range: -- Common processing for Is_In_Range and Is_Out_Of_Range: Returns In_Range
-- Returns In_Range or Out_Of_Range if it can be guaranteed at compile time -- or Out_Of_Range if it can be guaranteed at compile time that expression
-- that expression N is known to be in or out of range of the subtype Typ. -- N is known to be in or out of range of the subtype Typ. If not compile
-- If not compile time known, Unknown is returned. -- time known, Unknown is returned. See documentation of Is_In_Range for
-- See documentation of Is_In_Range for complete description of parameters. -- complete description of parameters.
procedure To_Bits (U : Uint; B : out Bits); procedure To_Bits (U : Uint; B : out Bits);
-- Converts a Uint value to a bit string of length B'Length -- Converts a Uint value to a bit string of length B'Length
...@@ -4046,12 +4046,18 @@ package body Sem_Eval is ...@@ -4046,12 +4046,18 @@ package body Sem_Eval is
-- We now have the literal with the right value, both the actual type -- We now have the literal with the right value, both the actual type
-- and the expected type of this literal are taken from the expression -- and the expected type of this literal are taken from the expression
-- that was evaluated. -- that was evaluated. So now we do the Analyze and Resolve.
-- Note that we have to reset Is_Static_Expression both after the
-- analyze step (because Resolve will evaluate the literal, which
-- will cause semantic errors if it is marked as static), and after
-- the Resolve step (since Resolve in some cases sets this flag).
Analyze (N); Analyze (N);
Set_Is_Static_Expression (N, Static); Set_Is_Static_Expression (N, Static);
Set_Etype (N, Typ); Set_Etype (N, Typ);
Resolve (N); Resolve (N);
Set_Is_Static_Expression (N, Static);
end Fold_Str; end Fold_Str;
--------------- ---------------
...@@ -4100,12 +4106,18 @@ package body Sem_Eval is ...@@ -4100,12 +4106,18 @@ package body Sem_Eval is
-- We now have the literal with the right value, both the actual type -- We now have the literal with the right value, both the actual type
-- and the expected type of this literal are taken from the expression -- and the expected type of this literal are taken from the expression
-- that was evaluated. -- that was evaluated. So now we do the Analyze and Resolve.
-- Note that we have to reset Is_Static_Expression both after the
-- analyze step (because Resolve will evaluate the literal, which
-- will cause semantic errors if it is marked as static), and after
-- the Resolve step (since Resolve in some cases sets this flag).
Analyze (N); Analyze (N);
Set_Is_Static_Expression (N, Static); Set_Is_Static_Expression (N, Static);
Set_Etype (N, Typ); Set_Etype (N, Typ);
Resolve (N); Resolve (N);
Set_Is_Static_Expression (N, Static);
end Fold_Uint; end Fold_Uint;
---------------- ----------------
...@@ -4135,12 +4147,20 @@ package body Sem_Eval is ...@@ -4135,12 +4147,20 @@ package body Sem_Eval is
Set_Original_Entity (N, Ent); Set_Original_Entity (N, Ent);
-- Both the actual and expected type comes from the original expression -- We now have the literal with the right value, both the actual type
-- and the expected type of this literal are taken from the expression
-- that was evaluated. So now we do the Analyze and Resolve.
-- Note that we have to reset Is_Static_Expression both after the
-- analyze step (because Resolve will evaluate the literal, which
-- will cause semantic errors if it is marked as static), and after
-- the Resolve step (since Resolve in some cases sets this flag).
Analyze (N); Analyze (N);
Set_Is_Static_Expression (N, Static); Set_Is_Static_Expression (N, Static);
Set_Etype (N, Typ); Set_Etype (N, Typ);
Resolve (N); Resolve (N);
Set_Is_Static_Expression (N, Static);
end Fold_Ureal; end Fold_Ureal;
--------------- ---------------
......
...@@ -14802,10 +14802,17 @@ package body Sem_Prag is ...@@ -14802,10 +14802,17 @@ package body Sem_Prag is
loop loop
Set_Warnings_Off Set_Warnings_Off
(E, (Chars (Get_Pragma_Arg (Arg1)) = (E, (Chars (Get_Pragma_Arg (Arg1)) =
Name_Off)); Name_Off));
-- For OFF case, make entry in warnings off
-- pragma table for later processing. But we do
-- not do that within an instance, since these
-- warnings are about what is needed in the
-- template, not an instance of it.
if Chars (Get_Pragma_Arg (Arg1)) = Name_Off if Chars (Get_Pragma_Arg (Arg1)) = Name_Off
and then Warn_On_Warnings_Off and then Warn_On_Warnings_Off
and then not In_Instance
then then
Warnings_Off_Pragmas.Append ((N, E)); Warnings_Off_Pragmas.Append ((N, E));
end if; end if;
......
...@@ -12419,15 +12419,4 @@ package Sinfo is ...@@ -12419,15 +12419,4 @@ package Sinfo is
pragma Inline (Set_Was_Originally_Stub); pragma Inline (Set_Was_Originally_Stub);
pragma Inline (Set_Withed_Body); pragma Inline (Set_Withed_Body);
--------------
-- Synonyms --
--------------
-- These synonyms are to aid in transition, they should eventually be
-- removed when all remaining references to the obsolete name are gone.
N_Return_Statement : constant Node_Kind := N_Simple_Return_Statement;
-- Rename N_Simple_Return_Statement to be N_Return_Statement. Clients
-- should refer to N_Simple_Return_Statement.
end Sinfo; end Sinfo;
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