]> Nishi Git Mirror - gwion.git/commitdiff
:bug: More AFL work
authorfennecdjay <astor.jeremie@wanadoo.fr>
Sun, 8 Sep 2019 13:29:26 +0000 (15:29 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Sun, 8 Sep 2019 13:29:26 +0000 (15:29 +0200)
src/parse/scan0.c
src/parse/scan2.c

index 5c5b659ae2ea30de352d573b9af73e0cf0a86410..e87b5614f1070be228d0ad564bafbc8d98e8b2b1 100644 (file)
@@ -70,6 +70,7 @@ static void fptr_def(const Env env, const Fptr_Def fptr) {
 
 ANN m_bool scan0_fptr_def(const Env env, const Fptr_Def fptr) {
   CHECK_BB(env_access(env, fptr->base->td->flag, td_pos(fptr->base->td)))
+  CHECK_OO(known_type(env, fptr->base->td))
   CHECK_BB(scan0_defined(env, fptr->base->xid, td_pos(fptr->base->td)));
   const m_str name = s_name(fptr->base->xid);
   const Type t = new_type(env->gwion->mp, t_fptr->xid, name, t_fptr);
index 89e51c9650af499936c320dff9381bf15ed9c6e8..451d3efb168f2207a04bf0b02148f5d41b490633 100644 (file)
@@ -157,14 +157,12 @@ ANN static inline m_bool scan2_exp_post(const Env env, const Exp_Postfix* post)
   return scan2_exp(env, post->exp);
 }
 
-ANN2(1,2) static inline m_bool scan2_exp_call1(const Env env, const restrict Exp func,
-    const restrict Exp args) {
-  CHECK_BB(scan2_exp(env, func))
-  return args ? scan2_exp(env, args) : 1;
-}
-
 ANN static inline m_bool scan2_exp_call(const Env env, const Exp_Call* exp_call) {
-    return scan2_exp_call1(env, exp_call->func, exp_call->args);
+  if(exp_call->tmpl)
+    return GW_OK;
+  CHECK_BB(scan2_exp(env, exp_call->func))
+  const Exp args = exp_call->args;
+  return args ? scan2_exp(env, args) : GW_OK;
 }
 
 ANN static inline m_bool scan2_exp_dot(const Env env, const Exp_Dot* member) {