http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55018
--- Comment #5 from Nicolas Morey-Chaisemartin <nmorey at kalray dot eu> 2012-10-22 08:48:52 UTC --- It does if it takes occurrence as a parameter: #include <stdio.h> extern void myFunc(int); void Sender_signal(int Connect) { int State = 3; int occurrence = 0; if (Connect) { State = 0; } start: if (Connect) { goto start; } occurrence++; if(State != 2){ myFunc(occurrence); } goto start; }