aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-01-03 01:20:12 +0000
committerChris Lattner <sabre@nondot.org>2008-01-03 01:20:12 +0000
commit50cffa01076a2364dc593ebbfeacf8c5bd4d3f42 (patch)
tree00556cf4522dbb874ecd66b333dc02fe0d0ebf03
parent89e94bd00c1a7e24b42e653fc5c0f4b00a3dee61 (diff)
Remove the function attr cache for intrinsics. This does not maintain the
refcount on these correctly, and can end up referring to deleted attributes. This fixes PR1881. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45525 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/VMCore/Function.cpp8
1 files changed, 1 insertions, 7 deletions
diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp
index b9a139d75b..8e6570a627 100644
--- a/lib/VMCore/Function.cpp
+++ b/lib/VMCore/Function.cpp
@@ -325,11 +325,6 @@ const FunctionType *Intrinsic::getType(ID id, const Type **Tys,
}
const ParamAttrsList *Intrinsic::getParamAttrs(ID id) {
- static const ParamAttrsList *IntrinsicAttributes[Intrinsic::num_intrinsics];
-
- if (IntrinsicAttributes[id])
- return IntrinsicAttributes[id];
-
ParamAttrsVector Attrs;
uint16_t Attr = ParamAttr::None;
@@ -341,8 +336,7 @@ const ParamAttrsList *Intrinsic::getParamAttrs(ID id) {
Attr |= ParamAttr::NoUnwind;
Attrs.push_back(ParamAttrsWithIndex::get(0, Attr));
- IntrinsicAttributes[id] = ParamAttrsList::get(Attrs);
- return IntrinsicAttributes[id];
+ return ParamAttrsList::get(Attrs);
}
Function *Intrinsic::getDeclaration(Module *M, ID id, const Type **Tys,