diff options
| author | Nikita Popov <npopov@redhat.com> | 2025-09-19 14:53:16 +0200 | 
|---|---|---|
| committer | Nikita Popov <npopov@redhat.com> | 2025-09-25 10:04:40 +0200 | 
| commit | d226e7aa93425ba2090f423642341a99ab047838 (patch) | |
| tree | c3637a3064bf9f53334ec613efd29eed417bde71 /compiler/rustc_codegen_llvm/src/abi.rs | |
| parent | caccb4d0368bd918ef6668af8e13834d07040417 (diff) | |
| download | rust-d226e7aa93425ba2090f423642341a99ab047838.tar.gz rust-d226e7aa93425ba2090f423642341a99ab047838.zip  | |
Use standard attribute logic for allocator shim
Use llfn_attrs_from_instance() to generate the attributes for the allocator shim. This ensures that we generate all the usual attributes (and don't get to find out one-by-one that a certain attribute is important for a certain target). Additionally this will enable emitting the allocator-specific attributes (not included here). This change is quite awkward because the allocator shim uses SimpleCx, while llfn_attrs_from_instance uses CodegenCx. I've switched it to use SimpleCx plus tcx/sess arguments where necessary. If there's a simpler way to do this, I'd love to know about it...
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/abi.rs')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/abi.rs | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_llvm/src/abi.rs b/compiler/rustc_codegen_llvm/src/abi.rs index 11be7041167..861227f7c2a 100644 --- a/compiler/rustc_codegen_llvm/src/abi.rs +++ b/compiler/rustc_codegen_llvm/src/abi.rs @@ -538,7 +538,13 @@ impl<'ll, 'tcx> FnAbiLlvmExt<'ll, 'tcx> for FnAbi<'tcx, Ty<'tcx>> { // If the declaration has an associated instance, compute extra attributes based on that. if let Some(instance) = instance { - llfn_attrs_from_instance(cx, llfn, instance); + llfn_attrs_from_instance( + cx, + cx.tcx, + llfn, + &cx.tcx.codegen_instance_attrs(instance.def), + Some(instance), + ); } }  | 
