Merge branch 'master' of git://github.com/ispc/ispc

This commit is contained in:
Jean-Luc Duprat
2012-03-17 12:59:43 -07:00

View File

@@ -343,8 +343,6 @@ Module::AddGlobalVariable(Symbol *sym, Expr *initExpr, bool isConst) {
*/ */
static bool static bool
lRecursiveCheckValidParamType(const Type *t) { lRecursiveCheckValidParamType(const Type *t) {
t = t->GetBaseType();
const StructType *st = dynamic_cast<const StructType *>(t); const StructType *st = dynamic_cast<const StructType *>(t);
if (st != NULL) { if (st != NULL) {
for (int i = 0; i < st->GetElementCount(); ++i) for (int i = 0; i < st->GetElementCount(); ++i)
@@ -352,15 +350,16 @@ lRecursiveCheckValidParamType(const Type *t) {
return true; return true;
return false; return false;
} }
else {
if (t->IsVaryingType()) const SequentialType *seqt = dynamic_cast<const SequentialType *>(t);
return true; if (seqt != NULL)
const PointerType *pt = dynamic_cast<const PointerType *>(t); return lRecursiveCheckValidParamType(seqt->GetElementType());
if (pt != NULL && pt->IsSlice())
return true; const PointerType *pt = dynamic_cast<const PointerType *>(t);
else if (pt != NULL)
return false; return (pt->IsSlice() || pt->IsVaryingType());
}
return t->IsVaryingType();
} }