aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/lib-load.adb
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2015-02-05 14:31:10 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2015-02-05 15:31:10 +0100
commitee7c8ffd33b0919d52b413c4eb816062f2e8cbc5 (patch)
treee4eb0f56500b2cba4f989892945267e5539059ff /gcc/ada/lib-load.adb
parent4ed8ef2667fcedbdc04d6ef6c0a2df702131fccc (diff)
downloadgcc-ee7c8ffd33b0919d52b413c4eb816062f2e8cbc5.zip
gcc-ee7c8ffd33b0919d52b413c4eb816062f2e8cbc5.tar.gz
gcc-ee7c8ffd33b0919d52b413c4eb816062f2e8cbc5.tar.bz2
errout.adb (Error_Msg_Internal): For non-serious error set Fatal_Error to Ignored.
2015-02-05 Robert Dewar <dewar@adacore.com> * errout.adb (Error_Msg_Internal): For non-serious error set Fatal_Error to Ignored. * lib-load.adb (Load_Unit): Minor comment updates. * sem_ch10.adb (Analyze_With_Clause): Propagate Fatal_Error setting from with'ed unit to with'ing unit. * sem_prag.adb (Analyze_Pragma, case Warnings): Document handling of ambiguity. From-SVN: r220450
Diffstat (limited to 'gcc/ada/lib-load.adb')
-rw-r--r--gcc/ada/lib-load.adb10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ada/lib-load.adb b/gcc/ada/lib-load.adb
index fc52f84..aef313f 100644
--- a/gcc/ada/lib-load.adb
+++ b/gcc/ada/lib-load.adb
@@ -740,16 +740,24 @@ package body Lib.Load is
goto Done;
end if;
- -- If loaded unit had a fatal error, then caller inherits it
+ -- If loaded unit had a fatal error, then caller inherits setting
if Present (Error_Node) then
case Units.Table (Unum).Fatal_Error is
+
+ -- Nothing to do if with'ed unit had no error
+
when None =>
null;
+ -- If with'ed unit had a detected fatal error, propagate it
+
when Error_Detected =>
Units.Table (Calling_Unit).Fatal_Error := Error_Detected;
+ -- If with'ed unit had an ignored error, then propagate it
+ -- but do not overide an existring setting.
+
when Error_Ignored =>
if Units.Table (Calling_Unit).Fatal_Error = None then
Units.Table (Calling_Unit).Fatal_Error :=