X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes.h;h=df267a05539e9bc948fecc87f7afad2bf5098c14;hp=0c0ca497ea023647e07abee61b802886f13e06d5;hb=b0fdc1f1b8ae5ec4d3f47741b523fa6a60ae32bb;hpb=9bcb1df0786a8193d65949c857baaba2f4296e84 diff --git a/src/types.h b/src/types.h index 0c0ca49..df267a0 100644 --- a/src/types.h +++ b/src/types.h @@ -33,15 +33,16 @@ #include "types/decl_arg.h" #include "types/decl_abi.h" #include "types/decl.h" +#include "types/decl_extvar.h" #include "types/decl_struct.h" #include "types/decl_union.h" #include "types/impl_type.h" #include "types/impl_var.h" #include "types/impl_def_val.h" -#include "types/const_type.h" #include "types/const.h" #include "types/impl_arg.h" #include "types/impl_func.h" +#include "types/number.h" #include "types/num_exp.h" #include "types/decl_enum_item.h" #include "types/decl_enum.h" @@ -54,12 +55,17 @@ #include "types/set_exp.h" #include "types/set_stmt.h" #include "types/return_stmt.h" +#include "types/return_exp.h" #include "types/free_stmt.h" #include "types/impl.h" #include "types/decl_file.h" #include "types/free_exp.h" #include "types/free_stmt.h" +#include "types/assert_stmt.h" #include "types/layout.h" +#include "types/cpp_exp.h" +#include "types/cpp_macro_call.h" +#include "types/cpp_macro_decl.h" static inline impl_val *deref_impl_val(impl_val *ret_val, struct psi_decl_var *var) { unsigned i; @@ -67,7 +73,7 @@ static inline impl_val *deref_impl_val(impl_val *ret_val, struct psi_decl_var *v ZEND_ASSERT(!var->arg || var->arg->var != var); #if 0 fprintf(stderr, "deref: %s pl=%u:%u as=%u:%u %p\n", - var->name, var->pointer_level, var->arg->var->pointer_level, + var->name->val, var->pointer_level, var->arg->var->pointer_level, var->array_size, var->arg->var->array_size, ret_val); #endif for (i = 0; i < var->pointer_level; ++i) { @@ -86,14 +92,15 @@ static inline impl_val *enref_impl_val(void *ptr, struct psi_decl_var *var) { ZEND_ASSERT(var->arg->var == var); #if 0 fprintf(stderr, "enref: %s pl=%u:%u as=%u:%u\n", - var->name, var->pointer_level, var->arg->var->pointer_level, + var->name->val, var->pointer_level, var->arg->var->pointer_level, var->array_size, var->arg->var->array_size); #endif if (!var->pointer_level ){//&& real_decl_type(var->arg->type)->type != PSI_T_STRUCT) { return ptr; } - val = val_ptr = calloc(var->pointer_level + 1, sizeof(void *)); + val = calloc(var->pointer_level + 1, sizeof(void *)); + val_ptr = val; for (i = !var->arg->var->array_size; i < var->pointer_level; ++i) { #if 0 fprintf(stderr, "++\n"); @@ -108,7 +115,7 @@ static inline impl_val *enref_impl_val(void *ptr, struct psi_decl_var *var) { static inline impl_val *struct_member_ref(struct psi_decl_arg *set_arg, impl_val *struct_ptr, impl_val **to_free) { void *ptr = (char *) struct_ptr + set_arg->layout->pos; #if 0 - fprintf(stderr, "struct member %s: %p\n", set_arg->var->name, ptr); + fprintf(stderr, "struct member %s: %p\n", set_arg->var->name->val, ptr); #endif return ptr; }