title: Assertion failed: (use_empty() && "Uses remain when a value is destroyed!")
body: <pre><code>for (Module::global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) {
      GlobalVariable* GV = I;
      if(!GV-&gt;hasInitializer())  
          continue;
  
      ConstantArray* array = dyn_cast&lt;ConstantArray&gt;(GV-&gt;getInitializer());      
      if(array){
          for(unsigned int i = 0; i &lt; array-&gt;getNumOperands(); i++){
              ConstantExpr* ce = dyn_cast&lt;ConstantExpr&gt;(array-&gt;getOperand(i));
              if(ce == 0)
                  continue;
  
              ce-&gt;getAsInstruction();  //if add, get error!!!
  
          }
          continue;
      }
  }
  </code></pre>
  
  <p>why ce->getAsInstruction() will cause Uses remain when a value is destroyed!</p>