Home | History | Annotate | Download | only in abi-compliance-checker

Lines Matching full:"$ symbol"

2021     foreach my $Symbol (split(/\s*\n\s*/, parseTag(\$Content, "skip_interfaces")),
2024 $SkipSymbols{$LibVersion}{$Symbol} = 1;
3781 if(my $Symbol = $SymbolInfo{$Version}{$InfoId}{"MnglName"})
3783 if(not selectSymbol($Symbol, $SymbolInfo{$Version}{$InfoId}, "Dump", $Version))
5275 if(my $Symbol = $SymbolInfo{$Version}{$InfoId}{"MnglName"})
5279 if(not selectSymbol($Symbol, $SymbolInfo{$Version}{$InfoId}, "Dump", $Version))
5970 sub select_Symbol_NS($$)
5971 {
5972 my ($Symbol, $LibVersion) = @_;
5971 return "" if(not $Symbol or not $LibVersion);
5972 my $NS = $CompleteSignature{$LibVersion}{$Symbol}{"NameSpace"};
5975 if(my $Class = $CompleteSignature{$LibVersion}{$Symbol}{"Class"}) {
7455 sub get_ChargeLevel($$)
7456 {
7457 my ($Symbol, $LibVersion) = @_;
7456 return "" if($Symbol!~/\A(_Z|\?)/);
7457 if(defined $CompleteSignature{$LibVersion}{$Symbol}
7458 and $CompleteSignature{$LibVersion}{$Symbol}{"Header"})
7460 if($CompleteSignature{$LibVersion}{$Symbol}{"Constructor"})
7462 if($Symbol=~/C1[EI]/) {
7465 elsif($Symbol=~/C2[EI]/) {
7469 elsif($CompleteSignature{$LibVersion}{$Symbol}{"Destructor"})
7471 if($Symbol=~/D1[EI]/) {
7474 elsif($Symbol=~/D2[EI]/) {
7477 elsif($Symbol=~/D0[EI]/) {
7484 if($Symbol=~/C1[EI]/) {
7487 elsif($Symbol=~/C2[EI]/) {
7490 elsif($Symbol=~/D1[EI]/) {
7493 elsif($Symbol=~/D2[EI]/) {
7496 elsif($Symbol=~/D0[EI]/) {
7505 sub get_Signature_M($$)
7506 {
7507 my ($Symbol, $LibVersion) = @_;
7506 my $Signature_M = $tr_name{$Symbol};
7507 if(my $RTid = $CompleteSignature{$LibVersion}{$Symbol}{"Return"})
7516 sub get_Signature($$)
7517 {
7518 my ($Symbol, $LibVersion) = @_;
7517 if($Cache{"get_Signature"}{$LibVersion}{$Symbol}) {
7518 return $Cache{"get_Signature"}{$LibVersion}{$Symbol};
7520 my ($MnglName, $VersionSpec, $SymbolVersion) = separate_symbol($Symbol);
7523 my $ShortName = $CompleteSignature{$LibVersion}{$Symbol}{"ShortName"};
7525 if($Symbol=~/\A(_Z|\?)/)
7527 if(my $ClassId = $CompleteSignature{$LibVersion}{$Symbol}{"Class"})
7532 if(index($Symbol, "_ZTV")==0) {
7537 if($CompleteSignature{$LibVersion}{$Symbol}{"Destructor"}) {
7542 elsif(my $NameSpace = $CompleteSignature{$LibVersion}{$Symbol}{"NameSpace"}) {
7556 foreach my $Pos (sort {int($a) <=> int($b)} keys(%{$CompleteSignature{$LibVersion}{$Symbol}{"Param"}}))
7562 my $ParamTypeId = $CompleteSignature{$LibVersion}{$Symbol}{"Param"}{$Pos}{"type"};
7577 if(my $ParamName = $CompleteSignature{$LibVersion}{$Symbol}{"Param"}{$Pos}{"name"})
7580 and $Symbol=~/\A(_Z|\?)/)
7590 if($CompleteSignature{$LibVersion}{$Symbol}{"Data"}
7591 or $GlobalDataObject{$LibVersion}{$Symbol}) {
7596 if(my $ChargeLevel = get_ChargeLevel($Symbol, $LibVersion))
7601 if($CompleteSignature{$LibVersion}{$Symbol}{"Const"}
7602 or $Symbol=~/\A_ZN(V|)K/) {
7605 if($CompleteSignature{$LibVersion}{$Symbol}{"Volatile"}
7606 or $Symbol=~/\A_ZN(K|)V/) {
7609 if($CompleteSignature{$LibVersion}{$Symbol}{"Static"}
7610 and $Symbol=~/\A(_Z|\?)/)
7616 and my $ReturnTId = $CompleteSignature{$LibVersion}{$Symbol}{"Return"}) {
7622 return ($Cache{"get_Signature"}{$LibVersion}{$Symbol} = $Signature);
9432 foreach my $Symbol (keys(%{$CompleteSignature{$LibVersion}}))
9436 if(my $ClassId = $CompleteSignature{$LibVersion}{$Symbol}{"Class"})
9439 if($CompleteSignature{$LibVersion}{$Symbol}{"Constructor"}
9440 and not $CompleteSignature{$LibVersion}{$Symbol}{"InLine"})
9442 if(not $CompleteSignature{$LibVersion}{$Symbol}{"Private"})
9444 if($CheckHeadersOnly or link_symbol($Symbol, $LibVersion, "-Deps")) {
9449 if(not $CompleteSignature{$LibVersion}{$Symbol
9451 if(symbolFilter($Symbol, $LibVersion, "Affected", "Binary"))
9455 if(not $CompleteSignature{$LibVersion}{$Symbol}{"InLine"}
9456 or $CompleteSignature{$LibVersion}{$Symbol}{"Virt"})
9458 $ClassMethods{"Binary"}{$LibVersion}{$ClassName}{$Symbol} = 1;
9462 $ClassMethods{"Binary"}{$LibVersion}{$ClassName}{$Symbol} = 1;
9465 if(symbolFilter($Symbol, $LibVersion, "Affected", "Source")) {
9466 $ClassMethods{"Source"}{$LibVersion}{$ClassName}{$Symbol} = 1;
9471 if(my $RetId = $CompleteSignature{$LibVersion}{$Symbol}{"Return"})
9489 foreach my $Num (keys(%{$CompleteSignature{$LibVersion}{$Symbol}{"Param"}}))
9491 my $PId = $CompleteSignature{$LibVersion}{$Symbol}{"Param"}{$Num}{"type"};
9498 $ParamClass{$LibVersion}{$Base{"Tid"}}{$Symbol} = 1;
9501 $ParamClass{$LibVersion}{$SubId}{$Symbol} = 1;
9509 $Func_ShortName{$LibVersion}{$CompleteSignature{$LibVersion}{$Symbol}{"ShortName"}}{$Symbol} = 1;
9699 my ($Symbol, $SInfo, $Level, $LibVersion) = @_;
9710 if(not $STDCXX_TESTING and $Symbol=~/\A(_ZS|_ZNS|_ZNKS)/)
9721 if(index($Symbol, "external_func_")==0) {
9756 if(link_symbol($Symbol, $LibVersion, "-Deps"))
10157 my $Symbol = "external_func_".$TName;
10159 %{$CompleteSignature{$LibVersion}{$Symbol}} = (
10161 "ShortName" => $Symbol,
10162 "MnglName" => $Symbol,
10166 $ExtendedSymbols{$Symbol} = 1;
10167 $CheckedSymbols{"Binary"}{$Symbol} = 1;
10168 $CheckedSymbols{"Source"}{$Symbol} = 1;
10227 foreach my $Symbol (keys(%{$CompleteSignature{$LibVersion}}))
10229 if($CompleteSignature{$LibVersion}{$Symbol}{"Virt"}
10230 or $CompleteSignature{$LibVersion}{$Symbol}{"PureVirt"})
10232 my $ClassName = $TypeInfo{$LibVersion}{$CompleteSignature{$LibVersion}{$Symbol}{"Class"}}{"Name"};
10234 if($CompleteSignature{$LibVersion}{$Symbol}{"Destructor"}
10235 and $Symbol=~/D2E/)
10241 my ($MnglName, $VersionSpec, $SymbolVersion) = separate_symbol($Symbol);
10564 foreach my $Symbol (keys(%{$VirtualTable_Model{1}{$ClassName}}))
10566 if(not defined $VirtualTable_Model{2}{$ClassName}{$Symbol}) {
10653 foreach my $Symbol (@Affected)
10655 %{$CompatProblems{$Level}{$Symbol}{"Virtual_Table_Changed_Unknown"}{$ClassName}}=(
10677 foreach my $Symbol (keys(%{$VirtualTable{2}{$ClassName}}))
10680 and not defined $VirtualTable{1}{$ClassName}{$Symbol})
10682 if(defined $CompleteSignature{1}{$Symbol}
10683 and $CompleteSignature{1}{$Symbol}{"Virt"})
10687 $AddedInt_Virt{$Level}{$ClassName}{$Symbol} = 1;
10693 foreach my $Symbol (keys(%{$VirtualTable{1}{$ClassName}}))
10696 and not defined $VirtualTable{2}{$ClassName}{$Symbol})
10698 if(defined $CompleteSignature{2}{$Symbol}
10699 and $CompleteSignature{2}{$Symbol}{"Virt"})
10703 $RemovedInt_Virt{$Level}{$ClassName}{$Symbol} = 1;
11062 foreach my $Symbol (@VFunctions)
11064 if(not defined $VirtualTable_Model{2}{$ClassName}{$Symbol})
11068 if($VirtualTable_Model{2}{$ClassName}{$Symbol}-$VirtualTable_Model{1}{$ClassName}{$Symbol}==0)
11072 if(not symbolFilter($Symbol, 1, "Affected", $Level)) {
11084 %{$CompatProblems{$Level}{$Symbol}{$ProblemType}{get_Signature($VirtFunc, 2)}}=(
11095 %{$CompatProblems{$Level}{$Symbol}{$ProblemType}{get_Signature($VirtFunc, 1)}}=(
12612 my $Symbol = $_[0];
12613 return ($Symbol=~/\A(_ZGV|_ZTI|_ZTS|_ZTT|_ZTV|_ZTC|_ZThn|_ZTv0_n)/);
12663 my ($Symbol, $LibVersion, $Type, $Level) = @_;
12665 if(isPrivateData($Symbol))
12672 return 0 if($Symbol=~/($SkipInternalSymbols)/);
12675 if($Symbol=~/\A_Z/)
12677 if($Symbol=~/[CD][3-4]E/) {
12684 foreach my $Pos (keys(%{$CompleteSignature{$LibVersion}{$Symbol}{"Param"}}))
12686 if(my $Pid = $CompleteSignature{$LibVersion}{$Symbol}{"Param"}{$Pos}{"type"})
12697 my $Header = $CompleteSignature{$LibVersion}{$Symbol}{"Header"};
12699 if($SkipSymbols{$LibVersion}{$Symbol})
12704 if($SymbolsListPath and not $SymbolsList{$Symbol})
12713 if($AppPath and not $SymbolsList_App{$Symbol})
12718 my $ClassId = $CompleteSignature{$LibVersion}{$Symbol}{"Class"};
12727 my $NameSpace = $CompleteSignature{$LibVersion}{$Symbol}{"NameSpace"};
12784 if(not selectSymbol($Symbol, $CompleteSignature{$LibVersion}{$Symbol}, $Level, $LibVersion))
12790 if($CompleteSignature{$LibVersion}{$Symbol}{"InLine"}
12791 or isInLineInst($CompleteSignature{$LibVersion}{$Symbol}, $LibVersion))
12793 if($ClassId and $CompleteSignature{$LibVersion}{$Symbol}{"Virt"})
12827 foreach my $Symbol (keys(%{$Symbol_Library{2}}))
12829 if(link_symbol($Symbol, 1, "+Deps"))
12835 if(my $VSym = $SymVer{2}{$Symbol}
12836 and index($Symbol,"\@")==-1) {
12839 $AddedInt{$Level}{$Symbol} = 1;
12846 foreach my $Symbol (keys(%{$Symbol_Library{1}}))
12848 if(link_symbol($Symbol, 2, "+Deps"))
12853 if(my $VSym = $SymVer{1}{$Symbol}
12854 and index($Symbol,"\@")==-1) {
12857 $RemovedInt{$Level}{$Symbol} = 1;
12864 foreach my $Symbol (sort keys(%{$AddedInt{$Level}}))
12866 next if($CompleteSignature{2}{$Symbol}{"Private"});
12867 next if(not $CompleteSignature{2}{$Symbol}{"Header"});
12868 next if(not symbolFilter($Symbol, 2, "Affected + InlineVirt", $Level));
12869 %{$CompatProblems{$Level}{$Symbol}{"Added_Symbol"}{""}}=();
12871 foreach my $Symbol (sort keys(%{$RemovedInt{$Level}}))
12873 next if($CompleteSignature{1}{$Symbol}{"Private"});
12874 next if(not $CompleteSignature{1}{$Symbol}{"Header"});
12875 if(index($Symbol, "_ZTV")==0)
12877 next if($tr_name{$Symbol}=~/</);
12878 if(my $CName = $VTableClass{$Symbol})
12887 if($SkipSymbols{1}{$Symbol})
12893 next if(not symbolFilter($Symbol, 1, "Affected + InlineVirt", $Level));
12895 if($CompleteSignature{1}{$Symbol}{"PureVirt"})
12899 %{$CompatProblems{$Level}{$Symbol}{"Removed_Symbol"}{""}}=();
12915 foreach my $Symbol (sort keys(%{$CompleteSignature{2}}))
12919 my ($SN, $SS, $SV) = separate_symbol($Symbol);
12920 $Symbol=$SN;
12922 if($CompleteSignature{2}{$Symbol}{"Artificial"})
12927 if(not $CompleteSignature{2}{$Symbol}{"Header"}
12928 or not $CompleteSignature{2}{$Symbol}{"MnglName"}) {
12931 if($ExtendedSymbols{$Symbol}) {
12934 if(not defined $CompleteSignature{1}{$Symbol}
12935 or not $CompleteSignature{1}{$Symbol}{"MnglName"})
12941 if(not $CompleteSignature{2}{$Symbol}{"Virt"}
12942 and not $CompleteSignature{2}{$Symbol}{"PureVirt"})
12946 if(my $Lang = $CompleteSignature{2}{$Symbol}{"Lang"})
12956 if(not link_symbol($Symbol, 2, "-Deps"))
12964 $AddedInt{$Level}{$Symbol} = 1;
12972 foreach my $Symbol (sort keys(%{$CompleteSignature{1}}))
12974 my $ISymbol = $Symbol;
12978 my ($SN, $SS, $SV) = separate_symbol($Symbol);
12979 $Symbol = $SN;
12982 if(not $CompleteSignature{1}{$Symbol}{"Header"}
12983 or not $CompleteSignature{1}{$Symbol}{"MnglName"}) {
12986 if($ExtendedSymbols{$Symbol}) {
12989 if(not defined $CompleteSignature{2}{$Symbol}
12990 or not $CompleteSignature{2}{$Symbol}{"MnglName"})
12997 if(link_symbol($Symbol, 2, "-Deps")) {
13001 if($ISymbol ne $Symbol)
13008 if(my $SVer = $SymVer{2}{$Symbol})
13033 if(not $CompleteSignature{1}{$Symbol}{"Virt"}
13034 and not $CompleteSignature{1}{$Symbol}{"PureVirt"})
13038 if(my $Lang = $CompleteSignature{1}{$Symbol}{"Lang"})
13048 if(not link_symbol($Symbol, 1, "-Deps"))
13058 if($Symbol=~/_IT_E\Z/)
13063 if(not $CompleteSignature{1}{$Symbol}{"Class"})
13065 if(my $Short = $CompleteSignature{1}{$Symbol}{"ShortName"})
13078 $RemovedInt{$Level}{$Symbol} = 1;
13081 setAlternative($Symbol, $Level);
13090 foreach my $Symbol (sort keys(%{$AddedInt{$Level}}))
13092 next if($CompleteSignature{2}{$Symbol}{"PureVirt"});
13093 next if($CompleteSignature{2}{$Symbol}{"Private"});
13094 next if(not symbolFilter($Symbol, 2, "Affected", $Level));
13097 if($CompleteSignature{2}{$Symbol}{"InLine"})
13099 if(not $CompleteSignature{2}{$Symbol}{"Virt"})
13107 if($SourceAlternative_B{$Symbol}) {
13111 %{$CompatProblems{$Level}{$Symbol}{"Added_Symbol"}{""}}=();
13113 foreach my $Symbol (sort keys(%{$RemovedInt{$Level}}))
13115 next if($CompleteSignature{1}{$Symbol}{"PureVirt"});
13116 next if($CompleteSignature{1}{$Symbol}{"Private"});
13117 next if(not symbolFilter($Symbol, 1, "Affected", $Level));
13120 if($CompleteSignature{1}{$Symbol}{"InLine"})
13122 if(not $CompleteSignature{1}{$Symbol}{"Virt"})
13130 if(my $Alt = $SourceAlternative{$Symbol})
13133 and $CompleteSignature{1}{$Symbol}{"Const"})
13135 my $Cid = $CompleteSignature{1}{$Symbol}{"Class"};
13136 %{$CompatProblems{$Level}{$Symbol}{"Removed_Const_Overload"}{"this"}}=(
13146 %{$CompatProblems{$Level}{$Symbol}{"Removed_Symbol"}{""}}=();
13200 sub get_symbol_suffix($$)
13201 {
13202 my ($Symbol, $Full) = @_;
13201 my ($SN, $SO, $SV) = separate_symbol($Symbol);
13202 $Symbol=$SN; # remove version
13203 my $Signature = $tr_name{$Symbol};
13213 sub get_symbol_prefix($$)
13214 {
13215 my ($Symbol, $LibVersion) = @_;
13214 my $ShortName = $CompleteSignature{$LibVersion}{$Symbol}{"ShortName"};
13215 if(my $ClassId = $CompleteSignature{$LibVersion}{$Symbol}{"Class"})
13224 sub setAlternative($)
13225 {
13226 my $Symbol = $_[0];
13225 my $PSymbol = $Symbol;
13240 $SourceAlternative{$Symbol} = $PSymbol;
13241 $SourceAlternative_B{$PSymbol} = $Symbol;
13244 $SourceReplacement{$Symbol} = $PSymbol;
13259 $SourceAlternative{$Symbol} = $PSymbol;
13260 $SourceAlternative_B{$PSymbol} = $Symbol;
13263 $SourceReplacement{$Symbol} = $PSymbol;
13267 $PSymbol = $Symbol;
13277 sub getSymKind($$)
13278 {
13279 my ($Symbol, $LibVersion) = @_;
13278 if($CompleteSignature{$LibVersion}{$Symbol}{"Data"})
13282 elsif($CompleteSignature{$LibVersion}{$Symbol}{"Class"})
13297 foreach my $Symbol (sort keys(%{$AddedInt{$Level}}))
13299 if(not $CompleteSignature{2}{$Symbol}{"Header"}) {
13302 if(defined $CompleteSignature{1}{$Symbol}
13303 and $CompleteSignature{1}{$Symbol}{"Header"})
13307 if(not symbolFilter($Symbol, 2, "Affected", $Level)) {
13310 if($Symbol=~/\A(_Z|\?)/)
13312 $AddedOverloads{get_symbol_prefix($Symbol, 2)}{get_symbol_suffix($Symbol, 1)} = $Symbol;
13314 if(my $OverriddenMethod = $CompleteSignature{2}{$Symbol}{"Override"})
13316 my $Cid = $CompleteSignature{2}{$Symbol}{"Class"};
13325 %{$CompatProblems{$Level}{$OverriddenMethod}{"Overridden_Virtual_Method"}{$tr_name{$Symbol}}}=(
13327 "Target"=>get_Signature($Symbol, 2),
13329 "New_Value"=>get_Signature($Symbol, 2));
13335 foreach my $Symbol (sort keys(%{$RemovedInt{$Level}}))
13337 if(not $CompleteSignature{1}{$Symbol}{"Header"}) {
13340 if(defined $CompleteSignature{2}{$Symbol}
13341 and $CompleteSignature{2}{$Symbol}{"Header"})
13345 if($CompleteSignature{1}{$Symbol}{"Private"})
13349 if(not symbolFilter($Symbol, 1, "Affected", $Level)) {
13352 $CheckedSymbols{$Level}{$Symbol} = 1;
13353 if(my $OverriddenMethod = $CompleteSignature{1}{$Symbol}{"Override"})
13355 my $Cid = $CompleteSignature{1}{$Symbol}{"Class"};
13362 if(not isCopyingClass($CompleteSignature{1}{$Symbol}{"Class"}, 1))
13364 %{$CompatProblems{$Level}{$Symbol}{"Overridden_Virtual_Method_B"}{$tr_name{$OverriddenMethod}}}=(
13367 "Old_Value"=>get_Signature($Symbol, 1),
13376 if(my $NewSym = $mangled_name{2}{$tr_name{$Symbol}})
13380 if($CompleteSignature{1}{$Symbol}{"Static"} ne $CompleteSignature{2}{$NewSym}{"Static"})
13384 %{$CompatProblems{$Level}{$Symbol}{"Symbol_Became_Static"}{$tr_name{$Symbol}}}=(
13385 "Target"=>$tr_name{$Symbol},
13386 "Old_Value"=>$Symbol,
13391 %{$CompatProblems{$Level}{$Symbol}{"Symbol_Became_Non_Static"}{$tr_name{$Symbol}}}=(
13392 "Target"=>$tr_name{$Symbol},
13393 "Old_Value"=>$Symbol,
13397 if($CompleteSignature{1}{$Symbol}{"Virt"} ne $CompleteSignature{2}{$NewSym}{"Virt"})
13401 %{$CompatProblems{$Level}{$Symbol}{"Symbol_Became_Virtual"}{$tr_name{$Symbol}}}=(
13402 "Target"=>$tr_name{$Symbol},
13403 "Old_Value"=>$Symbol,
13408 %{$CompatProblems{$Level}{$Symbol}{"Symbol_Became_Non_Virtual"}{$tr_name{$Symbol}}}=(
13409 "Target"=>$tr_name{$Symbol},
13410 "Old_Value"=>$Symbol,
13414 my $RTId1 = $CompleteSignature{1}{$Symbol}{"Return"};
13421 if($CompleteSignature{1}{$Symbol}{"Data"}) {
13424 %{$CompatProblems{$Level}{$Symbol}{$ProblemType}{$tr_name{$Symbol}}}=(
13425 "Target"=>$tr_name{$Symbol},
13428 "Old_Value"=>$Symbol,
13434 if($Symbol=~/\A(_Z|\?)/)
13436 my $Prefix = get_symbol_prefix($Symbol, 1);
13438 and not $AddedOverloads{$Prefix}{get_symbol_suffix($Symbol, 1)})
13441 if($CompleteSignature{1}{$Symbol}{"Constructor"})
13443 if($Symbol=~/(C[1-2][EI])/)
13449 elsif($CompleteSignature{1}{$Symbol}{"Destructor"})
13451 if($Symbol=~/(D[0-2][EI])/)
13457 my $NS1 = $CompleteSignature{1}{$Symbol}{"NameSpace"};
13461 if($CompleteSignature{1}{$Symbol}{"Const"}
13464 %{$CompatProblems{$Level}{$Symbol}{"Method_Became_Non_Const"}{$tr_name{$Symbol}}}=(
13465 "Type_Name"=>$TypeInfo{1}{$CompleteSignature{1}{$Symbol}{"Class"}}{"Name"},
13466 "Target"=>$tr_name{$Symbol},
13468 "Old_Value"=>$Symbol,
13471 elsif(not $CompleteSignature{1}{$Symbol}{"Const"}
13474 %{$CompatProblems{$Level}{$Symbol}{"Method_Became_Const"}{$tr_name{$Symbol}}}=(
13475 "Target"=>$tr_name{$Symbol},
13477 "Old_Value"=>$Symbol,
13480 if($CompleteSignature{1}{$Symbol}{"Volatile"}
13484 %{$CompatProblems{$Level}{$Symbol}{"Method_Became_Non_Volatile"}{$tr_name{$Symbol}}}=(
13485 "Target"=>$tr_name{$Symbol},
13487 "Old_Value"=>$Symbol,
13490 elsif(not $CompleteSignature{1}{$Symbol}{"Volatile"}
13493 %{$CompatProblems{$Level}{$Symbol}{"Method_Became_Volatile"}{$tr_name{$Symbol}}}=(
13494 "Target"=>$tr_name{$Symbol},
13496 "Old_Value"=>$Symbol,
13499 if(get_symbol_suffix($Symbol, 0) ne get_symbol_suffix($NewSym, 0))
13501 %{$CompatProblems{$Level}{$Symbol}{"Symbol_Changed_Parameters"}{$tr_name{$Symbol}}}=(
13502 "Target"=>$tr_name{$Symbol},
13504 "Old_Value"=>$Symbol,
13511 foreach my $Symbol (sort keys(%{$CompleteSignature{1}}))
13513 $CurrentSymbol = $Symbol;
13515 my ($SN, $SS, $SV) = separate_symbol($Symbol);
13518 $Symbol=$SN;
13524 if(my $VSym = $SymVer{1}{$Symbol})
13538 my $PSymbol = $Symbol;
13540 and my $S = $SourceReplacement{$Symbol})
13544 if($CompleteSignature{1}{$Symbol}{"Private"})
13548 if(not defined $CompleteSignature{1}{$Symbol}
13553 if(not $CompleteSignature{1}{$Symbol}{"MnglName"}
13558 if(not $CompleteSignature{1}{$Symbol}{"Header"}
13564 if(not $CompleteSignature{1}{$Symbol}{"PureVirt"}
13569 if($CompleteSignature{1}{$Symbol}{"PureVirt"}
13575 if(not symbolFilter($Symbol, 1, "Affected + InlineVirt", $Level))
13586 if($CompleteSignature{1}{$Symbol}{"Data"}
13589 my $Value1 = $CompleteSignature{1}{$Symbol}{"Value"};
13593 $Value1 = showVal($Value1, $CompleteSignature{1}{$Symbol}{"Return"}, 1);
13599 %{$CompatProblems{$Level}{$Symbol}{"Global_Data_Value_Changed"}{""}}=(
13602 "Target"=>get_Signature($Symbol, 1) );
13611 %{$CompatProblems{$Level}{$Symbol}{getSymKind($Symbol, 1)."_Became_Private"}{""}}=(
13614 elsif(not $CompleteSignature{1}{$Symbol}{"Protected"}
13617 %{$CompatProblems{$Level}{$Symbol}{getSymKind($Symbol, 1)."_Became_Protected"}{""}}=(
13620 elsif($CompleteSignature{1}{$Symbol}{"Protected"}
13623 %{$CompatProblems{$Level}{$Symbol}{getSymKind($Symbol, 1)."_Became_Public"}{""}}=(
13628 mergeVirtualTables($Symbol, $Level);
13633 if(not $CompleteSignature{1}{$Symbol}{"Data"} and $CompleteSignature{2}{$PSymbol}{"Data"}
13634 and not $GlobalDataObject{2}{$Symbol})
13638 if($CompleteSignature{1}{$Symbol}{"Data"} and not $GlobalDataObject{1}{$Symbol}
13644 my ($MnglName, $VersionSpec, $SymbolVersion) = separate_symbol($Symbol);
13647 and not $CompleteSignature{1}{$Symbol}{"Static"} and $Symbol=~/\A(_Z|\?)/)
13649 %{$CompatProblems{$Level}{$Symbol}{"Method_Became_Static"}{""}}=(
13650 "Target"=>get_Signature($Symbol, 1)
13654 and $CompleteSignature{1}{$Symbol}{"Static"} and $Symbol=~/\A(_Z|\?)/)
13656 %{$CompatProblems{$Level}{$Symbol}{"Method_Became_Non_Static"}{""}}=(
13657 "Target"=>get_Signature($Symbol, 1)
13660 if(($CompleteSignature{1}{$Symbol}{"Virt"} and $CompleteSignature{2}{$PSymbol}{"Virt"})
13661 or ($CompleteSignature{1}{$Symbol}{"PureVirt"} and $CompleteSignature{2}{$PSymbol}{"PureVirt"}))
13665 if(defined $CompleteSignature{1}{$Symbol}{"RelPos"} and defined $CompleteSignature{2}{$PSymbol}{"RelPos"}
13666 and $CompleteSignature{1}{$Symbol}{"RelPos"}!=$CompleteSignature{2}{$PSymbol}{"RelPos"})
13668 my $Class_Id = $CompleteSignature{1}{$Symbol}{"Class"};
13671 and $VirtualTable{1}{$Class_Name}{$Symbol}!=$VirtualTable{2}{$Class_Name}{$Symbol})
13675 if($CompleteSignature{1}{$Symbol}{"PureVirt"}) {
13680 my @Affected = ($Symbol, keys(%{$OverriddenMethods{1}{$Symbol}}));
13688 "Old_Value"=>$CompleteSignature{1}{$Symbol}{"RelPos"},
13690 "Target"=>get_Signature($Symbol, 1));
13698 if($CompleteSignature{1}{$Symbol}{"PureVirt"}
13703 $CheckedSymbols{$Level}{$Symbol} = 1;
13704 if($Symbol=~/\A(_Z|\?)/
13705 or keys(%{$CompleteSignature{1}{$Symbol}{"Param"}})==keys(%{$CompleteSignature{2}{$PSymbol}{"Param"}}))
13707 foreach my $ParamPos (sort {int($a) <=> int($b)} keys(%{$CompleteSignature{1}{$Symbol}{"Param"}}))
13709 mergeParameters($Symbol, $PSymbol, $ParamPos, $ParamPos, $Level, 1);
13720 my $PName_Old = (defined $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos})?$CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos}{"name"}:"";
13724 my @Positions1 = find_ParamPair_Pos_byTypeAndPos($PType2_Name, $ParamPos, "backward", $Symbol, 1);
13725 my @Positions2 = find_ParamPair_Pos_byTypeAndPos($PType2_Name, $ParamPos, "backward", $Symbol, 2);
13731 $ParamPos_Prev = find_ParamPair_Pos_byName($PName, $Symbol, 1);
13735 if($ParamPos>keys(%{$CompleteSignature{1}{$Symbol}{"Param"}})-1)
13741 %{$CompatProblems{$Level}{$Symbol}{$ProblemType}{showPos($ParamPos)." Parameter"}}=(
13743 "Param_Pos"=>adjustParamPos($ParamPos, $Symbol, 2),
13745 "New_Signature"=>get_Signature($Symbol, 2) );
13750 my $PairType_Id = $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos}{"type"};
13753 and find_ParamPair_Pos_byName($PName_Old, $Symbol, 2) eq "lost")
13757 %{$CompatProblems{$Level}{$Symbol}{"Renamed_Parameter"}{showPos($ParamPos)." Parameter"}}=(
13759 "Param_Pos"=>adjustParamPos($ParamPos, $Symbol, 2),
13763 "New_Signature"=>get_Signature($Symbol, 2) );
13772 %{$CompatProblems{$Level}{$Symbol}{$ProblemType}{showPos($ParamPos)." Parameter"}}=(
13774 "Param_Pos"=>adjustParamPos($ParamPos, $Symbol, 2),
13776 "New_Signature"=>get_Signature($Symbol, 2) );
13781 foreach my $ParamPos (sort {int($a) <=> int($b)} keys(%{$CompleteSignature{1}{$Symbol}{"Param"}}))
13783 my $PType1_Id = $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos}{"type"};
13784 my $ParamName1 = $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos}{"name"};
13792 mergeParameters($Symbol, $PSymbol, $ParamPos, $ParamPos, $Level, 0);
13796 foreach my $ParamPos (sort {int($a) <=> int($b)} keys(%{$CompleteSignature{1}{$Symbol}{"Param"}}))
13798 my $PType1_Id = $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos}{"type"};
13801 my $PName = $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos}{"name"};
13806 my @Positions1 = find_ParamPair_Pos_byTypeAndPos($PType1_Name, $ParamPos, "forward", $Symbol, 1);
13807 my @Positions2 = find_ParamPair_Pos_byTypeAndPos($PType1_Name, $ParamPos, "forward", $Symbol, 2);
13813 $ParamPos_New = find_ParamPair_Pos_byName($PName, $Symbol, 2);
13823 %{$CompatProblems{$Level}{$Symbol}{$ProblemType}{showPos($ParamPos)." Parameter"}}=(
13825 "Param_Pos"=>adjustParamPos($ParamPos, $Symbol, 2),
13827 "New_Signature"=>get_Signature($Symbol, 2) );
13829 elsif($ParamPos<keys(%{$CompleteSignature{1}{$Symbol}{"Param"}})-1)
13835 and find_ParamPair_Pos_byName($PName_New, $Symbol, 1) eq "lost")
13839 %{$CompatProblems{$Level}{$Symbol}{"Renamed_Parameter"}{showPos($ParamPos)." Parameter"}}=(
13841 "Param_Pos"=>adjustParamPos($ParamPos, $Symbol, 2),
13845 "New_Signature"=>get_Signature($Symbol, 2) );
13854 %{$CompatProblems{$Level}{$Symbol}{$ProblemType}{showPos($ParamPos)." Parameter"}}=(
13856 "Param_Pos"=>adjustParamPos($ParamPos, $Symbol, 2),
13858 "New_Signature"=>get_Signature($Symbol, 2) );
13865 my $ReturnType1_Id = $CompleteSignature{1}{$Symbol}{"Return"};
13875 if($CompleteSignature{1}{$Symbol}{"Data"})
13948 and not $CompleteSignature{1}{$Symbol}{"Data"})
13959 %Conv1 = callingConvention_R_Real($CompleteSignature{1}{$Symbol});
13964 %Conv1 = callingConvention_R_Model($CompleteSignature{1}{$Symbol}, $TypeInfo{1}, $Arch1, $OStarget, $WORD_SIZE{1});
13970 if(keys(%{$CompleteSignature{1}{$Symbol}{"Param"}}))
13982 if(keys(%{$CompleteSignature{1}{$Symbol}{"Param"}}))
14034 $CompatProblems{$Level}{$Symbol}{$ProblemType}{"retval"} = $RC_SubProblems{$SubProblemType};
14044 if($CompleteSignature{1}{$Symbol}{"Data"})
14068 if(defined $GlobalDataObject{1}{$Symbol}
14069 and defined $GlobalDataObject{2}{$Symbol})
14071 my $Old_Size = $GlobalDataObject{1}{$Symbol};
14072 my $New_Size = $GlobalDataObject{2}{$Symbol};
14092 $CompatProblems{$Level}{$Symbol}{$SubProblemType}{$NewLocation} = $AddProblems->{$SubProblemType}{$SubLocation};
14104 $CompatProblems{$Level}{$Symbol}{$SubProblemType}{$NewLocation} = $Sub_SubProblems->{$SubProblemType}{$SubLocation};
14110 my $ObjTId1 = $CompleteSignature{1}{$Symbol}{"Class"};
14113 and not $CompleteSignature{1}{$Symbol}{"Static"})
14126 $CompatProblems{$Level}{$Symbol}{$SubProblemType}{$NewLocation} = $Sub_SubProblems->{$SubProblemType}{$SubLocation};
14135 foreach my $Symbol (keys(%{$CompatProblems{$Level}})) {
14136 $CheckedSymbols{$Level}{$Symbol} = 1;
14292 sub getRegs($$$)
14293 {
14294 my ($LibVersion, $Symbol, $Pos) = @_;
14294 if(defined $CompleteSignature{$LibVersion}{$Symbol}{"Reg"})
14297 foreach my $Elem (sort keys(%{$CompleteSignature{$LibVersion}{$Symbol}{"Reg"}}))
14300 $Regs{$CompleteSignature{$LibVersion}{$Symbol}{"Reg"}{$Elem}} = 1;
14306 elsif(defined $CompleteSignature{$LibVersion}{$Symbol}{"Param"}
14307 and defined $CompleteSignature{$LibVersion}{$Symbol}{"Param"}{0}
14308 and not defined $CompleteSignature{$LibVersion}{$Symbol}{"Param"}{0}{"offset"})
14318 sub mergeParameters($$$$$$)
14319 {
14320 my ($Symbol, $PSymbol, $ParamPos1, $ParamPos2, $Level, $ChkRnmd) = @_;
14319 if(not $Symbol) {
14322 my $PType1_Id = $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos1}{"type"};
14323 my $PName1 = $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos1}{"name"};
14331 if($Symbol=~/\A(_Z|\?)/)
14352 if($CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos1}{"reg"}
14355 %{$CompatProblems{$Level}{$Symbol}{"Parameter_Became_Non_Register"}{$Parameter_Location}}=(
14357 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1) );
14359 elsif(not $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos1}{"reg"}
14362 %{$CompatProblems{$Level}{$Symbol}{"Parameter_Became_Register"}{$Parameter_Location}}=(
14364 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1) );
14373 my $Old_Regs = getRegs(1, $Symbol, $ParamPos1);
14383 %{$CompatProblems{$Level}{$Symbol}{"Parameter_Changed_Register"}{$Parameter_Location}}=(
14385 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1),
14392 %{$CompatProblems{$Level}{$Symbol}{"Parameter_From_Register"}{$Parameter_Location}}=(
14394 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1),
14399 %{$CompatProblems{$Level}{$Symbol}{"Parameter_To_Register"}{$Parameter_Location}}=(
14401 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1),
14406 if((my $Old_Offset = $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos1}{"offset"}) ne ""
14411 my $Start1 = $CompleteSignature{1}{$Symbol}{"Param"}{0}{"offset"};
14412 my $Start2 = $CompleteSignature{2}{$Symbol}{"Param"}{0}{"offset"};
14419 %{$CompatProblems{$Level}{$Symbol}{"Parameter_Changed_Offset"}{$Parameter_Location}}=(
14421 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1),
14434 my $Value_Old = $CompleteSignature{1}{$Symbol}{"Param"}{$ParamPos1}{"default"};
14466 %{$CompatProblems{$Level}{$Symbol}{"Parameter_Default_Value_Changed"}{$Parameter_Location}}=(
14468 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1),
14475 %{$CompatProblems{$Level}{$Symbol}{"Parameter_Default_Value_Removed"}{$Parameter_Location}}=(
14477 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1),
14484 %{$CompatProblems{$Level}{$Symbol}{"Parameter_Default_Value_Added"}{$Parameter_Location}}=(
14486 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1),
14497 %{$CompatProblems{$Level}{$Symbol}{"Renamed_Parameter"}{showPos($ParamPos1)." Parameter"}}=(
14499 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1),
14503 "New_Signature"=>get_Signature($Symbol, 2) );
14610 %Conv1 = callingConvention_P_Real($CompleteSignature{1}{$Symbol}, $ParamPos1);
14611 %Conv2 = callingConvention_P_Real($CompleteSignature{2}{$Symbol}, $ParamPos2);
14615 %Conv1 = callingConvention_P_Model($CompleteSignature{1}{$Symbol}, $ParamPos1, $TypeInfo{1}, $Arch1, $OStarget, $WORD_SIZE{1});
14616 %Conv2 = callingConvention_P_Model($CompleteSignature{2}{$Symbol}, $ParamPos2, $TypeInfo{2}, $Arch2, $OStarget, $WORD_SIZE{2});
14646 %{$CompatProblems{$Level}{$Symbol}{$NewProblemType}{$Parameter_Location}}=(
14648 "Param_Pos"=>adjustParamPos($ParamPos1, $Symbol, 1),
14649 "New_Signature"=>get_Signature($Symbol, 2) );
14650 @{$CompatProblems{$Level}{$Symbol}{$NewProblemType}{$Parameter_Location}}{keys(%{$SubProblems{$SubProblemType}})} = values %{$SubProblems{$SubProblemType}};
14670 $CompatProblems{$Level}{$Symbol}{$NewProblemType}{$NewLocation} = $Sub_SubProblems->{$SubProblemType}{$SubLocation};
14677 sub find_ParamPair_Pos_byName($$$)
14678 {
14679 my ($Name, $Symbol, $LibVersion) = @_;
14678 foreach my $ParamPos (sort {int($a)<=>int($b)} keys(%{$CompleteSignature{$LibVersion}{$Symbol}{"Param"}}))
14680 next if(not defined $CompleteSignature{$LibVersion}{$Symbol}{"Param"}{$ParamPos});
14681 if($CompleteSignature{$LibVersion}{$Symbol}{"Param"}{$ParamPos}{"name"} eq $Name)
14691 sub find_ParamPair_Pos_byTypeAndPos($$$$$)
14692 {
14693 my ($TypeName, $MediumPos, $Order, $Symbol, $LibVersion) = @_;
14693 foreach my $ParamPos (sort {int($a)<=>int($b)} keys(%{$CompleteSignature{$LibVersion}{$Symbol}{"Param"}}))
14697 next if(not defined $CompleteSignature{$LibVersion}{$Symbol}{"Param"}{$ParamPos});
14698 my $PTypeId = $CompleteSignature{$LibVersion}{$Symbol}{"Param"}{$ParamPos}{"type"};
15295 sub separate_symbol($)
15296 {
15297 my $Symbol = $_[0];
15296 my ($Name, $Spec, $Ver) = ($Symbol, "", "");
15297 if($Symbol=~/\A([^\@\$\?]+)([\@\$]+)([^\@\$]+)\Z/) {
16704 foreach my $Symbol (sort keys(%{$CompatProblems{$Level}}))
16706 foreach my $Kind (sort keys(%{$CompatProblems{$Level}{$Symbol}}))
16710 my $HeaderName = $CompleteSignature{1}{$Symbol}{"Header"};
16711 my $DyLib = $Symbol_Library{1}{$Symbol};
16716 $ReportMap{$HeaderName}{$DyLib}{$Symbol} = 1;
16728 foreach my $Symbol (keys(%{$ReportMap{$HeaderName}{$DyLib}})) {
16729 $REMOVED_INTERFACES .= " <name>$Symbol</name>\n";
16752 foreach my $Symbol (@SortedInterfaces)
16756 my $Signature = get_Signature($Symbol, 1);
16760 if($Symbol=~/\A(_Z|\?)/)
16763 $REMOVED_INTERFACES .= insertIDs($ContentSpanStart.highLight_Signature_Italic_Color($Signature).$ContentSpanEnd."<br/>\n".$ContentDivStart."<span class='mangled'>[symbol: <b>$Symbol</b>]</span>\n<br/>\n<br/>\n".$ContentDivEnd."\n");
16766 $REMOVED_INTERFACES .= "<span class=\"iname\">".$Symbol."</span><br/>\n";
16775 $REMOVED_INTERFACES .= "<span class=\"iname\">".$Symbol."</span><br/>\n";
16942 foreach my $Symbol (sort keys(%{$CompatProblems{$Level}}))
16944 my ($SN, $SS, $SV) = separate_symbol($Symbol);
16948 my $HeaderName = $CompleteSignature{1}{$Symbol}{"Header"};
16949 my $DyLib = $Symbol_Library{1}{$Symbol};
16950 if(not $DyLib and my $VSym = $SymVer{1}{$Symbol})
16963 foreach my $Kind (sort keys(%{$CompatProblems{$Level}{$Symbol}}))
16969 foreach my $Location (sort keys(%{$CompatProblems{$Level}{$Symbol}{$Kind}}))
16973 $SymbolChanges{$Symbol}{$Kind} = $CompatProblems{$Level}{$Symbol}{$Kind};
16974 $ReportMap{$HeaderName}{$DyLib}{$Symbol} = 1;
16990 foreach my $Symbol (@SortedInterfaces)
16992 $INTERFACE_PROBLEMS .= " <symbol name=\"$Symbol\">\n";
16993 foreach my $Kind (sort keys(%{$SymbolChanges{$Symbol}}))
16995 foreach my $Location (sort keys(%{$SymbolChanges{$Symbol}{$Kind}}))
16997 my %Problem = %{$SymbolChanges{$Symbol}{$Kind}{$Location}};
17027 foreach my $Symbol (keys(%{$ReportMap{$HeaderName}{$DyLib}})) {
17028 $NameSpaceSymbols{select_Symbol_NS($Symbol, 1)}{$Symbol} = 1;
17034 foreach my $Symbol (@SortedInterfaces)
17036 my $Signature = get_Signature($Symbol, 1);
17039 foreach my $Kind (sort keys(%{$SymbolChanges{$Symbol}}))
17041 foreach my $Location (sort keys(%{$SymbolChanges{$Symbol}{$Kind}}))
17043 my %Problem = %{$SymbolChanges{$Symbol}{$Kind}{$Location}};
17046 $NewSignature{$Symbol} = $Problem{"New_Signature"};
17060 my $ShowSymbol = $Symbol;
17081 if(my $NSign = $NewSignature{$Symbol})
17089 if($Symbol=~/\A(_Z|\?)/) {
17090 $INTERFACE_PROBLEMS .= "<span class='mangled'>&#160;&#160;&#160;&#160;[symbol: <b>$Symbol</b>]</span><br/>\n";
17436 sub adjustParamPos($$$)
17437 {
17438 my ($Pos, $Symbol, $LibVersion) = @_;
17437 if(defined $CompleteSignature{$LibVersion}{$Symbol})
17439 if(not $CompleteSignature{$LibVersion}{$Symbol}{"Static"}
17440 and $CompleteSignature{$LibVersion}{$Symbol}{"Class"})
17453 sub getParamPos($$$)
17454 {
17455 my ($Name, $Symbol, $LibVersion) = @_;
17455 if(defined $CompleteSignature{$LibVersion}{$Symbol}
17456 and defined $CompleteSignature{$LibVersion}{$Symbol}{"Param"})
17458 my $Info = $CompleteSignature{$LibVersion}{$Symbol};
17496 foreach my $Symbol (sort keys(%{$TypeProblemsIndex{$Level}{$Target_TypeName}}))
17498 if(index($Symbol, "_Z")==0
17499 and $Symbol=~/(C2|D2|D0)[EI]/)
17508 if(not defined $CompatProblems{$Level}{$Symbol}{$Kind}{$Loc}) {
17512 if(index($Symbol, "\@")!=-1
17513 or index($Symbol, "\$")!=-1)
17515 my ($SN, $SS, $SV) = separate_symbol($Symbol);
17519 $Symbol = $SN;
17529 my $Type_Name = $CompatProblems{$Level}{$Symbol}{$Kind}{$Loc}{"Type_Name"};
17534 $SymLocKind{$Symbol}{$Loc}{$Kind} = 1;
17544 foreach my $Symbol (sort {lc($a) cmp lc($b)} keys(%SymLocKind))
17546 LOOP: foreach my $Loc (sort {$a=~/retval/ cmp $b=~/retval/} sort {length($a)<=>length($b)} sort keys(%{$SymLocKind{$Symbol}}))
17548 foreach my $Kind (sort keys(%{$SymLocKind{$Symbol}{$Loc}}))
17550 $SymSel{$Symbol}{"Loc"} = $Loc;
17551 $SymSel{$Symbol}{"Kind"} = $Kind;
17569 foreach my $Symbol (sort {lc($a) cmp lc($b)} keys(%SymSel))
17571 my $Kind = $SymSel{$Symbol}{"Kind"};
17572 my $Loc = $SymSel{$Symbol}{"Loc"};
17575 my $Desc = getAffectDesc($Level, $Symbol, $Kind, $Loc);
17594 $Affected .= " <symbol name=\"$Symbol\"$Target>\n";
17602 foreach my $Symbol (sort {lc($a) cmp lc($b)} keys(%SymSel))
17604 my $Kind = $SymSel{$Symbol}{"Kind"};
17605 my $Loc = $SymSel{$Symbol}{"Loc"};
17607 my $Desc = getAffectDesc($Level, $Symbol, $Kind, $Loc);
17608 my $S = get_Signature($Symbol, 1);
17610 my $Pos = adjustParamPos(getParamPos($PName, $Symbol, 1), $Symbol, 1);
17651 sub getAffectDesc($$$$)
17652 {
17653 my ($Level, $Symbol, $Kind, $Location) = @_;
17653 my %Problem = %{$CompatProblems{$Level}{$Symbol}{$Kind}{$Location}};
17666 my %SymInfo = %{$CompleteSignature{1}{$Symbol}};
17710 my $PPos = getParamPos($PName, $Symbol, 1);
17713 push(@Sentence, "Field \'".$Location."\' in ".showPos(adjustParamPos($PPos, $Symbol, 1))." parameter");
17716 push(@Sentence, showPos(adjustParamPos($PPos, $Symbol, 1))." parameter");
17760 if($ExtendedSymbols{$Symbol}) {
17801 sub get_XmlSign($$)
17802 {
17803 my ($Symbol, $LibVersion) = @_;
17802 my $Info = $CompleteSignature{$LibVersion}{$Symbol};
17834 foreach my $Symbol (sort keys(%{$CompatProblems{$Level}}))
17836 my ($SN, $SS, $SV) = separate_symbol($Symbol);
17840 $Report .= " <symbol name=\"$Symbol\">\n";
17842 if(not $AddedInt{$Level}{$Symbol})
17844 if(defined $CompleteSignature{1}{$Symbol}
17845 and defined $CompleteSignature{1}{$Symbol}{"Header"})
17847 $P1 = get_XmlSign($Symbol, 1);
17848 $S1 = get_Signature($Symbol, 1);
17850 elsif($Symbol=~/\A(_Z|\?)/) {
17851 $S1 = $tr_name{$Symbol};
17854 if(not $RemovedInt{$Level}{$Symbol})
17856 if(defined $CompleteSignature{2}{$Symbol}
17857 and defined $CompleteSignature{2}{$Symbol}{"Header"})
17859 $P2 = get_XmlSign($Symbol, 2);
17860 $S2 = get_Signature($Symbol, 2);
17862 elsif($Symbol=~/\A(_Z|\?)/) {
17863 $S2 = $tr_name{$Symbol};
18555 foreach my $Symbol (keys(%{$UndefinedSymbols{$LibVersion}{$LibName}}))
18557 if($Symbol_Library{$LibVersion}{$Symbol}
18558 or $DepSymbol_Library{$LibVersion}{$Symbol})
18562 if(index($Symbol, '@')!=-1)
18564 $Symbol=~s/\@/\@\@/;
18565 if($Symbol_Library{$LibVersion}{$Symbol}
18566 or $DepSymbol_Library{$LibVersion}{$Symbol}) {
18570 foreach my $Path (find_SymbolLibs($LibVersion, $Symbol)) {
18677 sub find_SymbolLibs($$)
18678 {
18679 my ($LibVersion, $Symbol) = @_;
18679 if(index($Symbol, "g_")==0 and $Symbol=~/[A-Z]/)
18686 if(my $LibName = $Symbol_Lib_Map{$Symbol})
18693 if(my $SymbolPrefix = getPrefix($Symbol))
18716 if($Symbol=~/\A$Prefix/)
18733 index($Symbol, "\@GLIBC")!=-1)
18805 my ($Symbol, $LibVersion) = @_;
18806 return 0 if(not $Symbol);
18807 if(defined $Symbol_Library{$LibVersion}{$Symbol}
18808 and my $LibName = $Symbol_Library{$LibVersion}{$Symbol})
18810 $Symbol}
18811 and my $Size = $Library_Symbol{$LibVersion}{$LibName}{$Symbol})
18880 foreach my $Symbol (sort @_)
18882 if(index($Symbol, "_Z")==0)
18884 next if($tr_name{$Symbol});
18885 $Symbol=~s/[\@\$]+(.*)\Z//;
18886 push(@MnglNames1, $Symbol);
18888 elsif(index($Symbol, "?")==0)
18890 push(@MnglNames2, $Symbol);
18894 $tr_name{$Symbol} = $Symbol;
18895 $mangled_name_gcc{$Symbol} = $Symbol;
18896 $mangled_name{$LibVersion}{$Symbol} = $Symbol;
18937 sub link_symbol($$$)
18938 {
18939 my ($Symbol, $RunWith, $Deps) = @_;
18938 if(link_symbol_internal($Symbol, $RunWith, \%Symbol_Library)) {
18943 if(link_symbol_internal($Symbol, $RunWith, \%DepSymbol_Library)) {
18952 sub link_symbol_internal($$$)
18953 {
18954 my ($Symbol, $RunWith, $Where) = @_;
18953 return 0 if(not $Where or not $Symbol);
18954 if($Where->{$RunWith}{$Symbol})
18958 if(my $VSym = $SymVer{$RunWith}{$Symbol})
18966 my ($Sym, $Spec, $Ver) = separate_symbol($Symbol);
19047 my ($Ndx, $Symbol) = ($Info[5], $Info[6]);
19050 push(@Imported, $Symbol);
19266 my $Symbol = $1;
19271 $DepSymbol_Library{$LibVersion}{$Symbol} = $Lib_Name;
19272 $DepLibrary_Symbol{$LibVersion}{$Lib_Name}{$Symbol} = 1;
19277 $Symbol_Library{$LibVersion}{$Symbol} = $Lib_Name;
19278 $Library_Symbol{$LibVersion}{$Lib_Name}{$Symbol} = 1;
19281 if(index($Symbol, "_Z")==0 or index($Symbol, "?")==0) {
19433 if(my ($Value, $Size, $Type, $Bind, $Vis, $Ndx, $Symbol) = readline_ELF($_))
19440 $UndefinedSymbols{$LibVersion}{$Lib_Name}{$Symbol} = 0;
19447 $WeakSymbols{$LibVersion}{$Symbol} = 1;
19453 my $Short = $Symbol;
19457 $GlobalDataObject{$LibVersion}{$Symbol} = $Size;
19464 $DepSymbol_Library{$LibVersion}{$Symbol} = $Lib_Name;
19465 $DepLibrary_Symbol{$LibVersion}{$Lib_Name}{$Symbol} = ($Type eq "OBJECT")?-$Size:1;
19470 $Symbol_Library{$LibVersion}{$Symbol} = $Lib_Name;
19471 $Library_Symbol{$LibVersion}{$Lib_Name}{$Symbol} = ($Type eq "OBJECT")?-$Size:1;
19476 $Interface_Value{$LibVersion}{$Symbol} = $Value;
19477 $Value_Interface{$LibVersion}{$Value}{$Symbol} = 1;
19482 if(index($Symbol, "_Z")==0 or index($Symbol, "?")==0) {
19515 foreach my $Symbol (keys(%{$Library_Symbol{$LibVersion}{$Lib_Name}}))
19517 next if(index($Symbol,"\@")==-1);
19518 if(my $Value = $Interface_Value{$LibVersion}{$Symbol})
19522 if($Symbol_SameValue ne $Symbol
19525 $SymVer{$LibVersion}{$Symbol_SameValue} = $Symbol;
19526 $Found{$Symbol} = 1;
19534 foreach my $Symbol (keys(%{$Library_Symbol{$LibVersion}{$Lib_Name}}))
19536 next if(defined $Found{$Symbol});
19537 next if(index($Symbol,"\@\@")==-1);
19539 if($Symbol=~/\A([^\@]*)\@\@/
19542 $SymVer{$LibVersion}{$1} = $Symbol;
19543 $Found{$Symbol} = 1;
19548 foreach my $Symbol (keys(%{$Library_Symbol{$LibVersion}{$Lib_Name}}))
19550 next if(defined $Found{$Symbol});
19551 next if(index($Symbol,"\@")==-1);
19553 if($Symbol=~/\A([^\@]*)\@([^\@]*)/
19556 $SymVer{$LibVersion}{$1} = $Symbol;
19557 $Found{$Symbol} = 1;
20489 foreach my $Symbol (keys(%{$DepSymbols})) {
20490 $DepSymbol_Library{$LibVersion}{$Symbol} = 1;
20590 foreach my $Symbol (keys(%{$Library_Symbol{$LibVersion}{$Lib_Name}}))
20592 $Symbol_Library{$LibVersion}{$Symbol} = $Lib_Name;
20593 if($Library_Symbol{$LibVersion}{$Lib_Name}{$Symbol}<=-1)
20595 $GlobalDataObject{$LibVersion}{$Symbol} = -$Library_Symbol{$LibVersion}{$Lib_Name}{$Symbol};
20599 if(index($Symbol, "_Z")==0 or index($Symbol, "?")==0) {
20607 foreach my $Symbol (keys(%{$DepLibrary_Symbol{$LibVersion}{$Lib_Name}})) {
20608 $DepSymbol_Library{$LibVersion}{$Symbol} = $Lib_Name;
21648 foreach my $Symbol (sort keys(%{$CompleteSignature{1}}))
21650 if(not link_symbol($Symbol, 1, "-Deps"))
21654 if(not symbolFilter($Symbol, 1, "Public", "Binary"))
21658 my $HeaderName = $CompleteSignature{1}{$Symbol}{"Header"};
21663 my $DyLib = $Symbol_Library{1}{$Symbol};
21668 $SymbolHeaderLib{$HeaderName}{$DyLib}{$Symbol} = 1;
21679 foreach my $Symbol (keys(%{$SymbolHeaderLib{$HeaderName}{$DyLib}})) {
21680 $NS_Symbol{select_Symbol_NS($Symbol, 1)}{$Symbol} = 1;
21686 foreach my $Symbol (@SortedInterfaces)
21689 my $Signature = get_Signature($Symbol, 1);
21693 if($Symbol=~/\A(_Z|\?)/)
21696 $SubReport = insertIDs($ContentSpanStart.highLight_Signature_Italic_Color($Signature).$ContentSpanEnd."<br/>\n".$ContentDivStart."<span class='mangled'>[symbol: <b>$Symbol</b>]</span><br/><br/>".$ContentDivEnd."\n");
21699 $SubReport = "<span class='iname'>".$Symbol."</span><br/>\n";
21708 $SubReport = "<span class='iname'>".$Symbol."</span><br/>\n";
23380 foreach my $Symbol (sort keys(%{$CompleteSignature{1}}))
23382 if($CompleteSignature{1}{$Symbol}{"PureVirt"}) {
23385 if($CompleteSignature{1}{$Symbol}{"Private"}) {
23388 if(not $CompleteSignature{1}{$Symbol}{"Header"}) {
23392 $Count += symbolFilter($Symbol, 1, "Affected + InlineVirt", "Binary");