Minimal example:
void rec(int a, int b, int c)
{
if (a == 0)
return;
else {
rec(a - 1, b, c);
return;
}
}
int main()
{
rec(1, 2, 3);
}
[STACKMAPS CHECK] Checking stackmaps for main_aarch64_aligned.out main_x86_64_aligned.out
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[1]: Entering directory '/home/blackgeorge/Documents/phd/unified_abi/stack-metadata'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/blackgeorge/Documents/phd/unified_abi/stack-metadata'
WARNING: rec: callsite 0, value locations 0/0 have different location type (3 vs. 1)
WARNING: rec: callsite 0, value locations 0/0 have different location offset or different constant (-40 vs. 0)
WARNING: rec: callsite 0, value locations 1/1 have different location type (1 vs. 3)
WARNING: rec: callsite 0, value locations 1/1 have different location offset or different constant (0 vs. -40)
ERROR: stackmaps in 'main_aarch64_aligned.out' & 'main_x86_64_aligned.out' differ - different stack layout!
make: *** [../../common/common.mk:193: stackmaps-check] Error 1
Minimal example: