pike.git
/
src
/
program.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/program.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: program.c,v 1.
590
2005/05/
26
17
:
04
:
38
mast Exp $
+
|| $Id: program.c,v 1.
591
2005/05/
30
12
:
36
:
08
mast Exp $
*/ #include "global.h" #include "program.h" #include "object.h" #include "dynamic_buffer.h" #include "pike_types.h" #include "stralloc.h" #include "las.h" #include "lex.h"
pike.git/src/program.c:1556:
resolve_cache=dmalloc_touch(struct mapping *, allocate_mapping(10)); mapping_string_insert(resolve_cache,ident,Pike_sp-1); if(!(SAFE_IS_ZERO(Pike_sp-1) && Pike_sp[-1].subtype==1)) { ret=mkconstantsvaluenode(Pike_sp-1); } } pop_stack(); }
-
else
+
else
{
if(Pike_compiler->compiler_pass==2) { if (throw_value.type == T_STRING) { my_yyerror("%S", throw_value.u.string); free_svalue(&throw_value); throw_value.type = T_INT; } else { handle_compile_exception ("Error resolving %S.", ident); } }
-
+
else {
+
/* FIXME: Error goes to /dev/null. Now we get a warning at
+
* least in rtldebug mode, but this borken, borken, boRKen. :P */
+
struct svalue thrown;
+
move_svalue (&thrown, &throw_value);
+
throw_value.type = T_INT;
+
#ifdef PIKE_DEBUG
+
{
+
struct pike_string *msg = format_exception_for_error_msg (&thrown);
+
if (msg) {
+
yywarning ("Ignoring resolv() exception in pass %d:",
+
Pike_compiler->compiler_pass);
+
yywarning ("%S", msg);
+
free_string (msg);
}
-
+
else
+
yywarning ("Ignoring resolv() exception in pass %d",
+
Pike_compiler->compiler_pass);
+
}
+
#endif
+
free_svalue (&thrown);
+
}
+
}
+
}
END_CYCLIC(); return ret; } return 0; } /*! @decl constant this *!