(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
debug/
dwarf2/
short-circuit.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O0 -gdwarf -dA" } */
       3  
       4  #define True  1
       5  #define False 0
       6  
       7  _Bool F1 (_Bool B1, _Bool B2)
       8  {
       9    _Bool R;
      10  
      11    if (B1
      12        && B2)
      13      R = True;
      14    else
      15      R = False;
      16    return R;
      17  }
      18  
      19  _Bool F2 (_Bool B1, _Bool B2)
      20  {
      21    _Bool R;
      22  
      23    R = B1
      24        && B2;
      25    return R;
      26  }
      27  
      28  _Bool F3 (_Bool B1, _Bool B2)
      29  {
      30    _Bool R = False;
      31  
      32    if (B1
      33        && B2)
      34      R = True;
      35    return R;
      36  }
      37  
      38  _Bool F4 (_Bool B1, _Bool B2)
      39  {
      40    _Bool R = False;
      41  
      42    if (B1
      43        || B2)
      44      ;
      45    else
      46      R = True;
      47    return R;
      48  }
      49  
      50  _Bool F5 (_Bool B1, _Bool B2)
      51  {
      52    _Bool R = False;
      53  
      54    if (!(B1
      55          && B2))
      56      R = True;
      57    return R;
      58  }
      59  
      60  _Bool F8 (_Bool B1, _Bool B2, _Bool B3, _Bool B4, _Bool B5, _Bool B6,
      61            _Bool B7, _Bool B8)
      62  {
      63    _Bool R;
      64  
      65    if ((B1
      66         || B2)
      67         && B3
      68         && !(B4
      69              || B5)
      70         && (B6
      71             || (B7
      72                 && B8)))
      73      R = True;
      74    else
      75      R = False;
      76    return R;
      77  }
      78  
      79  /* { dg-final { scan-assembler "short-circuit.c:11" } } */
      80  /* { dg-final { scan-assembler "short-circuit.c:12" } } */
      81  /* { dg-final { scan-assembler "short-circuit.c:13" } } */
      82  /* { dg-final { scan-assembler "short-circuit.c:15" } } */
      83  
      84  /* { dg-final { scan-assembler "short-circuit.c:23" } } */
      85  /* { dg-final { scan-assembler "short-circuit.c:24" } } */
      86  
      87  /* { dg-final { scan-assembler "short-circuit.c:32" } } */
      88  /* { dg-final { scan-assembler "short-circuit.c:33" } } */
      89  /* { dg-final { scan-assembler "short-circuit.c:34" } } */
      90  
      91  /* { dg-final { scan-assembler "short-circuit.c:42" } } */
      92  /* { dg-final { scan-assembler "short-circuit.c:43" } } */
      93  /* { dg-final { scan-assembler "short-circuit.c:46" } } */
      94  
      95  /* { dg-final { scan-assembler "short-circuit.c:54" } } */
      96  /* { dg-final { scan-assembler "short-circuit.c:55" } } */
      97  /* { dg-final { scan-assembler "short-circuit.c:56" } } */
      98  
      99  /* { dg-final { scan-assembler "short-circuit.c:65" } } */
     100  /* { dg-final { scan-assembler "short-circuit.c:66" } } */
     101  /* { dg-final { scan-assembler "short-circuit.c:67" } } */
     102  /* { dg-final { scan-assembler "short-circuit.c:68" } } */
     103  /* { dg-final { scan-assembler "short-circuit.c:69" } } */
     104  /* { dg-final { scan-assembler "short-circuit.c:70" } } */
     105  /* { dg-final { scan-assembler "short-circuit.c:71" } } */
     106  /* { dg-final { scan-assembler "short-circuit.c:72" } } */
     107  /* { dg-final { scan-assembler "short-circuit.c:73" } } */
     108  /* { dg-final { scan-assembler "short-circuit.c:75" } } */