Mercurial > hg > CbC > CbC_gcc
comparison gcc/c-parser.c @ 6:983001f85155
destory goto with environment...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 20 Aug 2009 13:38:58 +0900 |
parents | 0b3575e68bac |
children | 7ff9aed93de8 |
comparison
equal
deleted
inserted
replaced
5:a4c410aa4714 | 6:983001f85155 |
---|---|
3768 ebp = build_component_ref (build_indirect_ref (loc,env_struct, "CbCenv->sp"), get_identifier("sp")); | 3768 ebp = build_component_ref (build_indirect_ref (loc,env_struct, "CbCenv->sp"), get_identifier("sp")); |
3769 argsp = build_component_ref (build_indirect_ref (loc, env_struct, "CbCenv->sp"), get_identifier("argsp")); | 3769 argsp = build_component_ref (build_indirect_ref (loc, env_struct, "CbCenv->sp"), get_identifier("argsp")); |
3770 //ebp = chainon (ebp, argsp); | 3770 //ebp = chainon (ebp, argsp); |
3771 tmp = build_tree_list (ebp, argsp); | 3771 tmp = build_tree_list (ebp, argsp); |
3772 | 3772 |
3773 TREE_OPERAND (expr.value, 2) = tmp; | 3773 // TREE_OPERAND (expr.value, 2) = tmp; |
3774 | 3774 |
3775 | 3775 |
3776 /* | 3776 /* |
3777 c_parser_consume_token (parser); | 3777 c_parser_consume_token (parser); |
3778 expr = default_function_array_conversion (expr); | 3778 expr = default_function_array_conversion (expr); |
3783 expr.original_code = ERROR_MARK; | 3783 expr.original_code = ERROR_MARK; |
3784 */ | 3784 */ |
3785 | 3785 |
3786 | 3786 |
3787 } | 3787 } |
3788 else | 3788 // else |
3789 TREE_OPERAND (expr.value, 2) = NULL_TREE; | 3789 // TREE_OPERAND (expr.value, 2) = NULL_TREE; |
3790 CbC_IS_CbC_GOTO (expr.value) = 1; | 3790 CbC_IS_CbC_GOTO (expr.value) = 1; |
3791 CALL_EXPR_TAILCALL (expr.value) = 1; | 3791 CALL_EXPR_TAILCALL (expr.value) = 1; |
3792 add_stmt(expr.value); | 3792 add_stmt(expr.value); |
3793 CbC_HAVE_CbC_GOTO (current_function_decl) = 1; | 3793 CbC_HAVE_CbC_GOTO (current_function_decl) = 1; |
3794 // should be match with function type? | 3794 // should be match with function type? |
5750 add_stmt(decl); | 5750 add_stmt(decl); |
5751 | 5751 |
5752 //tree hoge = build_int_cst(NULL_TREE,55); | 5752 //tree hoge = build_int_cst(NULL_TREE,55); |
5753 if (!cbc_env) | 5753 if (!cbc_env) |
5754 { | 5754 { |
5755 tree field,fields,env_struct; | 5755 tree field,fields=NULL_TREE,env_struct; |
5756 /* build type_node of environment structure */ | 5756 /* build type_node of environment structure */ |
5757 env_struct = start_struct (RECORD_TYPE, NULL_TREE); | 5757 env_struct = start_struct (RECORD_TYPE, NULL_TREE); |
5758 field = build_decl (FIELD_DECL, get_identifier("sp"), ptr_type_node); | 5758 field = build_decl (FIELD_DECL, get_identifier("sp"), ptr_type_node); |
5759 fields = chainon (field, fields); | 5759 fields = chainon (field, fields); |
5760 field = build_decl (FIELD_DECL, get_identifier("argsp"), ptr_type_node); | 5760 field = build_decl (FIELD_DECL, get_identifier("argsp"), ptr_type_node); |