PageRenderTime 15ms CodeModel.GetById 2ms app.highlight 11ms RepoModel.GetById 1ms app.codeStats 0ms

/libstdc++-v3/testsuite/decimal/operator_neg.cc

https://bitbucket.org/zlwu/cegcc-gcc
C++ | 160 lines | 124 code | 17 blank | 19 comment | 22 complexity | f652e50b3f66dc4c802a683bd5a0e5f2 MD5 | raw file
  1// Copyright (C) 2009 Free Software Foundation, Inc.
  2//
  3// This file is part of the GNU ISO C++ Library.  This library is free
  4// software; you can redistribute it and/or modify it under the
  5// terms of the GNU General Public License as published by the
  6// Free Software Foundation; either version 3, or (at your option)
  7// any later version.
  8
  9// This library is distributed in the hope that it will be useful,
 10// but WITHOUT ANY WARRANTY; without even the implied warranty of
 11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 12// GNU General Public License for more details.
 13
 14// You should have received a copy of the GNU General Public License along
 15// with this library; see the file COPYING3.  If not see
 16// <http://www.gnu.org/licenses/>.
 17
 18// { dg-do compile }
 19// { dg-require-effective-target dfp }
 20
 21// Test that C++ binary operators that are restricted to integer operands
 22// do not accept decimal float operands.
 23
 24#include <decimal/decimal>
 25
 26using namespace std::decimal;
 27
 28decimal32 a32, b32, c32;
 29decimal64 a64, b64, c64;
 30decimal128 a128, b128, c128;
 31
 32void
 33modulus (void)
 34{
 35  a32 = b32 % c32;	// { dg-error "error" } 
 36  a64 = b64 % c64;	// { dg-error "error" } 
 37  a128 = b128 % c128;	// { dg-error "error" } 
 38  a128 = b32 % c128;	// { dg-error "error" } 
 39  a128 = b64 % c128;	// { dg-error "error" } 
 40  a32 = 100 % c32;	// { dg-error "error" } 
 41  a64 = 10 % c64;	// { dg-error "error" } 
 42  a128 = 1000 % c128;	// { dg-error "error" } 
 43  a32 = b32 % 7;	// { dg-error "error" } 
 44  a64 = b64 % 5;	// { dg-error "error" } 
 45  a128 = b128 % 3;	// { dg-error "error" } 
 46}
 47
 48void
 49bitwise_right_shift (void)
 50{
 51  a32 = b32 >> c32;	// { dg-error "error" }
 52  a64 = b64 >> c64;	// { dg-error "error" }
 53  a128 = b128 >> c128;	// { dg-error "error" }
 54  a128 = b32 >> c128;	// { dg-error "error" }
 55  a128 = b64 >> c128;	// { dg-error "error" }
 56  a32 = 100 >> c32;	// { dg-error "error" }
 57  a64 = 10 >> c64;	// { dg-error "error" }
 58  a128 = 1000 >> c128;	// { dg-error "error" }
 59  a32 = b32 >> 7;	// { dg-error "error" }
 60  a64 = b64 >> 5;	// { dg-error "error" }
 61  a128 = b128 >> 3;	// { dg-error "error" }
 62}
 63
 64void
 65bitwise_left_shift (void)
 66{
 67  a32 = b32 << c32;	// { dg-error "error" } 
 68  a64 = b64 << c64;	// { dg-error "error" } 
 69  a128 = b128 << c128;	// { dg-error "error" } 
 70  a128 = b32 << c128;	// { dg-error "error" } 
 71  a128 = b64 << c128;	// { dg-error "error" } 
 72  a32 = 100 << c32;	// { dg-error "error" } 
 73  a64 = 10 << c64;	// { dg-error "error" } 
 74  a128 = 1000 << c128;	// { dg-error "error" } 
 75  a32 = b32 << 7;	// { dg-error "error" } 
 76  a64 = b64 << 5;	// { dg-error "error" } 
 77  a128 = b128 << 3;	// { dg-error "error" } 
 78}
 79
 80void
 81bitwise_exclusive_or (void)
 82{
 83  a32 = b32 ^ c32;	// { dg-error "error" } 
 84  a64 = b64 ^ c64;	// { dg-error "error" } 
 85  a128 = b128 ^ c128;	// { dg-error "error" } 
 86  a128 = b32 ^ c128;	// { dg-error "error" } 
 87  a128 = b64 ^ c128;	// { dg-error "error" } 
 88  a32 = 100 ^ c32;	// { dg-error "error" } 
 89  a64 = 10 ^ c64;	// { dg-error "error" } 
 90  a128 = 1000 ^ c128;	// { dg-error "error" } 
 91  a32 = b32 ^ 7;	// { dg-error "error" } 
 92  a64 = b64 ^ 5;	// { dg-error "error" } 
 93  a128 = b128 ^ 3;	// { dg-error "error" } 
 94}
 95
 96void
 97bitwise_inclusive_or (void)
 98{
 99  a32 = b32 | c32;	// { dg-error "error" } 
100  a64 = b64 | c64;	// { dg-error "error" } 
101  a128 = b128 | c128;	// { dg-error "error" } 
102  a128 = b32 | c128;	// { dg-error "error" } 
103  a128 = b64 | c128;	// { dg-error "error" } 
104  a32 = 100 | c32;	// { dg-error "error" } 
105  a64 = 10 | c64;	// { dg-error "error" } 
106  a128 = 1000 | c128;	// { dg-error "error" } 
107  a32 = b32 | 7;	// { dg-error "error" } 
108  a64 = b64 | 5;	// { dg-error "error" } 
109  a128 = b128 | 3;	// { dg-error "error" } 
110}
111
112void
113logical_and (void)
114{
115  a32 = b32 && c32;	// { dg-error "error" } 
116  a64 = b64 && c64;	// { dg-error "error" } 
117  a128 = b128 && c128;	// { dg-error "error" } 
118  a128 = b32 && c128;	// { dg-error "error" } 
119  a128 = b64 && c128;	// { dg-error "error" } 
120  a32 = 100 && c32;	// { dg-error "error" } 
121  a64 = 10 && c64;	// { dg-error "error" } 
122  a128 = 1000 && c128;	// { dg-error "error" } 
123  a32 = b32 && 7;	// { dg-error "error" } 
124  a64 = b64 && 5;	// { dg-error "error" } 
125  a128 = b128 && 3;	// { dg-error "error" } 
126}
127
128void
129logical_or (void)
130{
131  a32 = b32 || c32;	// { dg-error "error" } 
132  a64 = b64 || c64;	// { dg-error "error" } 
133  a128 = b128 || c128;	// { dg-error "error" } 
134  a128 = b32 || c128;	// { dg-error "error" } 
135  a128 = b64 || c128;	// { dg-error "error" } 
136  a32 = 100 || c32;	// { dg-error "error" } 
137  a64 = 10 || c64;	// { dg-error "error" } 
138  a128 = 1000 || c128;	// { dg-error "error" } 
139  a32 = b32 || 7;	// { dg-error "error" } 
140  a64 = b64 || 5;	// { dg-error "error" } 
141  a128 = b128 || 3;	// { dg-error "error" } 
142}
143
144void
145bitwise_complement (void)
146{
147  a32 = ~b32;		// { dg-error "error" } 
148  a64 = ~b64;		// { dg-error "error" } 
149  a128 = ~b128;		// { dg-error "error" } 
150}
151
152void
153logical_not (void)
154{
155  a32 = !b32;		// { dg-error "error" } 
156  a64 = !b64;		// { dg-error "error" } 
157  a128 = !b128;		// { dg-error "error" } 
158}
159
160// { dg-excess-errors "" { target *-*-* } }