[multiple changes]
2012-10-29 Yannick Moy <moy@adacore.com> * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): Add special case for case expression alternative. (Is_Signed_Integer_Arithmetic_Op): Remove special case for case expression alternative. * exp_ch4.adb Minor reformatting. 2012-10-29 Thomas Quinot <quinot@adacore.com> * sem_elab.adb: Minor reformatting. 2012-10-29 Bob Duff <duff@adacore.com> * sem_res.adb: Minor: Remove redundant test. From-SVN: r192914
This commit is contained in:
parent
e63f29e814
commit
f66369942f
5 changed files with 33 additions and 25 deletions
|
@ -1,3 +1,19 @@
|
|||
2012-10-29 Yannick Moy <moy@adacore.com>
|
||||
|
||||
* checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
|
||||
Add special case for case expression alternative.
|
||||
(Is_Signed_Integer_Arithmetic_Op): Remove special case for case
|
||||
expression alternative.
|
||||
* exp_ch4.adb Minor reformatting.
|
||||
|
||||
2012-10-29 Thomas Quinot <quinot@adacore.com>
|
||||
|
||||
* sem_elab.adb: Minor reformatting.
|
||||
|
||||
2012-10-29 Bob Duff <duff@adacore.com>
|
||||
|
||||
* sem_res.adb: Minor: Remove redundant test.
|
||||
|
||||
2012-10-29 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* pprint.ads, pprint.adb, adabkend.ads, adabkend.adb,
|
||||
|
|
|
@ -1108,7 +1108,11 @@ package body Checks is
|
|||
or else Nkind (P) in N_Membership_Test
|
||||
or else Nkind (P) in N_Op_Compare
|
||||
|
||||
-- We may also be a range operand in a membership test
|
||||
-- This is also true for an alternative in a case expression
|
||||
|
||||
or else Nkind (P) = N_Case_Expression_Alternative
|
||||
|
||||
-- This is also true for a range operand in a membership test
|
||||
|
||||
or else (Nkind (P) = N_Range
|
||||
and then Nkind (Parent (P)) in N_Membership_Test)
|
||||
|
@ -6268,9 +6272,6 @@ package body Checks is
|
|||
when N_If_Expression | N_Case_Expression =>
|
||||
return Is_Signed_Integer_Type (Etype (N));
|
||||
|
||||
when N_Case_Expression_Alternative =>
|
||||
return Is_Signed_Integer_Type (Etype (Parent (N)));
|
||||
|
||||
when others =>
|
||||
return False;
|
||||
end case;
|
||||
|
|
|
@ -3877,8 +3877,8 @@ package body Exp_Ch4 is
|
|||
end if;
|
||||
|
||||
-- Right operand is a subtype name and the subtype has a predicate. We
|
||||
-- have to make sure predicate is checked, and for that we need to use
|
||||
-- the standard N_In circuitry with appropriate types.
|
||||
-- have to make sure the predicate is checked, and for that we need to
|
||||
-- use the standard N_In circuitry with appropriate types.
|
||||
|
||||
else
|
||||
pragma Assert (Present (Predicate_Function (Etype (Rop))));
|
||||
|
@ -3921,7 +3921,7 @@ package body Exp_Ch4 is
|
|||
-- Bnn
|
||||
-- end
|
||||
|
||||
-- A bit gruesome, but here goes.
|
||||
-- A bit gruesome, but there doesn't seem to be a simpler way
|
||||
|
||||
declare
|
||||
Blk : constant Node_Id := Make_Bignum_Block (Loc);
|
||||
|
@ -3937,10 +3937,8 @@ package body Exp_Ch4 is
|
|||
|
||||
Nin :=
|
||||
Make_In (Loc,
|
||||
Left_Opnd =>
|
||||
Convert_To (Base_Type (Etype (Rop)),
|
||||
New_Occurrence_Of (Lnn, Loc)),
|
||||
Right_Opnd => New_Occurrence_Of (Etype (Rop), Loc));
|
||||
Left_Opnd => Convert_To (TB, New_Occurrence_Of (Lnn, Loc)),
|
||||
Right_Opnd => New_Occurrence_Of (T, Loc));
|
||||
Set_No_Minimize_Eliminate (Nin);
|
||||
|
||||
-- Now decorate the block
|
||||
|
|
|
@ -1137,15 +1137,13 @@ package body Sem_Elab is
|
|||
|
||||
-- Here we definitely have a bad instantiation
|
||||
|
||||
Error_Msg_NE
|
||||
("?cannot instantiate& before body seen", N, Ent);
|
||||
Error_Msg_NE ("?cannot instantiate& before body seen", N, Ent);
|
||||
|
||||
if Present (Instance_Spec (N)) then
|
||||
Supply_Bodies (Instance_Spec (N));
|
||||
end if;
|
||||
|
||||
Error_Msg_N
|
||||
("\?Program_Error will be raised at run time", N);
|
||||
Error_Msg_N ("\?Program_Error will be raised at run time", N);
|
||||
Insert_Elab_Check (N);
|
||||
Set_ABE_Is_Certain (N);
|
||||
end Check_Bad_Instantiation;
|
||||
|
@ -2078,8 +2076,7 @@ package body Sem_Elab is
|
|||
|
||||
Elab_Visited.Append (E);
|
||||
|
||||
-- If the call is to a function that renames a literal, no check
|
||||
-- is needed.
|
||||
-- If the call is to a function that renames a literal, no check needed
|
||||
|
||||
if Ekind (E) = E_Enumeration_Literal then
|
||||
return;
|
||||
|
@ -2188,12 +2185,10 @@ package body Sem_Elab is
|
|||
Error_Msg_NE
|
||||
("?cannot instantiate& before body seen", N, Orig_Ent);
|
||||
else
|
||||
Error_Msg_NE
|
||||
("?cannot call& before body seen", N, Orig_Ent);
|
||||
Error_Msg_NE ("?cannot call& before body seen", N, Orig_Ent);
|
||||
end if;
|
||||
|
||||
Error_Msg_N
|
||||
("\?Program_Error will be raised at run time", N);
|
||||
Error_Msg_N ("\?Program_Error will be raised at run time", N);
|
||||
Insert_Elab_Check (N);
|
||||
|
||||
-- Call is not at outer level
|
||||
|
|
|
@ -6115,9 +6115,7 @@ package body Sem_Res is
|
|||
|
||||
-- Check comparison on unordered enumeration
|
||||
|
||||
if Comes_From_Source (N)
|
||||
and then Bad_Unordered_Enumeration_Reference (N, Etype (L))
|
||||
then
|
||||
if Bad_Unordered_Enumeration_Reference (N, Etype (L)) then
|
||||
Error_Msg_N ("comparison on unordered enumeration type?", N);
|
||||
end if;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue