Skip to content

Commit 5fd35fc

Browse files
committed
Reduced likelihood of duplicate function definitions in sub-objects
1 parent 280c716 commit 5fd35fc

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

Changelog.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
Version 6.5.3
22
- Improved error message for objects that are not found
3+
- Reduced likelihood of duplicate function definitions in sub-objects
34

45
Version 6.5.2
56
- Really added BASIC date/time functions (inadvertently not checked in)

backends/asm/outasm.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,8 @@ IdentifierLocalName(Function *func, const char *name)
231231
Module *P = func->module;
232232
if (IsTopLevel(P)) {
233233
snprintf(temp, sizeof(temp)-1, "_%s_", cleanname(func->name));
234+
} else if (P->superclass && !IsTopLevel(P->superclass)) {
235+
snprintf(temp, sizeof(temp)-1, "_%s_%s_%s_", P->superclass->classname, P->classname, cleanname(func->name));
234236
} else {
235237
snprintf(temp, sizeof(temp)-1, "_%s_%s_", P->classname, cleanname(func->name));
236238
}
@@ -245,6 +247,8 @@ IdentifierModuleName(Module *P, const char *name)
245247
if (IsTopLevel(P)) {
246248
// avoid conflict with built-in assembler names by prepending "_"
247249
snprintf(temp, sizeof(temp)-1, "_%s", cleanname(name));
250+
} else if (P->superclass && !IsTopLevel(P->superclass)) {
251+
snprintf(temp, sizeof(temp)-1, "_%s_%s_%s_", P->superclass->classname, P->classname, cleanname(name));
248252
} else {
249253
snprintf(temp, sizeof(temp)-1, "_%s_%s", P->classname, cleanname(name));
250254
}

0 commit comments

Comments
 (0)