[llvm] [DirectX] Add support for heap resources to `DXILResourceMap` (PR #216454)

via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 19 11:32:38 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

The build failed before running any tests. Click on a failure below to see the details.

<details>
<summary>[code=1] lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DXILResource.cpp.obj</summary>

```
FAILED: [code=1] lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DXILResource.cpp.obj
sccache C:\clang\clang-msvc\bin\clang-cl.exe  /nologo -TP -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -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:\_work\llvm-project\llvm-project\build\lib\Analysis -IC:\_work\llvm-project\llvm-project\llvm\lib\Analysis -IC:\_work\llvm-project\llvm-project\build\include -IC:\_work\llvm-project\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /O2 /Ob2  -std:c++17 -MD -UNDEBUG /EHs-c- /GR- /showIncludes /Folib\Analysis\CMakeFiles\LLVMAnalysis.dir\DXILResource.cpp.obj /Fdlib\Analysis\CMakeFiles\LLVMAnalysis.dir\LLVMAnalysis.pdb -c -- C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:9:
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(406,8): error: no template named 'variant' in namespace 'std'
406 |   std::variant<ResourceBinding, uint32_t> BindingOrHeapID;
|   ~~~~~^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(427,17): error: no member named 'holds_alternative' in namespace 'std'
427 |     return std::holds_alternative<ResourceBinding>(BindingOrHeapID);
|                 ^~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(427,35): error: 'ResourceBinding' does not refer to a value
427 |     return std::holds_alternative<ResourceBinding>(BindingOrHeapID);
|                                   ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(374,10): note: declared here
374 |   struct ResourceBinding {
|          ^
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:9:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h:12:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/MapVector.h:20:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMap.h:25:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMapInfo.h:20:
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(914,31): error: non-const lvalue reference to type 'tuple<llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo, (no argument)>' cannot bind to a value of unrelated type 'tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>'
914 |     return static_cast<_Ty&&>(static_cast<_Ttype&>(_Tuple)._Myfirst._Val);
|                               ^                    ~~~~~~
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(922,18): note: in instantiation of function template specialization 'std::get<1ULL, llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>' requested here
922 |   for (auto [CI, RI, RTI] : CIToInfos) {
|                  ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(922,18): note: in implicit initialization of binding declaration 'RI'
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:9:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h:12:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/MapVector.h:20:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMap.h:25:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMapInfo.h:20:
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(914,31): error: non-const lvalue reference to type 'tuple<llvm::dxil::ResourceTypeInfo, (no argument), (no argument)>' cannot bind to a value of unrelated type 'tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>'
914 |     return static_cast<_Ty&&>(static_cast<_Ttype&>(_Tuple)._Myfirst._Val);
|                               ^                    ~~~~~~
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(922,22): note: in instantiation of function template specialization 'std::get<2ULL, llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>' requested here
922 |   for (auto [CI, RI, RTI] : CIToInfos) {
|                      ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(922,22): note: in implicit initialization of binding declaration 'RTI'
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:9:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h:12:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/MapVector.h:20:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMap.h:25:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMapInfo.h:20:
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(301,11): error: type '_Mybase' (aka 'tuple<llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>') is not a direct or virtual base of 'std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>'
301 |         : _Mybase(_Exact_args_t{}, _STD forward<_Rest2>(_Rest_arg)...), _Myfirst(_STD forward<_This2>(_This_arg)) {}
|           ^~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(349,11): note: in instantiation of function template specialization 'std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>::tuple<std::_Exact_args_t, llvm::CallInst *&, llvm::dxil::ResourceInfo &, llvm::dxil::ResourceTypeInfo &, 0>' requested here
349 |         : tuple(_Exact_args_t{}, _STD forward<_This2>(_This_arg), _STD forward<_Rest2>(_Rest_arg)...) {}
|           ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/SmallVector.h(981,33): note: in instantiation of function template specialization 'std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>::tuple<llvm::CallInst *&, llvm::dxil::ResourceInfo &, llvm::dxil::ResourceTypeInfo &, 0>' requested here
981 |     ::new ((void *)this->end()) T(std::forward<ArgTypes>(Args)...);
|                                 ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(882,21): note: in instantiation of function template specialization 'llvm::SmallVectorImpl<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>>::emplace_back<llvm::CallInst *&, llvm::dxil::ResourceInfo &, llvm::dxil::ResourceTypeInfo &>' requested here
882 |           CIToInfos.emplace_back(CI, RI, RTI);
|                     ^
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:9:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h:12:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/MapVector.h:20:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMap.h:25:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMapInfo.h:20:
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(907,12): error: no viable conversion from 'const tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>' to 'const tuple<llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo, (no argument)>'
907 |     return static_cast<const _Ttype&>(_Tuple)._Myfirst._Val;
|            ^                          ~~~~~~
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(913,23): note: in instantiation of function template specialization 'std::get<1ULL, llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>' requested here
913 |     const auto &[LCI, LRI, LRTI] = LHS;
|                       ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(913,23): note: in implicit initialization of binding declaration 'LRI'
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8249,32): note: in instantiation of function template specialization 'llvm::DXILResourceMap::populateResourceInfos(Module &, DXILResourceTypeMap &)::(lambda)::operator()<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>>' requested here
8249 |             if (_DEBUG_LT_PRED(_Pred, _Val, *_First)) { // found new earliest element, move to front
|                                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\xutility(1575,54): note: expanded from macro '_DEBUG_LT_PRED'
1575 | #define _DEBUG_LT_PRED(pred, x, y) static_cast<bool>(pred(x, y))
|                                                      ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8813,14): note: in instantiation of function template specialization 'std::_Insertion_sort_unchecked<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
8813 |         _STD _Insertion_sort_unchecked(_UFirst, _ULast, _STD _Pass_fn(_Pred));
|              ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/STLExtras.h(2122,8): note: in instantiation of function template specialization 'std::stable_sort<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
2122 |   std::stable_sort(adl_begin(Range), adl_end(Range), C);
|        ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(912,9): note: in instantiation of function template specialization 'llvm::stable_sort<llvm::SmallVector<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>> &, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
912 |   llvm::stable_sort(CIToInfos, [](auto &LHS, auto &RHS) {
|         ^
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:9:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h:12:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/MapVector.h:20:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMap.h:25:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMapInfo.h:20:
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(907,12): error: no viable conversion from 'const tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>' to 'const tuple<llvm::dxil::ResourceTypeInfo, (no argument), (no argument)>'
907 |     return static_cast<const _Ttype&>(_Tuple)._Myfirst._Val;
|            ^                          ~~~~~~
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(913,28): note: in instantiation of function template specialization 'std::get<2ULL, llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>' requested here
913 |     const auto &[LCI, LRI, LRTI] = LHS;
|                            ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(913,28): note: in implicit initialization of binding declaration 'LRTI'
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8249,32): note: in instantiation of function template specialization 'llvm::DXILResourceMap::populateResourceInfos(Module &, DXILResourceTypeMap &)::(lambda)::operator()<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>>' requested here
8249 |             if (_DEBUG_LT_PRED(_Pred, _Val, *_First)) { // found new earliest element, move to front
|                                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\xutility(1575,54): note: expanded from macro '_DEBUG_LT_PRED'
1575 | #define _DEBUG_LT_PRED(pred, x, y) static_cast<bool>(pred(x, y))
|                                                      ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8813,14): note: in instantiation of function template specialization 'std::_Insertion_sort_unchecked<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
8813 |         _STD _Insertion_sort_unchecked(_UFirst, _ULast, _STD _Pass_fn(_Pred));
|              ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/STLExtras.h(2122,8): note: in instantiation of function template specialization 'std::stable_sort<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
2122 |   std::stable_sort(adl_begin(Range), adl_end(Range), C);
|        ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(912,9): note: in instantiation of function template specialization 'llvm::stable_sort<llvm::SmallVector<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>> &, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
912 |   llvm::stable_sort(CIToInfos, [](auto &LHS, auto &RHS) {
|         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(337,9): note: candidate constructor template not viable: no known conversion from 'const tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>' to 'const llvm::dxil::ResourceTypeInfo &' for 1st argument
337 |         tuple(const _This& _This_arg, const _Rest&... _Rest_arg)
|         ^     ~~~~~~~~~~~~~~~~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(351,5): note: candidate constructor not viable: no known conversion from 'const tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>' to 'const tuple<llvm::dxil::ResourceTypeInfo> &' for 1st argument
351 |     tuple(const tuple&) = default;
|     ^     ~~~~~~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(352,5): note: candidate constructor not viable: no known conversion from 'const tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>' to 'tuple<llvm::dxil::ResourceTypeInfo> &&' for 1st argument
352 |     tuple(tuple&&)      = default;
|     ^     ~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(347,9): note: candidate template ignored: requirement 'conjunction_v<std::_Tuple_perfect_val<std::tuple<llvm::dxil::ResourceTypeInfo>, const std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> &>, std::_Tuple_constructible_val<std::tuple<llvm::dxil::ResourceTypeInfo>, const std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> &>>' was not satisfied [with _This2 = const tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> &, _Rest2 = <>]
347 |         tuple(_This2&& _This_arg, _Rest2&&... _Rest_arg)
|         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(366,80): note: candidate template ignored: requirement 'conjunction_v<std::_Tuple_constructible_val<std::tuple<llvm::dxil::ResourceTypeInfo>, llvm::CallInst *const &, const llvm::dxil::ResourceInfo &, const llvm::dxil::ResourceTypeInfo &>, std::_Tuple_convert_val<std::tuple<llvm::dxil::ResourceTypeInfo>, const std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> &, llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>>' was not satisfied [with _Other = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
366 |     constexpr explicit(_Tuple_conditional_explicit_v<tuple, const _Other&...>) tuple(const tuple<_Other...>& _Right)
|                                                                                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(373,73): note: candidate template ignored: requirement 'conjunction_v<std::_Tuple_constructible_val<std::tuple<llvm::dxil::ResourceTypeInfo>, llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, std::_Tuple_convert_val<std::tuple<llvm::dxil::ResourceTypeInfo>, std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>>' was not satisfied [with _Other = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
373 |     constexpr explicit(_Tuple_conditional_explicit_v<tuple, _Other...>) tuple(tuple<_Other...>&& _Right)
|                                                                         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(394,9): note: candidate template ignored: could not match 'pair' against 'tuple'
394 |         tuple(const pair<_First, _Second>& _Right)
|         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(399,79): note: candidate template ignored: could not match 'pair' against 'tuple'
399 |     constexpr explicit(_Tuple_conditional_explicit_v<tuple, _First, _Second>) tuple(pair<_First, _Second>&& _Right)
|                                                                               ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(914,23): error: no matching function for call to 'get'
914 |     const auto &[RCI, RRI, RRTI] = RHS;
|                       ^~~
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(914,23): note: in implicit initialization of binding declaration 'RRI'
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8249,32): note: in instantiation of function template specialization 'llvm::DXILResourceMap::populateResourceInfos(Module &, DXILResourceTypeMap &)::(lambda)::operator()<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>>' requested here
8249 |             if (_DEBUG_LT_PRED(_Pred, _Val, *_First)) { // found new earliest element, move to front
|                                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\xutility(1575,54): note: expanded from macro '_DEBUG_LT_PRED'
1575 | #define _DEBUG_LT_PRED(pred, x, y) static_cast<bool>(pred(x, y))
|                                                      ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8813,14): note: in instantiation of function template specialization 'std::_Insertion_sort_unchecked<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
8813 |         _STD _Insertion_sort_unchecked(_UFirst, _ULast, _STD _Pass_fn(_Pred));
|              ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/STLExtras.h(2122,8): note: in instantiation of function template specialization 'std::stable_sort<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
2122 |   std::stable_sort(adl_begin(Range), adl_end(Range), C);
|        ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(912,9): note: in instantiation of function template specialization 'llvm::stable_sort<llvm::SmallVector<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>> &, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
912 |   llvm::stable_sort(CIToInfos, [](auto &LHS, auto &RHS) {
|         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(918,72): note: candidate function [with _Index = 1, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>] not viable: expects an rvalue for 1st argument
918 | _NODISCARD constexpr const tuple_element_t<_Index, tuple<_Types...>>&& get(const tuple<_Types...>&& _Tuple) noexcept {
|                                                                        ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(682,63): note: candidate template ignored: could not match 'pair' against 'std::tuple'
682 | _NODISCARD constexpr tuple_element_t<_Idx, pair<_Ty1, _Ty2>>& get(pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                                               ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(704,69): note: candidate template ignored: could not match 'pair' against 'std::tuple'
704 | _NODISCARD constexpr const tuple_element_t<_Idx, pair<_Ty1, _Ty2>>& get(const pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                                                     ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(726,64): note: candidate template ignored: could not match 'pair' against 'std::tuple'
726 | _NODISCARD constexpr tuple_element_t<_Idx, pair<_Ty1, _Ty2>>&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                                                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(748,70): note: candidate template ignored: could not match 'pair' against 'std::tuple'
748 | _NODISCARD constexpr const tuple_element_t<_Idx, pair<_Ty1, _Ty2>>&& get(const pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                                                      ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(899,65): note: candidate template ignored: deduced type 'tuple<...>' of 1st parameter does not match adjusted type 'const tuple<...>' of argument [with _Index = 1, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
899 | _NODISCARD constexpr tuple_element_t<_Index, tuple<_Types...>>& get(tuple<_Types...>& _Tuple) noexcept {
|                                                                 ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(905,71): note: candidate template ignored: substitution failure [with _Index = 1, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
905 | _NODISCARD constexpr const tuple_element_t<_Index, tuple<_Types...>>& get(const tuple<_Types...>& _Tuple) noexcept {
|                                                                       ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(911,66): note: candidate template ignored: substitution failure [with _Index = 1, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
911 | _NODISCARD constexpr tuple_element_t<_Index, tuple<_Types...>>&& get(tuple<_Types...>&& _Tuple) noexcept {
|                                                                  ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(853,27): note: candidate template ignored: could not match 'array' against 'std::tuple'
853 | _NODISCARD constexpr _Ty& get(array<_Ty, _Size>& _Arr) noexcept {
|                           ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(867,33): note: candidate template ignored: could not match 'array' against 'std::tuple'
867 | _NODISCARD constexpr const _Ty& get(const array<_Ty, _Size>& _Arr) noexcept {
|                                 ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(877,28): note: candidate template ignored: could not match 'array' against 'std::tuple'
877 | _NODISCARD constexpr _Ty&& get(array<_Ty, _Size>&& _Arr) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(891,34): note: candidate template ignored: could not match 'array' against 'std::tuple'
891 | _NODISCARD constexpr const _Ty&& get(const array<_Ty, _Size>&& _Arr) noexcept {
|                                  ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/PointerIntPair.h(256,1): note: candidate template ignored: could not match 'PointerIntPair' against 'std::tuple'
256 | get(const PointerIntPair<PointerTy, IntBits, IntType, PtrTraits, Info> &Pair) {
| ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/StringMapEntry.h(154,16): note: candidate template ignored: could not match 'StringMapEntry' against 'std::tuple'
154 | decltype(auto) get(StringMapEntry<ValueTy> &E) {
|                ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/StringMapEntry.h(163,16): note: candidate template ignored: could not match 'StringMapEntry' against 'std::tuple'
163 | decltype(auto) get(const StringMapEntry<ValueTy> &E) {
|                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(692,28): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
692 | _NODISCARD constexpr _Ty1& get(pair<_Ty1, _Ty2>& _Pr) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(698,28): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
698 | _NODISCARD constexpr _Ty2& get(pair<_Ty1, _Ty2>& _Pr) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(714,34): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
714 | _NODISCARD constexpr const _Ty1& get(const pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                  ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(720,34): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
720 | _NODISCARD constexpr const _Ty2& get(const pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                  ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(736,29): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
736 | _NODISCARD constexpr _Ty1&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                             ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(742,29): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
742 | _NODISCARD constexpr _Ty2&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                             ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(758,35): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
758 | _NODISCARD constexpr const _Ty1&& get(const pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                   ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(764,35): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
764 | _NODISCARD constexpr const _Ty2&& get(const pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                   ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(933,27): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty'
933 | _NODISCARD constexpr _Ty& get(tuple<_Types...>& _Tuple) noexcept {
|                           ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(945,33): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty'
945 | _NODISCARD constexpr const _Ty& get(const tuple<_Types...>& _Tuple) noexcept {
|                                 ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(957,28): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty'
957 | _NODISCARD constexpr _Ty&& get(tuple<_Types...>&& _Tuple) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(969,34): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty'
969 | _NODISCARD constexpr const _Ty&& get(const tuple<_Types...>&& _Tuple) noexcept {
|                                  ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(914,28): error: no matching function for call to 'get'
914 |     const auto &[RCI, RRI, RRTI] = RHS;
|                            ^~~~
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(914,28): note: in implicit initialization of binding declaration 'RRTI'
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8249,32): note: in instantiation of function template specialization 'llvm::DXILResourceMap::populateResourceInfos(Module &, DXILResourceTypeMap &)::(lambda)::operator()<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>>' requested here
8249 |             if (_DEBUG_LT_PRED(_Pred, _Val, *_First)) { // found new earliest element, move to front
|                                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\xutility(1575,54): note: expanded from macro '_DEBUG_LT_PRED'
1575 | #define _DEBUG_LT_PRED(pred, x, y) static_cast<bool>(pred(x, y))
|                                                      ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8813,14): note: in instantiation of function template specialization 'std::_Insertion_sort_unchecked<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
8813 |         _STD _Insertion_sort_unchecked(_UFirst, _ULast, _STD _Pass_fn(_Pred));
|              ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/STLExtras.h(2122,8): note: in instantiation of function template specialization 'std::stable_sort<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
2122 |   std::stable_sort(adl_begin(Range), adl_end(Range), C);
|        ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(912,9): note: in instantiation of function template specialization 'llvm::stable_sort<llvm::SmallVector<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>> &, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
912 |   llvm::stable_sort(CIToInfos, [](auto &LHS, auto &RHS) {
|         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(918,72): note: candidate function [with _Index = 2, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>] not viable: expects an rvalue for 1st argument
918 | _NODISCARD constexpr const tuple_element_t<_Index, tuple<_Types...>>&& get(const tuple<_Types...>&& _Tuple) noexcept {
|                                                                        ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(682,63): note: candidate template ignored: could not match 'pair' against 'std::tuple'
682 | _NODISCARD constexpr tuple_element_t<_Idx, pair<_Ty1, _Ty2>>& get(pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                                               ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(704,69): note: candidate template ignored: could not match 'pair' against 'std::tuple'
704 | _NODISCARD constexpr const tuple_element_t<_Idx, pair<_Ty1, _Ty2>>& get(const pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                                                     ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(726,64): note: candidate template ignored: could not match 'pair' against 'std::tuple'
726 | _NODISCARD constexpr tuple_element_t<_Idx, pair<_Ty1, _Ty2>>&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                                                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(748,70): note: candidate template ignored: could not match 'pair' against 'std::tuple'
748 | _NODISCARD constexpr const tuple_element_t<_Idx, pair<_Ty1, _Ty2>>&& get(const pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                                                      ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(899,65): note: candidate template ignored: deduced type 'tuple<...>' of 1st parameter does not match adjusted type 'const tuple<...>' of argument [with _Index = 2, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
899 | _NODISCARD constexpr tuple_element_t<_Index, tuple<_Types...>>& get(tuple<_Types...>& _Tuple) noexcept {
|                                                                 ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(905,71): note: candidate template ignored: substitution failure [with _Index = 2, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
905 | _NODISCARD constexpr const tuple_element_t<_Index, tuple<_Types...>>& get(const tuple<_Types...>& _Tuple) noexcept {
|                                                                       ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(911,66): note: candidate template ignored: substitution failure [with _Index = 2, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
911 | _NODISCARD constexpr tuple_element_t<_Index, tuple<_Types...>>&& get(tuple<_Types...>&& _Tuple) noexcept {
|                                                                  ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(853,27): note: candidate template ignored: could not match 'array' against 'std::tuple'
853 | _NODISCARD constexpr _Ty& get(array<_Ty, _Size>& _Arr) noexcept {
|                           ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(867,33): note: candidate template ignored: could not match 'array' against 'std::tuple'
867 | _NODISCARD constexpr const _Ty& get(const array<_Ty, _Size>& _Arr) noexcept {
|                                 ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(877,28): note: candidate template ignored: could not match 'array' against 'std::tuple'
877 | _NODISCARD constexpr _Ty&& get(array<_Ty, _Size>&& _Arr) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(891,34): note: candidate template ignored: could not match 'array' against 'std::tuple'
891 | _NODISCARD constexpr const _Ty&& get(const array<_Ty, _Size>&& _Arr) noexcept {
|                                  ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/PointerIntPair.h(256,1): note: candidate template ignored: could not match 'PointerIntPair' against 'std::tuple'
256 | get(const PointerIntPair<PointerTy, IntBits, IntType, PtrTraits, Info> &Pair) {
| ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/StringMapEntry.h(154,16): note: candidate template ignored: could not match 'StringMapEntry' against 'std::tuple'
154 | decltype(auto) get(StringMapEntry<ValueTy> &E) {
|                ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/StringMapEntry.h(163,16): note: candidate template ignored: could not match 'StringMapEntry' against 'std::tuple'
163 | decltype(auto) get(const StringMapEntry<ValueTy> &E) {
|                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(692,28): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
692 | _NODISCARD constexpr _Ty1& get(pair<_Ty1, _Ty2>& _Pr) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(698,28): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
698 | _NODISCARD constexpr _Ty2& get(pair<_Ty1, _Ty2>& _Pr) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(714,34): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
714 | _NODISCARD constexpr const _Ty1& get(const pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                  ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(720,34): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
720 | _NODISCARD constexpr const _Ty2& get(const pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                  ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(736,29): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
736 | _NODISCARD constexpr _Ty1&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                             ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(742,29): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
742 | _NODISCARD constexpr _Ty2&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                             ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(758,35): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
758 | _NODISCARD constexpr const _Ty1&& get(const pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                   ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(764,35): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
764 | _NODISCARD constexpr const _Ty2&& get(const pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                   ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(933,27): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty'
933 | _NODISCARD constexpr _Ty& get(tuple<_Types...>& _Tuple) noexcept {
|                           ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(945,33): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty'
945 | _NODISCARD constexpr const _Ty& get(const tuple<_Types...>& _Tuple) noexcept {
|                                 ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(957,28): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty'
957 | _NODISCARD constexpr _Ty&& get(tuple<_Types...>&& _Tuple) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(969,34): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty'
969 | _NODISCARD constexpr const _Ty&& get(const tuple<_Types...>&& _Tuple) noexcept {
|                                  ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(726,16): error: non-const lvalue reference to type 'tuple<llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo, (no argument)>' cannot bind to a value of unrelated type 'tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>'
726 |         return *this;
|                ^~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(571,9): note: in instantiation of member function 'std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>::_Get_rest' requested here
571 |         _Get_rest()   = _STD forward<_Mybase>(_Right._Get_rest());
|         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8251,25): note: in instantiation of function template specialization 'std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>::operator=<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, llvm::CallInst *, 0>' requested here
8251 |                 *_First = _STD move(_Val);
|                         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8813,14): note: in instantiation of function template specialization 'std::_Insertion_sort_unchecked<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
8813 |         _STD _Insertion_sort_unchecked(_UFirst, _ULast, _STD _Pass_fn(_Pred));
|              ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/STLExtras.h(2122,8): note: in instantiation of function template specialization 'std::stable_sort<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
2122 |   std::stable_sort(adl_begin(Range), adl_end(Range), C);
|        ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(912,9): note: in instantiation of function template specialization 'llvm::stable_sort<llvm::SmallVector<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>> &, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
912 |   llvm::stable_sort(CIToInfos, [](auto &LHS, auto &RHS) {
|         ^
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:9:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h:12:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/MapVector.h:20:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMap.h:25:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMapInfo.h:20:
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(730,16): error: no viable conversion from returned value of type 'const tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>' to function return type 'const tuple<llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo, (no argument)>'
730 |         return *this;
|                ^~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(571,54): note: in instantiation of member function 'std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>::_Get_rest' requested here
571 |         _Get_rest()   = _STD forward<_Mybase>(_Right._Get_rest());
|                                                      ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8251,25): note: in instantiation of function template specialization 'std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>::operator=<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, llvm::CallInst *, 0>' requested here
8251 |                 *_First = _STD move(_Val);
|                         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8813,14): note: in instantiation of function template specialization 'std::_Insertion_sort_unchecked<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
8813 |         _STD _Insertion_sort_unchecked(_UFirst, _ULast, _STD _Pass_fn(_Pred));
|              ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/STLExtras.h(2122,8): note: in instantiation of function template specialization 'std::stable_sort<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
2122 |   std::stable_sort(adl_begin(Range), adl_end(Range), C);
|        ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(912,9): note: in instantiation of function template specialization 'llvm::stable_sort<llvm::SmallVector<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>> &, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
912 |   llvm::stable_sort(CIToInfos, [](auto &LHS, auto &RHS) {
|         ^
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:9:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h:12:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/MapVector.h:20:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMap.h:25:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/DenseMapInfo.h:20:
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(571,25): error: no matching function for call to 'forward'
571 |         _Get_rest()   = _STD forward<_Mybase>(_Right._Get_rest());
|                         ^~~~~~~~~~~~~~~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\yvals_core.h(1928,17): note: expanded from macro '_STD'
1928 | #define _STD    ::std::
|                 ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8251,25): note: in instantiation of function template specialization 'std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>::operator=<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, llvm::CallInst *, 0>' requested here
8251 |                 *_First = _STD move(_Val);
|                         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8813,14): note: in instantiation of function template specialization 'std::_Insertion_sort_unchecked<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
8813 |         _STD _Insertion_sort_unchecked(_UFirst, _ULast, _STD _Pass_fn(_Pred));
|              ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/STLExtras.h(2122,8): note: in instantiation of function template specialization 'std::stable_sort<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
2122 |   std::stable_sort(adl_begin(Range), adl_end(Range), C);
|        ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(912,9): note: in instantiation of function template specialization 'llvm::stable_sort<llvm::SmallVector<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>> &, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
912 |   llvm::stable_sort(CIToInfos, [](auto &LHS, auto &RHS) {
|         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\type_traits(1501,44): note: candidate function template not viable: 1st argument ('const _Mybase' (aka 'const tuple<llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>')) would lose const qualifier
1501 | _NODISCARD _MSVC_INTRINSIC constexpr _Ty&& forward(remove_reference_t<_Ty>& _Arg) noexcept {
|                                            ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\type_traits(1506,44): note: candidate function template not viable: 1st argument ('const _Mybase' (aka 'const tuple<llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>')) would lose const qualifier
1506 | _NODISCARD _MSVC_INTRINSIC constexpr _Ty&& forward(remove_reference_t<_Ty>&& _Arg) noexcept {
|                                            ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(913,23): error: no matching function for call to 'get'
913 |     const auto &[LCI, LRI, LRTI] = LHS;
|                       ^~~
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(913,23): note: in implicit initialization of binding declaration 'LRI'
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\xutility(7443,13): note: in instantiation of function template specialization 'llvm::DXILResourceMap::populateResourceInfos(Module &, DXILResourceTypeMap &)::(lambda)::operator()<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, const std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>>' requested here
7443 |         if (_Pred(*_UMid, _Val)) { // try top half
|             ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(7774,37): note: in instantiation of function template specialization 'std::lower_bound<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
7774 |         const _BidIt _Lastn  = _STD lower_bound(_Mid, _Last, *_Firstn, _Pred);
|                                     ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(7796,14): note: in instantiation of function template specialization 'std::_Buffered_inplace_merge_divide_and_conquer<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
7796 |         _STD _Buffered_inplace_merge_divide_and_conquer(
|              ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(7842,10): note: in instantiation of function template specialization 'std::_Buffered_inplace_merge_unchecked_impl<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
7842 |     _STD _Buffered_inplace_merge_unchecked_impl(_First, _Mid, _Last, _Count1, _Count2, _Temp_ptr, _Capacity, _Pred);
|          ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8800,14): note: in instantiation of function template specialization 'std::_Buffered_inplace_merge_unchecked<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
8800 |         _STD _Buffered_inplace_merge_unchecked(
|              ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\algorithm(8818,10): note: in instantiation of function template specialization 'std::_Stable_sort_unchecked<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
8818 |     _STD _Stable_sort_unchecked(_UFirst, _ULast, _Count, _Temp_buf._Data, _Temp_buf._Capacity, _STD _Pass_fn(_Pred));
|          ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/STLExtras.h(2122,8): note: in instantiation of function template specialization 'std::stable_sort<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo> *, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
2122 |   std::stable_sort(adl_begin(Range), adl_end(Range), C);
|        ^
C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp(912,9): note: in instantiation of function template specialization 'llvm::stable_sort<llvm::SmallVector<std::tuple<llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>> &, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Analysis\DXILResource.cpp:912:32)>' requested here
912 |   llvm::stable_sort(CIToInfos, [](auto &LHS, auto &RHS) {
|         ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(918,72): note: candidate function [with _Index = 1, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>] not viable: expects an rvalue for 1st argument
918 | _NODISCARD constexpr const tuple_element_t<_Index, tuple<_Types...>>&& get(const tuple<_Types...>&& _Tuple) noexcept {
|                                                                        ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(682,63): note: candidate template ignored: could not match 'pair' against 'std::tuple'
682 | _NODISCARD constexpr tuple_element_t<_Idx, pair<_Ty1, _Ty2>>& get(pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                                               ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(704,69): note: candidate template ignored: could not match 'pair' against 'std::tuple'
704 | _NODISCARD constexpr const tuple_element_t<_Idx, pair<_Ty1, _Ty2>>& get(const pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                                                     ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(726,64): note: candidate template ignored: could not match 'pair' against 'std::tuple'
726 | _NODISCARD constexpr tuple_element_t<_Idx, pair<_Ty1, _Ty2>>&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                                                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(748,70): note: candidate template ignored: could not match 'pair' against 'std::tuple'
748 | _NODISCARD constexpr const tuple_element_t<_Idx, pair<_Ty1, _Ty2>>&& get(const pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                                                      ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(899,65): note: candidate template ignored: deduced type 'tuple<...>' of 1st parameter does not match adjusted type 'const tuple<...>' of argument [with _Index = 1, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
899 | _NODISCARD constexpr tuple_element_t<_Index, tuple<_Types...>>& get(tuple<_Types...>& _Tuple) noexcept {
|                                                                 ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(905,71): note: candidate template ignored: substitution failure [with _Index = 1, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
905 | _NODISCARD constexpr const tuple_element_t<_Index, tuple<_Types...>>& get(const tuple<_Types...>& _Tuple) noexcept {
|                                                                       ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\tuple(911,66): note: candidate template ignored: substitution failure [with _Index = 1, _Types = <llvm::CallInst *, llvm::dxil::ResourceInfo, llvm::dxil::ResourceTypeInfo>]
911 | _NODISCARD constexpr tuple_element_t<_Index, tuple<_Types...>>&& get(tuple<_Types...>&& _Tuple) noexcept {
|                                                                  ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(853,27): note: candidate template ignored: could not match 'array' against 'std::tuple'
853 | _NODISCARD constexpr _Ty& get(array<_Ty, _Size>& _Arr) noexcept {
|                           ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(867,33): note: candidate template ignored: could not match 'array' against 'std::tuple'
867 | _NODISCARD constexpr const _Ty& get(const array<_Ty, _Size>& _Arr) noexcept {
|                                 ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(877,28): note: candidate template ignored: could not match 'array' against 'std::tuple'
877 | _NODISCARD constexpr _Ty&& get(array<_Ty, _Size>&& _Arr) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\array(891,34): note: candidate template ignored: could not match 'array' against 'std::tuple'
891 | _NODISCARD constexpr const _Ty&& get(const array<_Ty, _Size>&& _Arr) noexcept {
|                                  ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/PointerIntPair.h(256,1): note: candidate template ignored: could not match 'PointerIntPair' against 'std::tuple'
256 | get(const PointerIntPair<PointerTy, IntBits, IntType, PtrTraits, Info> &Pair) {
| ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/StringMapEntry.h(154,16): note: candidate template ignored: could not match 'StringMapEntry' against 'std::tuple'
154 | decltype(auto) get(StringMapEntry<ValueTy> &E) {
|                ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/StringMapEntry.h(163,16): note: candidate template ignored: could not match 'StringMapEntry' against 'std::tuple'
163 | decltype(auto) get(const StringMapEntry<ValueTy> &E) {
|                ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(692,28): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
692 | _NODISCARD constexpr _Ty1& get(pair<_Ty1, _Ty2>& _Pr) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(698,28): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
698 | _NODISCARD constexpr _Ty2& get(pair<_Ty1, _Ty2>& _Pr) noexcept {
|                            ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(714,34): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
714 | _NODISCARD constexpr const _Ty1& get(const pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                  ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(720,34): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
720 | _NODISCARD constexpr const _Ty2& get(const pair<_Ty1, _Ty2>& _Pr) noexcept {
|                                  ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(736,29): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
736 | _NODISCARD constexpr _Ty1&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                             ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(742,29): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
742 | _NODISCARD constexpr _Ty2&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                             ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(758,35): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty1'
758 | _NODISCARD constexpr const _Ty1&& get(const pair<_Ty1, _Ty2>&& _Pr) noexcept {
|                                   ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\utility(764,35): note: candidate template ignored: invalid explicitly-specified argument for template parameter '_Ty2'
764 | _NODISCARD constexpr const _Ty2&& get(const pair<_Ty1, _Ty2>&& _Pr) noexcept {
```
</details>
<details>
<summary>[code=1] tools/opt/CMakeFiles/LLVMOptDriver.dir/optdriver.cpp.obj</summary>

```
FAILED: [code=1] tools/opt/CMakeFiles/LLVMOptDriver.dir/optdriver.cpp.obj
sccache C:\clang\clang-msvc\bin\clang-cl.exe  /nologo -TP -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -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:\_work\llvm-project\llvm-project\build\tools\opt -IC:\_work\llvm-project\llvm-project\llvm\tools\opt -IC:\_work\llvm-project\llvm-project\build\include -IC:\_work\llvm-project\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /O2 /Ob2  -std:c++17 -MD -UNDEBUG /EHs-c- /GR- /showIncludes /Fotools\opt\CMakeFiles\LLVMOptDriver.dir\optdriver.cpp.obj /Fdtools\opt\CMakeFiles\LLVMOptDriver.dir\LLVMOptDriver.pdb -c -- C:\_work\llvm-project\llvm-project\llvm\tools\opt\optdriver.cpp
In file included from C:\_work\llvm-project\llvm-project\llvm\tools\opt\optdriver.cpp:39:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/LinkAllPasses.h:22:
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(406,8): error: no template named 'variant' in namespace 'std'
406 |   std::variant<ResourceBinding, uint32_t> BindingOrHeapID;
|   ~~~~~^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(427,17): error: no member named 'holds_alternative' in namespace 'std'
427 |     return std::holds_alternative<ResourceBinding>(BindingOrHeapID);
|                 ^~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(427,35): error: 'ResourceBinding' does not refer to a value
427 |     return std::holds_alternative<ResourceBinding>(BindingOrHeapID);
|                                   ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(374,10): note: declared here
374 |   struct ResourceBinding {
|          ^
3 errors generated.
```
</details>
<details>
<summary>[code=1] unittests/Analysis/CMakeFiles/AnalysisTests.dir/DXILResourceTest.cpp.obj</summary>

```
FAILED: [code=1] unittests/Analysis/CMakeFiles/AnalysisTests.dir/DXILResourceTest.cpp.obj
sccache C:\clang\clang-msvc\bin\clang-cl.exe  /nologo -TP -DLLVM_BUILD_STATIC -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -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:\_work\llvm-project\llvm-project\build\unittests\Analysis -IC:\_work\llvm-project\llvm-project\llvm\unittests\Analysis -IC:\_work\llvm-project\llvm-project\build\include -IC:\_work\llvm-project\llvm-project\llvm\include -IC:\_work\llvm-project\llvm-project\third-party\unittest\googletest\include -IC:\_work\llvm-project\llvm-project\third-party\unittest\googlemock\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /O2 /Ob2  -std:c++17 -MD -UNDEBUG -Wno-gnu-zero-variadic-macro-arguments /EHs-c- /GR- -Wno-suggest-override /showIncludes /Founittests\Analysis\CMakeFiles\AnalysisTests.dir\DXILResourceTest.cpp.obj /Fdunittests\Analysis\CMakeFiles\AnalysisTests.dir\ -c -- C:\_work\llvm-project\llvm-project\llvm\unittests\Analysis\DXILResourceTest.cpp
In file included from C:\_work\llvm-project\llvm-project\llvm\unittests\Analysis\DXILResourceTest.cpp:9:
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(406,8): error: no template named 'variant' in namespace 'std'
406 |   std::variant<ResourceBinding, uint32_t> BindingOrHeapID;
|   ~~~~~^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(427,17): error: no member named 'holds_alternative' in namespace 'std'
427 |     return std::holds_alternative<ResourceBinding>(BindingOrHeapID);
|                 ^~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(427,35): error: 'ResourceBinding' does not refer to a value
427 |     return std::holds_alternative<ResourceBinding>(BindingOrHeapID);
|                                   ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Analysis/DXILResource.h(374,10): note: declared here
374 |   struct ResourceBinding {
|          ^
3 errors generated.
```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

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


More information about the llvm-commits mailing list