vgvassilev / cling

The interactive C++ interpreter Cling
https://rawgit.com/vgvassilev/cling/master/www/index.html
Other
1.77k stars 100 forks source link

Building with mingw-w64 fails #164

Open lothran opened 7 years ago

lothran commented 7 years ago

Hi i am trying to build cling for mingw. I followed this guid https://rawgit.com/vgvassilev/cling/master/www/build.html compilation crashes at 80% with:

[ 81%] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocSizeofChecker.cpp.obj C:\cling\src\tools\cling\lib\Interpreter\Exception.cpp: In function 'void* cling_runtime_internal_throwIfInvalidPointer(void*, void*, const void*)': C:\cling\src\tools\cling\lib\Interpreter\Exception.cpp:44:62: error: exception handling disabled, use -fexceptions to enable cling::InvalidDerefException::DerefType::NULL_DEREF); ^ At global scope: cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef' cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default' cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types' mingw32-make[2]: *** [tools\cling\lib\Interpreter\CMakeFiles\obj.clingInterpreter.dir\build.make:443: tools/cling/lib/Interpreter/CMakeFiles/obj.clingInterpreter.dir/Exception.cpp.obj] Error 1

c-sonntag commented 6 years ago

Hi, I managed to compile cling with CMake and MinGW-SEH-64-7.2.0. there are still some minor issues on using C (imports of mingw from libs), but otherwise it seems ok for C ++. I will continue my tests and will keep informed for a next patch

Regarding your error, this fixes this by modifying the CMake files of the cling project only. Where it will replace "if (UNIX)" with "if (LLVM_COMPILER_IS_GCC_COMPATIBLE)"

Of course we have to make further changes to the code, but all of this is very light.

Yours truly.

EDIT : See update here https://github.com/vgvassilev/cling/issues/164#issuecomment-419150099

permotion88 commented 6 years ago

I'm also trying to compile cling with mingw...

llvm and clang compile without a problem. LLVM_COMPILER_IS_GCC_COMPATIBLE solves the above problem, but then there are other errors e.g:

[ 87%] Building CXX object tools/cling/lib/Interpreter/CMakeFiles/obj.clingInterpreter.dir/IncrementalParser.cpp.obj
[ 87%] Building CXX object 
tools/cling/lib/Interpreter/CMakeFiles/obj.clingInterpreter.dir/Interpreter.cpp.obj
[ 87%] Building CXX object tools/cling/lib/Interpreter/CMakeFiles/obj.clingInterpreter.dir/InvocationOptions.cpp.obj
[ 87%] Building CXX object tools/cling/lib/Interpreter/CMakeFiles/obj.clingInterpreter.dir/ValuePrinter.cpp.obj
C:\cling-arb\llvm\tools\cling\lib\Utils\UTF8.cpp:19: warning: ignoring #pragma comment  [-Wunknown-pragmas]
 #pragma comment(lib, "Shlwapi.lib")

In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringMap.h:17,
                 from C:/cling-arb/llvm/include/llvm/Support/Host.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/Hashing.h:49,
                 from C:/cling-arb/llvm/include/llvm/ADT/ArrayRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/DenseMapInfo.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/DenseMap.h:17,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/DynamicLibraryManager.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DynamicLibraryManager.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:57:67:   required from 'void* llvm::AllocatorBase<DerivedT>::Allocate(size_t, size_t) [with DerivedT = llvm::BumpPtrAllocatorImpl<>; size_t = long long unsigned int]'
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:79:12:   required from 'T* llvm::AllocatorBase<DerivedT>::Allocate(size_t) [with T = clang::IdentifierInfo; DerivedT = llvm::BumpPtrAllocatorImpl<>; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/Basic/IdentifierTable.h:509:57:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/msys64/mingw64/include/c++/8.2.0/algorithm:60,
                 from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:20,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringMap.h:17,
                 from C:/cling-arb/llvm/include/llvm/Support/Host.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/Hashing.h:49,
                 from C:/cling-arb/llvm/include/llvm/ADT/ArrayRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/DenseMapInfo.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/DenseMap.h:17,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/DynamicLibraryManager.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DynamicLibraryManager.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp:43: warning: ignoring #pragma comment  [-Wunknown-pragmas]
 #pragma comment(lib, "Advapi32.lib")

cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp: In function 'void cling::utils::platform::windows::GetErrorAsString(DWORD, std::__cxx11::string&, const char*)':
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp:69:34: error: cannot convert 'LPTSTR' {aka 'char*'} to 'const wchar_t*'
     size_t size = wcstombs(NULL, Message, 0);
                                  ^~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/cstdlib:75,
                 from C:/msys64/mingw64/include/c++/8.2.0/ext/string_conversions.h:41,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:6391,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:52,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/locale_classes.h:40,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/ios_base.h:41,
                 from C:/msys64/mingw64/include/c++/8.2.0/ios:42,
                 from C:/msys64/mingw64/include/c++/8.2.0/ostream:38,
                 from C:/msys64/mingw64/include/c++/8.2.0/iterator:64,
                 from C:/cling-arb/llvm/include/llvm/ADT/iterator_range.h:22,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:17,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/Platform.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp:10:
C:/msys64/mingw64/x86_64-w64-mingw32/include/stdlib.h:496:82: note:   initializing argument 2 of 'size_t wcstombs(char*, const wchar_t*, size_t)'
   size_t __cdecl wcstombs(char * __restrict__ _Dest,const wchar_t * __restrict__ _Source,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp:71:24: error: cannot convert 'LPTSTR' {aka 'char*'} to 'const wchar_t*'
     wcstombs( CharStr, Message, size + 1 );
                        ^~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/cstdlib:75,
                 from C:/msys64/mingw64/include/c++/8.2.0/ext/string_conversions.h:41,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:6391,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:52,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/locale_classes.h:40,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/ios_base.h:41,
                 from C:/msys64/mingw64/include/c++/8.2.0/ios:42,
                 from C:/msys64/mingw64/include/c++/8.2.0/ostream:38,
                 from C:/msys64/mingw64/include/c++/8.2.0/iterator:64,
                 from C:/cling-arb/llvm/include/llvm/ADT/iterator_range.h:22,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:17,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/Platform.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp:10:
C:/msys64/mingw64/x86_64-w64-mingw32/include/stdlib.h:496:82: note:   initializing argument 2 of 'size_t wcstombs(char*, const wchar_t*, size_t)'
   size_t __cdecl wcstombs(char * __restrict__ _Dest,const wchar_t * __restrict__ _Source,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp: In function 'int cling::utils::platform::windows::GetVisualStudioVersionCompiledWith()':
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp:370:11: error: '_MSC_VER' was not declared in this scope
   return (_MSC_VER / 100) - 6;
           ^~~~~~~~
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp:370:11: note: suggested alternative: '_TSCHAR'
   return (_MSC_VER / 100) - 6;
           ^~~~~~~~
           _TSCHAR
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp: In function 'const void* cling::utils::platform::DLSym(const string&, std::__cxx11::string*)':
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp:595:42: error: invalid conversion from 'FARPROC' {aka 'long long int (*)()'} to 'void*' [-fpermissive]
         if (void* Addr = ::GetProcAddress(*It, s.c_str())) {
                          ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp:606:44: error: invalid conversion from 'FARPROC' {aka 'long long int (*)()'} to 'void*' [-fpermissive]
           if (void* Addr = ::GetProcAddress(Modules[i], s.c_str()))
                            ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp: In function 'bool cling::utils::platform::Popen(const string&, llvm::SmallVectorImpl<char>&, bool)':
C:\cling-arb\llvm\tools\cling\lib\Utils\PlatformWin.cpp:705:57: warning: cast from type 'const char*' to type 'LPSTR' {aka 'char*'} casts away qualifiers [-Wcast-qual]
   BOOL Result = ::CreateProcessA(NULL, (LPSTR)Cmd.c_str(), NULL, NULL, TRUE, 0,
                                                         ^
At global scope:
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
mingw32-make[2]: *** [tools\cling\lib\Utils\CMakeFiles\obj.clingUtils.dir\build.make:161: tools/cling/lib/Utils/CMakeFiles/obj.clingUtils.dir/PlatformWin.cpp.obj] Error 1
mingw32-make[2]: *** Waiting for unfinished jobs....
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:15,
                 from C:/cling-arb/llvm/tools/cling/include/cling/MetaProcessor/MetaProcessor.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\MetaProcessor\MetaProcessor.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:450:71:   required from 'void* operator new(size_t, llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>&) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/Lex/Preprocessor.h:446:58:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:40,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/InvocationOptions.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/MetaProcessor/MetaProcessor.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\MetaProcessor\MetaProcessor.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/SmallString.h:17,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/Output.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalJIT.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalJIT.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:57:67:   required from 'void* llvm::AllocatorBase<DerivedT>::Allocate(size_t, size_t) [with DerivedT = llvm::BumpPtrAllocatorImpl<>; size_t = long long unsigned int]'
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:79:12:   required from 'T* llvm::AllocatorBase<DerivedT>::Allocate(size_t) [with T = clang::IdentifierInfo; DerivedT = llvm::BumpPtrAllocatorImpl<>; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/Basic/IdentifierTable.h:509:57:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/ios:40,
                 from C:/msys64/mingw64/include/c++/8.2.0/ostream:38,
                 from C:/msys64/mingw64/include/c++/8.2.0/iterator:64,
                 from C:/cling-arb/llvm/include/llvm/ADT/iterator_range.h:22,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallString.h:17,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/Output.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalJIT.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalJIT.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
[ 87%] Built target obj.clingMetaProcessor
In file included from C:/cling-arb/llvm/include/llvm/ADT/SmallString.h:17,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/Output.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalJIT.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalExecutor.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalExecutor.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:57:67:   required from 'void* llvm::AllocatorBase<DerivedT>::Allocate(size_t, size_t) [with DerivedT = llvm::BumpPtrAllocatorImpl<>; size_t = long long unsigned int]'
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:79:12:   required from 'T* llvm::AllocatorBase<DerivedT>::Allocate(size_t) [with T = clang::IdentifierInfo; DerivedT = llvm::BumpPtrAllocatorImpl<>; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/Basic/IdentifierTable.h:509:57:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/ios:40,
                 from C:/msys64/mingw64/include/c++/8.2.0/ostream:38,
                 from C:/msys64/mingw64/include/c++/8.2.0/iterator:64,
                 from C:/cling-arb/llvm/include/llvm/ADT/iterator_range.h:22,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallString.h:17,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/Output.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalJIT.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalExecutor.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalExecutor.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/SmallSet.h:19,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/AST.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Utils\AST.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/AST/ASTContext.h:637:42:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallPtrSet.h:21,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallSet.h:18,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/AST.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Utils\AST.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/SmallSet.h:19,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/AST.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Utils\AST.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T2 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:7518:40:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallPtrSet.h:21,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallSet.h:18,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/AST.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Utils\AST.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/SmallSet.h:19,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/AST.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Utils\AST.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T2 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:802:73:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallPtrSet.h:21,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallSet.h:18,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/AST.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Utils\AST.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/SmallSet.h:19,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/AST.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Utils\AST.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T2 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:804:53:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallPtrSet.h:21,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallSet.h:18,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Utils/AST.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Utils\AST.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' declared here
     struct pair
            ^~~~
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
In file included from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/ClangInternalState.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ClangInternalState.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/AST/ASTContext.h:637:42:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/ios:40,
                 from C:/msys64/mingw64/include/c++/8.2.0/ostream:38,
                 from C:/msys64/mingw64/include/c++/8.2.0/iterator:64,
                 from C:/cling-arb/llvm/include/llvm/ADT/iterator_range.h:22,
                 from C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:17,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/ClangInternalState.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ClangInternalState.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp: In function 'std::__cxx11::string cling::toUTF8(const T*, size_t, char) [with T = wchar_t; std::__cxx11::string = std::__cxx11::basic_string<char>; size_t = long long unsigned int]':
C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp:469:65: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
       return toUTF8(reinterpret_cast<const char32_t * const>(Str), N, Prefix);
                                                                 ^
C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp:471:63: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
     return toUTF8(reinterpret_cast<const char16_t * const>(Str), N, Prefix);
                                                               ^
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringMap.h:17,
                 from C:/cling-arb/llvm/include/llvm/Support/Host.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/Hashing.h:49,
                 from C:/cling-arb/llvm/include/llvm/ADT/ArrayRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/APFloat.h:21,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/APValue.h:18,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:17,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclCollector.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\CIFactory.cpp:11:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = clang::driver::OffloadUnbundlingJobAction::DependentActionInfo]':
C:/cling-arb/llvm/tools/clang/include/clang/Driver/Action.h:536:61:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct clang::driver::OffloadUnbundlingJobAction::DependentActionInfo' with no trivial copy-assignment; use copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/cling-arb/llvm/tools/clang/include/clang/Driver/Compilation.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\CIFactory.cpp:23:
C:/cling-arb/llvm/tools/clang/include/clang/Driver/Action.h:509:10: note: 'struct clang::driver::OffloadUnbundlingJobAction::DependentActionInfo' declared here
   struct DependentActionInfo final {
          ^~~~~~~~~~~~~~~~~~~
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
mingw32-make[1]: *** [CMakeFiles\Makefile2:13382: tools/cling/lib/Utils/CMakeFiles/obj.clingUtils.dir/all] Error 2
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\EnterUserCodeRAII.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp:12:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/AST/ASTContext.h:637:42:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:40,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/InvocationOptions.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\EnterUserCodeRAII.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp:12:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Transaction.h:18,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/AST/ASTContext.h:637:42:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/msys64/mingw64/include/c++/8.2.0/algorithm:60,
                 from C:/cling-arb/llvm/include/llvm/Support/MathExtras.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/TrailingObjects.h:52,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/DeclGroup.h:18,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Transaction.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\EnterUserCodeRAII.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp:12:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T2 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:7518:40:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:40,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/InvocationOptions.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\EnterUserCodeRAII.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp:12:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Transaction.h:18,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T2 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:7518:40:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/msys64/mingw64/include/c++/8.2.0/algorithm:60,
                 from C:/cling-arb/llvm/include/llvm/Support/MathExtras.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/TrailingObjects.h:52,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/DeclGroup.h:18,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Transaction.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringMap.h:17,
                 from C:/cling-arb/llvm/include/llvm/Support/Host.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/Hashing.h:49,
                 from C:/cling-arb/llvm/include/llvm/ADT/ArrayRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/APFloat.h:21,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/APValue.h:18,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:17,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclCollector.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\CIFactory.cpp:11:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/AST/ASTContext.h:637:42:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/Casting.h:19,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/LLVM.h:22,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/APValue.h:17,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:17,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclCollector.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\CIFactory.cpp:11:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\EnterUserCodeRAII.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp:12:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T2 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:802:73:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:40,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/InvocationOptions.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\EnterUserCodeRAII.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp:12:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\EnterUserCodeRAII.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp:12:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T2 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:804:53:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:40,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/InvocationOptions.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\EnterUserCodeRAII.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ValuePrinter.cpp:12:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Transaction.h:18,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T2 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:802:73:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/msys64/mingw64/include/c++/8.2.0/algorithm:60,
                 from C:/cling-arb/llvm/include/llvm/Support/MathExtras.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/TrailingObjects.h:52,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/DeclGroup.h:18,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Transaction.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Transaction.h:18,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T2 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:804:53:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/msys64/mingw64/include/c++/8.2.0/algorithm:60,
                 from C:/cling-arb/llvm/include/llvm/Support/MathExtras.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/TrailingObjects.h:52,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/DeclGroup.h:18,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Transaction.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclUnloader.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringMap.h:17,
                 from C:/cling-arb/llvm/include/llvm/Support/Host.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/Hashing.h:49,
                 from C:/cling-arb/llvm/include/llvm/ADT/ArrayRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/APFloat.h:21,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/APValue.h:18,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:17,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclCollector.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\CIFactory.cpp:11:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T2 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:7518:40:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/Casting.h:19,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/LLVM.h:22,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/APValue.h:17,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:17,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclCollector.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\CIFactory.cpp:11:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringMap.h:17,
                 from C:/cling-arb/llvm/include/llvm/Support/Host.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/Hashing.h:49,
                 from C:/cling-arb/llvm/include/llvm/ADT/ArrayRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/APFloat.h:21,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/APValue.h:18,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:17,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclCollector.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\CIFactory.cpp:11:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T2 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:802:73:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/Casting.h:19,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/LLVM.h:22,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/APValue.h:17,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:17,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclCollector.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\CIFactory.cpp:11:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringMap.h:17,
                 from C:/cling-arb/llvm/include/llvm/Support/Host.h:17,
                 from C:/cling-arb/llvm/include/llvm/ADT/Hashing.h:49,
                 from C:/cling-arb/llvm/include/llvm/ADT/ArrayRef.h:13,
                 from C:/cling-arb/llvm/include/llvm/ADT/APFloat.h:21,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/APValue.h:18,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:17,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclCollector.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\CIFactory.cpp:11:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T2 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:804:53:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/Casting.h:19,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/LLVM.h:22,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/APValue.h:17,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:17,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DeclCollector.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\CIFactory.cpp:11:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<clang::IdentifierInfo*, clang::SourceLocation>]':
C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:750:53:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::IdentifierInfo*, clang::SourceLocation>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:40,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/InvocationOptions.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::IdentifierInfo*, clang::SourceLocation>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/AST/ASTContext.h:637:42:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:40,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/InvocationOptions.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T2 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:7518:40:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:40,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/InvocationOptions.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' declared here
     struct pair
            ^~~~
At global scope:
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T2 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:802:73:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:40,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/InvocationOptions.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/include/llvm/ADT/STLExtras.h:32,
                 from C:/cling-arb/llvm/include/llvm/ADT/StringRef.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T2 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:804:53:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/bits/stl_algobase.h:64,
                 from C:/msys64/mingw64/include/c++/8.2.0/bits/char_traits.h:39,
                 from C:/msys64/mingw64/include/c++/8.2.0/string:40,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/InvocationOptions.h:13,
                 from C:/cling-arb/llvm/tools/cling/include/cling/Interpreter/Interpreter.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' declared here
     struct pair
            ^~~~
In file included from C:/cling-arb/llvm/tools/clang/include/clang/Basic/Diagnostic.h:23,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h:19,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/DeclarationName.h:17,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/DeclBase.h:18,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:18,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DynamicLookup.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:17:
C:/cling-arb/llvm/include/llvm/ADT/DenseMap.h: In instantiation of 'void llvm::DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT>::copyFrom(const llvm::DenseMapBase<OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT>&) [with OtherBaseT = llvm::SmallDenseMap<llvm::CachedHashString, llvm::detail::DenseSetEmpty, 16, llvm::DenseMapInfo<llvm::CachedHashString>, llvm::detail::DenseSetPair<llvm::CachedHashString> >; DerivedT = llvm::SmallDenseMap<llvm::CachedHashString, llvm::detail::DenseSetEmpty, 16, llvm::DenseMapInfo<llvm::CachedHashString>, llvm::detail::DenseSetPair<llvm::CachedHashString> >; KeyT = llvm::CachedHashString; ValueT = llvm::detail::DenseSetEmpty; KeyInfoT = llvm::DenseMapInfo<llvm::CachedHashString>; BucketT = llvm::detail::DenseSetPair<llvm::CachedHashString>]':
C:/cling-arb/llvm/include/llvm/ADT/DenseMap.h:907:5:   required from 'void llvm::SmallDenseMap<KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT>::copyFrom(const llvm::SmallDenseMap<KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT>&) [with KeyT = llvm::CachedHashString; ValueT = llvm::detail::DenseSetEmpty; unsigned int InlineBuckets = 16; KeyInfoT = llvm::DenseMapInfo<llvm::CachedHashString>; BucketT = llvm::detail::DenseSetPair<llvm::CachedHashString>]'
C:/cling-arb/llvm/include/llvm/ADT/DenseMap.h:794:5:   required from 'llvm::SmallDenseMap<KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT>::SmallDenseMap(const llvm::SmallDenseMap<KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT>&) [with KeyT = llvm::CachedHashString; ValueT = llvm::detail::DenseSetEmpty; unsigned int InlineBuckets = 16; KeyInfoT = llvm::DenseMapInfo<llvm::CachedHashString>; BucketT = llvm::detail::DenseSetPair<llvm::CachedHashString>]'
C:/cling-arb/llvm/include/llvm/ADT/DenseSet.h:54:7:   required from here
C:/cling-arb/llvm/include/llvm/ADT/DenseMap.h:375:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'class llvm::detail::DenseSetPair<llvm::CachedHashString>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(getBuckets(), other.getBuckets(),
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              getNumBuckets() * sizeof(BucketT));
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/cling-arb/llvm/tools/clang/include/clang/Basic/Module.h:21,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/ExternalASTSource.h:19,
                 from C:/cling-arb/llvm/tools/clang/include/clang/AST/Decl.h:20,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\ASTTransformer.h:15,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\DynamicLookup.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\Interpreter.cpp:17:
C:/cling-arb/llvm/include/llvm/ADT/DenseSet.h:34:32: note: 'class llvm::detail::DenseSetPair<llvm::CachedHashString>' declared here
 template <typename KeyT> class DenseSetPair : public DenseSetEmpty {
                                ^~~~~~~~~~~~
In file included from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.h:16,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long long unsigned int>]':
C:/cling-arb/llvm/include/llvm/Support/Allocator.h:247:33:   required from 'void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long long unsigned int SlabSize = 4096; long long unsigned int SizeThreshold = 4096; size_t = long long unsigned int]'
C:/cling-arb/llvm/tools/clang/include/clang/AST/ASTContext.h:637:42:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<void*, long long unsigned int>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/Casting.h:19,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/LLVM.h:22,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/SourceLocation.h:18,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<void*, long long unsigned int>' declared here
     struct pair
            ^~~~
In file included from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.h:16,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T2 = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXRecordDecl*, clang::SourceLocation>]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:7518:40:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/Casting.h:19,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/LLVM.h:22,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/SourceLocation.h:18,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>' declared here
     struct pair
            ^~~~
In file included from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.h:16,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T2 = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:802:73:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/Casting.h:19,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/LLVM.h:22,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/SourceLocation.h:18,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>' declared here
     struct pair
            ^~~~
In file included from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.h:16,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.cpp:10:
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h: In instantiation of 'static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(T1*, T1*, T2*, typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type*) [with T1 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T2 = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; typename std::enable_if<std::is_same<typename std::remove_const<T1>::type, T2>::value>::type = void]':
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:717:5:   required from 'void llvm::SmallVectorImpl<T>::swap(llvm::SmallVectorImpl<T>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>]'
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:947:5:   required from 'void std::swap(llvm::SmallVector<T, N>&, llvm::SmallVector<T, N>&) [with T = std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>; unsigned int N = 2]'
C:/cling-arb/llvm/tools/clang/include/clang/Sema/Sema.h:804:53:   required from here
C:/cling-arb/llvm/include/llvm/ADT/SmallVector.h:296:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
       memcpy(Dest, I, (E - I) * sizeof(T));
       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys64/mingw64/include/c++/8.2.0/utility:70,
                 from C:/cling-arb/llvm/include/llvm/Support/type_traits.h:19,
                 from C:/cling-arb/llvm/include/llvm/Support/Casting.h:19,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/LLVM.h:22,
                 from C:/cling-arb/llvm/tools/clang/include/clang/Basic/SourceLocation.h:18,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.h:13,
                 from C:\cling-arb\llvm\tools\cling\lib\Interpreter\IncrementalParser.cpp:10:
C:/msys64/mingw64/include/c++/8.2.0/bits/stl_pair.h:198:12: note: 'struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>' declared here
     struct pair
            ^~~~
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
cc1plus.exe: warning: unrecognized command line option '-Wno-unused-local-typedef'
cc1plus.exe: warning: unrecognized command line option '-Wno-covered-switch-default'
cc1plus.exe: warning: unrecognized command line option '-Wno-nested-anon-types'
[ 87%] Built target obj.clingInterpreter
mingw32-make: *** [Makefile:151: all] Error 2

@c-sonntag What did you mean with?:

Of course we have to make further changes to the code, but all of this is very light.

Can you share any patches or say what changes should be made?

I tried different changes, other macros instead of LLVM_ON_WIN32 or ON_UNIX, or even comment on something from the code. But I did not get the version that fully compiled...

c-sonntag commented 6 years ago

Hi, yes indeed I had found some change to make but it was not perfect. Namely, I use MSYS2 as bash on my Windows and there are sometimes problems tty (need winpty hacks), but above all, it implies that Cling is compile to work with bash. So here is a patch that I made at the time, so I recommend to modify it for the latest version of Cling [Cling] fix-mingw.patch

FYI, did not continue my advancement, I just wanted to see what Cling was doing. The Cling interpreter works every first execution, but it has errors afterwards, which limits the "interpreter" mode. I had followed this order of execution to configure repository: quickly-clone-from-root-cern.sh

And here is my build script: build-32bits.sh

Now you can try running a script with the script: cling32.sh And use command like: cling32.sh cling_test.icpp

Here basic script for my test:

=> And the execution example : example-of-execution

Cling-thinking ;-).