https://bugs.exim.org/show_bug.cgi?id=1774
--- Comment #2 from Tavian Barnes <taviana...@tavianator.com> --- > - Why this is not working: > > #if (defined __has_builtin && __has_builtin(__builtin___clear_cache)) > > sljit_src/sljitConfigInternal.h:299:46: error: > missing binary operator before token "(" > -> the "(" after __has_builtin Because the C preprocessor has to be able to parse the whole expression before it evaluates it, even if part of it doesn't get evaluated due to the &&. You have to put it in a "skipped group" that doesn't even get parsed, which is why I wrote it the way I did. > - Why do we need a separate check for GCC 4.3 and __has_builtin? I think one > check should be enough. I would prefer the check above actually. GCC doesn't support __has_builtin at all[1], so I check for the GCC version that introduced __builtin___clear_cache. __has_builtin only works on Clang. [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66970 > - I remember there was issues with clear_cache on certain CPUs (ARMv5 as far > as I remember). Do __builtin___clear_cache has the same issues? Just checked, and GCC on ARMv5 Linux just emits a call to __clear_cache() for the builtin. So I imagine they'd share the same issues, whatever they are. -- You are receiving this mail because: You are on the CC list for the bug. -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev