[flang-commits] [flang] [flang][mlir] add missing type conversion when lowering atomiccas (PR #164865)

LLVM Continuous Integration via flang-commits flang-commits at lists.llvm.org
Thu Oct 23 13:31:07 PDT 2025


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `amdgpu-offload-ubuntu-22-cmake-build-only` running on `rocm-docker-ubu-22` while building `flang` at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/203/builds/27151

<details>
<summary>Here is the relevant piece of the build log for the reference</summary>

```
Step 4 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py --jobs=32' (failure)
...
[7761/8169] Building CXX object tools/flang/lib/Optimizer/Dialect/MIF/CMakeFiles/MIFDialect.dir/MIFDialect.cpp.o
[7762/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/Character.cpp.o
[7763/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/LowLevelIntrinsics.cpp.o
[7764/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/HLFIRTools.cpp.o
[7765/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/BoxValue.cpp.o
[7766/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/Runtime/CUDA/Descriptor.cpp.o
[7767/8169] Building CXX object tools/flang/lib/Optimizer/Analysis/CMakeFiles/FIRAnalysis.dir/AliasAnalysis.cpp.o
[7768/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/Runtime/Derived.cpp.o
[7769/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/Runtime/Execute.cpp.o
[7770/8169] Building CXX object tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o
FAILED: tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o 
ccache /usr/bin/c++ -DFLANG_INCLUDE_TESTS=1 -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/tools/flang/lib/Optimizer/HLFIR/Transforms -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/lib/Optimizer/HLFIR/Transforms -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/tools/flang/include -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/include -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/llvm/include -isystem /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/../mlir/include -isystem /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/tools/mlir/include -isystem /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/tools/clang/include -isystem /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/llvm/../clang/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-ctad-maybe-unsupported -fno-semantic-interposition -fpch-preprocess -O3 -DNDEBUG -fno-semantic-interposition -fPIC  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -std=c++17 -MD -MT tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o -MF tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o.d -o tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o -c /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIRIntrinsics.cpp
In file included from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Common/variant.h:27,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Common/idioms.h:27,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Common/enum-set.h:18,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Support/Fortran.h:16,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Optimizer/Dialect/CUF/Attributes/CUFAttr.h:16,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Optimizer/Dialect/FIROps.h:12,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Optimizer/Builder/FIRBuilder.h:19,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIRIntrinsics.cpp:9:
/usr/include/c++/11/variant: In instantiation of ‘void std::__detail::__variant::__variant_construct_single(_Tp&&, _Up&&) [with _Tp = std::__detail::__variant::_Move_ctor_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >&; _Up = const Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >&]’:
/usr/include/c++/11/variant:562:30:   required from ‘void std::__detail::__variant::_Move_ctor_base<<anonymous>, _Types>::_M_destructive_copy(short unsigned int, const _Up&) [with _Up = Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >; bool <anonymous> = false; _Types = {Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >}]’
/usr/include/c++/11/variant:627:34:   required from ‘std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >::operator=(const std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >&)::<lambda(auto:3&&, auto:4)> mutable [with auto:3 = const Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >&; auto:4 = std::integral_constant<long unsigned int, 13>]’
/usr/include/c++/11/type_traits:2530:26:   required by substitution of ‘template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >::operator=(const std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >&)::<lambda(auto:3&&, auto:4)>; _Args = {const Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >&, std::integral_constant<long unsigned int, 13>}]’
/usr/include/c++/11/type_traits:2541:55:   required from ‘struct std::__result_of_impl<false, false, std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >::operator=(const std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >&)::<lambda(auto:3&&, auto:4)>, const Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >&, std::integral_constant<long unsigned int, 13> >’
/usr/include/c++/11/type_traits:2546:12:   required from ‘struct std::__invoke_result<std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >::operator=(const std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >&)::<lambda(auto:3&&, auto:4)>, const Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >&, std::integral_constant<long unsigned int, 13> >’
/usr/include/c++/11/bits/invoke.h:90:5:   [ skipping 44 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/11/variant:201:44:   required from ‘constexpr void std::__detail::__variant::__raw_idx_visit(_Visitor&&, _Variants&& ...) [with _Visitor = std::__detail::__variant::_Move_assign_base<false, Fortran::semantics::UnknownDetails, Fortran::semantics::MainProgramDetails, Fortran::semantics::ModuleDetails, Fortran::semantics::SubprogramDetails, Fortran::semantics::SubprogramNameDetails, Fortran::semantics::EntityDetails, Fortran::semantics::ObjectEntityDetails, Fortran::semantics::ProcEntityDetails, Fortran::semantics::AssocEntityDetails, Fortran::semantics::DerivedTypeDetails, Fortran::semantics::UseDetails, Fortran::semantics::UseErrorDetails, Fortran::semantics::HostAssocDetails, Fortran::semantics::GenericDetails, Fortran::semantics::ProcBindingDetails, Fortran::semantics::NamelistDetails, Fortran::semantics::CommonBlockDetails, Fortran::semantics::TypeParamDetails, Fortran::semantics::MiscDetails, Fortran::semantics::UserReductionDetails>::operator=(std::__detail::__variant::_Move_assign_base<false, Fortran::semantics::UnknownDetails, Fortran::semantics::MainProgramDetails, Fortran::semantics::ModuleDetails, Fortran::semantics::SubprogramDetails, Fortran::semantics::SubprogramNameDetails, Fortran::semantics::EntityDetails, Fortran::semantics::ObjectEntityDetails, Fortran::semantics::ProcEntityDetails, Fortran::semantics::AssocEntityDetails, Fortran::semantics::DerivedTypeDetails, Fortran::semantics::UseDetails, Fortran::semantics::UseErrorDetails, Fortran::semantics::HostAssocDetails, Fortran::semantics::GenericDetails, Fortran::semantics::ProcBindingDetails, Fortran::semantics::NamelistDetails, Fortran::semantics::CommonBlockDetails, Fortran::semantics::TypeParamDetails, Fortran::semantics::MiscDetails, Fortran::semantics::UserReductionDetails>&&)::<lambda(auto:5&&, auto:6)>; _Variants = {std::variant<Fortran::semantics::UnknownDetails, Fortran::semantics::MainProgramDetails, Fortran::semantics::ModuleDetails, Fortran::semantics::SubprogramDetails, Fortran::semantics::SubprogramNameDetails, Fortran::semantics::EntityDetails, Fortran::semantics::ObjectEntityDetails, Fortran::semantics::ProcEntityDetails, Fortran::semantics::AssocEntityDetails, Fortran::semantics::DerivedTypeDetails, Fortran::semantics::UseDetails, Fortran::semantics::UseErrorDetails, Fortran::semantics::HostAssocDetails, Fortran::semantics::GenericDetails, Fortran::semantics::ProcBindingDetails, Fortran::semantics::NamelistDetails, Fortran::semantics::CommonBlockDetails, Fortran::semantics::TypeParamDetails, Fortran::semantics::MiscDetails, Fortran::semantics::UserReductionDetails>&}]’
/usr/include/c++/11/variant:666:28:   required from ‘std::__detail::__variant::_Move_assign_base<<anonymous>, _Types>& std::__detail::__variant::_Move_assign_base<<anonymous>, _Types>::operator=(std::__detail::__variant::_Move_assign_base<<anonymous>, _Types>&&) [with bool <anonymous> = false; _Types = {Fortran::semantics::UnknownDetails, Fortran::semantics::MainProgramDetails, Fortran::semantics::ModuleDetails, Fortran::semantics::SubprogramDetails, Fortran::semantics::SubprogramNameDetails, Fortran::semantics::EntityDetails, Fortran::semantics::ObjectEntityDetails, Fortran::semantics::ProcEntityDetails, Fortran::semantics::AssocEntityDetails, Fortran::semantics::DerivedTypeDetails, Fortran::semantics::UseDetails, Fortran::semantics::UseErrorDetails, Fortran::semantics::HostAssocDetails, Fortran::semantics::GenericDetails, Fortran::semantics::ProcBindingDetails, Fortran::semantics::NamelistDetails, Fortran::semantics::CommonBlockDetails, Fortran::semantics::TypeParamDetails, Fortran::semantics::MiscDetails, Fortran::semantics::UserReductionDetails}]’
/usr/include/c++/11/variant:718:22:   required from ‘Fortran::semantics::Symbol& Fortran::semantics::Symbols<<anonymous> >::Make(const Fortran::semantics::Scope&, const SourceName&, const Fortran::semantics::Attrs&, Fortran::semantics::Details&&) [with long unsigned int BLOCK_SIZE = 1024; Fortran::semantics::SourceName = Fortran::parser::CharBlock; Fortran::semantics::Details = std::variant<Fortran::semantics::UnknownDetails, Fortran::semantics::MainProgramDetails, Fortran::semantics::ModuleDetails, Fortran::semantics::SubprogramDetails, Fortran::semantics::SubprogramNameDetails, Fortran::semantics::EntityDetails, Fortran::semantics::ObjectEntityDetails, Fortran::semantics::ProcEntityDetails, Fortran::semantics::AssocEntityDetails, Fortran::semantics::DerivedTypeDetails, Fortran::semantics::UseDetails, Fortran::semantics::UseErrorDetails, Fortran::semantics::HostAssocDetails, Fortran::semantics::GenericDetails, Fortran::semantics::ProcBindingDetails, Fortran::semantics::NamelistDetails, Fortran::semantics::CommonBlockDetails, Fortran::semantics::TypeParamDetails, Fortran::semantics::MiscDetails, Fortran::semantics::UserReductionDetails>]’
/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Semantics/scope.h:214:23:   required from ‘Fortran::common::IfNoLvalue<Fortran::semantics::Symbol&, D> Fortran::semantics::Scope::MakeSymbol(const SourceName&, Fortran::semantics::Attrs, D&&) [with D = Fortran::semantics::UnknownDetails; Fortran::common::IfNoLvalue<Fortran::semantics::Symbol&, D> = Fortran::semantics::Symbol&; Fortran::semantics::SourceName = Fortran::parser::CharBlock]’
/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Semantics/scope.h:182:30:   required from ‘Fortran::common::IfNoLvalue<std::pair<std::_Rb_tree_iterator<std::pair<const Fortran::parser::CharBlock, Fortran::common::Reference<Fortran::semantics::Symbol> > >, bool>, D> Fortran::semantics::Scope::try_emplace(const SourceName&, Fortran::semantics::Attrs, D&&) [with D = Fortran::semantics::UnknownDetails; Fortran::common::IfNoLvalue<std::pair<std::_Rb_tree_iterator<std::pair<const Fortran::parser::CharBlock, Fortran::common::Reference<Fortran::semantics::Symbol> > >, bool>, D> = std::pair<std::_Rb_tree_iterator<std::pair<const Fortran::parser::CharBlock, Fortran::common::Reference<Fortran::semantics::Symbol> > >, bool>; Fortran::semantics::SourceName = Fortran::parser::CharBlock]’
/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Semantics/scope.h:170:23:   required from here
/usr/include/c++/11/variant:489:40: internal compiler error: Illegal instruction
  489 |       void* __storage = std::addressof(__lhs._M_u);
      |                                        ^~~~~
0xe34ddb internal_error(char const*, ...)
	???:0
0x108216f mark_used(tree_node*, int)
	???:0
0x10e0c14 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	???:0
0x10e1118 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	???:0
0x10e1002 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	???:0
0x10e2002 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	???:0
0x1174c07 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
Step 7 (build cmake config) failure: build cmake config (failure)
...
[7761/8169] Building CXX object tools/flang/lib/Optimizer/Dialect/MIF/CMakeFiles/MIFDialect.dir/MIFDialect.cpp.o
[7762/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/Character.cpp.o
[7763/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/LowLevelIntrinsics.cpp.o
[7764/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/HLFIRTools.cpp.o
[7765/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/BoxValue.cpp.o
[7766/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/Runtime/CUDA/Descriptor.cpp.o
[7767/8169] Building CXX object tools/flang/lib/Optimizer/Analysis/CMakeFiles/FIRAnalysis.dir/AliasAnalysis.cpp.o
[7768/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/Runtime/Derived.cpp.o
[7769/8169] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/Runtime/Execute.cpp.o
[7770/8169] Building CXX object tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o
FAILED: tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o 
ccache /usr/bin/c++ -DFLANG_INCLUDE_TESTS=1 -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/tools/flang/lib/Optimizer/HLFIR/Transforms -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/lib/Optimizer/HLFIR/Transforms -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/tools/flang/include -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/include -I/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/llvm/include -isystem /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/../mlir/include -isystem /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/tools/mlir/include -isystem /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/tools/clang/include -isystem /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/llvm/../clang/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-ctad-maybe-unsupported -fno-semantic-interposition -fpch-preprocess -O3 -DNDEBUG -fno-semantic-interposition -fPIC  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -std=c++17 -MD -MT tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o -MF tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o.d -o tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o -c /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIRIntrinsics.cpp
In file included from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Common/variant.h:27,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Common/idioms.h:27,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Common/enum-set.h:18,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Support/Fortran.h:16,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Optimizer/Dialect/CUF/Attributes/CUFAttr.h:16,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Optimizer/Dialect/FIROps.h:12,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Optimizer/Builder/FIRBuilder.h:19,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIRIntrinsics.cpp:9:
/usr/include/c++/11/variant: In instantiation of ‘void std::__detail::__variant::__variant_construct_single(_Tp&&, _Up&&) [with _Tp = std::__detail::__variant::_Move_ctor_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >&; _Up = const Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >&]’:
/usr/include/c++/11/variant:562:30:   required from ‘void std::__detail::__variant::_Move_ctor_base<<anonymous>, _Types>::_M_destructive_copy(short unsigned int, const _Up&) [with _Up = Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >; bool <anonymous> = false; _Types = {Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >}]’
/usr/include/c++/11/variant:627:34:   required from ‘std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >::operator=(const std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >&)::<lambda(auto:3&&, auto:4)> mutable [with auto:3 = const Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >&; auto:4 = std::integral_constant<long unsigned int, 13>]’
/usr/include/c++/11/type_traits:2530:26:   required by substitution of ‘template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >::operator=(const std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >&)::<lambda(auto:3&&, auto:4)>; _Args = {const Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >&, std::integral_constant<long unsigned int, 13>}]’
/usr/include/c++/11/type_traits:2541:55:   required from ‘struct std::__result_of_impl<false, false, std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >::operator=(const std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >&)::<lambda(auto:3&&, auto:4)>, const Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >&, std::integral_constant<long unsigned int, 13> >’
/usr/include/c++/11/type_traits:2546:12:   required from ‘struct std::__invoke_result<std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >::operator=(const std::__detail::__variant::_Copy_assign_base<false, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3>, Fortran::common::TypeCategory::Complex>, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ComplexConstructor<3>, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> > >&)::<lambda(auto:3&&, auto:4)>, const Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 3> >&, std::integral_constant<long unsigned int, 13> >’
/usr/include/c++/11/bits/invoke.h:90:5:   [ skipping 44 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/11/variant:201:44:   required from ‘constexpr void std::__detail::__variant::__raw_idx_visit(_Visitor&&, _Variants&& ...) [with _Visitor = std::__detail::__variant::_Move_assign_base<false, Fortran::semantics::UnknownDetails, Fortran::semantics::MainProgramDetails, Fortran::semantics::ModuleDetails, Fortran::semantics::SubprogramDetails, Fortran::semantics::SubprogramNameDetails, Fortran::semantics::EntityDetails, Fortran::semantics::ObjectEntityDetails, Fortran::semantics::ProcEntityDetails, Fortran::semantics::AssocEntityDetails, Fortran::semantics::DerivedTypeDetails, Fortran::semantics::UseDetails, Fortran::semantics::UseErrorDetails, Fortran::semantics::HostAssocDetails, Fortran::semantics::GenericDetails, Fortran::semantics::ProcBindingDetails, Fortran::semantics::NamelistDetails, Fortran::semantics::CommonBlockDetails, Fortran::semantics::TypeParamDetails, Fortran::semantics::MiscDetails, Fortran::semantics::UserReductionDetails>::operator=(std::__detail::__variant::_Move_assign_base<false, Fortran::semantics::UnknownDetails, Fortran::semantics::MainProgramDetails, Fortran::semantics::ModuleDetails, Fortran::semantics::SubprogramDetails, Fortran::semantics::SubprogramNameDetails, Fortran::semantics::EntityDetails, Fortran::semantics::ObjectEntityDetails, Fortran::semantics::ProcEntityDetails, Fortran::semantics::AssocEntityDetails, Fortran::semantics::DerivedTypeDetails, Fortran::semantics::UseDetails, Fortran::semantics::UseErrorDetails, Fortran::semantics::HostAssocDetails, Fortran::semantics::GenericDetails, Fortran::semantics::ProcBindingDetails, Fortran::semantics::NamelistDetails, Fortran::semantics::CommonBlockDetails, Fortran::semantics::TypeParamDetails, Fortran::semantics::MiscDetails, Fortran::semantics::UserReductionDetails>&&)::<lambda(auto:5&&, auto:6)>; _Variants = {std::variant<Fortran::semantics::UnknownDetails, Fortran::semantics::MainProgramDetails, Fortran::semantics::ModuleDetails, Fortran::semantics::SubprogramDetails, Fortran::semantics::SubprogramNameDetails, Fortran::semantics::EntityDetails, Fortran::semantics::ObjectEntityDetails, Fortran::semantics::ProcEntityDetails, Fortran::semantics::AssocEntityDetails, Fortran::semantics::DerivedTypeDetails, Fortran::semantics::UseDetails, Fortran::semantics::UseErrorDetails, Fortran::semantics::HostAssocDetails, Fortran::semantics::GenericDetails, Fortran::semantics::ProcBindingDetails, Fortran::semantics::NamelistDetails, Fortran::semantics::CommonBlockDetails, Fortran::semantics::TypeParamDetails, Fortran::semantics::MiscDetails, Fortran::semantics::UserReductionDetails>&}]’
/usr/include/c++/11/variant:666:28:   required from ‘std::__detail::__variant::_Move_assign_base<<anonymous>, _Types>& std::__detail::__variant::_Move_assign_base<<anonymous>, _Types>::operator=(std::__detail::__variant::_Move_assign_base<<anonymous>, _Types>&&) [with bool <anonymous> = false; _Types = {Fortran::semantics::UnknownDetails, Fortran::semantics::MainProgramDetails, Fortran::semantics::ModuleDetails, Fortran::semantics::SubprogramDetails, Fortran::semantics::SubprogramNameDetails, Fortran::semantics::EntityDetails, Fortran::semantics::ObjectEntityDetails, Fortran::semantics::ProcEntityDetails, Fortran::semantics::AssocEntityDetails, Fortran::semantics::DerivedTypeDetails, Fortran::semantics::UseDetails, Fortran::semantics::UseErrorDetails, Fortran::semantics::HostAssocDetails, Fortran::semantics::GenericDetails, Fortran::semantics::ProcBindingDetails, Fortran::semantics::NamelistDetails, Fortran::semantics::CommonBlockDetails, Fortran::semantics::TypeParamDetails, Fortran::semantics::MiscDetails, Fortran::semantics::UserReductionDetails}]’
/usr/include/c++/11/variant:718:22:   required from ‘Fortran::semantics::Symbol& Fortran::semantics::Symbols<<anonymous> >::Make(const Fortran::semantics::Scope&, const SourceName&, const Fortran::semantics::Attrs&, Fortran::semantics::Details&&) [with long unsigned int BLOCK_SIZE = 1024; Fortran::semantics::SourceName = Fortran::parser::CharBlock; Fortran::semantics::Details = std::variant<Fortran::semantics::UnknownDetails, Fortran::semantics::MainProgramDetails, Fortran::semantics::ModuleDetails, Fortran::semantics::SubprogramDetails, Fortran::semantics::SubprogramNameDetails, Fortran::semantics::EntityDetails, Fortran::semantics::ObjectEntityDetails, Fortran::semantics::ProcEntityDetails, Fortran::semantics::AssocEntityDetails, Fortran::semantics::DerivedTypeDetails, Fortran::semantics::UseDetails, Fortran::semantics::UseErrorDetails, Fortran::semantics::HostAssocDetails, Fortran::semantics::GenericDetails, Fortran::semantics::ProcBindingDetails, Fortran::semantics::NamelistDetails, Fortran::semantics::CommonBlockDetails, Fortran::semantics::TypeParamDetails, Fortran::semantics::MiscDetails, Fortran::semantics::UserReductionDetails>]’
/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Semantics/scope.h:214:23:   required from ‘Fortran::common::IfNoLvalue<Fortran::semantics::Symbol&, D> Fortran::semantics::Scope::MakeSymbol(const SourceName&, Fortran::semantics::Attrs, D&&) [with D = Fortran::semantics::UnknownDetails; Fortran::common::IfNoLvalue<Fortran::semantics::Symbol&, D> = Fortran::semantics::Symbol&; Fortran::semantics::SourceName = Fortran::parser::CharBlock]’
/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Semantics/scope.h:182:30:   required from ‘Fortran::common::IfNoLvalue<std::pair<std::_Rb_tree_iterator<std::pair<const Fortran::parser::CharBlock, Fortran::common::Reference<Fortran::semantics::Symbol> > >, bool>, D> Fortran::semantics::Scope::try_emplace(const SourceName&, Fortran::semantics::Attrs, D&&) [with D = Fortran::semantics::UnknownDetails; Fortran::common::IfNoLvalue<std::pair<std::_Rb_tree_iterator<std::pair<const Fortran::parser::CharBlock, Fortran::common::Reference<Fortran::semantics::Symbol> > >, bool>, D> = std::pair<std::_Rb_tree_iterator<std::pair<const Fortran::parser::CharBlock, Fortran::common::Reference<Fortran::semantics::Symbol> > >, bool>; Fortran::semantics::SourceName = Fortran::parser::CharBlock]’
/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/flang/include/flang/Semantics/scope.h:170:23:   required from here
/usr/include/c++/11/variant:489:40: internal compiler error: Illegal instruction
  489 |       void* __storage = std::addressof(__lhs._M_u);
      |                                        ^~~~~
0xe34ddb internal_error(char const*, ...)
	???:0
0x108216f mark_used(tree_node*, int)
	???:0
0x10e0c14 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	???:0
0x10e1118 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	???:0
0x10e1002 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	???:0
0x10e2002 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	???:0
0x1174c07 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)

```

</details>

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


More information about the flang-commits mailing list