summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch4.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-24 15:09:40 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-24 15:09:40 +0000
commit630b6d55e2c3e15945a7ea39d14a9672d2e3f08c (patch)
treed45dd7dade3c3d765f7a03a223fc0c16d070f786 /gcc/ada/exp_ch4.adb
parent2da355155a16445440cdd9ffedd55dd9c5771eb8 (diff)
downloadgcc-630b6d55e2c3e15945a7ea39d14a9672d2e3f08c.tar.gz
2014-02-24 Yannick Moy <moy@adacore.com>
* freeze.adb (Freeze_Entity): Do not issue warning for pre/post being ignored on imported subprogram in GNATprove mode. 2014-02-24 Robert Dewar <dewar@adacore.com> * exp_ch5.adb, sem_ch5.adb, sem_type.adb, sem_res.adb, sem_attr.adb, stand.ads, sem_eval.adb: Minor reformatting. 2014-02-24 Yannick Moy <moy@adacore.com> * sem_prag.adb: Minor rewording in error message. 2014-02-24 Johannes Kanig <kanig@adacore.com> * exp_util.adb (Expand_Subtype_From_Expr): Do not expand subtypes in GNATprove_mode, gnat2why doesn't need nor use these types. 2014-02-24 Gary Dismukes <dismukes@adacore.com> * exp_ch4.adb (Expand_N_Op_Expon): On the AAMP target, in the case of signed integer exponentiation that uses a run-time routine, always select the Exp_* versions, since overflow checking is automatically done by AAMP arithmetic instructions. 2014-02-24 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): When the related context is a package instace, insert pragma Abstract_State after all internally-generated renamings related to the instance "header". 2014-02-24 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Declarations): Analyze Contract of abstract subprograms. * sem_disp.adb (Check_Dispatching_Context): A non-dispatching call to an abstract subprogram is legal if it appears in a pre/postcondition of another abstract operation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208070 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch4.adb')
-rw-r--r--gcc/ada/exp_ch4.adb12
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb
index 36c12acd206..b11506ff9a6 100644
--- a/gcc/ada/exp_ch4.adb
+++ b/gcc/ada/exp_ch4.adb
@@ -7611,7 +7611,11 @@ package body Exp_Ch4 is
then
Etyp := Standard_Long_Long_Integer;
- if Ovflo then
+ -- Overflow checking is the only choice on the AAMP target, where
+ -- arithmetic instructions check overflow automatically, so only
+ -- one version of the exponentiation unit is needed.
+
+ if Ovflo or else AAMP_On_Target then
Rent := RE_Exp_Long_Long_Integer;
else
Rent := RE_Exn_Long_Long_Integer;
@@ -7620,7 +7624,11 @@ package body Exp_Ch4 is
elsif Is_Signed_Integer_Type (Rtyp) then
Etyp := Standard_Integer;
- if Ovflo then
+ -- Overflow checking is the only choice on the AAMP target, where
+ -- arithmetic instructions check overflow automatically, so only
+ -- one version of the exponentiation unit is needed.
+
+ if Ovflo or else AAMP_On_Target then
Rent := RE_Exp_Integer;
else
Rent := RE_Exn_Integer;