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