diff options
author | Andrey Ponomarenko <aponomarenko@odin.com> | 2015-11-12 15:49:25 +0300 |
---|---|---|
committer | Andrey Ponomarenko <aponomarenko@odin.com> | 2015-11-12 15:49:25 +0300 |
commit | dfd124548b3439a0a40764128a7f6506f68ab4ee (patch) | |
tree | ec2a3965b51800dfc7008d51e62e5e10cbfaa467 | |
parent | 1b597c3d39a3d4c9ae37f618a0db277021d56c95 (diff) | |
download | abi-compliance-checker-dfd124548b3439a0a40764128a7f6506f68ab4ee.tar.gz |
Fixed support for old ABI dumps (formatting of data types).
-rw-r--r-- | INSTALL | 4 | ||||
-rw-r--r-- | abi-compliance-checker.pl | 15 |
2 files changed, 12 insertions, 7 deletions
@@ -9,8 +9,8 @@ All rights reserved. RELEASE INFORMATION Project: ABI Compliance Checker (ACC) -Version: 1.99.14.1 -Date: 2015-11-11 +Version: 1.99.14.2 +Date: 2015-11-12 This file explains how to install and setup environment diff --git a/abi-compliance-checker.pl b/abi-compliance-checker.pl index dcc2747..e9a1c2b 100644 --- a/abi-compliance-checker.pl +++ b/abi-compliance-checker.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl ########################################################################### -# ABI Compliance Checker (ABICC) 1.99.14.1 +# ABI Compliance Checker (ABICC) 1.99.14.2 # A tool for checking backward compatibility of a C/C++ library API # # Copyright (C) 2009-2011 Institute for System Programming, RAS @@ -64,7 +64,7 @@ use Storable qw(dclone); use Data::Dumper; use Config; -my $TOOL_VERSION = "1.99.14.1"; +my $TOOL_VERSION = "1.99.14.2"; my $ABI_DUMP_VERSION = "3.2"; my $XML_REPORT_VERSION = "1.2"; my $XML_ABI_DUMP_VERSION = "1.2"; @@ -7629,7 +7629,7 @@ sub formatName($$) } } - $N=~s/,/, /g; + $N=~s/,([^ ])/, $1/g; return ($Cache{"formatName"}{$_[1]}{$_[0]} = $N); } @@ -20230,7 +20230,7 @@ sub read_ABI_Dump($$) } foreach my $TypeId (sort {int($a)<=>int($b)} keys(%{$TypeInfo{$LibVersion}})) - { # order is important + { # NOTE: order is important if(defined $TypeInfo{$LibVersion}{$TypeId}{"BaseClass"}) { # support for old ABI dumps < 2.0 (ACC 1.22) foreach my $BId (keys(%{$TypeInfo{$LibVersion}{$TypeId}{"BaseClass"}})) @@ -20256,6 +20256,10 @@ sub read_ABI_Dump($$) if(not defined $TypeInfo{$LibVersion}{$TypeId}{"Tid"}) { $TypeInfo{$LibVersion}{$TypeId}{"Tid"} = $TypeId; } + + # support for old formatting of type names + $TypeInfo{$LibVersion}{$TypeId}{"Name"} = formatName($TypeInfo{$LibVersion}{$TypeId}{"Name"}, "T"); + my %TInfo = %{$TypeInfo{$LibVersion}{$TypeId}}; if(defined $TInfo{"Base"}) { @@ -20289,6 +20293,7 @@ sub read_ABI_Dump($$) { # fix ABI dump delete($TypeInfo{$LibVersion}{$TypeId}{"BaseType"}); } + if($TInfo{"Type"} eq "Typedef" and not $TInfo{"Artificial"}) { if(my $BTid = $TInfo{"BaseType"}) @@ -20310,7 +20315,7 @@ sub read_ABI_Dump($$) } if(not $TName_Tid{$LibVersion}{$TInfo{"Name"}}) { # classes: class (id1), typedef (artificial, id2 > id1) - $TName_Tid{$LibVersion}{formatName($TInfo{"Name"}, "T")} = $TypeId; + $TName_Tid{$LibVersion}{$TInfo{"Name"}} = $TypeId; } } |