aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/par.adb
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2005-03-18 12:50:53 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2005-03-18 12:50:53 +0100
commitbac0819a21796b902f9c975c6ed03bde4dc65ad3 (patch)
tree5a584fee50bf529723f9b124dcac9813b990d2a1 /gcc/ada/par.adb
parent7b8ee2f629801241697a61ef140df073f551d330 (diff)
downloadgcc-bac0819a21796b902f9c975c6ed03bde4dc65ad3.zip
gcc-bac0819a21796b902f9c975c6ed03bde4dc65ad3.tar.gz
gcc-bac0819a21796b902f9c975c6ed03bde4dc65ad3.tar.bz2
par.adb (Par): Improved msg for attempt to recompile predefined unit
2005-03-17 Robert Dewar <dewar@adacore.com> * par.adb (Par): Improved msg for attempt to recompile predefined unit From-SVN: r96672
Diffstat (limited to 'gcc/ada/par.adb')
-rw-r--r--gcc/ada/par.adb60
1 files changed, 37 insertions, 23 deletions
diff --git a/gcc/ada/par.adb b/gcc/ada/par.adb
index 8b4e690..290ad0b 100644
--- a/gcc/ada/par.adb
+++ b/gcc/ada/par.adb
@@ -1318,9 +1318,9 @@ begin
end if;
end;
- -- Here if we are not skipping a file in multiple unit per file
- -- mode. Parse the unit that we are interested in. Note that in
- -- check syntax mode we are interested in all units in the file.
+ -- Here if we are not skipping a file in multiple unit per file
+ -- mode. Parse the unit that we are interested in. Note that in
+ -- check syntax mode we are interested in all units in the file.
else
declare
@@ -1355,25 +1355,38 @@ begin
Name := Uname (Uname'First .. Uname'Last - 2);
- if (Name = "ada" or else
- Name = "calendar" or else
- Name = "interfaces" or else
- Name = "system" or else
- Name = "machine_code" or else
- Name = "unchecked_conversion" or else
- Name = "unchecked_deallocation"
- or else (Name'Length > 4
- and then
- Name (Name'First .. Name'First + 3) =
- "ada.")
- or else (Name'Length > 11
- and then
- Name (Name'First .. Name'First + 10) =
- "interfaces.")
- or else (Name'Length > 7
- and then
- Name (Name'First .. Name'First + 6) =
- "system."))
+ if Name = "ada" or else
+ Name = "calendar" or else
+ Name = "interfaces" or else
+ Name = "system" or else
+ Name = "machine_code" or else
+ Name = "unchecked_conversion" or else
+ Name = "unchecked_deallocation"
+ then
+ Error_Msg
+ ("language defined units may not be recompiled",
+ Sloc (Unit (Comp_Unit_Node)));
+
+ elsif Name'Length > 4
+ and then
+ Name (Name'First .. Name'First + 3) = "ada."
+ then
+ Error_Msg
+ ("descendents of package Ada " &
+ "may not be compiled",
+ Sloc (Unit (Comp_Unit_Node)));
+
+ elsif Name'Length > 11
+ and then
+ Name (Name'First .. Name'First + 10) = "interfaces."
+ then
+ Error_Msg
+ ("descendents of package Interfaces " &
+ "may not be compiled",
+ Sloc (Unit (Comp_Unit_Node)));
+
+ elsif Name'Length > 7
+ and then Name (Name'First .. Name'First + 6) = "system."
and then Name /= "system.rpc"
and then
(Name'Length < 11
@@ -1381,7 +1394,8 @@ begin
"system.rpc.")
then
Error_Msg
- ("language defined units may not be recompiled",
+ ("descendents of package System " &
+ "may not be compiled",
Sloc (Unit (Comp_Unit_Node)));
end if;
end;