Discussed yesterday with rikka on IRC.
In the example of the test we call CheckFunctionCall with 'a' being a dependent type, C is not able to handle that correctly and we hit an assertion later on in the code.
(gdb) p TheCall->dump()
CallExpr 0x807dc07e0 'double'
-ImplicitCastExpr 0x807dc07c8 'double (*)(double)' <FunctionToPointerDecay> |
`-DeclRefExpr 0x807dc0750 'double (double)' Function 0x807d6b8c0 'fabs' 'double (double)' |
`-TypoExpr 0x807dc0790 '<dependent type>' lvalue
Force a call to CorrectDelayedTypoExpr() before we go through checkFunctionCall() to avoid the issue.
Do this only in !C++ because C++ is able ho handle dependent types properly.