mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-11 18:33:14 +01:00
Resolve mismatch between object.di and typinfo.cpp on 64bit non-x86 systems.
On Windows x86_64, class TypeInfo_Struct contains 2 additional fields (m_arg1/m_arg2) which are used for the X86_64 System V ABI varargs implementation. They are not present on any other os. This commit changes an assertion which did not check for the os and therefore broke on 64bit non-86 systems like ppc64.
This commit is contained in:
@@ -716,8 +716,11 @@ void TypeInfoStructDeclaration::llvmDefine()
|
||||
|
||||
ClassDeclaration* tscd = Type::typeinfostruct;
|
||||
|
||||
assert((!global.params.is64bit && tscd->fields.dim == 11) ||
|
||||
(global.params.is64bit && tscd->fields.dim == 13));
|
||||
// On Windows x86_64, class TypeInfo_Struct contains 2 additional fields
|
||||
// (m_arg1/m_arg2) which are used for the X86_64 System V ABI varargs
|
||||
// implementation. They are not present on any other os.
|
||||
assert((!(global.params.is64bit && global.params.os == OSWindows) && tscd->fields.dim == 11) ||
|
||||
(global.params.is64bit && global.params.os == OSWindows && tscd->fields.dim == 13));
|
||||
|
||||
//void function(void*) xdtor;
|
||||
b.push_funcptr(sd->dtor);
|
||||
|
||||
Reference in New Issue
Block a user