[cfe-dev] Fwd: Objective-C in `goto` label block.

Joe Groff arcata at gmail.com
Fri Feb 22 15:35:04 PST 2013


On Thu, Feb 21, 2013 at 7:24 PM, Hoon Hwangbo <drawtree at me.com> wrote:

> Hello.
>
> I am testing `goto` with Objective-C (ARC enabled).
> And I discovered Objective-C object cannot be exist under `goto` label.
>
>                         {
>                                 AA*     a1;                     //
>  Fine.
>
>                         LABEL3:
>                                 AA*     a2;                     //
>  Compiler error: "Expected expression".
>                         }
>

This is a quirk of standard C99 grammar that isn't Objective-C specific—a
label must be followed by a *statement*, not a declaration. This code is
invalid C, for instance:

void foo() {
foo:
  int x;
}

Putting an empty statement after the label works around it:

void foo() {
foo:;
  int x;
}

-Joe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130222/affafc47/attachment.html>


More information about the cfe-dev mailing list