[PATCH] D22797: Fix for compiling with clang <= 3.7 and g++6 headers.

Frederich Munch via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 2 09:47:11 PDT 2016


marsupial added a comment.

Found one:

  In file included from ../../lib/CodeGen/LexicalScopes.cpp:17:
  In file included from ../../include/llvm/CodeGen/LexicalScopes.h:20:
  In file included from ../../include/llvm/ADT/ArrayRef.h:13:
  In file included from ../../include/llvm/ADT/Hashing.h:49:
  In file included from ../../include/llvm/Support/Host.h:17:
  In file included from ../../include/llvm/ADT/StringMap.h:18:
  In file included from ../../include/llvm/Support/Allocator.h:24:
  In file included from ../../include/llvm/ADT/SmallVector.h:29:
  In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/memory:79:
  In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/functional:55:
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:1400:14: error: 
        no matching constructor for initialization of 'tuple<llvm::LexicalScope
        *&&, const llvm::DILocalScope *&&, nullptr_t &&, bool &&>'
      { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); }
               ^                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ../../lib/CodeGen/LexicalScopes.cpp:155:36: note: in instantiation of function
        template specialization 'std::forward_as_tuple<llvm::LexicalScope *&,
        const llvm::DILocalScope *&, nullptr_t, bool>' requested here
                                std::forward_as_tuple(Parent, Scope, nullptr,
                                     ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:600:18: note: 
        candidate template ignored: disabled by 'enable_if' [with _Dummy = void]
                   _TCC<_Dummy>::template
                   ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:611:18: note: 
        candidate template ignored: disabled by 'enable_if' [with _Dummy = void]
                   _TCC<_Dummy>::template
                   ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:628:5: note: 
        candidate template ignored: disabled by 'enable_if' [with _UElements =
        <llvm::LexicalScope *&, const llvm::DILocalScope *&, nullptr_t, bool>]
                    _TC<sizeof...(_UElements) == 1, _Elements...>::template
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:641:5: note: 
        candidate template ignored: disabled by 'enable_if' [with _UElements =
        <llvm::LexicalScope *&, const llvm::DILocalScope *&, nullptr_t, bool>]
                    _TC<sizeof...(_UElements) == 1, _Elements...>::template
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:737:19: note: 
        candidate template ignored: disabled by 'enable_if' [with _Alloc = const
        llvm::DILocalScope *, _UElements = <nullptr_t, bool>]
          enable_if<_TMC<_UElements...>::template
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:748:19: note: 
        candidate template ignored: disabled by 'enable_if' [with _Alloc = const
        llvm::DILocalScope *, _UElements = <nullptr_t, bool>]
          enable_if<_TMC<_UElements...>::template
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:579:17: note: 
        candidate constructor template not viable: requires 0 arguments, but 4
        were provided
        constexpr tuple()
                  ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:589:26: note: 
        candidate constructor template not viable: requires 0 arguments, but 4
        were provided
        explicit constexpr tuple()
                           ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:670:19: note: 
        candidate constructor template not viable: requires single argument
        '__in', but 4 arguments were provided
          constexpr tuple(const tuple<_UElements...>& __in)
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:682:28: note: 
        candidate constructor template not viable: requires single argument
        '__in', but 4 arguments were provided
          explicit constexpr tuple(const tuple<_UElements...>& __in)
                             ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:694:19: note: 
        candidate constructor template not viable: requires single argument
        '__in', but 4 arguments were provided
          constexpr tuple(tuple<_UElements...>&& __in)
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:705:28: note: 
        candidate constructor template not viable: requires single argument
        '__in', but 4 arguments were provided
          explicit constexpr tuple(tuple<_UElements...>&& __in)
                             ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:721:2: note: 
        candidate constructor template not viable: requires 6 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a,
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:732:11: note: 
        candidate constructor template not viable: requires 6 arguments, but 4
        were provided
          explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
                   ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:711:2: note: 
        candidate constructor template not viable: requires 2 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a)
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:759:2: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in)
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:763:2: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in)
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:772:2: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a,
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:784:11: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
                   ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:796:2: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a,
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:808:11: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
                   ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:654:17: note: 
        candidate constructor not viable: requires 1 argument, but 4 were provided
        constexpr tuple(tuple&&) = default; 
                  ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:652:17: note: 
        candidate constructor not viable: requires 1 argument, but 4 were provided
        constexpr tuple(const tuple&) = default;
                  ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:1400:14: error: 
        no matching constructor for initialization of 'tuple<llvm::LexicalScope
        *&&, const llvm::DILocalScope *&&, const llvm::DILocation *&&, bool &&>'
      { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); }
               ^                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ../../lib/CodeGen/LexicalScopes.cpp:186:43: note: in instantiation of function
        template specialization 'std::forward_as_tuple<llvm::LexicalScope *&,
        const llvm::DILocalScope *&, const llvm::DILocation *&, bool>' requested
        here
                                       std::forward_as_tuple(Parent, Scope,
                                            ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:600:18: note: 
        candidate template ignored: disabled by 'enable_if' [with _Dummy = void]
                   _TCC<_Dummy>::template
                   ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:611:18: note: 
        candidate template ignored: disabled by 'enable_if' [with _Dummy = void]
                   _TCC<_Dummy>::template
                   ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:628:5: note: 
        candidate template ignored: disabled by 'enable_if' [with _UElements =
        <llvm::LexicalScope *&, const llvm::DILocalScope *&, const
        llvm::DILocation *&, bool>]
                    _TC<sizeof...(_UElements) == 1, _Elements...>::template
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:641:5: note: 
        candidate template ignored: disabled by 'enable_if' [with _UElements =
        <llvm::LexicalScope *&, const llvm::DILocalScope *&, const
        llvm::DILocation *&, bool>]
                    _TC<sizeof...(_UElements) == 1, _Elements...>::template
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:737:19: note: 
        candidate template ignored: disabled by 'enable_if' [with _Alloc = const
        llvm::DILocalScope *, _UElements = <const llvm::DILocation *&, bool>]
          enable_if<_TMC<_UElements...>::template
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:748:19: note: 
        candidate template ignored: disabled by 'enable_if' [with _Alloc = const
        llvm::DILocalScope *, _UElements = <const llvm::DILocation *&, bool>]
          enable_if<_TMC<_UElements...>::template
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:579:17: note: 
        candidate constructor template not viable: requires 0 arguments, but 4
        were provided
        constexpr tuple()
                  ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:589:26: note: 
        candidate constructor template not viable: requires 0 arguments, but 4
        were provided
        explicit constexpr tuple()
                           ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:670:19: note: 
        candidate constructor template not viable: requires single argument
        '__in', but 4 arguments were provided
          constexpr tuple(const tuple<_UElements...>& __in)
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:682:28: note: 
        candidate constructor template not viable: requires single argument
        '__in', but 4 arguments were provided
          explicit constexpr tuple(const tuple<_UElements...>& __in)
                             ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:694:19: note: 
        candidate constructor template not viable: requires single argument
        '__in', but 4 arguments were provided
          constexpr tuple(tuple<_UElements...>&& __in)
                    ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:705:28: note: 
        candidate constructor template not viable: requires single argument
        '__in', but 4 arguments were provided
          explicit constexpr tuple(tuple<_UElements...>&& __in)
                             ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:721:2: note: 
        candidate constructor template not viable: requires 6 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a,
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:732:11: note: 
        candidate constructor template not viable: requires 6 arguments, but 4
        were provided
          explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
                   ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:711:2: note: 
        candidate constructor template not viable: requires 2 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a)
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:759:2: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in)
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:763:2: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in)
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:772:2: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a,
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:784:11: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
                   ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:796:2: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          tuple(allocator_arg_t __tag, const _Alloc& __a,
          ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:808:11: note: 
        candidate constructor template not viable: requires 3 arguments, but 4
        were provided
          explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
                   ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:654:17: note: 
        candidate constructor not viable: requires 1 argument, but 4 were provided
        constexpr tuple(tuple&&) = default; 
                  ^
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:652:17: note: 
        candidate constructor not viable: requires 1 argument, but 4 were provided
        constexpr tuple(const tuple&) = default;
                  ^
  ../../lib/CodeGen/LexicalScopes.cpp:208:32: error: no matching function for call
        to 'forward_as_tuple'
                                 std::forward_as_tuple(Parent, Scope,
                                 ^~~~~~~~~~~~~~~~~~~~~
  /usr/bin/../lib/gcc/x86_64-linux-gnu/6.1.1/../../../../include/c++/6.1.1/tuple:1399:5: note: 
        candidate template ignored: substitution failure [with _Elements =
        <llvm::LexicalScope *&, const llvm::DILocalScope *&, nullptr_t, bool>]
      forward_as_tuple(_Elements&&... __args) noexcept


Repository:
  rL LLVM

https://reviews.llvm.org/D22797





More information about the llvm-commits mailing list