(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
c90-const-expr-1.c
       1  /* Test for constraints on constant expressions.  In C90 it is clear that
       2     certain constructs are not permitted in unevaluated parts of an
       3     expression (except in sizeof); in C99 it might fall within implementation
       4     latitude.
       5  */
       6  /* Origin: Joseph Myers <jsm28@cam.ac.uk>; inspired by
       7     http://deja.com/getdoc.xp?AN=524271595&fmt=text by Peter Seebach.
       8  */
       9  /* { dg-do compile } */
      10  /* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
      11  
      12  extern int bar (void);
      13  
      14  void
      15  foo (void)
      16  {
      17    int i;
      18    static int j = (1 ? 0 : (i = 2)); /* { dg-error "initial" "assignment" } */
      19    static int k = (1 ? 0 : ++i); /* { dg-error "initial" "increment" } */
      20    static int l = (1 ? 0 : --i); /* { dg-error "initial" "decrement" } */
      21    static int m = (1 ? 0 : bar ()); /* { dg-error "initial" "function call" } */
      22    static int n = (1 ? 0 : (2, 3)); /* { dg-error "initial" "comma" } */
      23  }