[clang] Reapply "[clang][ModulesDriver] Add support for Clang modules to -fmodules-driver" (#191122) (PR #191258)

via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 10 17:26:37 PDT 2026


zeroomega wrote:

We are also seeing test "Clang :: Driver/modules-driver-clang-modules-only.cpp" failing after this patch landed:

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 3
split-file /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/modules-driver-clang-modules-only.cpp /b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp
# executed command: split-file /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/modules-driver-clang-modules-only.cpp /b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp
# RUN: at line 4
rm -rf /b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/modules-cache
# executed command: rm -rf /b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/modules-cache
# RUN: at line 6
/b/s/w/ir/x/w/llvm_build/bin/clang -std=c++23    -fmodules-driver -Rmodules-driver    -fmodules -Rmodule-import    -fmodule-map-file=/b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/module.modulemap    -fmodules-cache-path=/b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/modules-cache    -fsyntax-only /b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/main.cpp 2>&1    | sed 's:\\\\\?:/:g'    | /b/s/w/ir/x/w/llvm_build/bin/FileCheck -DPREFIX=/b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp --check-prefix=CHECK-REMARKS /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/modules-driver-clang-modules-only.cpp
# executed command: /b/s/w/ir/x/w/llvm_build/bin/clang -std=c++23 -fmodules-driver -Rmodules-driver -fmodules -Rmodule-import -fmodule-map-file=/b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/module.modulemap -fmodules-cache-path=/b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/modules-cache -fsyntax-only /b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/main.cpp
# note: command had no output on stdout or stderr
# error: command failed with exit status: 1
# executed command: sed 's:\\\\\?:/:g'
# executed command: /b/s/w/ir/x/w/llvm_build/bin/FileCheck -DPREFIX=/b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp --check-prefix=CHECK-REMARKS /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/modules-driver-clang-modules-only.cpp
# .---command stderr------------
# | /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/modules-driver-clang-modules-only.cpp:32:19: error: CHECK-REMARKS: expected string not found in input
# | // CHECK-REMARKS: [[PREFIX]]/main.cpp:1:2: remark: importing module 'root' from
# |                   ^
# | <stdin>:35:153: note: scanning from here
# |  "transitive1-5CBZQDDUK4JJ9DFXCV9NY1ML8" [fillcolor=1, label="{ Module type: Clang module | Module name: transitive1 | Hash: 5CBZQDDUK4JJ9DFXCV9NY1ML8 }"];
# |                                                                                                                                                         ^
# | <stdin>:35:153: note: with "PREFIX" equal to "/b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp"
# |  "transitive1-5CBZQDDUK4JJ9DFXCV9NY1ML8" [fillcolor=1, label="{ Module type: Clang module | Module name: transitive1 | Hash: 5CBZQDDUK4JJ9DFXCV9NY1ML8 }"];
# |                                                                                                                                                         ^
# | <stdin>:40:266: note: possible intended match here
# |  "/b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/main.cpp-x86_64-unknown-linux-gnu" [fillcolor=3, label="{ Filename: /b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/main.cpp | Triple: x86_64-unknown-linux-gnu }"];
# |                                                                                                                                                                                                                                                                          ^
# | 
# | Input file: <stdin>
# | Check file: /b/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/modules-driver-clang-modules-only.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            30: digraph "Module Dependency Graph" { 
# |            31:  rankdir="BT"; 
# |            32:  label="Module Dependency Graph"; 
# |            33:  node [shape=Mrecord, colorscheme=set23, style=filled]; 
# |            34:  
# |            35:  "transitive1-5CBZQDDUK4JJ9DFXCV9NY1ML8" [fillcolor=1, label="{ Module type: Clang module | Module name: transitive1 | Hash: 5CBZQDDUK4JJ9DFXCV9NY1ML8 }"]; 
# | check:32'0                                                                                                                                                             X~~~ error: no match found
# | check:32'1                                                                                                                                                                  with "PREFIX" equal to "/b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp"
# |            36:  "transitive2-8YMLCI0SIMU8V4CRWQFH4NBKQ" [fillcolor=1, label="{ Module type: Clang module | Module name: transitive2 | Hash: 8YMLCI0SIMU8V4CRWQFH4NBKQ }"]; 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            37:  "direct1-1L4MY6BNIQ9B2GLCFIVPFWF6X" [fillcolor=1, label="{ Module type: Clang module | Module name: direct1 | Hash: 1L4MY6BNIQ9B2GLCFIVPFWF6X }"]; 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            38:  "direct2-6GWERXC4ZD70K1OO623L801WI" [fillcolor=1, label="{ Module type: Clang module | Module name: direct2 | Hash: 6GWERXC4ZD70K1OO623L801WI }"]; 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            39:  "root-BTBJDFA8TL6CR4G0ZFW0XP3VF" [fillcolor=1, label="{ Module type: Clang module | Module name: root | Hash: BTBJDFA8TL6CR4G0ZFW0XP3VF }"]; 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            40:  "/b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/main.cpp-x86_64-unknown-linux-gnu" [fillcolor=3, label="{ Filename: /b/s/w/ir/x/w/llvm_build/tools/clang/test/Driver/Output/modules-driver-clang-modules-only.cpp.tmp/main.cpp | Triple: x86_64-unknown-linux-gnu }"]; 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:32'2                                                                                                                                                                                                                                                                              ?                                                  possible intended match
# |            41:  
# | check:32'0     ~
# |            42:  "transitive1-5CBZQDDUK4JJ9DFXCV9NY1ML8" -> "direct1-1L4MY6BNIQ9B2GLCFIVPFWF6X"; 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            43:  "transitive2-8YMLCI0SIMU8V4CRWQFH4NBKQ" -> "direct1-1L4MY6BNIQ9B2GLCFIVPFWF6X"; 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            44:  "transitive2-8YMLCI0SIMU8V4CRWQFH4NBKQ" -> "direct2-6GWERXC4ZD70K1OO623L801WI"; 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            45:  "direct1-1L4MY6BNIQ9B2GLCFIVPFWF6X" -> "root-BTBJDFA8TL6CR4G0ZFW0XP3VF"; 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--
```

Could you take a look please? If it takes a long time to fix, could you revert the change please?

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


More information about the cfe-commits mailing list