diff options
author | Andrey Ponomarenko <aponomarenko@rosalab.ru> | 2013-06-28 17:42:57 +0400 |
---|---|---|
committer | Andrey Ponomarenko <aponomarenko@rosalab.ru> | 2013-06-28 17:42:57 +0400 |
commit | 082b4d0f5f7ff57bbb56a8e965b3ecf3182179b3 (patch) | |
tree | 71d199303ea14d1f42777a904a61fa880b2c502f | |
parent | a111a1891d5874c4f828cc05eb3c2a558c107d7c (diff) | |
download | abi-compliance-checker-082b4d0f5f7ff57bbb56a8e965b3ecf3182179b3.tar.gz |
Corrected checks for d-tors
-rw-r--r-- | INSTALL | 2 | ||||
-rwxr-xr-x | abi-compliance-checker.pl | 27 | ||||
-rw-r--r-- | doc/Changes.html | 10 | ||||
-rw-r--r-- | doc/Readme.html | 6 |
4 files changed, 24 insertions, 21 deletions
@@ -9,7 +9,7 @@ All rights reserved. RELEASE INFORMATION Project: ABI Compliance Checker (ACC) -Version: 1.99.5 +Version: 1.99.6 Date: 2013-06-29 diff --git a/abi-compliance-checker.pl b/abi-compliance-checker.pl index 77cd5ef..c325c1a 100755 --- a/abi-compliance-checker.pl +++ b/abi-compliance-checker.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl ########################################################################### -# ABI Compliance Checker (ACC) 1.99.5 +# ABI Compliance Checker (ACC) 1.99.6 # A tool for checking backward compatibility of a C/C++ library API # # Copyright (C) 2009-2010 The Linux Foundation @@ -64,7 +64,7 @@ use Storable qw(dclone); use Data::Dumper; use Config; -my $TOOL_VERSION = "1.99.5"; +my $TOOL_VERSION = "1.99.6"; my $ABI_DUMP_VERSION = "3.2"; my $OLDEST_SUPPORTED_VERSION = "1.18"; my $XML_REPORT_VERSION = "1.1"; @@ -2553,6 +2553,7 @@ sub createType($$) my ($Attr, $LibVersion) = @_; my $NewId = ++$MAX_ID; + $Attr->{"Tid"} = $NewId; $TypeInfo{$Version}{$NewId} = $Attr; $TName_Tid{$Version}{formatName($Attr->{"Name"}, "T")} = $NewId; @@ -9285,7 +9286,7 @@ sub prepareSymbols($) { if(defined $SymbolInfo{$LibVersion}{$InfoId}{"Param"} and keys(%{$SymbolInfo{$LibVersion}{$InfoId}{"Param"}}) - and $SymbolInfo{$LibVersion}{$InfoId}{"Param"}{0}{"name"}) + and $SymbolInfo{$LibVersion}{$InfoId}{"Param"}{0}{"name"} ne "this") { # support for old GCC < 4.5: skip artificial ~dtor(int __in_chrg) # + support for old ABI dumps next; @@ -11724,12 +11725,12 @@ sub mergeTypes($$$) } if(my $RenamedTo = isRenamed($Member_Pos, \%Type1_Pure, 1, \%Type2_Pure, 2)) { # renamed - $RenamedField{$Member_Pos}=$RenamedTo; - $RenamedField_Rev{$NameToPosB{$RenamedTo}}=$Member_Name; + $RenamedField{$Member_Pos} = $RenamedTo; + $RenamedField_Rev{$NameToPosB{$RenamedTo}} = $Member_Name; } else { # removed - $RemovedField{$Member_Pos}=1; + $RemovedField{$Member_Pos} = 1; } } elsif($Type1_Pure{"Type"} eq "Enum") @@ -11743,16 +11744,16 @@ sub mergeTypes($$$) my $MemberPair_Pos_Rev = find_MemberPair_Pos_byName($RenamedTo, \%Type1_Pure); if($MemberPair_Pos_Rev eq "lost") { - $RenamedField{$Member_Pos}=$RenamedTo; - $RenamedField_Rev{$NameToPosB{$RenamedTo}}=$Member_Name; + $RenamedField{$Member_Pos} = $RenamedTo; + $RenamedField_Rev{$NameToPosB{$RenamedTo}} = $Member_Name; } else { - $RemovedField{$Member_Pos}=1; + $RemovedField{$Member_Pos} = 1; } } else { # removed - $RemovedField{$Member_Pos}=1; + $RemovedField{$Member_Pos} = 1; } } } @@ -11795,7 +11796,7 @@ sub mergeTypes($$$) next if(not $Member_Name); if(not $RemovedField{$Member_Pos}) { # old type without removed fields - $RelPos{1}{$Member_Name}=$Pos; + $RelPos{1}{$Member_Name} = $Pos; $RelPosName{1}{$Pos} = $Member_Name; $AbsPos{1}{$Pos++} = $Member_Pos; } @@ -11807,7 +11808,7 @@ sub mergeTypes($$$) next if(not $Member_Name); if(not $AddedField{$Member_Pos}) { # new type without added fields - $RelPos{2}{$Member_Name}=$Pos; + $RelPos{2}{$Member_Name} = $Pos; $RelPosName{2}{$Pos} = $Member_Name; $AbsPos{2}{$Pos++} = $Member_Pos; } @@ -11861,6 +11862,7 @@ sub mergeTypes($$$) { # check older fields, public and private my $Member_Name = $Type1_Pure{"Memb"}{$Member_Pos}{"name"}; next if(not $Member_Name); + next if($Member_Name eq "_vptr"); if(my $RenamedTo = $RenamedField{$Member_Pos}) { # renamed if(defined $Constants{2}{$Member_Name}) @@ -12219,6 +12221,7 @@ sub mergeTypes($$$) { # checking added members, public and private my $Member_Name = $Type2_Pure{"Memb"}{$Member_Pos}{"name"}; next if(not $Member_Name); + next if($Member_Name eq "_vptr"); if($AddedField{$Member_Pos}) { # added if($Type2_Pure{"Type"}=~/\A(Struct|Class)\Z/) diff --git a/doc/Changes.html b/doc/Changes.html index 4774356..d977ce2 100644 --- a/doc/Changes.html +++ b/doc/Changes.html @@ -21,7 +21,7 @@ </style> <script src="/load.php?debug=false&lang=en&modules=startup&only=scripts&skin=monobook&*"></script> <script>if(window.mw){ - mw.config.set({"wgCanonicalNamespace": "", "wgCanonicalSpecialPageName": false, "wgNamespaceNumber": 0, "wgPageName": "ABI_compliance_checker_Downloads", "wgTitle": "ABI Compliance Checker Downloads", "wgCurRevisionId": 8297, "wgArticleId": 2293, "wgIsArticle": true, "wgAction": "view", "wgUserName": null, "wgUserGroups": ["*"], "wgCategories": ["ABI Compliance Checker"], "wgBreakFrames": false, "wgRestrictionEdit": [], "wgRestrictionMove": []}); + mw.config.set({"wgCanonicalNamespace": "", "wgCanonicalSpecialPageName": false, "wgNamespaceNumber": 0, "wgPageName": "ABI_compliance_checker_Downloads", "wgTitle": "ABI Compliance Checker Downloads", "wgCurRevisionId": 8299, "wgArticleId": 2293, "wgIsArticle": true, "wgAction": "view", "wgUserName": null, "wgUserGroups": ["*"], "wgCategories": ["ABI Compliance Checker"], "wgBreakFrames": false, "wgRestrictionEdit": [], "wgRestrictionMove": []}); } </script><script>if(window.mw){ mw.loader.load(["mediawiki.page.startup"]); @@ -43,7 +43,7 @@ </p> <table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> <ul> -<li class="toclevel-1 tocsection-1"><a href="#Version_1.99.5_.28June_29.2C_2013.29"><span class="tocnumber">1</span> <span class="toctext">Version 1.99.5 (June 29, 2013)</span></a></li> +<li class="toclevel-1 tocsection-1"><a href="#Version_1.99.6_.28June_29.2C_2013.29"><span class="tocnumber">1</span> <span class="toctext">Version 1.99.6 (June 29, 2013)</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#Version_1.99.1_.28June_07.2C_2013.29"><span class="tocnumber">2</span> <span class="toctext">Version 1.99.1 (June 07, 2013)</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#Version_1.99_.28May_24.2C_2013.29"><span class="tocnumber">3</span> <span class="toctext">Version 1.99 (May 24, 2013)</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#Version_1.98.8_.28February_07.2C_2013.29"><span class="tocnumber">4</span> <span class="toctext">Version 1.98.8 (February 07, 2013)</span></a></li> @@ -91,8 +91,8 @@ <li class="toclevel-1 tocsection-46"><a href="#Version_1.0_.28July_31.2C_2009.29"><span class="tocnumber">46</span> <span class="toctext">Version 1.0 (July 31, 2009)</span></a></li> </ul> </td></tr></table> -<h2> <span class="mw-headline" id="Version_1.99.5_.28June_29.2C_2013.29"> Version 1.99.5 (June 29, 2013) </span></h2> -<p><a rel="nofollow" class="external text" href="https://github.com/lvc/abi-compliance-checker/archive/1.99.5.tar.gz">abi-compliance-checker-1.99.5.tar.gz</a><br /> +<h2> <span class="mw-headline" id="Version_1.99.6_.28June_29.2C_2013.29"> Version 1.99.6 (June 29, 2013) </span></h2> +<p><a rel="nofollow" class="external text" href="https://github.com/lvc/abi-compliance-checker/archive/1.99.5.tar.gz">abi-compliance-checker-1.99.6.tar.gz</a><br /> </p><p><b>ACC 2.0</b> pre-release. </p><p>This is a bug-fix release with a few new features. </p> @@ -1037,5 +1037,5 @@ Template argument size: 0/2097152 bytes Expensive parser function count: 0/100 --> -<!-- Saved in parser cache with key rasispdb:pcache:idhash:2293-0!*!0!!en!*!* and timestamp 20130628113102 --> +<!-- Saved in parser cache with key rasispdb:pcache:idhash:2293-0!*!0!!en!*!* and timestamp 20130628133914 --> </div></div></div></div></div></body></html>
\ No newline at end of file diff --git a/doc/Readme.html b/doc/Readme.html index d203751..c82576e 100644 --- a/doc/Readme.html +++ b/doc/Readme.html @@ -21,7 +21,7 @@ </style> <script src="/load.php?debug=false&lang=en&modules=startup&only=scripts&skin=monobook&*"></script> <script>if(window.mw){ - mw.config.set({"wgCanonicalNamespace": "", "wgCanonicalSpecialPageName": false, "wgNamespaceNumber": 0, "wgPageName": "ABI_compliance_checker", "wgTitle": "ABI Compliance Checker", "wgCurRevisionId": 8296, "wgArticleId": 2292, "wgIsArticle": true, "wgAction": "view", "wgUserName": null, "wgUserGroups": ["*"], "wgCategories": ["ABI Compliance Checker"], "wgBreakFrames": false, "wgRestrictionEdit": [], "wgRestrictionMove": []}); + mw.config.set({"wgCanonicalNamespace": "", "wgCanonicalSpecialPageName": false, "wgNamespaceNumber": 0, "wgPageName": "ABI_compliance_checker", "wgTitle": "ABI Compliance Checker", "wgCurRevisionId": 8298, "wgArticleId": 2292, "wgIsArticle": true, "wgAction": "view", "wgUserName": null, "wgUserGroups": ["*"], "wgCategories": ["ABI Compliance Checker"], "wgBreakFrames": false, "wgRestrictionEdit": [], "wgRestrictionMove": []}); } </script><script>if(window.mw){ mw.loader.load(["mediawiki.page.startup"]); @@ -93,7 +93,7 @@ <h2> <span class="mw-headline" id="Downloads"> Downloads </span></h2> <h3> <span class="mw-headline" id="Releases"> Releases </span></h3> <p>All releases can be downloaded from <b><a href="Changes.html" title="ABI Compliance Checker Downloads">this page</a></b> or <b><a rel="nofollow" class="external text" href="https://github.com/lvc/abi-compliance-checker/">github.com</a></b>. -</p><p>Latest release: <a rel="nofollow" class="external text" href="https://github.com/lvc/abi-compliance-checker/archive/1.99.5.tar.gz">1.99.5</a> +</p><p>Latest release: <a rel="nofollow" class="external text" href="https://github.com/lvc/abi-compliance-checker/archive/1.99.6.tar.gz">1.99.6</a> </p> <h3> <span class="mw-headline" id="Git"> Git </span></h3> <p>Read-only access to the latest development version:<br /> @@ -499,5 +499,5 @@ Template argument size: 0/2097152 bytes Expensive parser function count: 0/100 --> -<!-- Saved in parser cache with key rasispdb:pcache:idhash:2292-0!*!0!!en!*!* and timestamp 20130628113031 --> +<!-- Saved in parser cache with key rasispdb:pcache:idhash:2292-0!*!0!!en!*!* and timestamp 20130628133842 --> </div></div></div></div></div></body></html>
\ No newline at end of file |