From: Alan Modra Date: Wed, 22 Oct 2014 01:41:31 +0000 (+1030) Subject: gengtype.h (obstack_chunk_alloc, [...]): Remove cast. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=19a9ba64e7895c9919b95cd446faa4922ebf284e;p=gcc.git gengtype.h (obstack_chunk_alloc, [...]): Remove cast. gcc/ * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast. * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise. (gcc_obstack_init): Use obstack_specify_allocation in place of _obstack_begin. * genautomata.c (next_sep_el): Cast result of obstack_base to (char *). (regexp_representation): Likewise. * godump.c (go_output_type): Likewise. gcc/java/ * mangle.c (finish_mangling): Cast result of obstack_base to (char *). * typeck.c (build_java_argument_signature): Likewise. (build_java_signature): Likewise. gcc/objc/ * objc-encoding.c (encode_array): Cast result of obstack_base. (encode_type): Likewise. libcpp/ * symtab.c (ht_create): Use obstack_specify_allocation in place of _obstack_begin. * files.c (_cpp_init_files): Likewise. * init.c (cpp_create_reader): Likewise. * identifiers.c (_cpp_init_hashtable): Likewise. From-SVN: r216539 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a6e7ae11261..bc1703b02b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2014-10-22 Alan Modra + + * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast. + * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise. + (gcc_obstack_init): Use obstack_specify_allocation in place of + _obstack_begin. + * genautomata.c (next_sep_el): Cast result of obstack_base to (char *). + (regexp_representation): Likewise. + * godump.c (go_output_type): Likewise. + 2014-10-21 John David Anglin * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2. @@ -5516,10 +5526,10 @@ * sel-sched.c (get_reg_class): Likewise. 2014-09-09 Marcus Shawcroft - Ramana Radhakrishnan + Ramana Radhakrishnan - * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o. - * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC): + * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o. + * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC): Define. (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC. @@ -7253,7 +7263,7 @@ (s390_mainpool_finish): In three places, split out a local rtx "insn" into a local rtx - "set" or "pat" - and a rtx_insn * "insn". Strengthen local "pool_end" from rtx to rtx_code_label * - and split another local rtx "insn" out into rtx "pat" and + and split another local rtx "insn" out into rtx "pat" and rtx_insn * "insn". * config/sh/sh.c (output_branchy_insn): Rather than working directly on operands[9], introduce local rtx_code_label * @@ -13601,7 +13611,7 @@ PR fortran/44054 * diagnostic.c (default_diagnostic_finalizer): Move caret printing - to here ... + to here ... (diagnostic_report_diagnostic): ... from here. * toplev.c (general_init): Move code to c-family. @@ -14589,8 +14599,8 @@ PR other/62168 * configure.ac: Set install_gold_as_default to no for - --enable-gold=no. - * configure: Regenerated. + --enable-gold=no. + * configure: Regenerated. 2014-08-18 Roman Gareev @@ -15771,7 +15781,7 @@ 2014-08-08 Kugan Vivekanandarajah * calls.c (precompute_arguments): Check - promoted_for_signed_and_unsigned_p and set the promoted mode. + promoted_for_signed_and_unsigned_p and set the promoted mode. (promoted_for_signed_and_unsigned_p): New function. (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p and set the promoted mode. @@ -23538,7 +23548,7 @@ (set_fpsr) : Likewise. (get_fpsr) : Likewise. (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR - and UNSPECV_SET_FPSR. + and UNSPECV_SET_FPSR. * doc/extend.texi (AARCH64 Built-in Functions) : Document __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr. __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr. @@ -27963,7 +27973,7 @@ 2014-04-22 Christian Bruel * config/sh/sh.md (mov): Replace movQIHI. - Force immediates to SImode. + Force immediates to SImode. 2014-04-22 Sandra Loosemore @@ -31096,7 +31106,7 @@ PR bootstrap/52466 PR target/46898 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect. - (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed. + (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed. * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support. (simple_return, *simple_return): New patterns * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete. @@ -31712,7 +31722,7 @@ 2014-02-19 Michael Hudson-Doyle - PR target/59799 + PR target/59799 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for passing arrays in registers are the same as for structs, so remove the special case for them. diff --git a/gcc/coretypes.h b/gcc/coretypes.h index c850ff4df0a..f66e0941c76 100644 --- a/gcc/coretypes.h +++ b/gcc/coretypes.h @@ -176,13 +176,13 @@ struct basic_block_def; typedef struct basic_block_def *basic_block; typedef const struct basic_block_def *const_basic_block; -#define obstack_chunk_alloc ((void *(*) (long)) xmalloc) -#define obstack_chunk_free ((void (*) (void *)) free) +#define obstack_chunk_alloc xmalloc +#define obstack_chunk_free free #define OBSTACK_CHUNK_SIZE 0 -#define gcc_obstack_init(OBSTACK) \ - _obstack_begin ((OBSTACK), OBSTACK_CHUNK_SIZE, 0, \ - obstack_chunk_alloc, \ - obstack_chunk_free) +#define gcc_obstack_init(OBSTACK) \ + obstack_specify_allocation ((OBSTACK), OBSTACK_CHUNK_SIZE, 0, \ + obstack_chunk_alloc, \ + obstack_chunk_free) /* enum reg_class is target specific, so it should not appear in target-independent code or interfaces, like the target hook declarations diff --git a/gcc/genautomata.c b/gcc/genautomata.c index 8d0d87d10c2..2218a48d501 100644 --- a/gcc/genautomata.c +++ b/gcc/genautomata.c @@ -1178,7 +1178,7 @@ next_sep_el (const char **pstr, int sep, int par_flag) } } obstack_1grow (&irp, '\0'); - out_str = obstack_base (&irp); + out_str = (char *) obstack_base (&irp); obstack_finish (&irp); *pstr = p; @@ -6873,7 +6873,7 @@ regexp_representation (regexp_t regexp) { form_regexp (regexp); obstack_1grow (&irp, '\0'); - return obstack_base (&irp); + return (char *) obstack_base (&irp); } /* The function frees memory allocated for last formed string @@ -9312,7 +9312,7 @@ initiate_automaton_gen (char **argv) obstack_grow (&irp, STANDARD_OUTPUT_DESCRIPTION_FILE_SUFFIX, strlen (STANDARD_OUTPUT_DESCRIPTION_FILE_SUFFIX) + 1); obstack_1grow (&irp, '\0'); - output_description_file_name = obstack_base (&irp); + output_description_file_name = (char *) obstack_base (&irp); obstack_finish (&irp); } diff --git a/gcc/gengtype.h b/gcc/gengtype.h index 6369001e038..bc3daf0671a 100644 --- a/gcc/gengtype.h +++ b/gcc/gengtype.h @@ -20,8 +20,8 @@ #ifndef GCC_GENGTYPE_H #define GCC_GENGTYPE_H -#define obstack_chunk_alloc ((void *(*) (long)) xmalloc) -#define obstack_chunk_free ((void (*) (void *)) free) +#define obstack_chunk_alloc xmalloc +#define obstack_chunk_free free #define OBSTACK_CHUNK_SIZE 0 /* Sets of accepted source languages like C, C++, Ada... are diff --git a/gcc/godump.c b/gcc/godump.c index 7566f4d3eff..5e4b7fcb0e7 100644 --- a/gcc/godump.c +++ b/gcc/godump.c @@ -920,7 +920,7 @@ go_output_type (struct godump_container *container) ob = &container->type_obstack; obstack_1grow (ob, '\0'); - fputs (obstack_base (ob), go_dump_file); + fputs ((char *) obstack_base (ob), go_dump_file); obstack_free (ob, obstack_base (ob)); } diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 777849f8e9f..a366113ec02 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +2014-10-22 Alan Modra + + * mangle.c (finish_mangling): Cast result of obstack_base to (char *). + * typeck.c (build_java_argument_signature): Likewise. + (build_java_signature): Likewise. + 2014-10-16 Andrew MacLeod * class.c: Adjust include files. @@ -5,7 +11,7 @@ 2014-10-15 Evgeny Stupachenko - PR target/63536 + PR target/63536 * lang.c (java_print_error_function): Add check on NULL function context. diff --git a/gcc/java/mangle.c b/gcc/java/mangle.c index e2aa85560a6..087264e2bba 100644 --- a/gcc/java/mangle.c +++ b/gcc/java/mangle.c @@ -711,7 +711,7 @@ finish_mangling (void) compression_table = NULL_TREE; compression_next = 0; obstack_1grow (mangle_obstack, '\0'); - result = get_identifier (obstack_base (mangle_obstack)); + result = get_identifier ((char *) obstack_base (mangle_obstack)); obstack_free (mangle_obstack, obstack_base (mangle_obstack)); return result; diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c index 574029aac40..2019b2d6624 100644 --- a/gcc/java/typeck.c +++ b/gcc/java/typeck.c @@ -477,7 +477,7 @@ build_java_argument_signature (tree type) } obstack_1grow (&temporary_obstack, '\0'); - sig = get_identifier (obstack_base (&temporary_obstack)); + sig = get_identifier ((char *) obstack_base (&temporary_obstack)); TYPE_ARGUMENT_SIGNATURE (type) = sig; obstack_free (&temporary_obstack, obstack_base (&temporary_obstack)); } @@ -554,7 +554,7 @@ build_java_signature (tree type) obstack_grow0 (&temporary_obstack, IDENTIFIER_POINTER (t), IDENTIFIER_LENGTH (t)); - sig = get_identifier (obstack_base (&temporary_obstack)); + sig = get_identifier ((char *) obstack_base (&temporary_obstack)); obstack_free (&temporary_obstack, obstack_base (&temporary_obstack)); } diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index 50de31ebb7b..dcd74889e88 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -1,3 +1,8 @@ +2014-10-22 Alan Modra + + * objc-encoding.c (encode_array): Cast result of obstack_base. + (encode_type): Likewise. + 2014-10-16 Andrew MacLeod * objc-act.c: Adjust include files. @@ -18,7 +23,7 @@ checking. (INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro. (METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS, - METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING, + METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING, METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking. (METHOD_SEL_ARGS): Use decl_common.size instead of decl_non_common.result. @@ -258,7 +263,7 @@ 2011-10-14 Nicola Pero * objc-map.h: New file. - * objc-map.c: New file. + * objc-map.c: New file. * config-lang.in (gtfiles): Added objc-map.h. * Make-lang.in (OBJC_OBJS): Added objc-map.o. (objc/objc-map.o): New rule. @@ -349,7 +354,7 @@ (objc/objc-next-runtime-abi-01.o): Likewise. (objc/objc-next-runtime-abi-02.o): Likewise. (objc/objc-act.o): Likewise. - + 2011-07-04 Nicola Pero Refactored encoding code into objc-encoding.h and objc-encoding.c. @@ -370,13 +375,13 @@ OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h. * objc-runtime-shared-support.h (objc_v2_encode_property_attr, encode_method_prototype, encode_field_decl, - generating_instance_variables): Moved to objc-encoding.h. + generating_instance_variables): Moved to objc-encoding.h. (objc_build_property_setter_name): Declare. * objc-encoding.c: New. * objc-encoding.h: New. * objc-gnu-runtime-abi-01.c: Include objc-encoding.h. * objc-next-runtime-abi-01.c: Likewise. - * objc-next-runtime-abi-02.c: Likewise. + * objc-next-runtime-abi-02.c: Likewise. * objc-runtime-shared-support.c: Likewise. * Make-lang.in (OBJC_OBJS): Added objc-encoding.o. (objc/objc-lang.o): Reordered dependencies. @@ -393,7 +398,7 @@ * objc-encoding.c (encode_type): Use "%<%T%>" format when printing warning "unknown type %<%T%> found during Objective-C encoding" instead of using gen_type_name. - + 2011-06-05 Nicola Pero * objc-act.c (receiver_is_class_object): Expanded comment. @@ -1535,11 +1540,11 @@ 2006-03-10 Fariborz Jahanian - Radar 4407151 + Radar 4407151 * objc/objc-act.c (objc_is_class_name): template parameter is not - an objective class name. - (objc_generate_cxx_cdtors): Check for the null - objc_implementation_context. + an objective class name. + (objc_generate_cxx_cdtors): Check for the null + objc_implementation_context. 2010-10-18 Nicola Pero @@ -1552,7 +1557,7 @@ 2005-10-07 Fariborz Jahanian - Radar 4204796 + Radar 4204796 * objc-act.c (objc_build_volatilized_type): Build 'volatilzed' types with proper attribute set and correctly. (objc_volatilize_decl): Remove unneeded code. @@ -1650,7 +1655,7 @@ * Make-lang.in (cc1obj-dummy): Remove. (cc1obj-checksum): Change to run checksum over object files - and options only. + and options only. 2010-10-07 Nicola Pero @@ -1695,7 +1700,7 @@ 2006-04-12 Fariborz Jahanian - Radar 4507230 + Radar 4507230 * objc-act.c (objc_type_valid_for_messaging): New routine to check for valid objc object types. (objc_finish_foreach_loop): Check for invalid objc objects in @@ -1707,7 +1712,7 @@ 2005-10-17 Fariborz Jahanian - Radar 4290840 + Radar 4290840 * objc-act.c (objc_start_method_definition): Check for error_mark_node for the selector name and make a quick exit. @@ -1720,17 +1725,17 @@ merge from FSF 'apple/trunk' branch. 2006-01-30 Fariborz Jahanian - Radar 4386773 - * objc/objc-act.c (objc_set_method_opt): New function. - (objc_start_protocol, objc_finish_interface): Reset - objc_method_optional_flag flag. - (objc_add_method_declaration): Pass on the new - flag to objc_add_method. - (objc_add_method): Add optional methods to new chain in - the protocol class. - * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS, - CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol - class's optional method chains. + Radar 4386773 + * objc/objc-act.c (objc_set_method_opt): New function. + (objc_start_protocol, objc_finish_interface): Reset + objc_method_optional_flag flag. + (objc_add_method_declaration): Pass on the new + flag to objc_add_method. + (objc_add_method): Add optional methods to new chain in + the protocol class. + * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS) + (CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol + class's optional method chains. 2010-09-30 Nicola Pero @@ -1846,7 +1851,7 @@ 2005-10-10 Fariborz Jahanian - Radar 4301047 + Radar 4301047 * objc-act.c (encode_type): Remove the hack. @@ -1901,7 +1906,7 @@ 2006-03-09 Fariborz Jahanian - Radar 4457381 + Radar 4457381 * objc/objc-act.c (objc_finish_message_expr): Look for message in @class's protocol list. @@ -2463,8 +2468,8 @@ 2008-05-12 Tomas Bily - * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr): - Use CONVERT_EXPR_P. + * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr): + Use CONVERT_EXPR_P. 2008-04-23 Paolo Bonzini diff --git a/gcc/objc/objc-encoding.c b/gcc/objc/objc-encoding.c index 70c2a6858e6..36b6608d1d8 100644 --- a/gcc/objc/objc-encoding.c +++ b/gcc/objc/objc-encoding.c @@ -380,7 +380,7 @@ encode_array (tree type, int curtype, int format) identifier. */ { - char *enc = obstack_base (&util_obstack) + curtype; + char *enc = (char *) obstack_base (&util_obstack) + curtype; if (memchr (enc, '=', obstack_object_size (&util_obstack) - curtype) == NULL) { @@ -729,7 +729,7 @@ encode_type (tree type, int curtype, int format) to be rearranged for compatibility with gcc-3.3. */ if (code == POINTER_TYPE && obstack_object_size (&util_obstack) >= 3) { - char *enc = obstack_base (&util_obstack) + curtype; + char *enc = (char *) obstack_base (&util_obstack) + curtype; /* Rewrite "in const" from "nr" to "rn". */ if (curtype >= 1 && !strncmp (enc - 1, "nr", 2)) diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index eeef815ca52..9f69feb777c 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,11 @@ +2014-10-22 Alan Modra + + * symtab.c (ht_create): Use obstack_specify_allocation in place of + _obstack_begin. + * files.c (_cpp_init_files): Likewise. + * init.c (cpp_create_reader): Likewise. + * identifiers.c (_cpp_init_hashtable): Likewise. + 2014-10-14 Manuel López-Ibáñez * include/line-map.h (linemap_location_from_macro_expansion_p): @@ -779,7 +787,7 @@ * lex.c (lex_raw_string): Change C++ style comments into C style comments. - (lex_string): Likewise. + (lex_string): Likewise. 2012-04-27 Ollie Wild @@ -955,15 +963,15 @@ PR bootstrap/50760 * include/line-map.h (struct linemap_stats): Change the type of - the members from size_t to long. + the members from size_t to long. * macro.c (macro_arg_token_iter_init): Unconditionally initialize - iter->location_ptr. + iter->location_ptr. 2011-10-17 Dodji Seketeli * line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a - variable without using it if ENABLE_CHECKING is not defined. Mark - the LOCATION parameter as being unused. + variable without using it if ENABLE_CHECKING is not defined. Mark + the LOCATION parameter as being unused. 2011-10-15 Tom Tromey Dodji Seketeli @@ -1078,7 +1086,7 @@ member. (MAX_SOURCE_LOCATION): New constant. (struct line_map_ordinary, struct line_map_macro): New structs. - (struct line_map): Turn this into a union of the two above. Add + (struct line_map): Turn this into a union of the two above. Add comments. (struct maps_info): New struct. (struct line_maps): Two new fields. @@ -1333,7 +1341,7 @@ * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5. 2011-11-04 Eric Botcazou - Jakub Jelinek + Jakub Jelinek PR preprocessor/39213 * directives.c (end_directive): Call _cpp_remove_overlay for deferred @@ -2086,7 +2094,7 @@ * directives-only.c (_cpp_preprocess_dir_only): Likewise. * internal.h (CPP_INCREMENT_LINE): Likewise. * lex.c (_cpp_skip_block_comment): Use source_location. - + 2008-07-14 Ben Elliston * include/cpplib.h (NODE_CONDITIONAL): New. @@ -2352,7 +2360,7 @@ PR preprocessor/30363 * traditional.c (replace_args_and_push): Add local variable - cxtquote, calculate the replacement text size assuming a + cxtquote, calculate the replacement text size assuming a worst case of every input character quoted with backslash, and properly handle output quoting of quote characters in actual arguments used in function-like macros. @@ -2506,8 +2514,8 @@ 2007-06-09 Vladimir Prus * files.c (open_file): Account for the - fact that on windows, opening a directory gives - EACCES. + fact that on windows, opening a directory gives + EACCES. 2007-06-05 Joerg Wunsch @@ -2559,7 +2567,7 @@ 2007-05-14 Janis Johnson - * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic. + * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic. PR c/31924 * expr.c (interpret_float_suffix): Check for invalid suffix. diff --git a/libcpp/files.c b/libcpp/files.c index e464259e458..3984821db52 100644 --- a/libcpp/files.c +++ b/libcpp/files.c @@ -1282,9 +1282,8 @@ _cpp_init_files (cpp_reader *pfile) pfile->nonexistent_file_hash = htab_create_alloc (127, htab_hash_string, nonexistent_file_hash_eq, NULL, xcalloc, free); - _obstack_begin (&pfile->nonexistent_file_ob, 0, 0, - (void *(*) (long)) xmalloc, - (void (*) (void *)) free); + obstack_specify_allocation (&pfile->nonexistent_file_ob, 0, 0, + xmalloc, free); } /* Finalize everything in this source file. */ diff --git a/libcpp/identifiers.c b/libcpp/identifiers.c index 8fba8c004ec..35d19067495 100644 --- a/libcpp/identifiers.c +++ b/libcpp/identifiers.c @@ -54,9 +54,7 @@ _cpp_init_hashtable (cpp_reader *pfile, cpp_hash_table *table) table = ht_create (13); /* 8K (=2^13) entries. */ table->alloc_node = alloc_node; - _obstack_begin (&pfile->hash_ob, 0, 0, - (void *(*) (long)) xmalloc, - (void (*) (void *)) free); + obstack_specify_allocation (&pfile->hash_ob, 0, 0, xmalloc, free); } table->pfile = pfile; diff --git a/libcpp/init.c b/libcpp/init.c index 1121962148b..8e1a2f6b282 100644 --- a/libcpp/init.c +++ b/libcpp/init.c @@ -262,9 +262,7 @@ cpp_create_reader (enum c_lang lang, cpp_hash_table *table, _cpp_expand_op_stack (pfile); /* Initialize the buffer obstack. */ - _obstack_begin (&pfile->buffer_ob, 0, 0, - (void *(*) (long)) xmalloc, - (void (*) (void *)) free); + obstack_specify_allocation (&pfile->buffer_ob, 0, 0, xmalloc, free); _cpp_init_files (pfile); diff --git a/libcpp/symtab.c b/libcpp/symtab.c index 73c421e1742..11070890da3 100644 --- a/libcpp/symtab.c +++ b/libcpp/symtab.c @@ -61,9 +61,7 @@ ht_create (unsigned int order) table = XCNEW (cpp_hash_table); /* Strings need no alignment. */ - _obstack_begin (&table->stack, 0, 0, - (void *(*) (long)) xmalloc, - (void (*) (void *)) free); + obstack_specify_allocation (&table->stack, 0, 0, xmalloc, free); obstack_alignment_mask (&table->stack) = 0;