[llvm] [DenseMap] Fix constness issues with lookup_or (PR #139247)

Aaron Puchert via llvm-commits llvm-commits at lists.llvm.org
Fri May 30 06:50:32 PDT 2025


aaronpuchert wrote:

Could this be related to the build failure in https://lab.llvm.org/buildbot/#/builders/63/builds/6559?
```
FAILED: lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolution.cpp.obj 
C:\PROGRA~2\MICROS~3\2019\PROFES~1\VC\Tools\MSVC\1428~1.293\bin\Hostx64\x64\cl.exe  /nologo /TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\b\slave\clang-x64-windows-msvc\build\stage1\lib\Analysis -IC:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\lib\Analysis -IC:\b\slave\clang-x64-windows-msvc\build\stage1\include -IC:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2 /DNDEBUG -std:c++17 -MD  /EHs-c- /GR- /showIncludes /Folib\Analysis\CMakeFiles\LLVMAnalysis.dir\ScalarEvolution.cpp.obj /Fdlib\Analysis\CMakeFiles\LLVMAnalysis.dir\LLVMAnalysis.pdb /FS -c C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\lib\Analysis\ScalarEvolution.cpp
C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\lib\Analysis\ScalarEvolution.cpp(15907): error C2664: 'ValueT llvm::DenseMapBase<llvm::DenseMap<const llvm::SCEV *,ValueT,llvm::DenseMapInfo<KeyT,void>,llvm::detail::DenseMapPair<KeyT,ValueT>>,KeyT,ValueT,KeyInfoT,BucketT>::lookup_or(const llvm::SCEV *,ValueT &&) const': cannot convert argument 2 from 'const llvm::SCEVUnknown *' to 'ValueT &&'
        with
        [
            ValueT=const llvm::SCEV *,
            KeyT=const llvm::SCEV *,
            KeyInfoT=llvm::DenseMapInfo<const llvm::SCEV *,void>,
            BucketT=llvm::detail::DenseMapPair<const llvm::SCEV *,const llvm::SCEV *>
        ]
        and
        [
            ValueT=const llvm::SCEV *
        ]
C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\lib\Analysis\ScalarEvolution.cpp(15907): note: You cannot bind an lvalue to an rvalue reference
C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\include\llvm/ADT/DenseMap.h(223): note: see declaration of 'llvm::DenseMapBase<llvm::DenseMap<const llvm::SCEV *,const llvm::SCEV *,llvm::DenseMapInfo<KeyT,void>,llvm::detail::DenseMapPair<KeyT,ValueT>>,KeyT,ValueT,KeyInfoT,BucketT>::lookup_or'
        with
        [
            KeyT=const llvm::SCEV *,
            ValueT=const llvm::SCEV *,
            KeyInfoT=llvm::DenseMapInfo<const llvm::SCEV *,void>,
            BucketT=llvm::detail::DenseMapPair<const llvm::SCEV *,const llvm::SCEV *>
        ]
```

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


More information about the llvm-commits mailing list