mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-08 03:24:19 +00:00
Fix #location for anonymous procedures
This commit is contained in:
@@ -200,9 +200,10 @@ proc make_source_code_location(file: string, line, column: i64, procedure: strin
|
||||
const DEFAULT_ALIGNMENT = align_of([vector 4]f32);
|
||||
|
||||
|
||||
proc __check_context() {
|
||||
var c = &__context;
|
||||
|
||||
proc __init_context(c: ^Context) {
|
||||
if c == nil {
|
||||
return;
|
||||
}
|
||||
if c.allocator.procedure == nil {
|
||||
c.allocator = default_allocator();
|
||||
}
|
||||
@@ -211,6 +212,11 @@ proc __check_context() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
proc __check_context() {
|
||||
__init_context(&__context);
|
||||
}
|
||||
|
||||
proc alloc(size: int, alignment: int = DEFAULT_ALIGNMENT) -> rawptr #inline {
|
||||
__check_context();
|
||||
var a = context.allocator;
|
||||
|
||||
@@ -3677,7 +3677,7 @@ irValue *ir_build_builtin_proc(irProcedure *proc, AstNode *expr, TypeAndValue tv
|
||||
Entity *e = entity_of_ident(proc->module->info, ident);
|
||||
GB_ASSERT(e != NULL);
|
||||
|
||||
if (e->parent_proc_decl != NULL) {
|
||||
if (e->parent_proc_decl != NULL && e->parent_proc_decl->entity_count > 0) {
|
||||
procedure = e->parent_proc_decl->entities[0]->token.string;
|
||||
} else {
|
||||
procedure = str_lit("");
|
||||
@@ -4665,7 +4665,10 @@ irValue *ir_build_expr(irProcedure *proc, AstNode *expr) {
|
||||
TypeTuple *pt = &type->params->Tuple;
|
||||
|
||||
if (arg_count < type->param_count) {
|
||||
String procedure = proc->entity->token.string;
|
||||
String procedure = {};
|
||||
if (proc->entity != NULL) {
|
||||
procedure = proc->entity->token.string;
|
||||
}
|
||||
TokenPos pos = ast_node_token(ce->proc).pos;
|
||||
|
||||
isize end = type->param_count;
|
||||
|
||||
Reference in New Issue
Block a user