boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

005-logical.c (544B)


      1 /* tests/cc-e2e/05-logical.c — &&, ||, short-circuit evaluation.
      2  * Split from 01-kitchen-sink. */
      3 
      4 int test_logical(void) {
      5     int r = 0;
      6     if (1 && 1) r = r + 1;
      7     if (0 && 1) r = r + 100;
      8     if (1 || 0) r = r + 2;
      9     if (0 || 0) r = r + 100;
     10     int side = 0;
     11     if (1 || (side = 100)) r = r + 4;       /* short-circuit; side stays 0 */
     12     if (0 && (side = 100)) r = r + 100;
     13     return r + side;                        /* 1+2+4+0 = 7 */
     14 }
     15 
     16 int main(int argc, char **argv) {
     17     if (test_logical() != 7) return 1;
     18     return 0;
     19 }