Skip to content

In-LLVM-tree build fails: no matching function for call to ‘llvm::StringSwitch<...>::Cases #3469

@eyalroz

Description

@eyalroz

I'm trying to build the translator, checked out today, within the tree of LLVM 21.1.7 (the latest release of LLVM as of today), in tree.

The CMake configure command was:

cmake -G Ninja -S llvm -DLLVM_ENABLE_PROJECTS="clang;lld" \
    -B /path/to/build/dir  -DCMAKE_INSTALL_PREFIX=/path/to/install/dir \
    -DCMAKE_BUILD_TYPE=Release

During the build, I get:

/path/to/llvm-project-21.1.7.src/llvm/tools/SPIRV-LLVM-Translator/lib/SPIRV/SPIRVWriter.cpp:5379:17: error: no matching function for call to ‘llvm::StringSwitch<SPIRV::LLVMToSPIRVBase::FPBuiltinType>::Cases(<brace-enclosed initializer list>, SPIRV::LLVMToSPIRVBase::FPBuiltinType)’
 5378 |       StringSwitch<FPBuiltinType>(OpName)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 5379 |           .Cases({"fadd", "fsub", "fmul", "fdiv", "frem"},
      |           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 5380 |                  FPBuiltinType::REGULAR_MATH)
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/FloatingPointMode.h:19,
                 from /home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/APFloat.h:20,
                 from /home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/IR/Constants.h:23,
                 from /home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/IR/IntrinsicInst.h:26,
                 from /home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/IR/DebugInfo.h:28,
                 from /home/lh156516/src/local/llvm-project-21.1.7.src/llvm/tools/SPIRV-LLVM-Translator/lib/SPIRV/LLVMToSPIRVDbgTran.h:43,
                 from /home/lh156516/src/local/llvm-project-21.1.7.src/llvm/tools/SPIRV-LLVM-Translator/lib/SPIRV/SPIRVWriter.h:45,
                 from /home/lh156516/src/local/llvm-project-21.1.7.src/llvm/tools/SPIRV-LLVM-Translator/lib/SPIRV/SPIRVWriter.cpp:41:
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:87:17: note: candidate: ‘llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Cases(llvm::StringLiteral, llvm::StringLiteral, T) [with T = SPIRV::LLVMToSPIRVBase::FPBuiltinType; R = SPIRV::LLVMToSPIRVBase::FPBuiltinType]’
   87 |   StringSwitch &Cases(StringLiteral S0, StringLiteral S1, T Value) {
      |                 ^~~~~
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:87:17: note:   candidate expects 3 arguments, 2 provided
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:91:17: note: candidate: ‘llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Cases(llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, T) [with T = SPIRV::LLVMToSPIRVBase::FPBuiltinType; R = SPIRV::LLVMToSPIRVBase::FPBuiltinType]’
   91 |   StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
      |                 ^~~~~
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:91:17: note:   candidate expects 4 arguments, 2 provided
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:96:17: note: candidate: ‘llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Cases(llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, T) [with T = SPIRV::LLVMToSPIRVBase::FPBuiltinType; R = SPIRV::LLVMToSPIRVBase::FPBuiltinType]’
   96 |   StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
      |                 ^~~~~
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:96:17: note:   candidate expects 5 arguments, 2 provided
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:101:17: note: candidate: ‘llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Cases(llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, T) [with T = SPIRV::LLVMToSPIRVBase::FPBuiltinType; R = SPIRV::LLVMToSPIRVBase::FPBuiltinType]’
  101 |   StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
      |                 ^~~~~
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:101:17: note:   candidate expects 6 arguments, 2 provided
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:106:17: note: candidate: ‘llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Cases(llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, T) [with T = SPIRV::LLVMToSPIRVBase::FPBuiltinType; R = SPIRV::LLVMToSPIRVBase::FPBuiltinType]’
  106 |   StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
      |                 ^~~~~
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:106:17: note:   candidate expects 7 arguments, 2 provided
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:112:17: note: candidate: ‘llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Cases(llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, T) [with T = SPIRV::LLVMToSPIRVBase::FPBuiltinType; R = SPIRV::LLVMToSPIRVBase::FPBuiltinType]’
  112 |   StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
      |                 ^~~~~
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:112:17: note:   candidate expects 8 arguments, 2 provided
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:118:17: note: candidate: ‘llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Cases(llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, T) [with T = SPIRV::LLVMToSPIRVBase::FPBuiltinType; R = SPIRV::LLVMToSPIRVBase::FPBuiltinType]’
  118 |   StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
      |                 ^~~~~
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:118:17: note:   candidate expects 9 arguments, 2 provided
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:124:17: note: candidate: ‘llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Cases(llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, T) [with T = SPIRV::LLVMToSPIRVBase::FPBuiltinType; R = SPIRV::LLVMToSPIRVBase::FPBuiltinType]’
  124 |   StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
      |                 ^~~~~
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:124:17: note:   candidate expects 10 arguments, 2 provided
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:131:17: note: candidate: ‘llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Cases(llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, llvm::StringLiteral, T) [with T = SPIRV::LLVMToSPIRVBase::FPBuiltinType; R = SPIRV::LLVMToSPIRVBase::FPBuiltinType]’
  131 |   StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
      |                 ^~~~~
/home/lh156516/src/local/llvm-project-21.1.7.src/llvm/include/llvm/ADT/StringSwitch.h:131:17: note:   candidate expects 11 arguments, 2 provided

Additional information:

  • OS: SLES GNU/Linux 15 SP6
  • Compiler: GCC 13
  • SPIR-V Tools: repository head, checked out today.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions