File tree Expand file tree Collapse file tree 1 file changed +14
-0
lines changed 
compiler/rustc_codegen_ssa/src/back Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Original file line number Diff line number Diff line change 11use  std:: ffi:: CString ; 
22use  std:: sync:: Arc ; 
33
4+ use  rustc_ast:: expand:: allocator:: AllocatorKind ; 
45use  rustc_data_structures:: memmap:: Mmap ; 
56use  rustc_hir:: def_id:: { CrateNum ,  LOCAL_CRATE } ; 
67use  rustc_middle:: middle:: exported_symbols:: { ExportedSymbol ,  SymbolExportInfo ,  SymbolExportLevel } ; 
@@ -95,6 +96,19 @@ pub(super) fn exported_symbols_for_lto(
9596            . filter_map ( |& ( s,  info) :  & ( ExportedSymbol < ' _ > ,  SymbolExportInfo ) | { 
9697                if  info. level . is_below_threshold ( export_threshold)  || info. used  { 
9798                    Some ( symbol_name_for_instance_in_crate ( tcx,  s,  cnum) ) 
99+                 }  else  if  export_threshold == SymbolExportLevel :: C 
100+                     && info. rustc_std_internal_symbol 
101+                     && let  Some ( AllocatorKind :: Default )  = allocator_kind_for_codegen ( tcx) 
102+                 { 
103+                     // Export the __rdl_* exports for usage by the allocator shim when not using 
104+                     // #[global_allocator]. Most of the conditions above are only used to avoid 
105+                     // unnecessary expensive symbol_name_for_instance_in_crate calls. 
106+                     let  sym = symbol_name_for_instance_in_crate ( tcx,  s,  cnum) ; 
107+                     if  sym. contains ( "__rdl_" )  || sym. contains ( "__rg_oom" )  { 
108+                         Some ( sym) 
109+                     }  else  { 
110+                         None 
111+                     } 
98112                }  else  { 
99113                    None 
100114                } 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments