aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog41
-rw-r--r--gcc/ada/gcc-interface/Makefile.in5
-rw-r--r--gcc/ada/gnatlink.adb51
-rw-r--r--gcc/ada/rtinit.c6
-rw-r--r--gcc/ada/s-oscons-tmplt.c1
-rw-r--r--gcc/ada/styleg.adb2
-rw-r--r--gcc/ada/terminals.c13
7 files changed, 74 insertions, 45 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 806a2ca..a732e94 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,44 @@
+2025-10-24 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/80033
+ * gcc-interface/Makefile.in (force): Restore.
+
+2025-10-24 Nicolas Boulenguez <nicolas@debian.org>
+
+ PR ada/80033
+ * gcc-interface/Makefile.in (deftarg.o): Delete.
+ (init-vxsim.o): Likewise.
+ (force): Likewise.
+
+2025-10-24 Mivirl <octoberstargazer7405@mivirl.dev>
+
+ PR ada/122367
+ * rtinit.c (__gnat_runtime_initialize) [__MINGW32__]: Fix detection
+ of quoted arguments.
+
+2025-10-24 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/118782
+ * styleg.adb (Is_Box_Comment): Also stop the loop at EOF.
+
+2025-10-24 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/113516
+ * s-oscons-tmplt.c [_WIN32]: Undefine POLLPRI before redefining it.
+
+2025-10-24 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/98879
+ * terminals.c (__gnat_setup_child_communication) [_WIN32]: Add else
+ blocks in the processing of the data returned by ReadFile.
+
+2025-10-24 Nicolas Boulenguez <nicolas@debian.org>
+
+ PR ada/81087
+ * gnatlink.adb (Is_Prefix): Move around, streamline and return false
+ when the prefix is not strict.
+ (Gnatlink): Fix other instances of incorrect lower bound assumption.
+
2025-10-20 Eric Botcazou <ebotcazou@adacore.com>
PR ada/102078
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index d456ac1..964a4d1 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -905,7 +905,6 @@ adadecode.o : adadecode.c adadecode.h
aux-io.o : aux-io.c
argv.o : argv.c
cal.o : cal.c
-deftarg.o : deftarg.c
errno.o : errno.c
exit.o : adaint.h exit.c
expect.o : expect.c
@@ -938,10 +937,6 @@ init.o : init.c adaint.h raise.h
$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
-init-vxsim.o : init-vxsim.c
- $(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
- $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
-
initialize.o : initialize.c raise.h
$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
diff --git a/gcc/ada/gnatlink.adb b/gcc/ada/gnatlink.adb
index 527aa7f..406147b 100644
--- a/gcc/ada/gnatlink.adb
+++ b/gcc/ada/gnatlink.adb
@@ -266,6 +266,9 @@ procedure Gnatlink is
function Index (S, Pattern : String) return Natural;
-- Return the last occurrence of Pattern in S, or 0 if none
+ function Is_Prefix (S, Prefix : String) return Boolean;
+ -- Return whether Prefix is a strict prefix of S
+
procedure Search_Library_Path
(Next_Line : String;
Nfirst : Integer;
@@ -395,6 +398,16 @@ procedure Gnatlink is
return 0;
end Index;
+ ---------------
+ -- Is_Prefix --
+ ---------------
+
+ function Is_Prefix (S, Prefix : String) return Boolean is
+ begin
+ return Prefix'Length < S'Length
+ and then S (S'First .. S'First + Prefix'Length - 1) = Prefix;
+ end Is_Prefix;
+
------------------
-- Process_Args --
------------------
@@ -1292,13 +1305,8 @@ procedure Gnatlink is
else
for J in reverse 1 .. Linker_Options.Last loop
if Linker_Options.Table (J) /= null
- and then
- Linker_Options.Table (J)'Length
- > Run_Path_Opt'Length
- and then
- Linker_Options.Table (J)
- (1 .. Run_Path_Opt'Length) =
- Run_Path_Opt
+ and then Is_Prefix
+ (Linker_Options.Table (J).all, Run_Path_Opt)
then
-- We have found an already specified
-- run_path_option: we will add to this switch,
@@ -1887,31 +1895,12 @@ begin
Shared_Libgcc_Seen : Boolean := False;
Static_Libgcc_Seen : Boolean := False;
- function Is_Prefix
- (Complete_String : String; Prefix : String) return Boolean;
- -- Returns whether Prefix is a prefix of Complete_String
-
- ---------------
- -- Is_Prefix --
- ---------------
-
- function Is_Prefix
- (Complete_String : String; Prefix : String) return Boolean
- is
- S : String renames Complete_String;
- P : String renames Prefix;
- begin
- return P'Length <= S'Length
- and then S (S'First .. S'First + P'Length - 1) = P;
- end Is_Prefix;
-
begin
J := Linker_Options.First;
while J <= Linker_Options.Last loop
if Linker_Options.Table (J).all = "-Xlinker"
and then J < Linker_Options.Last
- and then Linker_Options.Table (J + 1)'Length > 8
- and then Linker_Options.Table (J + 1) (1 .. 8) = "--stack="
+ and then Is_Prefix (Linker_Options.Table (J + 1).all, "--stack=")
then
if Stack_Op then
Linker_Options.Table (J .. Linker_Options.Last - 2) :=
@@ -1956,12 +1945,8 @@ begin
-- Here we just check for a canonical form that matches the
-- pragma Linker_Options set in the NT runtime.
- if Is_Prefix
- (Complete_String => Linker_Options.Table (J).all,
- Prefix => "-Xlinker --stack=")
- or else Is_Prefix
- (Complete_String => Linker_Options.Table (J).all,
- Prefix => "-Wl,--stack=")
+ if Is_Prefix (Linker_Options.Table (J).all, "-Xlinker --stack=")
+ or else Is_Prefix (Linker_Options.Table (J).all, "-Wl,--stack=")
then
if Stack_Op then
Linker_Options.Table (J .. Linker_Options.Last - 1) :=
diff --git a/gcc/ada/rtinit.c b/gcc/ada/rtinit.c
index 6a13552..598550c 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
diff --git a/gcc/ada/s-oscons-tmplt.c b/gcc/ada/s-oscons-tmplt.c
index 6b21905..8391f1f 100644
--- a/gcc/ada/s-oscons-tmplt.c
+++ b/gcc/ada/s-oscons-tmplt.c
@@ -1882,6 +1882,7 @@ CND(IF_NAMESIZE, "Max size of interface name with 0 terminator");
#endif
#elif defined(_WIN32)
+#undef POLLPRI
#define POLLPRI 0
/* If the POLLPRI flag is set on a socket for the Microsoft Winsock provider,
* the WSAPoll function will fail. */
diff --git a/gcc/ada/styleg.adb b/gcc/ada/styleg.adb
index 20945fb..46499ff 100644
--- a/gcc/ada/styleg.adb
+++ b/gcc/ada/styleg.adb
@@ -330,7 +330,7 @@ package body Styleg is
-- Do we need to worry about UTF_32 line terminators here ???
S := Scan_Ptr + 3;
- while Source (S) not in Line_Terminator loop
+ while Source (S) not in EOF | Line_Terminator loop
S := S + 1;
end loop;
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
index 89f8875..85a5c0d 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
@@ -724,13 +724,16 @@ __gnat_setup_child_communication
if (bRet == FALSE) {
cpid = -1;
}
-
- dwRet = buf[0] | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
- if (dwRet != 0) {
- cpid = -1;
+ else {
+ dwRet = buf[0] | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
+ if (dwRet != 0) {
+ cpid = -1;
+ }
+ else {
+ cpid = buf[4] | (buf[5] << 8) | (buf[6] << 16) | (buf[7] << 24);
+ }
}
- cpid = buf[4] | (buf[5] << 8) | (buf[6] << 16) | (buf[7] << 24);
process->pid = cpid;
}