Fix libstdc++ lstat missing return type for Windows target

Message ID alpine.DEB.2.21.1908231319500.29090@digraph.polyomino.org.uk
State New
Headers show
Series
  • Fix libstdc++ lstat missing return type for Windows target
Related show

Commit Message

Joseph Myers Aug. 23, 2019, 1:20 p.m.
Building for i686-mingw32 target (with some local changes) produced an
error

error: ISO C++ forbids declaration of 'lstat' with no type [-fpermissive]

in libstdc++-v3/src/filesystem/ops-common.h.  This patch adds the
missing return type.  OK to commit (trunk and GCC 9 branch)?

Note 1: I haven't run the testsuite with this patch, but it fixes the
build failure I see (in sources with other local changes).

Note 2: I don't know why this hasn't produced build failures for other
people, but the missing return type looks wrong in any case even if
other local changes are for some reason needed for it to produce an
error.

2019-08-23  Joseph Myers  <joseph@codesourcery.com>

	* src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
	(std::filesystem::__gnu_posix::lstat): Add return type.


-- 
Joseph S. Myers
joseph@codesourcery.com

Comments

Jonathan Wakely Aug. 23, 2019, 8:41 p.m. | #1
On Fri, 23 Aug 2019 at 14:20, Joseph Myers <joseph@codesourcery.com> wrote:
>

> Building for i686-mingw32 target (with some local changes) produced an

> error

>

> error: ISO C++ forbids declaration of 'lstat' with no type [-fpermissive]

>

> in libstdc++-v3/src/filesystem/ops-common.h.  This patch adds the

> missing return type.  OK to commit (trunk and GCC 9 branch)?


Yes, OK for trunk and gcc-9-branch. Thanks.

> Note 1: I haven't run the testsuite with this patch, but it fixes the

> build failure I see (in sources with other local changes).

>

> Note 2: I don't know why this hasn't produced build failures for other

> people, but the missing return type looks wrong in any case even if

> other local changes are for some reason needed for it to produce an

> error.


Yes, it's odd that it builds for x86_64-w32-mingw32.

Patch

Index: libstdc++-v3/src/filesystem/ops-common.h
===================================================================
--- libstdc++-v3/src/filesystem/ops-common.h	(revision 274854)
+++ libstdc++-v3/src/filesystem/ops-common.h	(working copy)
@@ -76,7 +76,7 @@ 
   inline int stat(const wchar_t* path, stat_type* buffer)
   { return ::_wstat(path, buffer); }
 
-  inline lstat(const wchar_t* path, stat_type* buffer)
+  inline int lstat(const wchar_t* path, stat_type* buffer)
   {
     // TODO symlinks not currently supported
     return stat(path, buffer);