Hi Yakup,
This appears to be a bug in GCC's sanitizer. The the_persona_tls in is a global __thread storage duration variable where basically all the internal thread-local stuff is kept within the runtime. The address of the_persona_tls cannot be null but the sanitizer is reporting that *this is forming a reference to a null pointer, which cannot be correct. This probably has something to do with it being thread local storage making GCC confused.
Although this particular instance is erroneous, UPC++ also relies on known-to-work behavior that's UB according to the C++ standard, such as converting function pointers to and from uintptr_t. We try to avoid UB whenever possible, but there are some things we need to do that the standard doesn't have a mechanism for. Running a UB sanitizer isn't something I'd expect to work with UPC++.
-Colin MacLean