https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98682

            Bug ID: 98682
           Summary: g++ allows goto inside statement expr
           Product: gcc
           Version: 10.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: nbkolchin at gmail dot com
  Target Milestone: ---

The following obviously incorrect program compiles without error under g++:

#include <stdio.h>

int main(int argc, char** argv)
{
    goto L_bug;
    printf("%s, %s %s\n", "Hello", ({ L_bug: ; "world!";}), "What?");
}

gcc produces error: "error: jump into statement expression".

Tested under gcc versions: 6.3.0, 7.5.0, 10.2.0.

This behaviour contradicts with documentation: "Jumping into a statement
expression with goto or using a switch statement outside the statement
expression with a case or default label inside the statement expression is not
permitted."

Reply via email to