diff --git a/src/docode.c b/src/docode.c index 11d4fa0b2d4bbd24b74d82c9394f8d561a0faf32..6c1e0c86da9a220d00e7ba4b88318e79b5c2c1eb 100644 --- a/src/docode.c +++ b/src/docode.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: docode.c,v 1.57 1999/11/23 22:37:14 grubba Exp $"); +RCSID("$Id: docode.c,v 1.58 1999/11/25 16:39:31 grubba Exp $"); #include "las.h" #include "program.h" #include "language.h" @@ -706,7 +706,20 @@ static int do_docode2(node *n,int flags) return 1; case F_SOFT_CAST: - return do_docode(CAR(n), flags); +#ifdef PIKE_DEBUG + if (d_flag) { + tmp1 = store_prog_string(n->type); + emit(F_STRING, tmp1); + tmp1 = do_docode(CAR(n), 0); + if (!tmp1) { emit2(F_CONST0); tmp1 = 1; } + if (tmp1 > 1) do_pop(tmp1 - 1); + emit2(F_SOFT_CAST); + return 1; + } +#endif /* PIKE_DEBUG */ + tmp1 = do_docode(CAR(n), flags); + if (tmp1 > 1) do_pop(tmp1 - 1); + return !!tmp1; case F_APPLY: if(CAR(n)->token == F_CONSTANT)