Hi Jonathan, >> > Ah yes, so we need to disable this optimization. Patch coming up ... >> >> Gah, I remembered to check that: >> >> constexpr bool __double_word >> = sizeof(long long) == 2 * sizeof(_Atomic_word); >> // The ref-count members follow the vptr, so are aligned to >> // alignof(void*). >> constexpr bool __aligned = __alignof(long long) <= alignof(void*); >> if _GLIBCXX17_CONSTEXPR (__lock_free && __double_word && __aligned) >> >> >> But for C++11 and C++14 that is a normal runtime condition not >> if-constexpr, so the undefined shift still gets compiled, even though >> it can never be reached at runtime. > > Fixed like so. Tested sparc-sun-solaris2.11, pushed to trunk.
great, thanks a lot. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University