diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-02 15:12:40 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-02 15:12:40 +0200 |
commit | 75c907757cbfa48b37eaee5fde2769eae2fd204d (patch) | |
tree | 7e412a06fa2cddcc5dd5e44fe7519125e085db6b /gcc/ada/cstand.adb | |
parent | ded8909b241d9fd6e60981085c0fd9246392472f (diff) | |
download | gcc-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.adb | 24 |
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; |