static tree set_save_expr_context (tree *tp, int *walk_subtrees, void *data) { if (TREE_CODE (*tp) == SAVE_EXPR && !SAVE_EXPR_CONTEXT (*tp)) SAVE_EXPR_CONTEXT (*tp) = (tree) data; /* Do not walk back into the SAVE_EXPR_CONTEXT; that will cause circularity. */ else if (DECL_P (*tp)) *walk_subtrees = 0; return NULL; }
tree get_pending_sizes () { tree chain = pending_sizes; tree t; /* Put each SAVE_EXPR into the current function. */ for (t = chain; t; t = TREE_CHAIN (t)) SAVE_EXPR_CONTEXT (TREE_VALUE (t)) = current_function_decl; pending_sizes = 0; return chain; }