Branch: Tag:

2003-02-24

2003-02-24 21:00:44 by Martin Stjernholm <mast@lysator.liu.se>

Produce real zeroes and not false function pointers when a local function
with only a prototype is referenced. This was a compatibility problem;
there's code that assumes that false values can't be function references.

Rev: src/docode.c:1.161
Rev: src/las.c:1.318
Rev: src/program.c:1.470
Rev: src/program.h:1.174

2:   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: las.c,v 1.317 2002/12/27 19:34:39 grubba Exp $ + || $Id: las.c,v 1.318 2003/02/24 21:00:44 mast Exp $   */      #include "global.h" - RCSID("$Id: las.c,v 1.317 2002/12/27 19:34:39 grubba Exp $"); + RCSID("$Id: las.c,v 1.318 2003/02/24 21:00:44 mast Exp $");      #include "language.h"   #include "interpret.h"
5662:    ret=define_function(name,    type,    (unsigned INT16)modifiers, -  (unsigned INT8)(IDENTIFIER_C_FUNCTION | vargs), +  (unsigned INT8)(IDENTIFIER_C_FUNCTION | +  IDENTIFIER_HAS_BODY | +  vargs),    &tmp,    foo->u.efun->flags);    free_node(n);
5694:    ret=define_function(name,    type,    (unsigned INT16)modifiers, -  (unsigned INT8)(IDENTIFIER_PIKE_FUNCTION | vargs), +  (unsigned INT8)(IDENTIFIER_PIKE_FUNCTION | +  IDENTIFIER_HAS_BODY | +  vargs),    Pike_compiler->num_parse_error?NULL:&tmp,    (unsigned INT16)    (Pike_compiler->compiler_frame->opt_flags));