modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/ken/simpbool.go (about)

     1  // run
     2  
     3  // Copyright 2009 The Go Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  // Test basic operations on bool.
     8  
     9  package main
    10  
    11  type s struct {
    12  	a	bool;
    13  	b	bool;
    14  }
    15  
    16  func
    17  main() {
    18  	var a,b bool;
    19  
    20  	a = true;
    21  	b = false;
    22  
    23  	if !a { panic(1); }
    24  	if b { panic(2); }
    25  	if !!!a { panic(3); }
    26  	if !!b { panic(4); }
    27  
    28  	a = !b;
    29  	if !a { panic(5); }
    30  	if !!!a { panic(6); }
    31  
    32  	var x *s;
    33  	x = new(s);
    34  	x.a = true;
    35  	x.b = false;
    36  
    37  	if !x.a { panic(7); }
    38  	if x.b { panic(8); }
    39  	if !!!x.a { panic(9); }
    40  	if !!x.b { panic(10); }
    41  
    42  	x.a = !x.b;
    43  	if !x.a { panic(11); }
    44  	if !!!x.a { panic(12); }
    45  
    46  	/*
    47  	 * test &&
    48  	 */
    49  	a = true;
    50  	b = true;
    51  	if !(a && b) { panic(21); }
    52  	if a && !b { panic(22); }
    53  	if !a && b { panic(23); }
    54  	if !a && !b { panic(24); }
    55  
    56  	a = false;
    57  	b = true;
    58  	if !(!a && b) { panic(31); }
    59  	if !a && !b { panic(32); }
    60  	if a && b { panic(33); }
    61  	if a && !b { panic(34); }
    62  
    63  	a = true;
    64  	b = false;
    65  	if !(a && !b) { panic(41); }
    66  	if a && b { panic(41); }
    67  	if !a && !b { panic(41); }
    68  	if !a && b { panic(44); }
    69  
    70  	a = false;
    71  	b = false;
    72  	if !(!a && !b) { panic(51); }
    73  	if !a && b { panic(52); }
    74  	if a && !b { panic(53); }
    75  	if a && b { panic(54); }
    76  
    77  	/*
    78  	 * test ||
    79  	 */
    80  	a = true;
    81  	b = true;
    82  	if !(a || b) { panic(61); }
    83  	if !(a || !b) { panic(62); }
    84  	if !(!a || b) { panic(63); }
    85  	if !a || !b { panic(64); }
    86  
    87  	a = false;
    88  	b = true;
    89  	if !(!a || b) { panic(71); }
    90  	if !(!a || !b) { panic(72); }
    91  	if !(a || b) { panic(73); }
    92  	if a || !b { panic(74); }
    93  
    94  	a = true;
    95  	b = false;
    96  	if !(a || !b) { panic(81); }
    97  	if !(a || b) { panic(82); }
    98  	if !(!a || !b) { panic(83); }
    99  	if !a || b { panic(84); }
   100  
   101  	a = false;
   102  	b = false;
   103  	if !(!a || !b) { panic(91); }
   104  	if !(!a || b) { panic(92); }
   105  	if !(a || !b) { panic(93); }
   106  	if a || b { panic(94); }
   107  }