(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
reassoc-43.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdump-tree-reassoc -w" } */
       3  
       4  typedef union tree_node *tree;
       5  enum cpp_ttype { CPP_COLON, CPP_SEMICOLON, CPP_CLOSE_BRACE, CPP_COMMA };
       6  enum rid { RID_STATIC = 0, RID_ATTRIBUTE, };
       7  typedef struct c_token
       8  {
       9    enum cpp_ttype type:8;
      10  }
      11  c_token;
      12  typedef struct c_parser
      13  {
      14    c_token tokens[2];
      15    short tokens_avail;
      16  }
      17  c_parser;
      18  __inline__ c_token *
      19  c_parser_peek_token (c_parser * parser)
      20  {
      21    if (parser->tokens_avail == 0)
      22      {
      23        parser->tokens_avail = 1;
      24      }
      25    return &parser->tokens[0];
      26  }
      27  
      28  __inline__ unsigned char
      29  c_parser_next_token_is (c_parser * parser, enum cpp_ttype type)
      30  {
      31    return c_parser_peek_token (parser)->type == type;
      32  }
      33  
      34  void
      35  c_parser_translation_unit (c_parser * parser)
      36  {
      37    tree prefix_attrs;
      38    tree all_prefix_attrs;
      39    while (1)
      40      {
      41        if (c_parser_next_token_is (parser, CPP_COLON)
      42  	  || c_parser_next_token_is (parser, CPP_COMMA)
      43  	  || c_parser_next_token_is (parser, CPP_SEMICOLON)
      44  	  || c_parser_next_token_is (parser, CPP_CLOSE_BRACE)
      45  	  || c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE))
      46  	{
      47  	  if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE))
      48  	    all_prefix_attrs =
      49  	      chainon (c_parser_attributes (parser), prefix_attrs);
      50  	}
      51      }
      52  }
      53  /* { dg-final { scan-tree-dump-not "\[ (\]0 != 0" "reassoc2"} } */