aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Ponomarenko <aponomarenko@odin.com>2015-11-12 15:49:25 +0300
committerAndrey Ponomarenko <aponomarenko@odin.com>2015-11-12 15:49:25 +0300
commitdfd124548b3439a0a40764128a7f6506f68ab4ee (patch)
treeec2a3965b51800dfc7008d51e62e5e10cbfaa467
parent1b597c3d39a3d4c9ae37f618a0db277021d56c95 (diff)
downloadabi-compliance-checker-dfd124548b3439a0a40764128a7f6506f68ab4ee.tar.gz
Fixed support for old ABI dumps (formatting of data types).
-rw-r--r--INSTALL4
-rw-r--r--abi-compliance-checker.pl15
2 files changed, 12 insertions, 7 deletions
diff --git a/INSTALL b/INSTALL
index f149315..c402723 100644
--- a/INSTALL
+++ b/INSTALL
@@ -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;
}
}