in src/main/abi-symbols/abi-dumper.pl [5476:5529]
sub getFirst($)
{
my $Tid = $_[0];
if(not $Tid) {
return $Tid;
}
if(defined $DeletedAnon{$Tid}) {
$Tid = $DeletedAnon{$Tid};
}
if(defined $TypeSpec{$Tid}) {
$Tid = $TypeSpec{$Tid};
}
if(my $Name = $TypeInfo{$Tid}{"Name"})
{
my $Type = $TypeInfo{$Tid}{"Type"};
my $FTid = undef;
if($FTid = $TName_Tid{$Type}{$Name}) {
return "$FTid";
}
if($Name=~s/\Astruct //)
{ # search for class or derived types (const, *, etc.)
foreach my $Type ("Class", "Const", "Ref", "RvalueRef", "Pointer")
{
if($FTid = $TName_Tid{$Type}{$Name})
{
if($FTid ne $Tid)
{
$MergedTypes{$Tid} = 1;
}
return "$FTid";
}
}
$Name = "struct ".$Name;
}
if(not $FTid) {
$FTid = $TName_Tid{$Type}{$Name};
}
if($FTid) {
return "$FTid";
}
printMsg("ERROR", "internal error (missed type id $Tid)");
}
return $Tid;
}