(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
sync-fetch.c
       1  /* PR c/69405 - [6 Regression] ICE in c_tree_printer on an invalid
       2     __atomic_fetch_add */
       3  /* Test to verify that the diagnostic doesn't cause an ICE when any
       4     of the arguments to __atomic_fetch_OP is undeclared.  */
       5  /* { dg-do compile } */
       6  
       7  void test_add_undeclared_first_arg (void)
       8  {
       9    int a = 0;
      10    __atomic_fetch_add (&a, &b, 0);   /* { dg-error ".b. undeclared" } */
      11  }
      12  
      13  void test_sub_undeclared_first_arg (void)
      14  {
      15    int a = 0;
      16    __atomic_fetch_sub (&a, &b, 0);      /* { dg-error ".b. undeclared" } */
      17  }
      18  
      19  void test_or_undeclared_first_arg (void)
      20  {
      21    int a = 0;
      22    __atomic_fetch_or (&a, &b, 0);      /* { dg-error ".b. undeclared" } */
      23  }
      24  
      25  void test_and_undeclared_first_arg (void)
      26  {
      27    int a = 0;
      28    __atomic_fetch_and (&a, &b, 0);      /* { dg-error ".b. undeclared" } */
      29  }
      30  
      31  void test_xor_undeclared_first_arg (void)
      32  {
      33    int a = 0;
      34    __atomic_fetch_xor (&a, &b, 0);      /* { dg-error ".b. undeclared" } */
      35  }
      36  
      37  void test_nand_undeclared_first_arg (void)
      38  {
      39    int a = 0;
      40    __atomic_fetch_nand (&a, &b, 0);      /* { dg-error ".b. undeclared" } */
      41  }
      42  
      43  
      44  void test_add_undeclared_second_arg (void)
      45  {
      46    int b = 0;
      47    __atomic_fetch_add (&a, &b, 0);   /* { dg-error ".a. undeclared" } */
      48  }
      49  
      50  void test_sub_undeclared_second_arg (void)
      51  {
      52    int b = 0;
      53    __atomic_fetch_sub (&a, &b, 0);      /* { dg-error ".a. undeclared" } */
      54  }
      55  
      56  void test_or_undeclared_second_arg (void)
      57  {
      58    int b = 0;
      59    __atomic_fetch_or (&a, &b, 0);      /* { dg-error ".a. undeclared" } */
      60  }
      61  
      62  void test_and_undeclared_second_arg (void)
      63  {
      64    int b = 0;
      65    __atomic_fetch_and (&a, &b, 0);      /* { dg-error ".a. undeclared" } */
      66  }
      67  
      68  void test_xor_undeclared_second_arg (void)
      69  {
      70    int b = 0;
      71    __atomic_fetch_xor (&a, &b, 0);      /* { dg-error ".a. undeclared" } */
      72  }
      73  
      74  void test_nand_undeclared_second_arg (void)
      75  {
      76    int b = 0;
      77    __atomic_fetch_nand (&a, &b, 0);      /* { dg-error ".a. undeclared" } */
      78  }
      79  
      80  
      81  void test_add_undeclared_third_arg (void)
      82  {
      83    int a = 0, b = 0;
      84    __atomic_fetch_add (&a, &b, m);   /* { dg-error ".m. undeclared" } */
      85  }
      86  
      87  void test_sub_undeclared_third_arg (void)
      88  {
      89    int a = 0, b = 0;
      90    __atomic_fetch_sub (&a, &b, m);      /* { dg-error ".m. undeclared" } */
      91  }
      92  
      93  void test_or_undeclared_third_arg (void)
      94  {
      95    int a = 0, b = 0;
      96    __atomic_fetch_or (&a, &b, m);      /* { dg-error ".m. undeclared" } */
      97  }
      98  
      99  void test_and_undeclared_third_arg (void)
     100  {
     101    int a = 0, b = 0;
     102    __atomic_fetch_and (&a, &b, m);      /* { dg-error ".m. undeclared" } */
     103  }
     104  
     105  void test_xor_undeclared_third_arg (void)
     106  {
     107    int a = 0, b = 0;
     108    __atomic_fetch_xor (&a, &b, m);      /* { dg-error ".m. undeclared" } */
     109  }
     110  
     111  void test_nand_undeclared_third_arg (void)
     112  {
     113    int a = 0, b = 0;
     114    __atomic_fetch_nand (&a, &b, m);      /* { dg-error ".m. undeclared" } */
     115  }