It looks like CI has a race condition between two files of the same name.
---
... compilable\testcstuff3.i ()
... compilable\testcstuff3.d ()
==============================
Test 'compilable\testcstuff3.d' failed. The logged output:
D:\a\1\s\generated\windows\RelWithAsserts\Win32\dmd.exe -conf= -m32mscoff -Icompilable -odD:\a\1\s\compiler\test\test_results\compilable -ofD:\a\1\s\compiler\test\test_results\compilable\testcstuff3_0.obj -c compilable\testcstuff3.d
Error: error writing file 'D:\a\1\s\compiler\test\test_results\compilable\testcstuff3_0.obj'
==============================
Test 'compilable\testcstuff3.d' failed: Expected rc == 0, but exited with rc == 1
Comment #2 by razvan.nitu1305 — 2024-01-03T09:55:41Z
*** This issue has been marked as a duplicate of issue 24293 ***
Comment #3 by kinke — 2024-01-27T14:05:02Z
Oh, this has obviously nothing to do with a temporary .i - the test file is an .i already, so no preprocessing. The problem is simply that the object files collide for these 2 tests, as the d_do_test.d runner uses the same object file path `…\compilable\testcstuff3_0.obj`. Fix incoming.