diff --git a/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx index 669c4443c5f0..ab58d93f5fd8 100644 --- a/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx @@ -588,7 +588,7 @@ void bridges::cpp_uno::shared::VtableFactory::flushCode( = (void (*)(unsigned char const *, unsigned char const *)) dlsym( RTLD_DEFAULT, "__clear_cache"); (*clear_cache)(begin, end); -#else +#elif defined __clang_major__ && __clang_major__ < 21 // GCC clarified with // // "extend.texi (__clear_cache): Correct signature" that __builtin___clear_cache takes void* @@ -600,6 +600,8 @@ void bridges::cpp_uno::shared::VtableFactory::flushCode( __builtin___clear_cache( reinterpret_cast(const_cast(begin)), reinterpret_cast(const_cast(end))); +#else + __builtin___clear_cache(const_cast(begin), const_cast(end)); #endif }