[llvm] [flang-rt] Fixes EXECUTE_COMMAND_LINE() status management and double buffering (PR #184285)

Eugene Epshteyn via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 4 19:02:05 PST 2026


================
@@ -371,8 +366,8 @@ TEST_F(ZeroArguments, ECLNotExecutedCommandErrorSync) {
   (*command.get(), wait, exitStat.get(), cmdStat.get(), cmdMsg.get());
 #ifdef _WIN32
   CheckDescriptorEqInt<std::int64_t>(exitStat.get(), 1);
-  CheckDescriptorEqInt<std::int64_t>(cmdStat.get(), 6);
-  CheckDescriptorEqStr(cmdMsg.get(), "Invalid command lineXXX");
+  CheckDescriptorEqInt<std::int64_t>(cmdStat.get(), 0);
----------------
eugeneepshteyn wrote:

I checked on Windows, and the command string always starts with "cmd.exe /c".  With touch command, "cmd.exe /c touch" results in "'touch' is not recognized as an internal or external command, operable program or batch file" error message and return code of 1. I believe my changes here are correct.

Now I wonder, why the original changes didn't fail. Perhaps check-flang-rt is not run on Windows?

I think I'll submit this PR and see if there's any Windows fallout, and deal with that later.

https://github.com/llvm/llvm-project/pull/184285


More information about the llvm-commits mailing list