mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 09:09:30 +02:00
- Reverted r25269 and commented out r25261. The former one is wrong because it changes unit initialization order. The latter one causes RTL build failures on some targets, needs testing and likely RTL/makefiles patching.
git-svn-id: trunk@25271 -
This commit is contained in:
parent
feaa006243
commit
d11ec8ac47
@ -1078,10 +1078,13 @@ implementation
|
||||
end;
|
||||
single_type(pd.returndef,[stoAllowSpecialization]);
|
||||
|
||||
// Issue #24863, commented out for now because it breaks building of RTL and needs extensive
|
||||
// testing and/or RTL patching.
|
||||
{
|
||||
if ((pd.returndef=cvarianttype) or (pd.returndef=colevarianttype)) and
|
||||
not(cs_compilesystem in current_settings.moduleswitches) then
|
||||
current_module.flags:=current_module.flags or uf_uses_variants;
|
||||
|
||||
}
|
||||
if is_dispinterface(pd.struct) and not is_automatable(pd.returndef) then
|
||||
Message1(type_e_not_automatable,pd.returndef.typename);
|
||||
|
||||
|
@ -195,24 +195,20 @@ implementation
|
||||
procedure maybeloadvariantsunit;
|
||||
var
|
||||
hp : tmodule;
|
||||
load : boolean;
|
||||
begin
|
||||
{ Must not be called for units }
|
||||
if current_module.is_unit then
|
||||
InternalError(2013081601);
|
||||
{ Do we need the variants unit? Skip this
|
||||
for VarUtils unit for bootstrapping }
|
||||
if (current_module.flags and uf_uses_variants=0) or
|
||||
(current_module.modulename^='VARUTILS') then
|
||||
exit;
|
||||
{ Variants unit already loaded? }
|
||||
load:=(current_module.flags and uf_uses_variants)<>0;
|
||||
hp:=tmodule(loaded_units.first);
|
||||
while assigned(hp) do
|
||||
begin
|
||||
if hp.modulename^='VARIANTS' then
|
||||
exit;
|
||||
if (hp.flags and uf_uses_variants)<>0 then
|
||||
load:=true;
|
||||
hp:=tmodule(hp.next);
|
||||
end;
|
||||
if (not load) then
|
||||
exit;
|
||||
{ Variants unit is not loaded yet, load it now }
|
||||
Message(parser_w_implicit_uses_of_variants_unit);
|
||||
AddUnit('variants');
|
||||
@ -1162,6 +1158,9 @@ type
|
||||
{ if an Objective-C module, generate rtti and module info }
|
||||
MaybeGenerateObjectiveCImageInfo(current_module.globalsymtable,current_module.localsymtable);
|
||||
|
||||
{ do we need to add the variants unit? }
|
||||
maybeloadvariantsunit;
|
||||
|
||||
{ generate rtti/init tables }
|
||||
write_persistent_type_info(current_module.globalsymtable,true);
|
||||
write_persistent_type_info(current_module.localsymtable,false);
|
||||
|
Loading…
Reference in New Issue
Block a user