diff --git a/CodeGen/CodeGenFunction.cpp b/CodeGen/CodeGenFunction.cpp
index 6701b71..adbb414 100644
--- a/CodeGen/CodeGenFunction.cpp
+++ b/CodeGen/CodeGenFunction.cpp
@@ -82,18 +82,17 @@
   // FIXME: else handle -fvisibility
 
 
-  llvm::ParamAttrsVector ParamAttrsVec;
-
+  unsigned FuncAttrs = 0;
   if (FD->getAttr<NoThrowAttr>())
-    ParamAttrsVec.push_back(
-     llvm::ParamAttrsWithIndex::get(ParamAttrsVec.size(), llvm::ParamAttr::NoUnwind));
+    FuncAttrs |= llvm::ParamAttr::NoUnwind;
   if (FD->getAttr<NoReturnAttr>())
-    ParamAttrsVec.push_back(
-     llvm::ParamAttrsWithIndex::get(ParamAttrsVec.size(), llvm::ParamAttr::NoReturn));
-
-  if (!ParamAttrsVec.empty())
+    FuncAttrs |= llvm::ParamAttr::NoReturn;
+  
+  if (FuncAttrs) {
+    llvm::ParamAttrsVector ParamAttrsVec;
+    ParamAttrsVec.push_back(llvm::ParamAttrsWithIndex::get(0, FuncAttrs));
     CurFn->setParamAttrs(llvm::ParamAttrsList::get(ParamAttrsVec));
-
+  }
 
   llvm::BasicBlock *EntryBB = new llvm::BasicBlock("entry", CurFn);
   
