On 1/26/22 01:45, Julien Marrec wrote:
Hello Paul,
I’m not sure why you say it’s a local variable. It’s a “FILE *” isn’t it?
A FILE * is a pointer, and can be either local or global. This one's local.
[1] If you want to reproduce, and have conan installed and MSVC 2019, this
command should do it
Ships passing in the night, I'm afraid. I don't use MSVC.
I installed the attached patch into Gnulib and propagated this into m4
on Savannah so it should appear in the next m4 release. In the meantime
you can build with /MD instead of /MDd. Or if you want to learn the GNU
build system you can build m4 from Git.
This is actually a false alarm in /MDd, since POSIX says fclose is
supposed to fail with errno == EBADF instead of crashing when the
underlying file descriptor is closed. Although Microsoft doesn't claim
POSIX conformance, maybe you can file a bug report with them to save
other people this kind of hassle.
All the attached does is work around the /MDd bug.
From 364c5ba2e40d17e98cc66021ef893e30a009068b Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email protected]>
Date: Wed, 26 Jan 2022 09:33:03 -0800
Subject: [PATCH] close-stream: avoid crash on MSVC Debug mode
Problem reported by Julien Marrec in:
https://lists.gnu.org/r/bug-m4/2022-01/msg00000.html
* modules/close-stream (Depends-on): Depend on fclose.
---
ChangeLog | 7 +++++++
modules/close-stream | 1 +
2 files changed, 8 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index fc4e46747b..f0e65522ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2022-01-26 Paul Eggert <[email protected]>
+
+ close-stream: avoid crash on MSVC Debug mode
+ Problem reported by Julien Marrec in:
+ https://lists.gnu.org/r/bug-m4/2022-01/msg00000.html
+ * modules/close-stream (Depends-on): Depend on fclose.
+
2022-01-23 Paul Eggert <[email protected]>
xstrtoimax, xstrtoumax: depend on inttypes-incomplete
diff --git a/modules/close-stream b/modules/close-stream
index 78ed207992..4fce2ea233 100644
--- a/modules/close-stream
+++ b/modules/close-stream
@@ -6,6 +6,7 @@ lib/close-stream.h
lib/close-stream.c
Depends-on:
+fclose
fpending
stdbool
--
2.32.0