mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-20 10:24:12 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44250 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -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;
|
||||
|
Reference in New Issue
Block a user