There was some kind of regression in function pointers handling.
Attached is a file that triggers an assert failure (when run with
e.g. -ast-dump):
Sorry for the big file, but I didn't have the time to strip it.
Here is a two line test case that exposes the bug (which appears
specific to -ast-print/-ast-dump)...
snaroff% cat nuno.c
typedef void func_typedef();
func_typedef xxx;
I'll investigate later. Thanks for the bug,
Fixed,
-Chris
Thank you Chris! However it seems my example file now triggers another assert().
I'm putting it on-line, as it seems to be a good case-study: http://web.ist.utl.pt/nuno.lopes/php_example.c
It fails with 'assert(isa<X>(Val) && "cast<Ty>() argument of incompatible type!"', triggered by FunctionDecl::getNumParams().
There was some kind of regression in function pointers handling.
Attached is a file that triggers an assert failure (when run with
e.g. -ast-dump):
Sorry for the big file, but I didn't have the time to strip it.
Here is a two line test case that exposes the bug (which appears
specific to -ast-print/-ast-dump)...
snaroff% cat nuno.c
typedef void func_typedef();
func_typedef xxx;
I'll investigate later. Thanks for the bug,
Fixed,
-Chris
Thank you Chris! However it seems my example file now triggers another
assert().
I'm putting it on-line, as it seems to be a good case-study: http://web.ist.utl.pt/nuno.lopes/php_example.c
It fails with 'assert(isa<X>(Val) && "cast<Ty>() argument of
incompatible type!"', triggered by FunctionDecl::getNumParams().
OK, so today I had a few minutes to track down the bug. The problem is triggered with the following:
typedef void func_t(int x);
func_t a;