From 5e41f6569918a6e001cadf8dea96819686cf301c Mon Sep 17 00:00:00 2001 From: Duncan Sands Date: Tue, 20 Nov 2007 14:09:29 +0000 Subject: In order for parameter attribute uniquing to make any sense it is important that ParamAttr::None gets treated the same as not supplying an attribute at all. Rather than stripping ParamAttr::None out of the list of attributes, assert if ParamAttr::None is seen. Fix up the bitcode reader which liked to insert ParamAttr::None all over the place. Patch based on one by Török Edwin. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44250 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/Function.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'lib/VMCore/Function.cpp') diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index 3256d5b9f6..a011aaea33 100644 --- a/lib/VMCore/Function.cpp +++ b/lib/VMCore/Function.cpp @@ -129,8 +129,12 @@ ParamAttrsList * ParamAttrsList::get(const ParamAttrsVector &attrVec) { assert(!attrVec.empty() && "Illegal to create empty ParamAttrsList"); #ifndef NDEBUG - for (unsigned i = 1, e = attrVec.size(); i < e; ++i) - assert(attrVec[i-1].index < attrVec[i].index && "Misordered ParamAttrsList!"); + for (unsigned i = 0, e = attrVec.size(); i < e; ++i) { + assert(attrVec[i].attrs != ParamAttr::None + && "Pointless parameter attribute!"); + assert((!i || attrVec[i-1].index < attrVec[i].index) + && "Misordered ParamAttrsList!"); + } #endif ParamAttrsList key(attrVec); FoldingSetNodeID ID; -- cgit v1.2.3-18-g5258