index e4ea3833027a6d27cd502cf3be21e98191cfc4b7..cb8eeef564ba2925b7eb5701002253f79cdd47d4 100644 (file)
#include <gc.h>
#include "../../oberon-internals.h"
+#include "../../generator.h"
#include "generator-jvm.h"
#include "generator-jvm-abi.h"
#include "generator-jvm-asm.h"
struct gen_class * c;
char * name = var -> name;
gen_type_t * t = var -> type -> gen_type;
+
+ assert(name);
+ if(t == NULL)
+ {
+ gen_error("uninitialized type class %i", var -> type -> class);
+ }
+
switch(var -> class)
{
case OBERON_CLASS_VAR_PARAM:
case OBERON_CLASS_VAR:
jvm_generate_var(v);
break;
+ case OBERON_CLASS_CONST:
+ case OBERON_CLASS_TYPE:
case OBERON_CLASS_PROC:
break;
default:
- gen_error("jvm_generate_local_initialization: wat");
+ gen_error("jvm_generate_local_initialization: wat class %i", x -> class);
break;
}
}
case OBERON_CLASS_VAR:
jvm_generate_var_initialization(p, v);
break;
+ case OBERON_CLASS_CONST:
+ case OBERON_CLASS_TYPE:
case OBERON_CLASS_PROC:
break;
default:
- gen_error("jvm_generate_local_initialization: wat");
+ gen_error("jvm_generate_local_initialization: wat class %i", x -> class);
break;
}
m = ctx -> mod -> gen_mod;
p = m -> class -> p;
+ oberon_generate_trap(ctx, -4);
jvm_generate_function_end(p);
}