crazy02-not-so.c 598 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. int foo(int *ptr, int i)
  2. {
  3. int *p;
  4. switch (i - i) { // will be optimized to 0
  5. case 0:
  6. return 0;
  7. case 1: // will be optimized away
  8. p = ptr;
  9. do { // will be an unreachable loop
  10. *p++ = 123;
  11. } while (--i);
  12. break;
  13. }
  14. return 1;
  15. }
  16. int bar(int *ptr, int i)
  17. {
  18. int *p;
  19. switch (i - i) { // will be optimized to 0
  20. case 0:
  21. return 0;
  22. case 1: // will be optimized away
  23. // p is uninitialized
  24. do { // will be an unreachable loop
  25. *p++ = 123;
  26. } while (--i);
  27. break;
  28. }
  29. return 1;
  30. }
  31. /*
  32. * check-name: crazy02-not-so.c
  33. * check-command: sparse -Wno-decl $file
  34. */