DavidSpickett wrote:

After this change the test labda.cpp is failing on Linaro's Windows on Arm 
clang bots. They were stuck for other reasons and only just got back up to 
date, so here's a new build showing the failure:
https://lab.llvm.org/buildbot/#/builders/161/builds/6473
```
cat 
C:\Users\tcwg\llvm-worker\clang-arm64-windows-msvc\llvm-project\clang\test\Interpreter\lambda.cpp
 | c:\users\tcwg\llvm-worker\clang-arm64-windows-msvc\build\bin\clang-repl.exe 
-Xcc -Xclang -Xcc -verify -Xcc -O2 | 
c:\users\tcwg\llvm-worker\clang-arm64-windows-msvc\build\bin\filecheck.exe 
C:\Users\tcwg\llvm-worker\clang-arm64-windows-msvc\llvm-project\clang\test\Interpreter\lambda.cpp
# executed command: cat 
'C:\Users\tcwg\llvm-worker\clang-arm64-windows-msvc\llvm-project\clang\test\Interpreter\lambda.cpp'
# executed command: 
'c:\users\tcwg\llvm-worker\clang-arm64-windows-msvc\build\bin\clang-repl.exe' 
-Xcc -Xclang -Xcc -verify -Xcc -O2
# .---command stderr------------
# | error: Parsing failed.
# `-----------------------------
# executed command: 
'c:\users\tcwg\llvm-worker\clang-arm64-windows-msvc\build\bin\filecheck.exe' 
'C:\Users\tcwg\llvm-worker\clang-arm64-windows-msvc\llvm-project\clang\test\Interpreter\lambda.cpp'
# .---command stderr------------
# | 
C:\Users\tcwg\llvm-worker\clang-arm64-windows-msvc\llvm-project\clang\test\Interpreter\lambda.cpp:26:11:
 error: CHECK: expected string not found in input
# | // CHECK: x = 42
# |           ^
# | <stdin>:4:28: note: scanning from here
# | clang-repl> clang-repl> TWO
# |                            ^
# | <stdin>:5:9: note: possible intended match 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> 
# |         ^
# | 
# | Input file: <stdin>
# | Check file: 
C:\Users\tcwg\llvm-worker\clang-arm64-windows-msvc\llvm-project\clang\test\Interpreter\lambda.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: x = 42 
# |             2: clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> ONE 
# |             3: clang-repl> clang-repl> TWO 
# |             4: clang-repl> clang-repl> TWO 
# | check:26'0                                X error: no match found
# |             5: 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>  
# | check:26'0     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:26'1             ?                                                    
                                                                                
                 possible intended match
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
I've confirmed locally that the test passed before this change.

The first RUN line is ok:
```
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\build>cat 
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\clang\test\Interpreter\lambda.cpp
 | .\bin\clang-repl.exe
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> ONE
clang-repl> clang-repl> TWO
clang-repl> clang-repl> TWO
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> In file included from <<< inputs >>>:1:
input_line_21:1:17: error: non-local lambda expression cannot have a 
capture-default
    1 | auto capture = [&]() { return x * 2; };
      |                 ^
error: Parsing failed.
clang-repl> clang-repl> clang-repl> x = 42
clang-repl> clang-repl> clang-repl>
```
The second one fails to parse the lambda:
```
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\build>cat 
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\clang\test\Interpreter\lambda.cpp
 | .\bin\clang-repl.exe -Xcc -Xclang -Xcc -verify -Xcc -O2
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> clang-repl> clang-repl> clang-repl> ONE
clang-repl> clang-repl> TWO
clang-repl> clang-repl> TWO
clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> clang-repl> 
clang-repl> error: Parsing failed.
clang-repl> clang-repl> clang-repl> x = 42
clang-repl> clang-repl> clang-repl>
```
(also the repeated `clang-repl>` is strange but maybe that is expected?)

How can I debug this further, is there a way to enable some verbose parsing / 
verification? (seems more likely that verification is actually the failing part)

https://github.com/llvm/llvm-project/pull/127467
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to