Skip to content
  • Bjorn Pettersson's avatar
    [IPCP] Don't crash due to arg count/type mismatch between caller/callee · d014d576
    Bjorn Pettersson authored
    Summary:
    This patch avoids an assert in IPConstantPropagation when
    there is a argument count/type mismatch between the caller and
    the callee.
    
    While this is actually UB on C-level (clang emits a warning),
    the IR verifier seems to accept it. I'm not sure what other
    frontends/languages might think about this, so simply bailing out
    to avoid hitting an assert (in CallSiteBase<>::getArgOperand or
    Value::doRAUW) seems like a simple solution.
    
    The problem is exposed by the fact that AbstractCallSites will look
    through a bitcast at the callee position of a call/invoke.
    
    Reviewers: jdoerfert, reames, efriedma
    
    Reviewed By: jdoerfert, efriedma
    
    Subscribers: eli.friedman, efriedma, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57052
    
    llvm-svn: 352469
    d014d576
Loading