diff options
Diffstat (limited to 'gcc/ada/rtinit.c')
-rw-r--r-- | gcc/ada/rtinit.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/gcc/ada/rtinit.c b/gcc/ada/rtinit.c index 1bb3cb0..83a63c8 100644 --- a/gcc/ada/rtinit.c +++ b/gcc/ada/rtinit.c @@ -6,7 +6,7 @@ * * * C Implementation File * * * - * Copyright (C) 2014-2020, Free Software Foundation, Inc. * + * Copyright (C) 2014-2021, 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- * @@ -147,6 +147,19 @@ static void skip_quoted_string (const WCHAR **current_in, } ci++; } + + /* Handle the case in which a nul character was found instead of a closing + double quote. In that case consider all the backslashes as literal + characters. */ + if (*ci == '\0') + { + for (int i=0; i<qbs_count; i++) + { + *co='\\'; + co++; + } + } + *current_in = ci; *current_out = co; } @@ -205,7 +218,10 @@ static void skip_argument (const WCHAR **current_in, bs_count = 0; *co = *ci; co++; } - ci++; + if (*ci != '\0') + { + ci++; + } } for (int i=0; i<bs_count; i++) |