flush
[m6w6/ext-psi] / src / validator.c
index 5a6f5d96de0782acad1f0aa451262a8bf1fc1cab..6bfd4e423b45ba93baf0fdf39e7d4b00bace595d 100644 (file)
@@ -282,7 +282,7 @@ static inline int validate_impl_stmts(PSI_Validator *V, impl *impl, impl_stmts *
                let_stmt *let = stmts->let.list[i];
                int check = 0;
 
-               if (let->val->var) {
+               if (let->val && let->val->var) {
                        for (j = 0; j < impl->func->args->count; ++j) {
                                impl_arg *iarg = impl->func->args->args[j];
 
@@ -409,7 +409,7 @@ int PSI_ValidatorValidate(PSI_Validator *V)
        if (V->decls && !validate_decls(V)) {
                return 0;
        }
-       if (V->impls && !validate_impls(V)) {
+       if (!V->impls || !validate_impls(V)) {
                return 0;
        }
        return 1;