[cfe-dev] Building clang-trunk fails

JVApen via cfe-dev cfe-dev at lists.llvm.org
Fri Nov 6 12:25:04 PST 2015


​Hi all,

I don't know what has happened, though a few days ago I've noticed that
clang-trunk no longer compiles on my system.
Since the error is in system headers, I guess it has to do with my system.
I'm building clang-trunk on an Ubuntu 14.04 (64bit), making use of
clang-3.6 and I'm using the distributed libc++. As build system I'm using
CMake.

I barely have any changes and the ones I do have are to work around CMake
issues or build problems:

   - Replace #include <cstddef> by #include <stddef.h>  Otherwise  offsetof
   is not known
   - Remove LLVM_IS_FINAL define in type_traits since it just does not work
   - Define GTEST_HAS_RTTI as 0, cause gtest-port.h gives issues

I doubt any of these have anything to do with this, though especially the
first one looks suspicious.

Can anyone tell me what I have to change to get this fixed, or just fix it
in trunk?

JVApen
----------------------------------------------------------

[ 28%] Building CXX object
lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopLoadElimination.cpp.o
In file included from
/llvm/src/lib/Transforms/Scalar/LoopLoadElimination.cpp:23:
In file included from /llvm/src/include/llvm/ADT/Statistic.h:29:
In file included from /llvm/src/include/llvm/Support/Atomic.h:17:
In file included from /llvm/cmake/include/llvm/Support/DataTypes.h:35:
In file included from /usr/include/c++/v1/cmath:302:
/usr/include/c++/v1/type_traits:433:83: error: no matching function for
call to '__source'
    : public integral_constant<bool,
sizeof(__libcpp_is_function_imp::__test<_Tp>(__libcpp_is_function_imp::__source<_Tp>()))
== 1>

      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/type_traits:438:14: note: in instantiation of template
class 'std::__1::__libcpp_is_function<llvm::Value *() const, false>'
requested here
    : public __libcpp_is_function<_Tp> {};
             ^
/usr/include/c++/v1/type_traits:443:97: note: in instantiation of template
class 'std::__1::is_function<llvm::Value *() const>' requested here
template <class _Tp, class _Up> struct
__libcpp_is_member_function_pointer<_Tp _Up::*> : public is_function<_Tp>
{};

                    ^
/usr/include/c++/v1/type_traits:446:14: note: in instantiation of template
class 'std::__1::__libcpp_is_member_function_pointer<llvm::Value
*((anonymous
      namespace)::StoreToLoadForwardingCandidate::*)() const>' requested
here
    : public __libcpp_is_member_function_pointer<typename
remove_cv<_Tp>::type> {};
             ^
/usr/include/c++/v1/type_traits:460:38: note: in instantiation of template
class 'std::__1::is_member_function_pointer<llvm::Value *((anonymous
      namespace)::StoreToLoadForwardingCandidate::*)() const>' requested
here

!is_member_function_pointer<_Tp>::value> {};
                                     ^
/usr/include/c++/v1/type_traits:3122:17: note: in instantiation of template
class 'std::__1::is_member_object_pointer<llvm::Value *((anonymous
      namespace)::StoreToLoadForwardingCandidate::*)() const>' requested
here
                is_member_object_pointer<typename
remove_reference<_Fp>::type>::value &&
                ^
/usr/include/c++/v1/__functional_base:399:1: note: in instantiation of
default argument for '__invoke<llvm::Value *((anonymous
      namespace)::StoreToLoadForwardingCandidate::*)() const, const
(anonymous namespace)::StoreToLoadForwardingCandidate &>' required here
__invoke(_Fp&& __f, _A0&& __a0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/__functional_base:419:22: note: while substituting
deduced template arguments into function template '__invoke' [with _Fp =
llvm::Value *((anonymous
      namespace)::StoreToLoadForwardingCandidate::*)() const, _A0 = const
(anonymous namespace)::StoreToLoadForwardingCandidate &, $2 = (no value)]
    typedef decltype(__invoke(_VSTD::declval<_Tp>(),
_VSTD::declval<_Args>()...)) type;
                     ^
/usr/include/c++/v1/functional:1223:17: note: in instantiation of template
class 'std::__1::__invoke_return<llvm::Value *((anonymous
      namespace)::StoreToLoadForwardingCandidate::*)() const, const
(anonymous namespace)::StoreToLoadForwardingCandidate &>' requested here
       typename __invoke_return<type, _ArgTypes...>::type
                ^
/usr/include/c++/v1/algorithm:1925:21: note: while substituting deduced
template arguments into function template 'operator()' [with _ArgTypes =
<const
      (anonymous namespace)::StoreToLoadForwardingCandidate &>]
        *__result = __op(*__first);
                    ^
/llvm/src/lib/Transforms/Scalar/LoopLoadElimination.cpp:325:10: note: in
instantiation of function template specialization
      'std::__1::transform<const (anonymous
namespace)::StoreToLoadForwardingCandidate *,
std::__1::insert_iterator<std::__1::set<llvm::Value *,
      std::__1::less<llvm::Value *>, std::__1::allocator<llvm::Value *> >
>, std::__1::__mem_fn<llvm::Value *((anonymous
namespace)::StoreToLoadForwardingCandidate::*)()
      const> >' requested here
    std::transform(Candidates.begin(), Candidates.end(),
         ^
/usr/include/c++/v1/type_traits:424:28: note: candidate template ignored:
substitution failure [with _Tp = llvm::Value *() const]: reference to
function type
      'llvm::Value *() const' cannot have 'const' qualifier
template <class _Tp> _Tp&  __source();
                     ~~~   ^
In file included from
/llvm/src/lib/Transforms/Scalar/LoopLoadElimination.cpp:24:
In file included from
/llvm/src/include/llvm/Analysis/LoopAccessAnalysis.h:18:
In file included from /llvm/src/include/llvm/ADT/EquivalenceClasses.h:21:
In file included from /usr/include/c++/v1/set:387:
In file included from /usr/include/c++/v1/__tree:18:
/usr/include/c++/v1/algorithm:1925:21: error: attempt to use a deleted
function
        *__result = __op(*__first);
                    ^
/llvm/src/lib/Transforms/Scalar/LoopLoadElimination.cpp:325:10: note: in
instantiation of function template specialization
      'std::__1::transform<const (anonymous
namespace)::StoreToLoadForwardingCandidate *,
std::__1::insert_iterator<std::__1::set<llvm::Value *,
      std::__1::less<llvm::Value *>, std::__1::allocator<llvm::Value *> >
>, std::__1::__mem_fn<llvm::Value *((anonymous
namespace)::StoreToLoadForwardingCandidate::*)()
      const> >' requested here
    std::transform(Candidates.begin(), Candidates.end(),
         ^
/usr/include/c++/v1/type_traits:1001:5: note: '~__nat' has been explicitly
marked deleted here
    ~__nat() = delete;
    ^
In file included from
/llvm/src/lib/Transforms/Scalar/LoopLoadElimination.cpp:24:
In file included from
/llvm/src/include/llvm/Analysis/LoopAccessAnalysis.h:18:
In file included from /llvm/src/include/llvm/ADT/EquivalenceClasses.h:21:
In file included from /usr/include/c++/v1/set:388:
/usr/include/c++/v1/functional:1226:22: error: attempt to use a deleted
function
              return __invoke(__f_, _VSTD::forward<_ArgTypes>(__args)...);
                     ^
/usr/include/c++/v1/algorithm:1925:21: note: in instantiation of function
template specialization 'std::__1::__mem_fn<llvm::Value *((anonymous
      namespace)::StoreToLoadForwardingCandidate::*)()
const>::operator()<const (anonymous
namespace)::StoreToLoadForwardingCandidate &>' requested here
        *__result = __op(*__first);
                    ^
/llvm/src/lib/Transforms/Scalar/LoopLoadElimination.cpp:325:10: note: in
instantiation of function template specialization
      'std::__1::transform<const (anonymous
namespace)::StoreToLoadForwardingCandidate *,
std::__1::insert_iterator<std::__1::set<llvm::Value *,
      std::__1::less<llvm::Value *>, std::__1::allocator<llvm::Value *> >
>, std::__1::__mem_fn<llvm::Value *((anonymous
namespace)::StoreToLoadForwardingCandidate::*)()
      const> >' requested here
    std::transform(Candidates.begin(), Candidates.end(),
         ^
/usr/include/c++/v1/type_traits:1001:5: note: '~__nat' has been explicitly
marked deleted here
    ~__nat() = delete;
    ^
3 errors generated.
make[3]: ***
[lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopLoadElimination.cpp.o]
Error 1
make[2]: *** [lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/all]
Error 2
make[1]: *** [tools/clang/tools/driver/CMakeFiles/clang.dir/rule] Error 2
make: *** [clang] Error 2
​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20151106/1a9687a0/attachment.html>


More information about the cfe-dev mailing list