mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-30 20:01:27 +02:00
llvm: changed llvm_metadatatype from untyped pointer to undefineddef
That matches its meaning better, as it should not result in type conversions. E.g. some kinds of metadata parameters expect a "type register" parameter such as "metadata i32* %reg.3"
This commit is contained in:
parent
aa43441ac9
commit
fe0048bcec
@ -401,9 +401,7 @@ implementation
|
||||
end;
|
||||
pointerdef :
|
||||
begin
|
||||
if def=llvm_metadatatype then
|
||||
encodedstr:=encodedstr+'metadata'
|
||||
else if is_voidpointer(def) then
|
||||
if is_voidpointer(def) then
|
||||
encodedstr:=encodedstr+'i8*'
|
||||
else
|
||||
begin
|
||||
@ -617,7 +615,13 @@ implementation
|
||||
else
|
||||
internalerror(2013100601);
|
||||
end;
|
||||
undefineddef,
|
||||
undefineddef:
|
||||
begin
|
||||
if def=llvm_metadatatype then
|
||||
encodedstr:=encodedstr+'metadata'
|
||||
else
|
||||
internalerror(2022052301);
|
||||
end;
|
||||
errordef :
|
||||
internalerror(2013100604);
|
||||
else
|
||||
|
@ -589,7 +589,7 @@ implementation
|
||||
addtype('$qwordbool',bool64type);
|
||||
{$ifdef llvm}
|
||||
addtype('$llvmbool1',llvmbool1type);
|
||||
llvm_metadatatype:=cpointerdef.create(voidtype);
|
||||
llvm_metadatatype:=cundefineddef.create(true);
|
||||
{ if this gets renamed, also adjust agllvm so it still writes the identifier of this type as "metadata" }
|
||||
addtype('$metadata',llvm_metadatatype);
|
||||
addtype('LLVMMetadata',llvm_metadatatype);
|
||||
|
Loading…
Reference in New Issue
Block a user