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

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 28 12:59:36 PDT 2017


Most certainly triggered by my commit. Looks like libstdc++ behaving differently from libc++, trying to understand/find a workaround.

> On Aug 28, 2017, at 12:56 PM, Davide Italiano via llvm-commits <llvm-commits at lists.llvm.org> wrote:
> 
> 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
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list