Closed john-h-kastner closed 3 years ago
Another aspect to this issue. Consider the same example with only one call to foo
in the macro.
#define buz foo(i);
_Itype_for_any(T) void foo(void *x : itype(_Ptr<T>));
void test() {
int *i = 0;
buz
}
This runs without error, but inserting the type variable fails silently because the function call is in a macro. This is an error when converting with -addcr
because generic functions are required to have argument lists when called in a checked scope.
An issue encountered by aravind while evaluating
3c
on icecast.The conversion gives an assertion error:
I 've found a minimal example that gives the same crash.
I'm not sure that this is exactly the same issue that's showing up in icecast, but the root of the problems should be the same. The type variable insertion code doesn't do a good job handling any possible macros around polymorphic functions.