diff options
author | Andrey Ponomarenko <aponomarenko@rosalab.ru> | 2013-08-01 18:53:30 +0400 |
---|---|---|
committer | Andrey Ponomarenko <aponomarenko@rosalab.ru> | 2013-08-01 18:53:30 +0400 |
commit | ac687f969ca8bee69e9eb5e3267097f679cf283b (patch) | |
tree | ef4b0ed10fbe8e48c3186fb6d095e39effaf5b3b /modules/Internals | |
parent | f442c17449649492e74594fcd3d7fc3b3965bfc4 (diff) | |
download | abi-compliance-checker-ac687f969ca8bee69e9eb5e3267097f679cf283b.tar.gz |
Support for incomplete ABI dumps
Diffstat (limited to 'modules/Internals')
-rw-r--r-- | modules/Internals/CallConv.pm | 12 |
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); } } |