__builtin___clear_cache()
has a different prototype than GCC · Issue #47833 · llvm/llvm-project (original) (raw)
Bugzilla Link | 48489 |
---|---|
Version | unspecified |
OS | All |
CC | @DougGregor,@zygoloid,@stbergmann |
Extended Description
GCC provides:
void __builtin___clear_cache(void *begin, void *end);
See: https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
Clang provides:
void __builtin___clear_cache(char *begin, char *end);
I think GCC used char *
in the past, and moved to void *
, but I'm not sure about this. Please, use the same prototype that GCC uses, for compatibility reasons.
I don't know much about internals of Clang/LLVM, but the only source I could find that defines the types for the prototype is:
BUILTIN(__builtin___clear_cache, "vc*c*", "n") |
---|
If you can confirm that, or tell me which other sources need to be modified, I'll be happy to submit a patch.
And a reminder to myself when this bug is closed: Update cacheflush(2) manual page.
Related linux-man@ thread: https://lore.kernel.org/linux-man/747d56e0-c102-ab40-add4-530a48a43a4d@gmx.de/T/#t