aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/cstand.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-08-02 15:12:40 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-02 15:12:40 +0200
commit75c907757cbfa48b37eaee5fde2769eae2fd204d (patch)
tree7e412a06fa2cddcc5dd5e44fe7519125e085db6b /gcc/ada/cstand.adb
parentded8909b241d9fd6e60981085c0fd9246392472f (diff)
downloadgcc-75c907757cbfa48b37eaee5fde2769eae2fd204d.zip
gcc-75c907757cbfa48b37eaee5fde2769eae2fd204d.tar.gz
gcc-75c907757cbfa48b37eaee5fde2769eae2fd204d.tar.bz2
[multiple changes]
2011-08-02 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with "of", pre-analyze expression in case it is a function call with finalization actions that must be placed ahead of the loop. * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present on an Ada2012 iterator, insert them ahead of the rewritten loop. 2011-08-02 Geert Bosch <bosch@adacore.com> * cstand.adb (Create_Float_Types): Only consider C's long double for Long_Long_Float, in addition to double. From-SVN: r177146
Diffstat (limited to 'gcc/ada/cstand.adb')
-rw-r--r--gcc/ada/cstand.adb24
1 files changed, 4 insertions, 20 deletions
diff --git a/gcc/ada/cstand.adb b/gcc/ada/cstand.adb
index 2df2a40..26d5017 100644
--- a/gcc/ada/cstand.adb
+++ b/gcc/ada/cstand.adb
@@ -466,29 +466,13 @@ package body CStand is
declare
Max_HW_Digs : constant := 18;
- LF_Digs : constant Pos :=
- UI_To_Int (Digits_Value (Standard_Long_Float));
+ -- Maximum hardware digits supported
+
LLF : Entity_Id := Find_Back_End_Float_Type ("long double");
- E : Elmt_Id := First_Elmt (Back_End_Float_Types);
- N : Node_Id;
+ -- Entity for long double type
begin
- if Present (LLF) and then Digits_Value (LLF) > Max_HW_Digs then
- LLF := Empty;
- end if;
-
- while No (LLF) and then Present (E) loop
- N := Node (E);
- if UI_To_Int (Digits_Value (N)) in LF_Digs + 1 .. Max_HW_Digs
- and then Machine_Radix_Value (N) = Uint_2
- then
- LLF := N;
- end if;
-
- Next_Elmt (E);
- end loop;
-
- if No (LLF) then
+ if No (LLF) or else Digits_Value (LLF) > Max_HW_Digs then
LLF := Standard_Long_Float;
end if;