Return value type pattern does not enforce equality
In the following code, we should get identical behaviour irrespective of how the preprocessor condition is set:
#if 1
int{n} foo ( int n)
#else
int{m} foo ( int n) | _eq_SxS_(m, n)
#endif
{
return _add_SxS_(n,1);
}
int main()
{
return foo (42);
}
Both versions should fail but only the one with an explicit equality does, at least in sac2c 2.0.0-Tintigny-136-g7a4cd.