https://github.com/guitargeek created 
https://github.com/llvm/llvm-project/pull/228349

The test added in #<PR of the void-expression fix> checked the output of a 
JIT'd printf() with CHECK-NEXT between lines that clang-repl prints itself. The 
C runtime buffers the JIT'd code's stdout separately, so the order is not 
guaranteed: on llvm-clang-x86_64-sie-win, "foo()" came after all of 
clang-repl's output.

Remove that case. The case before it already checks that a void call without a 
semicolon is executed (through the value of a variable it sets), and so does 
the unit test ValueOfVoidCallExecutesTheCall.

Assisted-by: Claude Opus 5.5

Follows up on #228334, which introduced failures on Windows:

```
The Buildbot has detected a new failure on builder llvm-clang-x86_64-sie-win 
while building clang.

Full details are available at:
    https://lab.llvm.org/buildbot/#/builders/46/builds/42212

Worker for this Build: sie-win-worker
Blamelist:
    Frederik Harwath 
[<[email protected]>](mailto:[email protected]),
    Jonas Rembser [<[email protected]>](mailto:[email protected]),
    Lang Hames [<[email protected]>](mailto:[email protected])

BUILD FAILED: failed test (failure)

Step 7 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'Clang :: Interpreter/pretty-print.cpp' FAILED 
********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
z:\b\llvm-clang-x86_64-sie-win\build\bin\clang-repl.exe "int i = 10;" 'extern 
"C" int printf(const char*,...);'             'auto r1 = printf("i = %d\n", 
i);' | z:\b\llvm-clang-x86_64-sie-win\build\bin\filecheck.exe 
--check-prefix=CHECK-DRIVER 
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\test\Interpreter\pretty-print.cpp
# executed command: 'z:\b\llvm-clang-x86_64-sie-win\build\bin\clang-repl.exe' 
'int i = 10;' 'extern "C" int printf(const char*,...);' 'auto r1 = printf("i = 
%d\n", i);'
# note: command had no output on stdout or stderr
# executed command: 'z:\b\llvm-clang-x86_64-sie-win\build\bin\filecheck.exe' 
--check-prefix=CHECK-DRIVER 
'Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\test\Interpreter\pretty-print.cpp'
# note: command had no output on stdout or stderr
# RUN: at line 6
cat 
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\test\Interpreter\pretty-print.cpp
 | z:\b\llvm-clang-x86_64-sie-win\build\bin\clang-repl.exe -Xcc -std=c++11 -Xcc 
-fno-delayed-template-parsing | 
z:\b\llvm-clang-x86_64-sie-win\build\bin\filecheck.exe 
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\test\Interpreter\pretty-print.cpp
# executed command: cat 
'Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\test\Interpreter\pretty-print.cpp'
# note: command had no output on stdout or stderr
# executed command: 'z:\b\llvm-clang-x86_64-sie-win\build\bin\clang-repl.exe' 
-Xcc -std=c++11 -Xcc -fno-delayed-template-parsing
# note: command had no output on stdout or stderr
# executed command: 'z:\b\llvm-clang-x86_64-sie-win\build\bin\filecheck.exe' 
'Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\test\Interpreter\pretty-print.cpp'
# .---command stderr------------
# | 
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\test\Interpreter\pretty-print.cpp:101:16:
 error: CHECK-NEXT: is not on the line after the previous 
match
# | // CHECK-NEXT: foo()
# |                ^
# | <stdin>:25:1: note: 'next' match 
was here
# | foo()
# | ^
# | <stdin>:23:10: note: previous 
match ended here
# | (int) 100
# |          ^
# | <stdin>:24:1: note: non-matching 
line after previous match is here
# | clang-repl> clang-repl... clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-re
 pl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> 
# | ^
# | 
# | Input file: <stdin>
# | Check file: 
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\test\Interpreter\pretty-print.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: (const char[3]) 
"ab" 
# | check:10       ^~~~~~~~~~~~~~~~~~~~
# |             2: (int) 
123456 
# | next:13        ^~~~~~~~~~~~
# |             3: (char[2]) { 
'1', 'a' } 
# | next:16        ^~~~~~~~~~~~~~~~~~~~~~
# |             4: (char[3]) 
"1a" 
# | next:19        ^~~~~~~~~~~~~~
# |             5: 
(char[2][3][1]) { { { 'a' }, { 'b' }, { 'c' } }, { { 'd' 
}, { 'e' }, { 'f' } } } 
# | check:22       
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             6: (S3) 
@0x1cf15f38540 
...

Sincerely,
LLVM Buildbot
```

>From 8fae4e44c7efccbf76ba5f04cc148ade121e1690 Mon Sep 17 00:00:00 2001
From: Jonas Rembser <[email protected]>
Date: Fri, 2 Oct 2026 07:04:01 +0000
Subject: [PATCH] [clang-repl] Don't check printf output order in
 pretty-print.cpp

The test added in #<PR of the void-expression fix> checked the output of
a JIT'd printf() with CHECK-NEXT between lines that clang-repl prints
itself. The C runtime buffers the JIT'd code's stdout separately, so the
order is not guaranteed: on llvm-clang-x86_64-sie-win, "foo()" came after
all of clang-repl's output.

Remove that case. The case before it already checks that a void call
without a semicolon is executed (through the value of a variable it
sets), and so does the unit test ValueOfVoidCallExecutesTheCall.

Assisted-by: Claude Opus 5.5
---
 clang/test/Interpreter/pretty-print.cpp | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/clang/test/Interpreter/pretty-print.cpp 
b/clang/test/Interpreter/pretty-print.cpp
index ed430d2db6d22..777d809873203 100644
--- a/clang/test/Interpreter/pretty-print.cpp
+++ b/clang/test/Interpreter/pretty-print.cpp
@@ -96,9 +96,6 @@ void set_void_x() { void_x = 100; }
 set_void_x()
 void_x
 // CHECK-NEXT: (int) 100
-void print_foo() { printf("foo()\n"); }
-print_foo()
-// CHECK-NEXT: foo()
 
 // int i = 12;
 // int &iref = i;

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to