F diff --git a/src/semantics/identifiers/denoted.c b/src/semantics/identifiers/denoted.c
--- a/src/semantics/identifiers/denoted.c
+++ b/src/semantics/identifiers/denoted.c
return ret;
}
- struct Denoted* get_denoted_function(struct token *id,struct Type *return_type,enum Function_Specifier fs)
+ struct Denoted* get_denoted_function(struct token *id,struct Type *type,enum Function_Specifier fs)
{
struct Denoted_Function *ret;
ret=malloc(sizeof(struct Denoted_Function));
ret->denotation=DT_Function;
ret->linkage=LINKAGE_NONE;
ret->id=id;
- ret->type=return_type;
+ ret->type=type;
+ ret->location=NULL;
ret->function_specifier=fs;
ret->body=NULL;
ret->linkage=LINKAGE_NONE;
ret->id=id;
- ret->object=malloc(sizeof(struct Object));
- ret->object->type=type;
- ret->object->location=NULL;
- ret->object->storage_class=sc;
+ ret->object=get_object(type,sc);
ret->initializer=initializer;
F diff --git a/src/semantics/identifiers/denoted.h b/src/semantics/identifiers/denoted.h
--- a/src/semantics/identifiers/denoted.h
+++ b/src/semantics/identifiers/denoted.h
enum Linkage_Type linkage;
struct token *id;
struct Type *type;
-
+ struct Location *location;
enum Function_Specifier function_specifier;
struct AST_Compound_Statement *body;
struct Denoted_Base* get_denoted_base(struct Denotation_Prototype *prototype);
struct Denoted* get_denoted_error(struct Denoted *error);
- struct Denoted* get_denoted_function(struct token *id,struct Type *return_type,enum Function_Specifier fs);
+ struct Denoted* get_denoted_function(struct token *id,struct Type *type,enum Function_Specifier fs);
struct Denoted* get_denoted_object(struct token *id, enum Storage_Class_Specifier sc,struct Type *type,struct AST *initializer);
struct Denoted* get_denoted_typedef(struct Denoted_Base *base);
struct Denoted* get_denoted_enum_const_expr(struct token *id,struct Enum *parent,struct AST* expression,struct Translation_Data *translation_data);