https://gcc.gnu.org/g:6d21ca6413c531436e0513ca733fe308e316f71b
commit r16-4609-g6d21ca6413c531436e0513ca733fe308e316f71b Author: Mivirl <[email protected]> Date: Fri Oct 24 17:43:02 2025 +0200 Ada: Fix argument expansion with unbalanced quote on Windows The last character of the argument is chopped as if it was a quote. gcc/ada/ PR ada/122367 * rtinit.c (__gnat_runtime_initialize) [__MINGW32__]: Fix detection of quoted arguments. Diff: --- gcc/ada/rtinit.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/ada/rtinit.c b/gcc/ada/rtinit.c index 6a135529870b..598550c4051c 100644 --- a/gcc/ada/rtinit.c +++ b/gcc/ada/rtinit.c @@ -419,6 +419,7 @@ __gnat_runtime_initialize (int install_handler) int last; int argc_expanded = 0; TCHAR result [MAX_PATH]; + int arglen; int quoted; __gnat_get_argw (GetCommandLineW (), &wargv, &wargc); @@ -436,7 +437,10 @@ __gnat_runtime_initialize (int install_handler) for (k=1; k<wargc; k++) { - quoted = (wargv[k][0] == _T('\'')); + arglen = _tcslen (wargv[k]); + quoted = wargv[k][0] == _T('\'') + && arglen > 1 + && wargv[k][arglen - 1] == _T('\''); /* Check for wildcard expansion if the argument is not quoted. */ if (!quoted && __gnat_do_argv_expansion
