aboutsummaryrefslogtreecommitdiff
path: root/modules/Internals
diff options
context:
space:
mode:
authorAndrey Ponomarenko <aponomarenko@rosalab.ru>2013-08-01 18:53:30 +0400
committerAndrey Ponomarenko <aponomarenko@rosalab.ru>2013-08-01 18:53:30 +0400
commitac687f969ca8bee69e9eb5e3267097f679cf283b (patch)
treeef4b0ed10fbe8e48c3186fb6d095e39effaf5b3b /modules/Internals
parentf442c17449649492e74594fcd3d7fc3b3965bfc4 (diff)
downloadabi-compliance-checker-ac687f969ca8bee69e9eb5e3267097f679cf283b.tar.gz
Support for incomplete ABI dumps
Diffstat (limited to 'modules/Internals')
-rw-r--r--modules/Internals/CallConv.pm12
1 files changed, 12 insertions, 0 deletions
diff --git a/modules/Internals/CallConv.pm b/modules/Internals/CallConv.pm
index 70582b2..a333a92 100644
--- a/modules/Internals/CallConv.pm
+++ b/modules/Internals/CallConv.pm
@@ -941,6 +941,12 @@ sub getAlignment_Model($$$)
elsif($TInfo->{$Tid}{"Type"} eq "Array")
{
my %Base = get_OneStep_BaseType($Tid, $TInfo);
+
+ if($Base{"Tid"} eq $Tid)
+ { # emergency exit
+ return 0;
+ }
+
return getAlignment_Model($Base{"Tid"}, $TInfo, $Arch);
}
elsif($TInfo->{$Tid}{"Type"}=~/Intrinsic|Enum|Pointer|FuncPtr/)
@@ -950,6 +956,12 @@ sub getAlignment_Model($$$)
else
{
my %PureType = get_PureType($Tid, $TInfo);
+
+ if($PureType{"Tid"} eq $Tid)
+ { # emergency exit
+ return 0;
+ }
+
return getAlignment_Model($PureType{"Tid"}, $TInfo, $Arch);
}
}