+2013-10-14 Robert Dewar <dewar@adacore.com>
+
+ * gnat_ugn.texi: Document -gnateu switch.
+ * opt.ads (Ignore_Unrecognized_VWY_Switches): New switch.
+ * stylesw.adb: Ignore unrecognized switch if
+ Ignore_Unrecognized_VWY_Switches set.
+ * switch-c.adb: Implement -gnateu (sets
+ Ignore_Unrecognized_VWY_Switches).
+ * validsw.adb: Ignore unrecognized switch if
+ Ignore_Unrecognized_VWY_Switches set.
+ * warnsw.adb: Ignore unrecognized switch if
+ Ignore_Unrecognized_VWY_Switches set.
+
2013-10-14 Robert Dewar <dewar@adacore.com>
* exp_prag.adb, sem_prag.adb, a-exexda.adb, s-vmexta.ads: Minor
@cindex @option{-gnatet} (@command{gcc})
Generate target dependent information.
+@item -gnateu
+@cindex @option{-gnateu} (@command{gcc})
+Ignore unrecognized validity, warning, and style switches that
+apppear after this switch is given. This may be useful when
+compiling sources developed on a later version of the compiler
+with an earlier version. Of course the earlier version must
+support this switch.
+
@item ^-gnateV^/PARAMETER_VALIDITY_CHECK^
@cindex @option{-gnateV} (@command{gcc})
Check validity of subprogram parameters.
-- Set True to ignore all Style_Checks pragmas. Can be set True by use
-- of -gnateY.
+ Ignore_Unrecognized_VWY_Switches : Boolean := False;
+ -- GNAT
+ -- Set True to ignore unrecognized y, V, w switches. Can be set True
+ -- by use of -gnateu, causing subsequent unrecognized switches to result
+ -- in a warning rather than an error.
+
Implementation_Unit_Warnings : Boolean := True;
-- GNAT
-- Set True to active warnings for use of implementation internal units.
with Hostparm; use Hostparm;
with Opt; use Opt;
+with Output; use Output;
package body Stylesw is
null;
when others =>
- Err_Col := Err_Col - 1;
- Bad_Style_Switch ("invalid style switch: " & C);
- return;
+ if Ignore_Unrecognized_VWY_Switches then
+ Write_Line ("unrecognized switch -gnaty" & C & " ignored");
+ else
+ Err_Col := Err_Col - 1;
+ Bad_Style_Switch ("invalid style switch: " & C);
+ return;
+ end if;
end case;
-- Turning switches off
null;
when others =>
- Err_Col := Err_Col - 1;
- Bad_Style_Switch ("invalid style switch: " & C);
- return;
+ if Ignore_Unrecognized_VWY_Switches then
+ Write_Line ("unrecognized switch -gnaty-" & C & " ignored");
+ else
+ Err_Col := Err_Col - 1;
+ Bad_Style_Switch ("invalid style switch: " & C);
+ return;
+ end if;
end case;
end if;
end loop;
return;
+ -- -gnateu (unrecognized y,V,w switches)
+
+ when 'u' =>
+ Ptr := Ptr + 1;
+ Ignore_Unrecognized_VWY_Switches := True;
+
-- -gnateV (validity checks on parameters)
when 'V' =>
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2012, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2013, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- --
------------------------------------------------------------------------------
-with Opt; use Opt;
+with Opt; use Opt;
+with Output; use Output;
package body Validsw is
null;
when others =>
- OK := False;
- Err_Col := J - 1;
- return;
+ if Ignore_Unrecognized_VWY_Switches then
+ Write_Line ("unrecognized switch -gnatV" & C & " ignored");
+ else
+ OK := False;
+ Err_Col := J - 1;
+ return;
+ end if;
+
end case;
end loop;
with Err_Vars; use Err_Vars;
with Opt; use Opt;
+with Output; use Output;
package body Warnsw is
No_Warn_On_Non_Local_Exception := True;
when others =>
- return False;
+ if Ignore_Unrecognized_VWY_Switches then
+ Write_Line ("unrecognized switch -gnatw." & C & " ignored");
+ else
+ return False;
+ end if;
end case;
return True;
Warn_On_Unchecked_Conversion := False;
when others =>
+ if Ignore_Unrecognized_VWY_Switches then
+ Write_Line ("unrecognized switch -gnatw" & C & " ignored");
+ else
+ return False;
+ end if;
return False;
end case;