Index: lib/Transforms/IPO/CalledValuePropagation.cpp =================================================================== --- lib/Transforms/IPO/CalledValuePropagation.cpp +++ lib/Transforms/IPO/CalledValuePropagation.cpp @@ -268,6 +268,9 @@ // If we can't track the function's return values, there's nothing to do. if (!F || !canTrackReturnsInterprocedurally(F)) { + // Void return, just bail. + if (I->getType()->isVoidTy()) + return; ChangedValues[RegI] = getOverdefinedVal(); return; } @@ -283,6 +286,11 @@ ChangedValues[RegFormal] = MergeValues(SS.getValueState(RegFormal), SS.getValueState(RegActual)); } + + // Void return, just bail. + if (I->getType()->isVoidTy()) + return; + ChangedValues[RegI] = MergeValues(SS.getValueState(RegI), SS.getValueState(RetF)); }