================
@@ -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

Reply via email to