diff --git a/lib/Transforms/IPO/PruneEH.cpp b/lib/Transforms/IPO/PruneEH.cpp index 5e50e20af4d..8fb904b1ea5 100644 --- a/lib/Transforms/IPO/PruneEH.cpp +++ b/lib/Transforms/IPO/PruneEH.cpp @@ -133,7 +133,11 @@ bool PruneEH::runOnSCC(const std::vector &SCC) { NewAttributes |= ParamAttr::NoReturn; const PAListPtr &PAL = SCC[i]->getFunction()->getParamAttrs(); - SCC[i]->getFunction()->setParamAttrs(PAL.addAttr(0, NewAttributes)); + const PAListPtr &NPAL = PAL.addAttr(0, NewAttributes); + if (PAL != NPAL) { + MadeChange = true; + SCC[i]->getFunction()->setParamAttrs(NPAL); + } } for (unsigned i = 0, e = SCC.size(); i != e; ++i) {