File tree Expand file tree Collapse file tree 2 files changed +11
-10
lines changed Expand file tree Collapse file tree 2 files changed +11
-10
lines changed Original file line number Diff line number Diff line change @@ -5948,10 +5948,13 @@ static std::unique_ptr<Module> emit_function(
59485948                vi.value  = theArg;
59495949                if  (specsig && theArg.V  && ctx.debug_enabled  && vi.dinfo ) {
59505950                    SmallVector<uint64_t , 8 > addr;
5951-                     if  ((Metadata*)vi.dinfo ->getType () != jl_pvalue_dillvmt && theArg.ispointer ())
5952-                         addr.push_back (llvm::dwarf::DW_OP_deref);
5953-                     AllocaInst *parg = dyn_cast<AllocaInst>(theArg.V );
5954-                     if  (!parg) {
5951+                     Value *parg;
5952+                     if  (theArg.ispointer ()) {
5953+                         parg = theArg.V ;
5954+                         if  ((Metadata*)vi.dinfo ->getType () != jl_pvalue_dillvmt)
5955+                             addr.push_back (llvm::dwarf::DW_OP_deref);
5956+                     }
5957+                     else  {
59555958                        parg = ctx.builder .CreateAlloca (theArg.V ->getType (), NULL , jl_symbol_name (s));
59565959                        ctx.builder .CreateStore (theArg.V , parg);
59575960                    }
Original file line number Diff line number Diff line change @@ -85,12 +85,10 @@ void GCInvariantVerifier::visitStoreInst(StoreInst &SI) {
8585    if  (VTy->isPointerTy ()) {
8686        /*  We currently don't obey this for arguments. That's ok - they're
8787           externally rooted. */  
88-         if  (!isa<Argument>(SI.getValueOperand ())) {
89-             unsigned  AS = cast<PointerType>(VTy)->getAddressSpace ();
90-             Check (AS != AddressSpace::CalleeRooted &&
91-                   AS != AddressSpace::Derived,
92-                   " Illegal store of decayed value" 
93-         }
88+         unsigned  AS = cast<PointerType>(VTy)->getAddressSpace ();
89+         Check (AS != AddressSpace::CalleeRooted &&
90+               AS != AddressSpace::Derived,
91+               " Illegal store of decayed value" 
9492    }
9593    VTy = SI.getPointerOperand ()->getType ();
9694    if  (VTy->isPointerTy ()) {
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments