[llvm] r311914 - TableGen: Fix subreg composition/concatenation

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 28 12:56:46 PDT 2017


On Mon, Aug 28, 2017 at 12:48 PM, Matthias Braun via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: matze
> Date: Mon Aug 28 12:48:42 2017
> New Revision: 311914
>
> URL: http://llvm.org/viewvc/llvm-project?rev=311914&view=rev
> Log:
> TableGen: Fix subreg composition/concatenation
>

I just updated my checkout and saw this fairly cryptic error, feel
free to ignore if it's not your fault.

$ ninja check-llvm
[68/1974] Building CXX object
utils/TableGen/C...les/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
FAILED: /usr/lib64/ccache/c++   -DGTEST_HAS_RTTI=0 -D_DEBUG
-D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
-D__STDC_LIMIT_MACROS -Iutils/TableGen -I../utils/TableGen
-I/usr/include/libxml2 -Iinclude -I../include -fPIC
-fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -W
-Wno-unused-parameter -Wwrite-strings -Wcast-qual
-Wno-missing-field-initializers -pedantic -Wno-long-long
-Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment
-ffunction-sections -fdata-sections -O3    -UNDEBUG  -fno-exceptions
-fno-rtti -MMD -MT
utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
-MF utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o.d
-o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
-c ../utils/TableGen/CodeGenRegisters.cpp
In file included from /usr/include/c++/6.3.1/map:60:0,
                 from ../include/llvm/TableGen/Record.h:32,
                 from ../utils/TableGen/CodeGenRegisters.h:31,
                 from ../utils/TableGen/CodeGenRegisters.cpp:15:
/usr/include/c++/6.3.1/bits/stl_tree.h: In instantiation of
‘std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key,
_Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_Arg&&) [with
_Arg = std::pair<llvm::SmallVector<llvm::CodeGenSubRegIndex*, 4u>,
llvm::CodeGenSubRegIndex*>; _Key =
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>; _Val =
std::pair<const llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*>; _KeyOfValue =
std::_Select1st<std::pair<const
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*> >; _Compare =
std::less<llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u> >; _Alloc =
std::allocator<std::pair<const
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*> >]’:
/usr/include/c++/6.3.1/bits/stl_map.h:740:64:   required from
‘std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>,
std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename
__gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key,
_Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare,
_Alloc>::insert(_Pair&&) [with _Pair =
std::pair<llvm::SmallVector<llvm::CodeGenSubRegIndex*, 4u>,
llvm::CodeGenSubRegIndex*>; <template-parameter-2-2> = void; _Key =
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>; _Tp =
llvm::CodeGenSubRegIndex*; _Compare =
std::less<llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u> >; _Alloc =
std::allocator<std::pair<const
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*> >; typename std::_Rb_tree<_Key,
std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp>
>, _Compare, typename
__gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key,
_Tp> >::other>::iterator = std::_Rb_tree_iterator<std::pair<const
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*> >]’
../utils/TableGen/CodeGenRegisters.cpp:1125:65:   required from here
/usr/include/c++/6.3.1/bits/stl_tree.h:1889:28: error: no matching
function for call to
‘std::_Rb_tree<llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
std::pair<const llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*>, std::_Select1st<std::pair<const
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*> >,
std::less<llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u> >,
std::allocator<std::pair<const
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*> >
>::_M_get_insert_unique_pos(std::pair<llvm::SmallVector<llvm::CodeGenSubRegIndex*,
4u>, llvm::CodeGenSubRegIndex*>::first_type&)’
  = _M_get_insert_unique_pos(_KeyOfValue()(__v));
    ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/usr/include/c++/6.3.1/bits/stl_tree.h:1826:5: note: candidate:
std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>
std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare,
_Alloc>::_M_get_insert_unique_pos(const key_type&) [with _Key =
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>; _Val =
std::pair<const llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*>; _KeyOfValue =
std::_Select1st<std::pair<const
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*> >; _Compare =
std::less<llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u> >; _Alloc =
std::allocator<std::pair<const
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>,
llvm::CodeGenSubRegIndex*> >; std::_Rb_tree<_Key, _Val, _KeyOfValue,
_Compare, _Alloc>::key_type =
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>]
     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/6.3.1/bits/stl_tree.h:1826:5: note:   no known
conversion for argument 1 from
‘std::pair<llvm::SmallVector<llvm::CodeGenSubRegIndex*, 4u>,
llvm::CodeGenSubRegIndex*>::first_type {aka
llvm::SmallVector<llvm::CodeGenSubRegIndex*, 4u>}’ to ‘const key_type&
{aka const llvm::SmallVector<llvm::CodeGenSubRegIndex*, 8u>&}’
[68/1974] Building CXX object
lib/DebugInfo/PD...DebugInfoPDB.dir/Native/GSIStreamBuilder.cpp.o


More information about the llvm-commits mailing list