pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/docode.c:1:
/* || 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: docode.c,v 1.
202
2008/
06
/
30
13
:
47
:
23
mast
Exp $
+
|| $Id: docode.c,v 1.
203
2008/
07
/
14
21
:
39
:
20
grubba
Exp $
*/ #include "global.h" #include "las.h" #include "program.h" #include "pike_types.h" #include "stralloc.h" #include "interpret.h" #include "constants.h" #include "array.h"
pike.git/src/docode.c:451:
Inside #if 1
Pike_compiler->new_program->identifier_references + id; /* Test description: * * * Test if we have a valid current function. * * * Quick check if id is the current function. * * * Check if id is an alternate reference to the current function. *
-
* * Check that the function isn't varargs.
+
* * Check that the function isn't varargs
or contains scoped functions
.
+
*
+
* * Check that the current function doesn't contain scoped functions.
*/ if((Pike_compiler->compiler_frame->current_function_number >= 0) && ((id == Pike_compiler->compiler_frame->current_function_number) || ((!ref->inherit_offset) && (ref->identifier_offset == Pike_compiler->new_program-> identifier_references[Pike_compiler->compiler_frame-> current_function_number].identifier_offset))) &&
-
(
!(Pike_compiler->new_program->
+
!(Pike_compiler->new_program->
identifiers[ref->identifier_offset].identifier_flags &
-
IDENTIFIER_VARARGS)))
+
(
IDENTIFIER_VARARGS
|IDENTIFIER_SCOPE_USED
))
&&
+
!(Pike_compiler->compiler_frame->lexical_scope & SCOPE_SCOPE_USED
)
)
{ int n=count_args(args); if(n == Pike_compiler->compiler_frame->num_args) { do_docode(args,0); if(Pike_compiler->compiler_frame->is_inline || (ref->id_flags & ID_INLINE)) { /* Identifier is declared inline/local * or in inlining pass.