Commit f6636994 by Arnaud Charlet

[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
parent e63f29e8
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> 2012-10-29 Arnaud Charlet <charlet@adacore.com>
* pprint.ads, pprint.adb, adabkend.ads, adabkend.adb, * pprint.ads, pprint.adb, adabkend.ads, adabkend.adb,
......
...@@ -1108,7 +1108,11 @@ package body Checks is ...@@ -1108,7 +1108,11 @@ package body Checks is
or else Nkind (P) in N_Membership_Test or else Nkind (P) in N_Membership_Test
or else Nkind (P) in N_Op_Compare 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 or else (Nkind (P) = N_Range
and then Nkind (Parent (P)) in N_Membership_Test) and then Nkind (Parent (P)) in N_Membership_Test)
...@@ -6268,9 +6272,6 @@ package body Checks is ...@@ -6268,9 +6272,6 @@ package body Checks is
when N_If_Expression | N_Case_Expression => when N_If_Expression | N_Case_Expression =>
return Is_Signed_Integer_Type (Etype (N)); return Is_Signed_Integer_Type (Etype (N));
when N_Case_Expression_Alternative =>
return Is_Signed_Integer_Type (Etype (Parent (N)));
when others => when others =>
return False; return False;
end case; end case;
......
...@@ -3877,8 +3877,8 @@ package body Exp_Ch4 is ...@@ -3877,8 +3877,8 @@ package body Exp_Ch4 is
end if; end if;
-- Right operand is a subtype name and the subtype has a predicate. We -- 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 -- have to make sure the predicate is checked, and for that we need to
-- the standard N_In circuitry with appropriate types. -- use the standard N_In circuitry with appropriate types.
else else
pragma Assert (Present (Predicate_Function (Etype (Rop)))); pragma Assert (Present (Predicate_Function (Etype (Rop))));
...@@ -3921,7 +3921,7 @@ package body Exp_Ch4 is ...@@ -3921,7 +3921,7 @@ package body Exp_Ch4 is
-- Bnn -- Bnn
-- end -- end
-- A bit gruesome, but here goes. -- A bit gruesome, but there doesn't seem to be a simpler way
declare declare
Blk : constant Node_Id := Make_Bignum_Block (Loc); Blk : constant Node_Id := Make_Bignum_Block (Loc);
...@@ -3937,10 +3937,8 @@ package body Exp_Ch4 is ...@@ -3937,10 +3937,8 @@ package body Exp_Ch4 is
Nin := Nin :=
Make_In (Loc, Make_In (Loc,
Left_Opnd => Left_Opnd => Convert_To (TB, New_Occurrence_Of (Lnn, Loc)),
Convert_To (Base_Type (Etype (Rop)), Right_Opnd => New_Occurrence_Of (T, Loc));
New_Occurrence_Of (Lnn, Loc)),
Right_Opnd => New_Occurrence_Of (Etype (Rop), Loc));
Set_No_Minimize_Eliminate (Nin); Set_No_Minimize_Eliminate (Nin);
-- Now decorate the block -- Now decorate the block
......
...@@ -1137,15 +1137,13 @@ package body Sem_Elab is ...@@ -1137,15 +1137,13 @@ package body Sem_Elab is
-- Here we definitely have a bad instantiation -- Here we definitely have a bad instantiation
Error_Msg_NE Error_Msg_NE ("?cannot instantiate& before body seen", N, Ent);
("?cannot instantiate& before body seen", N, Ent);
if Present (Instance_Spec (N)) then if Present (Instance_Spec (N)) then
Supply_Bodies (Instance_Spec (N)); Supply_Bodies (Instance_Spec (N));
end if; end if;
Error_Msg_N Error_Msg_N ("\?Program_Error will be raised at run time", N);
("\?Program_Error will be raised at run time", N);
Insert_Elab_Check (N); Insert_Elab_Check (N);
Set_ABE_Is_Certain (N); Set_ABE_Is_Certain (N);
end Check_Bad_Instantiation; end Check_Bad_Instantiation;
...@@ -2078,8 +2076,7 @@ package body Sem_Elab is ...@@ -2078,8 +2076,7 @@ package body Sem_Elab is
Elab_Visited.Append (E); Elab_Visited.Append (E);
-- If the call is to a function that renames a literal, no check -- If the call is to a function that renames a literal, no check needed
-- is needed.
if Ekind (E) = E_Enumeration_Literal then if Ekind (E) = E_Enumeration_Literal then
return; return;
...@@ -2188,12 +2185,10 @@ package body Sem_Elab is ...@@ -2188,12 +2185,10 @@ package body Sem_Elab is
Error_Msg_NE Error_Msg_NE
("?cannot instantiate& before body seen", N, Orig_Ent); ("?cannot instantiate& before body seen", N, Orig_Ent);
else else
Error_Msg_NE Error_Msg_NE ("?cannot call& before body seen", N, Orig_Ent);
("?cannot call& before body seen", N, Orig_Ent);
end if; end if;
Error_Msg_N Error_Msg_N ("\?Program_Error will be raised at run time", N);
("\?Program_Error will be raised at run time", N);
Insert_Elab_Check (N); Insert_Elab_Check (N);
-- Call is not at outer level -- Call is not at outer level
......
...@@ -6115,9 +6115,7 @@ package body Sem_Res is ...@@ -6115,9 +6115,7 @@ package body Sem_Res is
-- Check comparison on unordered enumeration -- Check comparison on unordered enumeration
if Comes_From_Source (N) if Bad_Unordered_Enumeration_Reference (N, Etype (L)) then
and then Bad_Unordered_Enumeration_Reference (N, Etype (L))
then
Error_Msg_N ("comparison on unordered enumeration type?", N); Error_Msg_N ("comparison on unordered enumeration type?", N);
end if; end if;
......
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