root/usr/src/tools/smatch/src/validation/crazy02-not-so.c
int foo(int *ptr, int i)
{
        int *p;

        switch (i - i) {                // will be optimized to 0
        case 0:
                return 0;
        case 1:                         // will be optimized away
                p = ptr;
                do {                    // will be an unreachable loop
                        *p++ = 123;
                } while (--i);
                break;
        }

        return 1;
}

int bar(int *ptr, int i)
{
        int *p;

        switch (i - i) {                // will be optimized to 0
        case 0:
                return 0;
        case 1:                         // will be optimized away
                                        // p is uninitialized
                do {                    // will be an unreachable loop
                        *p++ = 123;
                } while (--i);
                break;
        }

        return 1;
}

/*
 * check-name: crazy02-not-so.c
 * check-command: sparse -Wno-decl $file
 */