Package: cxref Version: 1.6c-3 Severity: normal Greetings,
When cxref encounters a function definition that contains a pointer to function in the arguments, it segfaults. I have included a smal test file that demonstrates what I'm seeing. The command line I'm using to reproduce this is: cxref -xref -CPP "-E -CC -dD -dI" cxref-bomb.c Trying to use cxref-cpp prevents the segfault, but output is empty except for the default header from cxref. Switching the comment from the int (*f)(int,int) to the int f is enough to get cxref through without segfaulting. I've spent some time trying to get a handle on the fault, but I seems to lead to the lexer or more likely the parser. If I get some time I'll try to dig deeper on this. Maybe later this month. Thanks for your time and efforts -John -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (900, 'unstable'), (800, 'testing'), (500, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-2-amd64 (SMP w/6 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages cxref depends on: ii debconf [debconf-2.0] 1.5.42 ii gcc 4:4.6.3-4 ii libc6 2.13-27 cxref recommends no packages. Versions of packages cxref suggests: ii cxref-doc 1.6c-3 ii iceweasel [www-browser] 10.0.3esr-3 ii lynx-cur [www-browser] 2.8.8dev.12-2 ii texlive-binaries 2011.20120328-1 -- Configuration Files: /etc/cxref/config changed [not included] /etc/cxref/cxref-cpp.defines changed [not included]
/* cxref-bomb.c */ #include <stdio.h> int f1 (a, b) int a, b; { return a + b; } int f2 (a, b) int a, b; { return a * b; } int f3 (a, b, f) int a, b; int (*f)(int, int); /* int f;*/ { return f(a, b); } int main (argc, argv) int argc; char *argv[]; { int d = 1, e =2; int g, h; int (*fp)(int,int); /* g = f3(d, e, f1); h = f3(d, e, f2);*/ fp = f1; g = fp(d, e); fp = f2; h = fp(d, e); printf ("d=%d e=%d d+e=g=%d d*e=h=%d\n", d, e, g, h); return 0; }