Warnings for Unicode Set
Compilation warnings for unicode_set.cpp
should be addressed.
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp: In member function ‘void UCD::UnicodeSet::insert(UCD::codepoint_t)’:
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:668:57: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
668 | std::memcpy(newRun, mRuns, k * sizeof(run_t));
| ^
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
from /usr/include/c++/9/vector:60,
from /home/cameron/parabix-devel/include/unicode/core/unicode_set.h:5,
from /home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:20:
/usr/include/c++/9/bits/stl_pair.h:208:12: note: ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} declared here
208 | struct pair
| ^~~~
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:669:84: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
669 | std::memcpy(newRun + k + m, mRuns + k, (mRunLength - k) * sizeof(run_t));
| ^
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
from /usr/include/c++/9/vector:60,
from /home/cameron/parabix-devel/include/unicode/core/unicode_set.h:5,
from /home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:20:
/usr/include/c++/9/bits/stl_pair.h:208:12: note: ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} declared here
208 | struct pair
| ^~~~
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:674:84: warning: ‘void* memmove(void*, const void*, size_t)’ writing to an object of type ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
674 | std::memmove(mRuns + k + m, mRuns + k, (mRunLength - k) * sizeof(run_t));
| ^
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
from /usr/include/c++/9/vector:60,
from /home/cameron/parabix-devel/include/unicode/core/unicode_set.h:5,
from /home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:20:
/usr/include/c++/9/bits/stl_pair.h:208:12: note: ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} declared here
208 | struct pair
| ^~~~
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp: In constructor ‘UCD::UnicodeSet::UnicodeSet(std::initializer_list<std::pair<unsigned int, unsigned int> >::iterator, std::initializer_list<std::pair<unsigned int, unsigned int> >::iterator)’:
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:1340:54: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
1340 | std::memcpy(mRuns, runs.data(), n * sizeof(run_t));
| ^
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
from /usr/include/c++/9/vector:60,
from /home/cameron/parabix-devel/include/unicode/core/unicode_set.h:5,
from /home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:20:
/usr/include/c++/9/bits/stl_pair.h:208:12: note: ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} declared here
208 | struct pair
| ^~~~
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp: In constructor ‘UCD::UnicodeSet::UnicodeSet(std::vector<std::pair<unsigned int, unsigned int> >::iterator, std::vector<std::pair<unsigned int, unsigned int> >::iterator)’:
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:1374:54: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
1374 | std::memcpy(mRuns, runs.data(), n * sizeof(run_t));
| ^
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
from /usr/include/c++/9/vector:60,
from /home/cameron/parabix-devel/include/unicode/core/unicode_set.h:5,
from /home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:20:
/usr/include/c++/9/bits/stl_pair.h:208:12: note: ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} declared here
208 | struct pair
| ^~~~
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp: In instantiation of ‘T* UCD::copyOf(const T*, uint32_t, SlabAllocator<>&) [with T = std::pair<UCD::run_type_t, short unsigned int>; uint32_t = unsigned int]’:
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:381:81: required from here
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:68:16: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<UCD::run_type_t, short unsigned int>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
68 | std::memcpy(ptr, base, length * sizeof(T));
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
from /usr/include/c++/9/vector:60,
from /home/cameron/parabix-devel/include/unicode/core/unicode_set.h:5,
from /home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:20:
/usr/include/c++/9/bits/stl_pair.h:208:12: note: ‘struct std::pair<UCD::run_type_t, short unsigned int>’ declared here
208 | struct pair
| ^~~~
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp: In instantiation of ‘void UCD::assign(UCD::UnicodeSet*, const RunVector&, const QuadVector&) [with RunVector = llvm::SmallVector<std::pair<UCD::run_type_t, short unsigned int>, 32>; QuadVector = llvm::SmallVector<unsigned int, 32>]’:
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:735:33: required from here
/home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:85:16: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
85 | std::memcpy(self->mRuns, runs.data(), n * sizeof(run_t));
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
from /usr/include/c++/9/vector:60,
from /home/cameron/parabix-devel/include/unicode/core/unicode_set.h:5,
from /home/cameron/parabix-devel/lib/unicode/core/unicode_set.cpp:20:
/usr/include/c++/9/bits/stl_pair.h:208:12: note: ‘using run_t = struct std::pair<UCD::run_type_t, short unsigned int>’ {aka ‘struct std::pair<UCD::run_type_t, short unsigned int>’} declared here
208 | struct pair
| ^~~~
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information