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

            Bug ID: 69202
           Summary: semicolon at end of expression statement
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: timeraider at gmx dot at
  Target Milestone: ---
            Target: x86

Expression statements consist of an optional expression and a semicolon at the
end, according to the C standard.

Compound statements in expressions are a gcc extension. The site
<url>https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html</url> states that
"The last thing in the compound statement should be an expression followed by a
semicolon". But when looking into the header file
'./arch/x86/include/asm/pgtable_types.h' of the Linux kernel (version 4.1) the
following source code can be found 
static inline pmd_t native_make_pmd(pmdval_t val)
{
        return (pmd_t) { val };
}
which has no semicolon after val. But there are no parsing errors shown for
this file. Is the documentation wrong here or the implementation?

Reply via email to