{
slang_function_kind kind;
slang_variable header; /**< The function's name and return type */
- slang_variable_scope *parameters; /**< array [param_count] */
- unsigned int param_count;
+ slang_variable_scope *parameters; /**< formal parameters AND local vars */
+ unsigned int param_count; /**< number of formal params (no locals) */
slang_operation *body; /**< The instruction tree */
unsigned int address; /**< Address of this func in memory */
slang_fixup_table fixups; /**< Mem locations which need func's address */
+ slang_atom end_label; /**< The end-of-function label */
} slang_function;
extern int slang_function_construct(slang_function *);
extern void
slang_function_scope_destruct(slang_function_scope *);
+extern GLboolean
+_slang_function_has_return_value(const slang_function *fun);
+
extern int
slang_function_scope_find_by_name(slang_function_scope *, slang_atom, int);