[llvm-dev] SourceMgr vs EXPENSIVE_CHECKS

Jay Foad via llvm-dev
Tue, 03 Sep 2019 20:28:00 -0000

Hmm. What about the errors I quoted from using clang-7 (starting about
a third of the way down my email, sorry if they got kinda lost in all
the noise)?

Thanks,
Jay.

On Tue, 3 Sep 2019 at 20:00, David Blaikie <dblaikie at gmail.com>
wrote:
>
> Looks to me like a bug in GCC's constexpr+_GLIBCXX_CONCEPT_CHECKS
support. Small test case:
>
> $ g++-8 test.cpp -std=c++2a -fsyntax-only
> $ g++-8 test.cpp -std=c++2a -fsyntax-only -D_GLIBCXX_CONCEPT_CHECKS
> In file included from /usr/include/c++/8/algorithm:62,
>                  from test.cpp:1:
> test.cpp:3:27:   in ‘constexpr’ expansion of
‘std::min<int>(std::initializer_list<int>{((const int*)(&
._61)), 6})’
> /usr/include/c++/8/bits/stl_algo.h:3451:31: error: ‘constexpr _FIter
std::min_element(_FIter, _FIter) [with _FIter = const int*]’ called in a
constant expression
>      { return *std::min_element(__l.begin(), __l.end()); }
>                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/8/bits/stl_algo.h:5610:12: note: ‘constexpr _FIter
std::min_element(_FIter, _FIter) [with _FIter = const int*]’ is not usable as a
‘constexpr’ function because:
>      inline min_element(_ForwardIterator __first, _ForwardIterator __last)
>             ^~~~~~~~~~~
> In file included from /usr/include/c++/8/bits/move.h:34,
>                  from /usr/include/c++/8/bits/stl_pair.h:59,
>                  from /usr/include/c++/8/utility:70,
>                  from /usr/include/c++/8/algorithm:60,
>                  from test.cpp:1:
> /usr/include/c++/8/bits/stl_algo.h:5613:7: error: call to non-‘constexpr’
function ‘void __gnu_cxx::__function_requires() [with _Concept =
__gnu_cxx::_ForwardIteratorConcept<const int*>]’
>
__glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> On Tue, Sep 3, 2019 at 7:10 AM Jay Foad via llvm-dev <llvm-dev at
lists.llvm.org> wrote:
>>
>> Hi,
>>
>> I'm trying to build llvm (git monorepo) on Ubuntu 18.04 with
>> EXPENSIVE_CHECKS enabled and running into various errors compiling
>> SourceMgr.cpp, depending on which host compiler I use.
>>
>> For example with GCC:
>>
>> $ CC=gcc-8 CXX=g++-8 cmake -GNinja -DCMAKE_BUILD_TYPE=Debug
>> -DLLVM_ENABLE_EXPENSIVE_CHECKS=ON ~/git/llvm-project/llvm/ &&
ninja
>> ...
>> [89/2690] Building CXX object
>> lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
>> FAILED: lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
>> /usr/lib/ccache/g++-8  -DEXPENSIVE_CHECKS -DGTEST_HAS_RTTI=0 -D_DEBUG
>> -D_GLIBCXX_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS
>> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Ilib/Support
>> -I/home/jayfoad2/git/llvm-project/llvm/lib/Support -Iinclude
>> -I/home/jayfoad2/git/llvm-project/llvm/incl
>> ude -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++14
>> -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual
>> -Wno-missing-field-initializers -pedantic -Wno-long-long
>> -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess
>> -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment
>> -fdiagnostics-color -g    -fno-exceptions -fno-rtti -MD -MT
>> lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o -MF
>> lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o.d -o
>> lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o -c
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp
>> In file included from /usr/include/c++/8/algorithm:62,
>>                  from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/MathExtras.h:18,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/SmallVector.h:19,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/STLExtras.h:20,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/StringRef.h:12,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/StringMap.h:16,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/Host.h:16,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/Hashing.h:48,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:12,
>>                  from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/SourceMgr.h:18,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:15:
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:
>> In instantiation of ‘constexpr const int
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> >*,
std::__debug::vector<short
>> unsigned int, std::allocator<short unsigned int> >*,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> >*,
>> std::__debug::vector<long unsigned int, std::allocator<long
unsigned
>> int> >*>::NumLowBitsAvailable’:
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:144:48:
>>   required from ‘struct llvm::PointerIntPairInfo<void*, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> >*,
std::__debug::vector<short
>> unsigned int, std::allocator<short unsigned int> >*,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> >*,
>> std::__debug::vector<long unsigned int, std::allocator<long
unsigned
>> int> >*> >’
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:71:32:
>>   required from ‘void llvm::PointerIntPair<PointerTy, IntBits,
>> IntType, PtrTraits, Info>::initWithPointer(PointerTy) [with
PointerTy
>> = void*; unsigned int IntBits = 2; IntType = int; PtrTraits >>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> >*,
std::__debug::vector<short
>> unsigned int, std::allocator<short unsigned int> >*,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> >*,
>> std::__debug::vector<long unsigned int, std::allocator<long
unsigned
>> int> >*>; Info = llvm::PointerIntPairInfo<void*, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> >*,
std::__debug::vector<short
>> unsigned int, std::allocator<short unsigned int> >*,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> >*,
>> std::__debug::vector<long unsigned int, std::allocator<long
unsigned
>> int> >*> >]’
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:227:5:
>>   required from ‘const llvm::PointerUnion<PTs>&
>> llvm::PointerUnion<PTs>::operator=(std::nullptr_t) [with PTs
>> {std::__debug::vector<unsigned char, std::allocator<unsigned
char> >*,
>> std::__debug::vector<short unsigned int, std::allocator<short
unsigned
>> int> >*, std::__debug::vector<unsigned int,
std::allocator<unsigned
>> int> >*, std::__debug::vector<long unsigned int,
std::allocator<long
>> unsigned int> >*}; std::nullptr_t = std::nullptr_t]’
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:107:23:
>>   required from here
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:93:72:
>>   in ‘constexpr’ expansion of
>>
‘llvm::pointer_union_detail::lowBitsAvailable<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> >*,
std::__debug::vector<short
>> unsigned int, std::allocator<short unsigned int> >*,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> >*,
>> std::__debug::vector<long unsigned int, std::allocator<long
unsigned
>> int> >*>()’
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:64:25:
>>   in ‘constexpr’ expansion of
>> ‘std::min<int>(std::initializer_list<int>{((const
int*)(& ._125)),
>> 4})’
>> /usr/include/c++/8/bits/stl_algo.h:3451:31: error: ‘constexpr _FIter
>> std::min_element(_FIter, _FIter) [with _FIter = const int*]’ called in
>> a constant expression
>>      { return *std::min_element(__l.begin(), __l.end()); }
>>                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>> /usr/include/c++/8/bits/stl_algo.h:5610:12: note: ‘constexpr _FIter
>> std::min_element(_FIter, _FIter) [with _FIter = const int*]’ is not
>> usable as a ‘constexpr’ function because:
>>      inline min_element(_ForwardIterator __first, _ForwardIterator
__last)
>>             ^~~~~~~~~~~
>> In file included from /usr/include/c++/8/debug/debug.h:84,
>>                  from /usr/include/c++/8/bits/stl_algobase.h:69,
>>                  from /usr/include/c++/8/memory:62,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/Optional.h:22,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/STLExtras.h:19,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/StringRef.h:12,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/StringMap.h:16,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/Host.h:16,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/Hashing.h:48,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:12,
>>                  from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/SourceMgr.h:18,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:15:
>> /usr/include/c++/8/bits/stl_algo.h:5616:7: error: call to
>> non-‘constexpr’ function ‘bool __gnu_debug::__valid_range(const
>> _InputIterator&, const _InputIterator&) [with _InputIterator =
const
>> int*]’
>>        __glibcxx_requires_valid_range(__first, __last);
>>        ^
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:18,
>>                  from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/SourceMgr.h:20,
>>                  from
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:15:
>> /home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:
>> In instantiation of ‘struct llvm::PointerIntPairInfo<void*, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> >*,
std::__debug::vector<short
>> unsigned int, std::allocator<short unsigned int> >*,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> >*,
>> std::__debug::vector<long unsigned int, std::allocator<long
unsigned
>> int> >*> >’:
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:71:32:
>>   required from ‘void llvm::PointerIntPair<PointerTy, IntBits,
>> IntType, PtrTraits, Info>::initWithPointer(PointerTy) [with
PointerTy
>> = void*; unsigned int IntBits = 2; IntType = int; PtrTraits >>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> >*,
std::__debug::vector<short
>> unsigned int, std::allocator<short unsigned int> >*,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> >*,
>> std::__debug::vector<long unsigned int, std::allocator<long
unsigned
>> int> >*>; Info = llvm::PointerIntPairInfo<void*, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> >*,
std::__debug::vector<short
>> unsigned int, std::allocator<short unsigned int> >*,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> >*,
>> std::__debug::vector<long unsigned int, std::allocator<long
unsigned
>> int> >*> >]’
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:227:5:
>>   required from ‘const llvm::PointerUnion<PTs>&
>> llvm::PointerUnion<PTs>::operator=(std::nullptr_t) [with PTs
>> {std::__debug::vector<unsigned char, std::allocator<unsigned
char> >*,
>> std::__debug::vector<short unsigned int, std::allocator<short
unsigned
>> int> >*, std::__debug::vector<unsigned int,
std::allocator<unsigned
>> int> >*, std::__debug::vector<long unsigned int,
std::allocator<long
>> unsigned int> >*}; std::nullptr_t = std::nullptr_t]’
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:107:23:
>>   required from here
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:149:8:
>> error: enumerator value for ‘IntShift’ is not an integer constant
>>    enum : uintptr_t {
>>         ^
>>
>>
>> For example with Clang:
>>
>> $ CC=clang-7 CXX=clang++-7 cmake -GNinja -DCMAKE_BUILD_TYPE=Debug
>> -DLLVM_ENABLE_EXPENSIVE_CHECKS=ON ~/git/llvm-project/llvm/ &&
ninja
>> [...]
>> [91/2690] Building CXX object
>> lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
>> FAILED: lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
>> /usr/bin/clang++-7  -DEXPENSIVE_CHECKS -DGTEST_HAS_RTTI=0 -D_DEBUG
>> -D_GLIBCXX_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS
>> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Ilib/Support
>> -I/home/jayfoad2/git/llvm-project/llvm/lib/Support -Iinclude
>> -I/home/jayfoad2/git/llvm-project/llvm/include -fPIC
>> -fvisibility-inlines-hidden -Werror=date-time
>> -Werror=unguarded-availability-new -std=c++14 -Wall -Wextra
>> -Wno-unused-parameter -Wwrite-strings -Wcast-qual
>> -Wmissing-field-initializers -pedantic -Wno-long-long
>> -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type
>> -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion
>> -fdiagnostics-color -g    -fno-exceptions -fno-rtti -MD -MT
>> lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o -MF
>> lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o.d -o
>> lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o -c
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp
>> In file included from
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:15:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/SourceMgr.h:20:
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:93:26:
>> error: constexpr variable 'NumLowBitsAvailable' must be
initialized by
>> a constant expression
>>     static constexpr int NumLowBitsAvailable =
lowBitsAvailable<PTs...>();
>>                          ^
~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:144:17:
>> note: in instantiation of template class
>>
'llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>' requested here
>>   static_assert(PtrTraits::NumLowBitsAvailable <
>>                 ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:71:13:
>> note: in instantiation of template class
>> 'llvm::PointerIntPairInfo<void *, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> >' requested here
>>     Value = Info::updatePointer(0, PtrVal);
>>             ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:227:15:
>> note: in instantiation of member function
'llvm::PointerIntPair<void
>> *, 2, int,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>, llvm::PointerIntPairInfo<void *, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> > >::initWithPointer' requested here
>>     this->Val.initWithPointer(nullptr);
>>               ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:107:21:
>> note: in instantiation of member function
>> 'llvm::PointerUnion<std::__debug::vector<unsigned char,
>> std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>::operator=' requested here
>>   Other.OffsetCache = nullptr;
>>                     ^
>>
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_algo.h:5616:7:
>> note: non-constexpr function '__valid_range<const int *>'
cannot be
>> used in a constant expression
>>       __glibcxx_requires_valid_range(__first, __last);
>>       ^
>>
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/debug/debug.h:88:3:
>> note: expanded from macro '__glibcxx_requires_valid_range'
>>   __glibcxx_check_valid_range(_First,_Last)
>>   ^
>>
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/debug/macros.h:54:23:
>> note: expanded from macro '__glibcxx_check_valid_range'
>> _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__valid_range(_First, _Last),
\
>>                       ^
>>
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_algo.h:3451:15:
>> note: in call to
'min_element(&{PointerLikeTypeTraits<vector<unsigned
>> char, allocator<unsigned char> > *>::NumLowBitsAvailable,
>> PointerLikeTypeTraits<vector<unsigned short,
allocator<unsigned short>
>> > *>::NumLowBitsAvailable,
PointerLikeTypeTraits<vector<unsigned int,
>> allocator<unsigned int> > *>::NumLowBitsAvailable,
>> PointerLikeTypeTraits<vector<unsigned long, allocator<unsigned
long> >
>> *>::NumLowBitsAvailable}[0],
&{PointerLikeTypeTraits<vector<unsigned
>> char, allocator<unsigned char> > *>::NumLowBitsAvailable,
>> PointerLikeTypeTraits<vector<unsigned short,
allocator<unsigned short>
>> > *>::NumLowBitsAvailable,
PointerLikeTypeTraits<vector<unsigned int,
>> allocator<unsigned int> > *>::NumLowBitsAvailable,
>> PointerLikeTypeTraits<vector<unsigned long, allocator<unsigned
long> >
>> *>::NumLowBitsAvailable}[4])'
>>     { return *std::min_element(__l.begin(), __l.end()); }
>>               ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:64:12:
>> note: in call to
'min({&{PointerLikeTypeTraits<vector<unsigned char,
>> allocator<unsigned char> > *>::NumLowBitsAvailable,
>> PointerLikeTypeTraits<vector<unsigned short,
allocator<unsigned short>
>> > *>::NumLowBitsAvailable,
PointerLikeTypeTraits<vector<unsigned int,
>> allocator<unsigned int> > *>::NumLowBitsAvailable,
>> PointerLikeTypeTraits<vector<unsigned long, allocator<unsigned
long> >
>> *>::NumLowBitsAvailable}[0], 4})'
>>     return
std::min<int>({PointerLikeTypeTraits<Ts>::NumLowBitsAvailable...});
>>            ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:93:48:
>> note: in call to 'lowBitsAvailable()'
>>     static constexpr int NumLowBitsAvailable =
lowBitsAvailable<PTs...>();
>>                                                ^
>>
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/debug/helper_functions.h:161:5:
>> note: declared here
>>     __valid_range(const _InputIterator& __first, const
_InputIterator& __last)
>>     ^
>> In file included from
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:15:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/SourceMgr.h:20:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:18:
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:144:17:
>> error: static_assert expression is not an integral constant expression
>>   static_assert(PtrTraits::NumLowBitsAvailable <
>>                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:71:13:
>> note: in instantiation of template class
>> 'llvm::PointerIntPairInfo<void *, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> >' requested here
>>     Value = Info::updatePointer(0, PtrVal);
>>             ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:227:15:
>> note: in instantiation of member function
'llvm::PointerIntPair<void
>> *, 2, int,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>, llvm::PointerIntPairInfo<void *, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> > >::initWithPointer' requested here
>>     this->Val.initWithPointer(nullptr);
>>               ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:107:21:
>> note: in instantiation of member function
>> 'llvm::PointerUnion<std::__debug::vector<unsigned char,
>> std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>::operator=' requested here
>>   Other.OffsetCache = nullptr;
>>                     ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:144:17:
>> note: initializer of 'NumLowBitsAvailable' is not a constant
>> expression
>>   static_assert(PtrTraits::NumLowBitsAvailable <
>>                 ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:93:26:
>> note: declared here
>>     static constexpr int NumLowBitsAvailable =
lowBitsAvailable<PTs...>();
>>                          ^
>> In file included from
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:15:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/SourceMgr.h:20:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:18:
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:71:17:
>> error: incomplete definition of type
'llvm::PointerIntPairInfo<void *,
>> 2,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> >'
>>     Value = Info::updatePointer(0, PtrVal);
>>             ~~~~^~
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:227:15:
>> note: in instantiation of member function
'llvm::PointerIntPair<void
>> *, 2, int,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>, llvm::PointerIntPairInfo<void *, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> > >::initWithPointer' requested here
>>     this->Val.initWithPointer(nullptr);
>>               ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:107:21:
>> note: in instantiation of member function
>> 'llvm::PointerUnion<std::__debug::vector<unsigned char,
>> std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>::operator=' requested here
>>   Other.OffsetCache = nullptr;
>>                     ^
>> In file included from
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:15:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/SourceMgr.h:20:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:18:
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:58:47:
>> error: no member named 'getPointer' in
'llvm::PointerIntPairInfo<void
>> *, 2,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> >'
>>   PointerTy getPointer() const { return Info::getPointer(Value); }
>>                                               ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:179:43:
>> note: in instantiation of member function
'llvm::PointerIntPair<void
>> *, 2, int,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>, llvm::PointerIntPairInfo<void *, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> > >::getPointer' requested here
>>   bool isNull() const { return !this->Val.getPointer(); }
>>                                           ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:111:20:
>> note: in instantiation of member function
>> 'llvm::PointerUnion<std::__debug::vector<unsigned char,
>> std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>::isNull' requested here
>>   if (!OffsetCache.isNull()) {
>>                    ^
>> In file included from
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:15:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/SourceMgr.h:20:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:18:
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:60:50:
>> error: no member named 'getInt' in
'llvm::PointerIntPairInfo<void *,
>> 2,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> >'
>>   IntType getInt() const { return (IntType)Info::getInt(Value); }
>>                                                  ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:188:22:
>> note: in instantiation of member function
'llvm::PointerIntPair<void
>> *, 2, int,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>, llvm::PointerIntPairInfo<void *, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> > >::getInt' requested here
>>     return this->Val.getInt() == Index;
>>                      ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:112:21:
>> note: in instantiation of function template specialization
>> 'llvm::PointerUnion<std::__debug::vector<unsigned char,
>> std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>::is<std::__debug::vector<unsigned char,
std::allocator<unsigned
>> char> > *>' requested here
>>     if (OffsetCache.is<std::vector<uint8_t>*>())
>>                     ^
>> In file included from
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:15:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/SourceMgr.h:20:
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:195:12:
>> error: no matching member function for call to 'is'
>>     assert(is<T>() && "Invalid accessor
called");
>>            ^~~~~
>> /usr/include/assert.h:93:27: note: expanded from macro 'assert'
>>      (static_cast <bool> (expr)
\
>>                           ^~~~
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:115:26:
>> note: in instantiation of function template specialization
>> 'llvm::PointerUnion<std::__debug::vector<unsigned char,
>> std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>::get<std::__debug::vector<unsigned short,
std::allocator<unsigned
>> short> > *>' requested here
>>       delete OffsetCache.get<std::vector<uint16_t>*>();
>>                          ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:184:29:
>> note: candidate template ignored: substitution failure [with T >>
std::__debug::vector<unsigned short, std::allocator<unsigned short>
>
>> *]
>>   template <typename T> int is() const {
>>                             ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:195:12:
>> error: no matching member function for call to 'is'
>>     assert(is<T>() && "Invalid accessor
called");
>>            ^~~~~
>> /usr/include/assert.h:93:27: note: expanded from macro 'assert'
>>      (static_cast <bool> (expr)
\
>>                           ^~~~
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:117:26:
>> note: in instantiation of function template specialization
>> 'llvm::PointerUnion<std::__debug::vector<unsigned char,
>> std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>::get<std::__debug::vector<unsigned int,
std::allocator<unsigned
>> int> > *>' requested here
>>       delete OffsetCache.get<std::vector<uint32_t>*>();
>>                          ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:184:29:
>> note: candidate template ignored: substitution failure [with T >>
std::__debug::vector<unsigned int, std::allocator<unsigned int> > *]
>>   template <typename T> int is() const {
>>                             ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:89:27:
>> error: no matching member function for call to 'get'
>>     Offsets = OffsetCache.get<std::vector<T> *>();
>>               ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:136:17:
>> note: in instantiation of function template specialization
>> 'llvm::SourceMgr::SrcBuffer::getLineNumber<unsigned
char>' requested
>> here
>>     LineNo = SB.getLineNumber<uint8_t>(Ptr);
>>                 ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:194:27:
>> note: candidate template ignored: substitution failure [with T >>
std::__debug::vector<unsigned char, std::allocator<unsigned char> >
*]
>>   template <typename T> T get() const {
>>                           ^
>> In file included from
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:15:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/Support/SourceMgr.h:20:
>> In file included from
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:18:
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:75:19:
>> error: no member named 'updateInt' in
'llvm::PointerIntPairInfo<void
>> *, 2,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> >'
>>     Value = Info::updateInt(Info::updatePointer(0, PtrVal),
>>                   ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:53:5:
>> note: in instantiation of member function
'llvm::PointerIntPair<void
>> *, 2, int,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>, llvm::PointerIntPairInfo<void *, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> > >::setPointerAndInt' requested here
>>     setPointerAndInt(PtrVal, IntVal);
>>     ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:131:19:
>> note: in instantiation of member function
'llvm::PointerIntPair<void
>> *, 2, int,
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>, llvm::PointerIntPairInfo<void *, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> > >::PointerIntPair' requested here
>>       this->Val = ValTy(
>>                   ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:79:17:
>> note: in instantiation of member function
>>
'llvm::pointer_union_detail::PointerUnionMembers<llvm::PointerUnion<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>, llvm::PointerIntPair<void *, 2, int,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> >
>> *>, llvm::PointerIntPairInfo<void *, 2,
>>
llvm::pointer_union_detail::PointerUnionUIntTraits<std::__debug::vector<unsigned
>> char, std::allocator<unsigned char> > *,
std::__debug::vector<unsigned
>> short, std::allocator<unsigned short> > *,
>> std::__debug::vector<unsigned int, std::allocator<unsigned
int> > *,
>> std::__debug::vector<unsigned long, std::allocator<unsigned
long> > *>
>> > >, 0, std::__debug::vector<unsigned char,
std::allocator<unsigned
>> char> > *, std::__debug::vector<unsigned short,
>> std::allocator<unsigned short> > *,
std::__debug::vector<unsigned int,
>> std::allocator<unsigned int> > *,
std::__debug::vector<unsigned long,
>> std::allocator<unsigned long> > *>::operator='
requested here
>>     OffsetCache = Offsets;
>>                 ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:136:17:
>> note: in instantiation of function template specialization
>> 'llvm::SourceMgr::SrcBuffer::getLineNumber<unsigned
char>' requested
>> here
>>     LineNo = SB.getLineNumber<uint8_t>(Ptr);
>>                 ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:89:27:
>> error: no matching member function for call to 'get'
>>     Offsets = OffsetCache.get<std::vector<T> *>();
>>               ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:138:17:
>> note: in instantiation of function template specialization
>> 'llvm::SourceMgr::SrcBuffer::getLineNumber<unsigned
short>' requested
>> here
>>     LineNo = SB.getLineNumber<uint16_t>(Ptr);
>>                 ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:194:27:
>> note: candidate template ignored: substitution failure [with T >>
std::__debug::vector<unsigned short, std::allocator<unsigned short>
>
>> *]
>>   template <typename T> T get() const {
>>                           ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:89:27:
>> error: no matching member function for call to 'get'
>>     Offsets = OffsetCache.get<std::vector<T> *>();
>>               ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:140:17:
>> note: in instantiation of function template specialization
>> 'llvm::SourceMgr::SrcBuffer::getLineNumber<unsigned int>'
requested
>> here
>>     LineNo = SB.getLineNumber<uint32_t>(Ptr);
>>                 ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:194:27:
>> note: candidate template ignored: substitution failure [with T >>
std::__debug::vector<unsigned int, std::allocator<unsigned int> > *]
>>   template <typename T> T get() const {
>>                           ^
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:89:27:
>> error: no matching member function for call to 'get'
>>     Offsets = OffsetCache.get<std::vector<T> *>();
>>               ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
>> /home/jayfoad2/git/llvm-project/llvm/lib/Support/SourceMgr.cpp:142:17:
>> note: in instantiation of function template specialization
>> 'llvm::SourceMgr::SrcBuffer::getLineNumber<unsigned
long>' requested
>> here
>>     LineNo = SB.getLineNumber<uint64_t>(Ptr);
>>                 ^
>>
/home/jayfoad2/git/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:194:27:
>> note: candidate template ignored: substitution failure [with T >>
std::__debug::vector<unsigned long, std::allocator<unsigned long> >
*]
>>   template <typename T> T get() const {
>>                           ^
>> 12 errors generated.
>>
>>
>> Any idea what's wrong, or what I'm doing wrong?
>>
>> Thanks,
>> Jay.
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev