[llvm-dev] SourceMgr vs EXPENSIVE_CHECKS

Hans Wennborg via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 2 08:01:28 PDT 2019


Nice, thanks!

On Wed, Oct 2, 2019 at 16:01 Jay Foad <jay.foad at gmail.com> wrote:

> I locally commented out this line:
>
> diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake
> b/llvm/cmake/modules/HandleLLVMOptions.cmake
> index fa92b7452a5..5fc5654aec2 100644
> --- a/llvm/cmake/modules/HandleLLVMOptions.cmake
> +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
> @@ -85,7 +85,7 @@ endif()
>
>  if(LLVM_ENABLE_EXPENSIVE_CHECKS)
>    add_definitions(-DEXPENSIVE_CHECKS)
> -  add_definitions(-D_GLIBCXX_DEBUG)
> +  #add_definitions(-D_GLIBCXX_DEBUG)
>  endif()
>
>  string(TOUPPER "${LLVM_ABI_BREAKING_CHECKS}"
> uppercase_LLVM_ABI_BREAKING_CHECKS)
>
>
> Jay.
>
> On Wed, 2 Oct 2019 at 14:59, Hans Wennborg <hans at chromium.org> wrote:
>
>> I just ran into this today. Do we need to update our requirements on
>> libstdc++ version?
>>
>> Jay, did you figure out a way around this?
>>
>> On Wed, Sep 4, 2019 at 5:29 AM David Blaikie via llvm-dev
>> <llvm-dev at lists.llvm.org> wrote:
>> >
>> > It's a bug in libstdc++ - so if you have clang using libstdc++ (which
>> it will by default, I think) then it's the same thing. You could try with
>> libc++.
>> >
>> > On Tue, Sep 3, 2019 at 1:28 PM Jay Foad <jay.foad at gmail.com> wrote:
>> >>
>> >> 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
>> >
>> > _______________________________________________
>> > LLVM Developers mailing list
>> > llvm-dev at lists.llvm.org
>> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191002/cf101a55/attachment-0001.html>


More information about the llvm-dev mailing list