__emit: Display the type of passed-by-reference arrays in error messages as "-reference-"

This commit is contained in:
Daniel_Cortez 2018-12-31 01:33:42 +07:00
parent 86f2b783f8
commit 62779691ab

View File

@ -6103,7 +6103,7 @@ fetchtok:
markusage(sym,uREAD | uWRITTEN); markusage(sym,uREAD | uWRITTEN);
if (!allow_nonint && sym->ident!=iCONSTEXPR) { if (!allow_nonint && sym->ident!=iCONSTEXPR) {
if (sym->vclass==sLOCAL) if (sym->vclass==sLOCAL)
tok=(sym->ident==iREFERENCE) ? teREFERENCE : teLOCAL; tok=(sym->ident==iREFERENCE || sym->ident==iREFARRAY) ? teREFERENCE : teLOCAL;
else else
tok=teDATA; tok=teDATA;
goto invalid_token; goto invalid_token;
@ -6240,7 +6240,7 @@ static void SC_FASTCALL emit_param_data(emit_outval *p)
if (sym->ident==iCONSTEXPR) if (sym->ident==iCONSTEXPR)
tok=teNUMERIC; tok=teNUMERIC;
else else
tok=(sym->ident==iREFERENCE) ? teREFERENCE : teLOCAL; tok=(sym->ident==iREFERENCE || sym->ident==iREFARRAY) ? teREFERENCE : teLOCAL;
goto invalid_token; goto invalid_token;
} /* if */ } /* if */
} else { } else {
@ -6296,7 +6296,7 @@ static void SC_FASTCALL emit_param_local(emit_outval *p,int allow_ref)
tok=teDATA; tok=teDATA;
goto invalid_token; goto invalid_token;
} /* if */ } /* if */
if (sym->ident==iREFERENCE && allow_ref==FALSE) { if (allow_ref==FALSE && (sym->ident==iREFERENCE || sym->ident==iREFARRAY)) {
tok=teREFERENCE; tok=teREFERENCE;
goto invalid_token; goto invalid_token;
} /* if */ } /* if */
@ -6357,7 +6357,7 @@ static void SC_FASTCALL emit_param_label(emit_outval *p)
tok=teNUMERIC; tok=teNUMERIC;
} else { } else {
if (sym->vclass==sLOCAL) if (sym->vclass==sLOCAL)
tok=(sym->ident==iREFERENCE) ? teREFERENCE : teLOCAL; tok=(sym->ident==iREFERENCE || sym->ident==iREFARRAY) ? teREFERENCE : teLOCAL;
else else
tok=teDATA; tok=teDATA;
} /* if */ } /* if */
@ -6408,7 +6408,7 @@ static void SC_FASTCALL emit_param_function(emit_outval *p,int isnative)
tok=teNUMERIC; tok=teNUMERIC;
} else { } else {
if (sym->vclass==sLOCAL) if (sym->vclass==sLOCAL)
tok=(sym->ident==iREFERENCE) ? teREFERENCE : teLOCAL; tok=(sym->ident==iREFERENCE || sym->ident==iREFARRAY) ? teREFERENCE : teLOCAL;
else else
tok=teDATA; tok=teDATA;
} /* if */ } /* if */