aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/a-comlin.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/a-comlin.adb')
-rw-r--r--gcc/ada/a-comlin.adb17
1 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ada/a-comlin.adb b/gcc/ada/a-comlin.adb
index 2af8bd9..49caca5 100644
--- a/gcc/ada/a-comlin.adb
+++ b/gcc/ada/a-comlin.adb
@@ -56,12 +56,19 @@ package body Ada.Command_Line is
--------------
function Argument (Number : Positive) return String is
- Num : constant Positive :=
- (if Remove_Args = null then Number else Remove_Args (Number));
- Arg : aliased String (1 .. Len_Arg (Num));
begin
- Fill_Arg (Arg'Address, Num);
- return Arg;
+ if Number > Argument_Count then
+ raise Constraint_Error;
+ end if;
+
+ declare
+ Num : constant Positive :=
+ (if Remove_Args = null then Number else Remove_Args (Number));
+ Arg : aliased String (1 .. Len_Arg (Num));
+ begin
+ Fill_Arg (Arg'Address, Num);
+ return Arg;
+ end;
end Argument;
--------------------