MinGW __stat64 support depends on MSVCRT version
authorMika Rautio <mika.rautio@gmail.com>
Mon, 5 Dec 2016 10:33:48 +0000 (12:33 +0200)
committerMika Rautio <mika.rautio@gmail.com>
Mon, 5 Dec 2016 10:33:48 +0000 (12:33 +0200)
code/DefaultIOStream.cpp

index 11bad9b..1907709 100644 (file)
@@ -120,13 +120,13 @@ size_t DefaultIOStream::FileSize() const
         //
         // See here for details:
         // https://www.securecoding.cert.org/confluence/display/seccode/FIO19-C.+Do+not+use+fseek()+and+ftell()+to+compute+the+size+of+a+regular+file
-#if defined _WIN32
+#if defined _WIN32 && (!defined __GNUC__ || __MSVCRT_VERSION__ >= 0x0601)
         struct __stat64 fileStat;
         int err = _stat64(  mFilename.c_str(), &fileStat );
         if (0 != err)
             return 0;
         mCachedSize = (size_t) (fileStat.st_size);
-#elif defined __gnu_linux__ || defined __APPLE__ || defined __MACH__
+#elif defined __GNUC__ || defined __APPLE__ || defined __MACH__
         struct stat fileStat;
         int err = stat(mFilename.c_str(), &fileStat );
         if (0 != err)