comparison src/parse.y @ 6657:86354a8cd6a7

[project @ 2007-05-23 04:35:04 by jwe]
author jwe
date Wed, 23 May 2007 04:35:04 +0000
parents 6a7fc4105bcc
children c05fbb1b7e1f
comparison
equal deleted inserted replaced
6656:c92e679d9cc5 6657:86354a8cd6a7
1780 curr_sym_tab = symtab_context.top (); 1780 curr_sym_tab = symtab_context.top ();
1781 1781
1782 symtab_context.pop (); 1782 symtab_context.pop ();
1783 1783
1784 if (stmt && stmt->is_expression ()) 1784 if (stmt && stmt->is_expression ())
1785 { 1785 stmt->set_print_flag (false);
1786 symbol_record *sr = fcn_sym_tab->lookup ("__retval__", true);
1787
1788 tree_expression *e = stmt->expression ();
1789
1790 tree_identifier *id = new tree_identifier (sr);
1791
1792 tree_simple_assignment *asn = new tree_simple_assignment (id, e);
1793
1794 stmt->set_expression (asn);
1795
1796 stmt->set_print_flag (false);
1797
1798 // FIXME -- would like to delete old_stmt here or
1799 // replace expression inside it with the new expression we just
1800 // created so we don't have to create a new statement at all.
1801
1802 id = new tree_identifier (sr);
1803 tree_decl_elt *elt = new tree_decl_elt (id);
1804
1805 ret_list = new tree_parameter_list (elt);
1806 }
1807 1786
1808 tree_statement_list *body = new tree_statement_list (stmt); 1787 tree_statement_list *body = new tree_statement_list (stmt);
1809 1788
1810 body->mark_as_function_body (); 1789 body->mark_as_function_body ();
1811 1790