static entity_t **inner_functions;
static ir_node *ijmp_list;
static bool constant_folding;
-static symbol_t *sym_C;
extern bool have_const_functions;
set_method_variadicity(irtype, variadicity_variadic);
}
-#if 0
- /* TODO: revive this with linkage stuff */
unsigned cc = get_method_calling_convention(irtype);
switch (function_type->calling_convention) {
case CC_DEFAULT: /* unspecified calling convention, equal to one of the other, typically cdecl */
/* Hmm, leave default, not accepted by the parser yet. */
break;
}
-#endif
return irtype;
}
/* force main to C linkage */
type_t *type = entity->declaration.type;
assert(is_type_function(type));
- if (type->function.linkage != NULL && type->function.linkage != sym_C) {
- errorf(&entity->base.source_position,
- "main must have \"C\" linkage");
- }
-
- if (type->function.linkage == NULL || type->function.linkage != sym_C) {
+ if (type->function.linkage != LINKAGE_C) {
type_t *new_type = duplicate_type(type);
- new_type->function.linkage = sym_C;
+ new_type->function.linkage = LINKAGE_C;
type = typehash_insert(new_type);
if (type != new_type) {
rts_idents[i] = new_id_from_str(rts_data[i].name);
}
- sym_C = symbol_table_insert("C");
-
entitymap_init(&entitymap);
}