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

I don't see why *all* CFI attributes should be restricted to C. There may be 
some which can be for both, depending on circumstances.

I may change the name of this attribute 'kcfi_seed' to indicate that it's 
fairly specifically meant for kernel code.

> > 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.

This would be a generic problem for all PCH's then; not just this one.

> > 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.

Okay, sure.

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