https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107267
--- Comment #3 from David Binderman <dcb314 at hotmail dot com> --- Reduced C++ code is template <int __v> struct integral_constant { static constexpr int value = __v; }; template <bool __v> using __bool_constant = integral_constant<__v>; template <int> struct __conditional { template <typename _Tp, typename> using type = _Tp; }; template <bool _Cond, typename _If, typename _Else> using __conditional_t = typename __conditional<_Cond>::type<_If, _Else>; template <typename _Tp> struct remove_reference { using type = _Tp; }; namespace std { template <typename _Tp> typename remove_reference<_Tp>::type &&move(_Tp &&); struct pair { int second; }; template <int _Constant_iterators> struct _Hashtable_traits { using __constant_iterators = __bool_constant<_Constant_iterators>; }; template <int __constant_iterators> struct _Node_iterator { using value_type = pair; using pointer = __conditional_t<__constant_iterators, value_type *, value_type>; pointer operator->(); }; struct _Insert_base { using __constant_iterators = _Hashtable_traits<false>::__constant_iterators; using iterator = _Node_iterator<__constant_iterators::value>; }; template <typename, typename> using __umap_hashtable = _Insert_base; struct unordered_map { __umap_hashtable<int, int>::iterator find(int); }; } // namespace std template <typename, typename> using unordered_map = std::unordered_map; struct vl_concurrent_unordered_map { struct FindResult { FindResult(bool, int); std::pair result; }; int pop_key; void pop() { auto itr = maps[0].find(pop_key); auto ret = std::move(FindResult(true, itr->second)); } unordered_map<int, int> maps[]; } unique_id_mapping; void DispatchDestroyAccelerationStructureKHR() { unique_id_mapping.pop(); }