Skip to content
Snippets Groups Projects
Verified Commit 4790fa00 authored by Sébastien Villemot's avatar Sébastien Villemot
Browse files

Remove workaround for bug in MinGW compiler

It would mishandle trailing slashes or backslashes in std::filesystem::path, see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88881

The bug is now fixed in the version of MinGW in Debian “bookworm” 12.

Ref. Madysson/estimation-codes#11
parent 378d00fc
No related branches found
No related tags found
No related merge requests found
...@@ -103,20 +103,7 @@ IncludePath::interpret([[maybe_unused]] ostream& output, Environment& env, ...@@ -103,20 +103,7 @@ IncludePath::interpret([[maybe_unused]] ostream& output, Environment& env,
StringPtr msp = dynamic_pointer_cast<String>(expr->eval(env)); StringPtr msp = dynamic_pointer_cast<String>(expr->eval(env));
if (!msp) if (!msp)
throw StackTrace("File name does not evaluate to a string"); throw StackTrace("File name does not evaluate to a string");
#ifdef _WIN32
/* Trim trailing slashes and backslashes in the path. This is a
workaround for a GCC/MinGW bug present in version 10.2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88881, that affects
gcc-mingw-w64 in Debian “Bullseye” 11. It is fixed in GCC 10.3, and
thus should be fixed in Debian “Bookworm” 12.
See Madysson/estimation-codes#11. */
string ipstr = static_cast<string>(*msp);
while (ipstr.size() > 1 && (ipstr.back() == '/' || ipstr.back() == '\\'))
ipstr.pop_back();
path ip {ipstr};
#else
path ip = static_cast<string>(*msp); path ip = static_cast<string>(*msp);
#endif
if (!is_directory(ip)) if (!is_directory(ip))
throw StackTrace(ip.string() + " does not evaluate to a valid directory"); throw StackTrace(ip.string() + " does not evaluate to a valid directory");
if (!exists(ip)) if (!exists(ip))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment