block-labels.c 434 B

123456789101112131415161718192021222324252627
  1. // RUN: %clang_cc1 %s -verify -fblocks -fsyntax-only
  2. void xx();
  3. int a() {
  4. A:
  5. if (1) xx();
  6. return ^{
  7. A: return 1;
  8. }();
  9. }
  10. int b() {
  11. A: return ^{int a; A:return 1;}();
  12. }
  13. int d() {
  14. A: return ^{int a; A: a = ^{int a; A:return 1;}() + ^{int b; A:return 2;}(); return a; }();
  15. }
  16. int c() {
  17. goto A; // expected-error {{use of undeclared label 'A'}}
  18. return ^{
  19. A:
  20. return 1;
  21. }();
  22. }