From 8e5ea9c33cb7cd93015f7e608a778b6bdfd63091 Mon Sep 17 00:00:00 2001 From: Matt Pharr Date: Wed, 6 Jul 2011 15:33:26 +0100 Subject: [PATCH] Set up NULL values for default arguments when creating ispc functions from LLVM bitcode builtins. Fixes occasional crashes due to accessing uninitialized memory. --- builtins.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/builtins.cpp b/builtins.cpp index bdc132ca..ef8eea0d 100644 --- a/builtins.cpp +++ b/builtins.cpp @@ -178,6 +178,12 @@ lCreateISPCSymbol(llvm::Function *func, SymbolTable *symbolTable) { // so that we get symbols for things with no integer types! if (i == 0 || anyIntArgs == true) { FunctionType *funcType = new FunctionType(returnType, argTypes, noPos); + // set NULL default arguments + std::vector defaults; + for (int j = 0; j < ftype->getNumParams(); ++j) + defaults.push_back(NULL); + funcType->SetArgumentDefaults(defaults); + Symbol *sym = new Symbol(name, noPos, funcType); sym->function = func; symbolTable->AddFunction(sym);