1 /*=============================================================================
2     Boost.Wave: A Standard compliant C++ preprocessor library
3     http://www.boost.org/
4 
5     Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
6     Software License, Version 1.0. (See accompanying file
7     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 
9     The tests included in this file were initially taken from the mcpp V2.5
10     preprocessor validation suite and were modified to fit into the Boost.Wave
11     unit test requirements.
12     The original files of the mcpp preprocessor are distributed under the
13     license reproduced at the end of this file.
14 =============================================================================*/
15 
16 // Tests short-circuit evaluation of #if expression.
17 
18 #define MACRO_0     0
19 
20 // 13.7: 10/0 or 10/MACRO_0 are never evaluated, "divide by zero" error
21 //       cannot occur.
22 
23 //R #line 28 "t_5_017.cpp"
24 //R true
25 #if  0 && 10 / 0
26 false
27 #else
28 true
29 #endif
30 
31 //R #line 36 "t_5_017.cpp"
32 //R true
33 #if not_defined && 10 / not_defined
34 false
35 #else
36 true
37 #endif
38 
39 //R #line 44 "t_5_017.cpp"
40 //R true
41 #if MACRO_0 && 10 / MACRO_0 > 1
42 false
43 #else
44 true
45 #endif
46 
47 //R #line 52 "t_5_017.cpp"
48 //R true
49 #if MACRO_0 ? 10 / MACRO_0 : 0
50 false
51 #else
52 true
53 #endif
54 
55 //R #line 58 "t_5_017.cpp"
56 //R true
57 #if MACRO_0 == 0 || 10 / MACRO_0 > 1        /* Valid block  */
58 true
59 #else
60 false
61 #endif
62 
63 /*-
64  * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
65  * All rights reserved.
66  *
67  * Redistribution and use in source and binary forms, with or without
68  * modification, are permitted provided that the following conditions
69  * are met:
70  * 1. Redistributions of source code must retain the above copyright
71  *    notice, this list of conditions and the following disclaimer.
72  * 2. Redistributions in binary form must reproduce the above copyright
73  *    notice, this list of conditions and the following disclaimer in the
74  *    documentation and/or other materials provided with the distribution.
75  *
76  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
77  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
78  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
79  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
80  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
81  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
82  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
83  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
84  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
85  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
86  * SUCH DAMAGE.
87  */
88 
89