Compile error on test/view from Intel compiler on macOS with optional.hpp

Issue #559 wontfix
Dan Bonachea created an issue

In nightly testing on macOS Monterey with Intel C++ Version 2021.4.0, we see the following compile error for the view test in opt + {seq,par} mode (but not debug):

env UPCXX_CODEMODE=opt UPCXX_THREADMODE=seq UPCXX_NETWORK=smp <redacted>/upcxx/bin/upcxx <redacted>/upcxx/test/view.cpp -D_REENTRANT -D_REENTRANT -D_REENTRANT -D_REENTRANT -o test-view-seq-opt-smp
<redacted>/upcxx/bld/upcxx.assert0.optlev3.dbgsym0.gasnet_seq.smp/include/upcxx/optional.hpp(231): error: function "upcxx::detail::optional_impl_::constexpr_storage_t<T>::~constexpr_storage_t() [with T=big_nontrivial]" (declared at line 198) cannot be referenced -- it is a deleted function
      constexpr constexpr_optional_base() noexcept : init_(false), storage_(trivial_init) {};
                                                                           ^
          detected during:
            instantiation of "upcxx::detail::optional_impl_::constexpr_optional_base<T>::constexpr_optional_base() [with T=big_nontrivial]" at line 301
            instantiation of "upcxx::detail::optional_impl_::optional<T>::optional() [with T=big_nontrivial]" at line 379 of "<redacted>/upcxx/test/view.cpp"
<redacted>/upcxx/bld/upcxx.assert0.optlev3.dbgsym0.gasnet_seq.smp/include/upcxx/optional.hpp(301): error: function "upcxx::detail::optional_impl_::constexpr_optional_base<T>::~constexpr_optional_base() [with T=big_nontrivial]" (declared at line 244) cannot be referenced -- it is a deleted function
    constexpr optional() noexcept : OptionalBase<T>()  {};
                                                   ^
          detected during instantiation of "upcxx::detail::optional_impl_::optional<T>::optional() [with T=big_nontrivial]" at line 379 of "<redacted>/upcxx/test/view.cpp"
<redacted>/upcxx/test/view.cpp(384): error: function "upcxx::detail::optional_impl_::optional<T>::~optional() [with T=big_nontrivial]" (declared at line 335 of "<redacted>/upcxx/bld/upcxx.assert0.optlev3.dbgsym0.gasnet_seq.smp/include/upcxx/optional.hpp") cannot be referenced -- it is a deleted function
          delete spot;
                 ^
compilation aborted for <redacted>/upcxx/test/view.cpp (code 2)

This began with the merge of this new header in pull request 443.

This platform combination (macOS + Intel C++) is NOT currently supported by UPC++. Furthermore the problem does not appear to manifest with either the same compiler version on Linux, nor the supported compilers for macOS. Therefore this issue is very low-priority.

Comments (4)

  1. Paul Hargrove

    Furthermore the problem does not appear to manifest with either the same compiler version on Linux, nor the supported compilers for macOS.

    Additionally, even with the unsupported OS/compiler pair these are the only tests failing in this manner out of the entire test suite.

  2. Dan Bonachea reporter

    Until/unless a stakeholder expresses interest in the macOS/IntelC++ combination, we are not going to expend effort supporting it.

  3. Paul Hargrove

    It looks like Intel's latest (and supposed final) release of the C++ "classic compiler" is does not like the C++ headers which come with Xcode 14. So, this is now a dead OS/compiler pair.

  4. Log in to comment