Merge pull request #1672 from spiro-trikaliotis/pr-1647
ca65: .constructor after .export fails
This commit is contained in:
commit
bfa9e77523
1 changed files with 12 additions and 12 deletions
|
@ -546,6 +546,18 @@ void SymConDes (SymEntry* S, unsigned char AddrSize, unsigned Type, unsigned Pri
|
|||
return;
|
||||
}
|
||||
|
||||
/* If the symbol is already defined, check symbol size against the
|
||||
** exported size.
|
||||
*/
|
||||
if (S->Flags & SF_DEFINED) {
|
||||
if (AddrSize == ADDR_SIZE_DEFAULT) {
|
||||
/* Use the real size of the symbol */
|
||||
AddrSize = S->AddrSize;
|
||||
} else if (S->AddrSize != AddrSize) {
|
||||
Error ("Address size mismatch for symbol '%m%p'", GetSymName (S));
|
||||
}
|
||||
}
|
||||
|
||||
/* If the symbol was already marked as an export or global, check if
|
||||
** this was done specifiying the same address size. In case of a global
|
||||
** declaration, silently remove the global flag.
|
||||
|
@ -558,18 +570,6 @@ void SymConDes (SymEntry* S, unsigned char AddrSize, unsigned Type, unsigned Pri
|
|||
}
|
||||
S->ExportSize = AddrSize;
|
||||
|
||||
/* If the symbol is already defined, check symbol size against the
|
||||
** exported size.
|
||||
*/
|
||||
if (S->Flags & SF_DEFINED) {
|
||||
if (S->ExportSize == ADDR_SIZE_DEFAULT) {
|
||||
/* Use the real size of the symbol */
|
||||
S->ExportSize = S->AddrSize;
|
||||
} else if (S->AddrSize != S->ExportSize) {
|
||||
Error ("Address size mismatch for symbol '%m%p'", GetSymName (S));
|
||||
}
|
||||
}
|
||||
|
||||
/* If the symbol already was declared as a condes of this type,
|
||||
** check if the new priority value is the same as the old one.
|
||||
*/
|
||||
|
|
Loading…
Add table
Reference in a new issue