label-stmt-expr2.c 898 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. static int foo(void)
  2. {
  3. goto l;
  4. ({
  5. l:
  6. 0;
  7. });
  8. goto l;
  9. }
  10. static void bar(void)
  11. {
  12. goto l;
  13. goto l;
  14. ({
  15. l:
  16. 0;
  17. });
  18. }
  19. static void baz(void)
  20. {
  21. ({
  22. l:
  23. 0;
  24. });
  25. goto l;
  26. goto l;
  27. }
  28. /*
  29. * check-name: label-stmt-expr2
  30. *
  31. * check-error-start
  32. label-stmt-expr2.c:3:9: error: label 'l' used outside statement expression
  33. label-stmt-expr2.c:5:1: label 'l' defined here
  34. label-stmt-expr2.c:8:9: error: label 'l' used outside statement expression
  35. label-stmt-expr2.c:5:1: label 'l' defined here
  36. label-stmt-expr2.c:13:9: error: label 'l' used outside statement expression
  37. label-stmt-expr2.c:16:1: label 'l' defined here
  38. label-stmt-expr2.c:27:9: error: label 'l' used outside statement expression
  39. label-stmt-expr2.c:24:1: label 'l' defined here
  40. label-stmt-expr2.c:28:9: error: label 'l' used outside statement expression
  41. label-stmt-expr2.c:24:1: label 'l' defined here
  42. * check-error-end
  43. */