Skip to content

clang-40 fails to build it with a lot of errors #271

@yurivict

Description

@yurivict

I am building the fork barche/coolfluid3 rev.f1bdfb6 and am getting these errors on FreeBSD 11.1:

In file included from /usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/all_to_all.hpp:17:
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/datatype.hpp:43:81: error: cannot initialize return object of type 'cf3::common::PE::Datatype' (aka 'int') with an rvalue of type 'nullptr_t'
template <typename T> inline Datatype get_mpi_datatype_impl(const T& ) { return nullptr; };
                                                                                ^~~~~~~
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/datatype.hpp:52:19: error: cannot initialize a variable of type 'cf3::common::PE::Datatype' (aka 'int') with an rvalue of type 'nullptr_t'
  static Datatype type(nullptr);
                  ^    ~~~~~~~
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/datatype.hpp:64:19: error: cannot initialize a variable of type 'cf3::common::PE::Datatype' (aka 'int') with an rvalue of type 'nullptr_t'
  static Datatype type(nullptr);
                  ^    ~~~~~~~
In file included from /usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/reduce.hpp:17:
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/operations.hpp:45:23: error: cast from pointer to smaller type 'cf3::common::PE::Operation' (aka 'int') loses information
  static Operation op((Operation)nullptr);
                      ^~~~~~~~~~~~~~~~~~
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/operations.hpp:46:11: error: cast from pointer to smaller type 'cf3::common::PE::Operation' (aka 'int') loses information
  if (op==(Operation)nullptr) {
          ^~~~~~~~~~~~~~~~~~
In file included from /usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/all_to_all.hpp:17:
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/datatype.hpp:43:81: error: cannot initialize return object of type 'cf3::common::PE::Datatype' (aka 'int') with an rvalue of type 'nullptr_t'
template <typename T> inline Datatype get_mpi_datatype_impl(const T& ) { return nullptr; };
                                                                                ^~~~~~~
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/datatype.hpp:52:19: error: cannot initialize a variable of type 'cf3::common::PE::Datatype' (aka 'int') with an rvalue of type 'nullptr_t'
  static Datatype type(nullptr);
                  ^    ~~~~~~~
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/datatype.hpp:64:19: error: cannot initialize a variable of type 'cf3::common::PE::Datatype' (aka 'int') with an rvalue of type 'nullptr_t'
  static Datatype type(nullptr);
                  ^    ~~~~~~~
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/operations.hpp:45:23: error: cast from pointer to smaller type 'cf3::common::PE::Operation' (aka 'int') loses information
  static Operation op((Operation)nullptr);
                      ^~~~~~~~~~~~~~~~~~
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/operations.hpp:46:11: error: cast from pointer to smaller type 'cf3::common::PE::Operation' (aka 'int') loses information
  if (op==(Operation)nullptr) {
          ^~~~~~~~~~~~~~~~~~
--- cf3/common/CMakeFiles/coolfluid_common.dir/all ---
In file included from /usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/Action.cpp:9:
In file included from /usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/Builder.hpp:16:
In file included from /usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/Core.hpp:14:
In file included from /usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/CommonAPI.hpp:12:
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/CF.hpp:151:41: error: invalid operands to binary expression ('int' and 'nullptr_t')
bool is_not_null ( T ptr ) { return ptr != nullptr; }
                                    ~~~ ^  ~~~~~~~
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/Comm.hpp:83:74: note: in instantiation of function template specialization 'cf3::is_not_null<int>' requested here
  bool is_active() const { return is_initialized() && !is_finalized() && is_not_null(m_comm); }
                                                                         ^
In file included from /usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/all_to_all.hpp:17:
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/datatype.hpp:51:49: error: invalid operands to binary expression ('cf3::common::PE::Datatype' (aka 'int') and 'nullptr_t')
  if (detail::get_mpi_datatype_impl(ref_of_type)!=nullptr) return detail::get_mpi_datatype_impl<T>(ref_of_type);
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ ~~~~~~~
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/all_reduce.hpp:65:21: note: in instantiation of function template specialization 'cf3::common::PE::get_mpi_datatype<unsigned int>' requested here
    Datatype type = get_mpi_datatype(*in_values);
                    ^
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/all_reduce.hpp:127:11: note: in instantiation of function template specialization 'cf3::common::PE::detail::all_reduce_impl<unsigned int, cf3::common::PE::plus>' requested here
  detail::all_reduce_impl(comm,op,in_values,in_n,0,out_buf,0,stride);
          ^
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/common/PE/Comm.hpp:284:16: note: in instantiation of function template specialization 'cf3::common::PE::all_reduce<unsigned int, cf3::common::PE::plus>' requested here
    return PE::all_reduce(communicator(), op, in_values, in_n, out_values, stride);
               ^
/usr/ports/science/coolfluid3/work/coolfluid3-f1bdfb6/cf3/solver/actions/Proto/NodeData.hpp:122:36: note: in instantiation of function template specialization 'cf3::common::PE::Comm::all_reduce<unsigned int, cf3::common::PE::plus>' requested here
      common::PE::Comm::instance().all_reduce(common::PE::plus(), &my_sync, 1, &global_sync);
                                   ^

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions