aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/frontend.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2009-04-15 12:46:56 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2009-04-15 12:46:56 +0200
commit1f6821b4dcdcc3bf95f6aa4551cc755e113162be (patch)
tree10bddee8ce636cf702726cb420bef283041bab7d /gcc/ada/frontend.adb
parent507ed3fd5bb9f377bade052259a61d53d3a7bedc (diff)
downloadgcc-1f6821b4dcdcc3bf95f6aa4551cc755e113162be.zip
gcc-1f6821b4dcdcc3bf95f6aa4551cc755e113162be.tar.gz
gcc-1f6821b4dcdcc3bf95f6aa4551cc755e113162be.tar.bz2
[multiple changes]
2009-04-15 Robert Dewar <dewar@adacore.com> * frontend.adb (Frontend): Set proper default for Warn_On_Non_Local_Exception. * opt.ads (Exception_Handler_Encountered): New flag (No_Warn_On_Non_Local_Exception): New flag * par-ch11.adb (P_Exception_Handler): Set Exception_Handler_Encountered * sem_warn.adb (Set_Warning_Switch): Set No_Warn_On_Non_Local_Exception (Set_Dot_Warning_Switch): Set No_Warn_On_Non_Local_Exception 2009-04-15 Cyrille Comar <comar@adacore.com> * s-tassta.adb, a-exextr.adb, a-elchha.adb (Ada.Exception.Last_Chance_Handler): Do not print unhandled exception message when exception traces are active since it would generate redundant information. (Exception_Traces.Notify_Exception): put message output by a critical section to avoid unsynchronized output. (Trace_Unhandled_Exception_In_Task): put message output by a critical section to avoid unsynchronized output. 2009-04-15 Emmanuel Briot <briot@adacore.com> * g-comlin.adb, prj-tree.adb, prj-tree.ads, prj.adb, prj.ads (Free): New subprogram. From-SVN: r146100
Diffstat (limited to 'gcc/ada/frontend.adb')
-rw-r--r--gcc/ada/frontend.adb25
1 files changed, 19 insertions, 6 deletions
diff --git a/gcc/ada/frontend.adb b/gcc/ada/frontend.adb
index 8f16a11..5fd2822 100644
--- a/gcc/ada/frontend.adb
+++ b/gcc/ada/frontend.adb
@@ -43,6 +43,8 @@ with Opt; use Opt;
with Osint;
with Par;
with Prepcomp;
+with Restrict; use Restrict;
+with Rident; use Rident;
with Rtsfind;
with Sprint;
with Scn; use Scn;
@@ -64,12 +66,12 @@ procedure Frontend is
-- Gather configuration pragmas
begin
- -- Carry out package initializations. These are initializations which
- -- might logically be performed at elaboration time, were it not for
- -- the fact that we may be doing things more than once in the big loop
- -- over files. Like elaboration, the order in which these calls are
- -- made is in some cases important. For example, Lib cannot be
- -- initialized until Namet, since it uses names table entries.
+ -- Carry out package initializations. These are initializations which might
+ -- logically be performed at elaboration time, were it not for the fact
+ -- that we may be doing things more than once in the big loop over files.
+ -- Like elaboration, the order in which these calls are made is in some
+ -- cases important. For example, Lib cannot be initialized until Namet,
+ -- since it uses names table entries.
Rtsfind.Initialize;
Atree.Initialize;
@@ -275,6 +277,17 @@ begin
end;
end if;
+ -- If we have restriction No_Exception_Propagation, and we did not have
+ -- an explicit switch turning off Warn_On_Local_Exception, then turn on
+ -- this warning by default if we have encountered an exception handler.
+
+ if Restriction_Active (No_Exception_Propagation)
+ and then not No_Warn_On_Non_Local_Exception
+ and then Exception_Handler_Encountered
+ then
+ Warn_On_Non_Local_Exception := True;
+ end if;
+
-- Now on to the semantics. Skip if in syntax only mode
if Operating_Mode /= Check_Syntax then