F diff --git a/src/misc/gcc_string.c b/src/misc/gcc_string.c --- a/src/misc/gcc_string.c +++ b/src/misc/gcc_string.creturn ret;}+ void gmemmove(void *where_to,void *from_where,size_t how_many_bytes)+ {+ size_t i;+ for(i=0;i<how_many_bytes;++i)+ ((char*)where_to)[i]=((char *)from_where)[i];+ }#endifF diff --git a/src/misc/gcc_string.h b/src/misc/gcc_string.h --- a/src/misc/gcc_string.h +++ b/src/misc/gcc_string.hchar *gstr_append_and_consume(const char *lead,const char *follower);char* gstr_dup(const char *first,const char *last,size_t limit);char* gstr_to_heap(const char *literal);+ void gmemmove(void *where_to,void *from_where,size_t how_many_bytes);#endifF diff --git a/src/semantics/program/translation_unit.c b/src/semantics/program/translation_unit.c --- a/src/semantics/program/translation_unit.c +++ b/src/semantics/program/translation_unit.c{struct token *hold_token;struct token *hold_hold_token;+ struct token *hold_hold_hold_token;hold_token=token_ptr_get_token_under_pointer_inner(token_pointer);if(hold_token->type==KW_STRING){- while(token_ptr_check_next_normal_token(token_pointer)->type==KW_STRING)+ while( (hold_hold_hold_token=token_ptr_check_next_normal_token(token_pointer))->type==KW_STRING+ || hold_hold_hold_token->type==PKW_FILE_MACRO+ ){hold_hold_token=hold_token;hold_token=token_ptr_get_token_under_pointer_inner(token_pointer);+ hold_token=get_token_from_two_adjacent_strings((struct token_string*)hold_hold_token,(struct token_string*)hold_token);}}F diff --git a/src/semantics/value/constant.c b/src/semantics/value/constant.c --- a/src/semantics/value/constant.c +++ b/src/semantics/value/constant.c/*TODO*/struct Constant* concatenate_string_literals(struct Constant *first,struct Constant *second){+ size_t first_size;+ size_t second_size;+ char *hold_new;+ first_size=get_type_size(first->type);+ second_size=get_type_size(second->type);- return first;+ hold_new=wonky_malloc(first_size+second_size);++ gmemmove(hold_new,first->value,first_size);+ gmemmove(hold_new+first_size,second->value,second_size);++ return extract_literal_string(hold_new,first_size+second_size);}struct Constant* get_long_long_int_constant(long long number)