http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59448
--- Comment #2 from algrant at acm dot org --- Just realised that that last example is bogus, it should read: inline int const *makedep(int const *a, ...) { return a; } // variadic int f3(int const *p, int const *q) { int flag = *p; return flag ? *makedep(q, flag) : 0; } In C++, makedep could be a template - the counterpart of kill_dependency.