aboutsummaryrefslogtreecommitdiff
path: root/lib/VMCore/Function.cpp
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 /lib/VMCore/Function.cpp
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
Diffstat (limited to 'lib/VMCore/Function.cpp')
-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,