================ @@ -3639,6 +3639,64 @@ make the function's CFI jump table canonical. See :ref:`the CFI documentation }]; } +def CFISaltDocs : Documentation { + let Category = DocCatFunction; + let Content = [{ +Use ``__attribute__((cfi_salt("<salt>")))`` on a function declaration, function ---------------- AaronBallman wrote:
> I'm going to see if the attribute could be restricted to C If you do restrict to C, then that should be all of the CFI attributes which are restricted to C? If so, we should definitely move on that before Clang 21 is released. > As for modules/PCH files, those are C++ features, correct? I literally have > no experience with them. Modules are a C++ feature, but PCH files are both C and C++ (precompiled headers). Basically, when you include a PCH file it's the same as including a textual header but instead you're including a serialized binary blob representing the textual header, so you can run into the same situations with invalid redeclarations. But I *think* that's handled in a sufficiently generic way that you should be fine without any custom logic. > Re name mangling: This goes back to whether it's impacting the function type. Generally that's only an issue in C++, but we have the `overloadable` attribute which allows for overloading in C. And the way that's implemented is that it basically uses the C++ logic, including name mangling. So we may have to care about it, but if the salt attribute is not part of the function type, then there's no overloads and no need to worry. https://github.com/llvm/llvm-project/pull/141846 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits