For PR1146:
Make ParamAttrsList objects unique. You can no longer directly create or
destroy them but instead must go through the ParamAttrsList::get()
interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36327 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index 4979269..4cb67c3 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -1078,16 +1078,18 @@
ParamAttrsList *BytecodeReader::ParseParamAttrsList() {
unsigned NumAttrs = read_vbr_uint();
- ParamAttrsList *Attrs = 0;
+ ParamAttrsList *PAL = 0;
if (NumAttrs) {
- Attrs = new ParamAttrsList();
+ ParamAttrsVector Attrs;
+ ParamAttrsWithIndex PAWI;
while (NumAttrs--) {
- uint16_t index = read_vbr_uint();
- uint16_t attrs = read_vbr_uint();
- Attrs->addAttributes(index, attrs);
+ PAWI.index = read_vbr_uint();
+ PAWI.attrs = read_vbr_uint();
+ Attrs.push_back(PAWI);
}
+ PAL = ParamAttrsList::get(Attrs);
}
- return Attrs;
+ return PAL;
}