Skip to content

clang-scan-deps not generate cxxmodules info correctly when module name contains keyword like friend, union, etc. #117661

Open
@vrecluse

Description

@vrecluse

if my module name like this:

export module mod.friend; 

and clang-scan-deps command:

clang-scan-deps --format=p1689 -- F:\llvm19\bin\clang -x c++ -c mod.cppm -o build\.objs\test\windows\x64\release\mod.cppm.obj -Qunused-arguments -m64 -std=c++23 -fexceptions -fcxx-exceptions

the generated info in cxxmodules is

            ["build\\.objs\\test\\windows\\x64\\release\\mod.cppm.obj"] = {
                cppfile = "mod.cppm"
            },

seems it's treated as normal cpp file.
but if I changed the module name:

export module mod.my_friend;

It generates correctly.

            ["build\\.objs\\test\\windows\\x64\\release\\mod.cppm.obj"] = {
                provides = {
                    ["mod.my_friend"] = {
                        bmi = [[build\.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743\mod.my_friend.pcm]],
                        interface = true,
                        sourcefile = "mod.cppm"
                    }
                }
            },

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions