modernc.org/ccgo/v3@v3.16.14/lib/testdata/bug/init.c (about)

     1  typedef struct TSLexer TSLexer;
     2  
     3  struct TSLexer {
     4    int lookahead;
     5    int result_symbol;
     6    void (*advance)();
     7    void (*mark_end)();
     8    void (*get_column)();
     9    void (*is_at_included_range_start)();
    10    void (*eof)();
    11  };
    12  
    13  void f1() {}
    14  void f2() {}
    15  void f3() {}
    16  void f4() {}
    17  void f5() {}
    18  
    19  int main() {
    20    TSLexer l = {
    21        .advance = f1,
    22        .mark_end = f2,
    23        .get_column = f3,
    24        .eof = f5,
    25        .is_at_included_range_start = f4,
    26        .lookahead = 0,
    27        .result_symbol = 0,
    28      };
    29    if (l.lookahead != 0) {
    30  	  return __LINE__;
    31    }
    32  
    33    if (l.result_symbol != 0) {
    34  	  return __LINE__;
    35    }
    36  
    37    if (l.advance != f1) {
    38  	  return __LINE__;
    39    }
    40  
    41    if (l.mark_end != f2) {
    42  	  return __LINE__;
    43    }
    44  
    45    if (l.get_column != f3) {
    46  	  return __LINE__;
    47    }
    48  
    49    if (l.is_at_included_range_start != f4) {
    50  	  return __LINE__;
    51    }
    52  
    53    if (l.eof != f5) {
    54  	  return __LINE__;
    55    }
    56  
    57    return 0;
    58  }