1// 1999-05-20 bkoz 2 3// Copyright (C) 1999 Free Software Foundation, Inc. 4// 5// This file is part of the GNU ISO C++ Library. This library is free 6// software; you can redistribute it and/or modify it under the 7// terms of the GNU General Public License as published by the 8// Free Software Foundation; either version 2, or (at your option) 9// any later version. 10 11// This library is distributed in the hope that it will be useful, 12// but WITHOUT ANY WARRANTY; without even the implied warranty of 13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14// GNU General Public License for more details. 15 16// You should have received a copy of the GNU General Public License along 17// with this library; see the file COPYING. If not, write to the Free 18// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, 19// USA. 20 21// 17.4.1.2 Headers, ciso646 22 23// { dg-do link } 24 25#include <ciso646> 26#include <testsuite_hooks.h> 27 28 29// 2.11 Keywords 30// alternative representations 31// and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq 32 33// C 2.2.2 Header <iso646.h> 34// The tokens (as above) are keywords and do not appear as macros in <ciso646>. 35 36// Test for macros. 37bool test01() 38{ 39 bool test = true; 40 41#if 0 42 43#ifdef and 44 test = false; 45#endif 46 47#ifdef and_eq 48 test = false; 49#endif 50 51#ifdef bitand 52 test = false; 53#endif 54 55#ifdef bitor 56 test = false; 57#endif 58 59#ifdef compl 60 test = false; 61#endif 62 63#ifdef not_eq 64 test = false; 65#endif 66 67#ifdef not_or 68 test = false; 69#endif 70 71#ifdef or 72 test = false; 73#endif 74 75#ifdef or_eq 76 test = false; 77#endif 78 79#ifdef xor 80 test = false; 81#endif 82 83#ifdef xor_eq 84 test = false; 85#endif 86 87#endif 88 89#ifdef DEBUG_ASSERT 90 assert(test); 91#endif 92 93 return test; 94} 95 96 97// Equivalance in usage. 98bool test02() 99{ 100 bool test = true; 101 102 bool arg1 = true; 103 bool arg2 = false; 104 int int1 = 45; 105 int int2 = 0; 106 107 VERIFY( arg1 && int1 ); 108 VERIFY( arg1 and int1 ); 109 110 VERIFY( (arg1 && arg2) == (arg1 and arg2) ); 111 VERIFY( (arg1 && int1) == (arg1 and int1) ); 112 113#ifdef DEBUG_ASSERT 114 assert(test); 115#endif 116 117 return test; 118} 119 120 121int main(void) 122{ 123 test01(); 124 test02(); 125 126 return 0; 127} 128