|
@@ -179,10 +179,15 @@ unit cpupara;
|
|
{ ABI: any composite > 16 bytes that not a hfa/hva
|
|
{ ABI: any composite > 16 bytes that not a hfa/hva
|
|
Special case: MWPascal, which passes all const parameters by
|
|
Special case: MWPascal, which passes all const parameters by
|
|
reference for compatibility reasons
|
|
reference for compatibility reasons
|
|
- }
|
|
|
|
|
|
+ Special case 2: on Windows we need to pass all const records by
|
|
|
|
+ reference due to the Windows unit (ab)using const to pass
|
|
|
|
+ pointer parameters }
|
|
result:=
|
|
result:=
|
|
((varspez=vs_const) and
|
|
((varspez=vs_const) and
|
|
- (calloption=pocall_mwpascal)) or
|
|
|
|
|
|
+ (
|
|
|
|
+ (calloption=pocall_mwpascal) or
|
|
|
|
+ (target_info.system=system_aarch64_win64)
|
|
|
|
+ )) or
|
|
(not is_hfa(def,hfabasedef) and
|
|
(not is_hfa(def,hfabasedef) and
|
|
(def.size>16));
|
|
(def.size>16));
|
|
variantdef,
|
|
variantdef,
|