[cfe-dev] regression with function pointers

Nuno Lopes nunoplopes at sapo.pt
Wed Dec 5 14:32:08 PST 2007

>>>> 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 :P
> 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;

The patch to fix it is attached.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: diff.txt
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20071205/5f01e562/attachment.txt>

More information about the cfe-dev mailing list