pike.git
/
src
/
program.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/program.c:5652:
return; } /* argument must be a shared string */ int define_variable(struct pike_string *name, struct pike_type *type, INT32 flags) { int n, run_time_type; int no_this = 0;
-
+
#ifdef PIKE_DEBUG if(name != debug_findstring(name)) Pike_fatal("define_variable on nonshared string.\n"); #endif #ifdef PROGRAM_BUILD_DEBUG { struct compilation *c = THIS_COMPILATION; struct pike_string *d = describe_type (type); fprintf (stderr, "%.*sdefining variable (pass=%d): %s ",
pike.git/src/program.c:5786:
} else { run_time_type=compile_type_to_runtime_type(type); switch(run_time_type) { case T_OBJECT: /* Make place for the object subtype. */ case T_FUNCTION: no_this = 1; /* FALL_THROUGH */
-
case T_INT:
+
case T_PROGRAM: run_time_type = T_MIXED;
-
+
break;
+
case T_INT:
+
run_time_type = T_MIXED;
+
INT_TYPE amin = CAR_TO_INT(type), amax = CDR_TO_INT(type);
+
if( amin > MIN_INT32 && amax < MAX_INT32 )
+
run_time_type = T_INT;
} } n=low_define_variable(name,type,flags, low_add_storage(sizeof_variable(run_time_type), alignof_variable(run_time_type),0), run_time_type); if( no_this ) ID_FROM_INT(Pike_compiler->new_program, n)->identifier_flags |= IDENTIFIER_NO_THIS_REF;