diff --git a/Filtered_kernel/include/CGAL/Lazy.h b/Filtered_kernel/include/CGAL/Lazy.h index e02f0e9f9d5..763d275c049 100644 --- a/Filtered_kernel/include/CGAL/Lazy.h +++ b/Filtered_kernel/include/CGAL/Lazy.h @@ -246,7 +246,7 @@ templatevoid lazy_reset_member(std::tuple&t) { // FIXME: CGAL_USE_SSE2 is clearly not the right condition #ifdef CGAL_HAS_THREADS templatestruct Lazy_rep_selector { static constexpr int value = 0; }; -# ifdef CGAL_USE_SSE2 +# if defined CGAL_USE_SSE2 && !defined __SANITIZE_THREAD__ && !__has_feature(thread_sanitizer) templatestruct Lazy_rep_selector> { static constexpr int value = 1; }; templatestruct Lazy_rep_selector,N>> { static constexpr int value = 1; }; // Need some declarations, including Simple_cartesian.h would also be possible. @@ -730,6 +730,7 @@ public: // necessary because this class can be used either for default // construction, or to store a non-lazy exact value, and only the first one // should have a non-empty update_exact. + // An alternative would be to add in the constructors taking an ET: std::call_once(this->once, [](){}); if(!this->is_lazy()) return; #endif auto* p = new typename Base::Indirect();