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#11master
parent
378d00fc3a
commit
4790fa00d8
|
@ -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))
|
||||||
|
|
Loading…
Reference in New Issue