OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc3/] [libstdc++-v3/] [testsuite/] [decimal/] [mixed-mode_neg.cc] - Blame information for rev 516

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 424 jeremybenn
// 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 binary operators do not accept mixed decimal and generic
22
// floating-point operands.  This isn't explicity prohibited in
23
// ISO/IEC TR 24733 but it is prohibited in C, and in C++ there should
24
// not be an implicit conversion from a decimal floating-point type to
25
// a generic floating-point type.
26
 
27
#include <decimal/decimal>
28
#include <testsuite_hooks.h>
29
 
30
using namespace std::decimal;
31
 
32
decimal32 a32, b32, c32;
33
decimal64 a64, b64, c64;
34
decimal128 a128, b128, c128;
35
float f;
36
double d;
37
long double ld;
38
bool b1, b2, b3, b4, b5, b6;
39
 
40
void
41
bad_add (void)
42
{
43
  a32 = b32 + f;        // { dg-error "error" }
44
  a32 = ld + b32;       // { dg-error "error" }
45
  a64 = b64 + d;        // { dg-error "error" }
46
  a64 = ld + b64;       // { dg-error "error" }
47
  a128 = b128 + ld;     // { dg-error "error" }
48
  a128 = d + b128;      // { dg-error "error" }
49
}
50
 
51
void
52
bad_subtract (void)
53
{
54
  a32 = b32 - f;        // { dg-error "error" }
55
  a32 = ld - b32;       // { dg-error "error" }
56
  a64 = b64 - d;        // { dg-error "error" }
57
  a64 = ld - b64;       // { dg-error "error" }
58
  a128 = b128 - ld;     // { dg-error "error" }
59
  a128 = d - b128;      // { dg-error "error" }
60
}
61
 
62
void
63
bad_multiply (void)
64
{
65
  a32 = b32 * f;        // { dg-error "error" }
66
  a32 = ld * b32;       // { dg-error "error" }
67
  a64 = b64 * d;        // { dg-error "error" }
68
  a64 = ld * b64;       // { dg-error "error" }
69
  a128 = b128 * ld;     // { dg-error "error" }
70
  a128 = d * b128;      // { dg-error "error" }
71
}
72
 
73
void
74
bad_divide (void)
75
{
76
  a32 = b32 / f;        // { dg-error "error" }
77
  a32 = ld / b32;       // { dg-error "error" }
78
  a64 = b64 / d;        // { dg-error "error" }
79
  a64 = ld / b64;       // { dg-error "error" }
80
  a128 = b128 / ld;     // { dg-error "error" }
81
  a128 = d / b128;      // { dg-error "error" }
82
}
83
 
84
void
85
bad_eq (void)
86
{
87
  b1 = b32 == f;        // { dg-error "error" }
88
  b2 = ld == b32;       // { dg-error "error" }
89
  b3 = b64 == d;        // { dg-error "error" }
90
  b4 = ld == b64;       // { dg-error "error" }
91
  b5 = b128 == ld;      // { dg-error "error" }
92
  b6 = d == b128;       // { dg-error "error" }
93
}
94
 
95
void
96
bad_ne (void)
97
{
98
  b1 = b32 != f;        // { dg-error "error" }
99
  b2 = ld != b32;       // { dg-error "error" }
100
  b3 = b64 != d;        // { dg-error "error" }
101
  b4 = ld != b64;       // { dg-error "error" }
102
  b5 = b128 != ld;      // { dg-error "error" }
103
  b6 = d != b128;       // { dg-error "error" }
104
}
105
 
106
void
107
bad_lt (void)
108
{
109
  b1 = b32 < f;         // { dg-error "error" }
110
  b2 = ld < b32;        // { dg-error "error" }
111
  b3 = b64 < d;         // { dg-error "error" }
112
  b4 = ld < b64;        // { dg-error "error" }
113
  b5 = b128 < ld;       // { dg-error "error" }
114
  b6 = d < b128;        // { dg-error "error" }
115
}
116
 
117
void
118
bad_le (void)
119
{
120
  b1 = b32 <= f;        // { dg-error "error" }
121
  b2 = ld <= b32;       // { dg-error "error" }
122
  b3 = b64 <= d;        // { dg-error "error" }
123
  b4 = ld <= b64;       // { dg-error "error" }
124
  b5 = b128 <= ld;      // { dg-error "error" }
125
  b6 = d <= b128;       // { dg-error "error" }
126
}
127
 
128
void
129
bad_gt (void)
130
{
131
  b1 = b32 > f;         // { dg-error "error" }
132
  b2 = ld > b32;        // { dg-error "error" }
133
  b3 = b64 > d;         // { dg-error "error" }
134
  b4 = ld > b64;        // { dg-error "error" }
135
  b5 = b128 > ld;       // { dg-error "error" }
136
  b6 = d > b128;        // { dg-error "error" }
137
}
138
 
139
void
140
bad_ge (void)
141
{
142
  b1 = b32 >= f;        // { dg-error "error" }
143
  b2 = ld >= b32;       // { dg-error "error" }
144
  b3 = b64 >= d;        // { dg-error "error" }
145
  b4 = ld >= b64;       // { dg-error "error" }
146
  b5 = b128 >= ld;      // { dg-error "error" }
147
  b6 = d >= b128;       // { dg-error "error" }
148
}
149
 
150
void
151
bad_pluseq (void)
152
{
153
  a32 += f;             // { dg-error "error" }
154
  a32 += d;             // { dg-error "error" }
155
  a32 += ld;            // { dg-error "error" }
156
  a64 += f;             // { dg-error "error" }
157
  a64 += d;             // { dg-error "error" }
158
  a64 += ld;            // { dg-error "error" }
159
  a128 += f;            // { dg-error "error" }
160
  a128 += d;            // { dg-error "error" }
161
  a128 += ld;           // { dg-error "error" }
162
}
163
 
164
void
165
bad_minuseq (void)
166
{
167
  a32 -= f;             // { dg-error "error" }
168
  a32 -= d;             // { dg-error "error" }
169
  a32 -= ld;            // { dg-error "error" }
170
  a64 -= f;             // { dg-error "error" }
171
  a64 -= d;             // { dg-error "error" }
172
  a64 -= ld;            // { dg-error "error" }
173
  a128 -= f;            // { dg-error "error" }
174
  a128 -= d;            // { dg-error "error" }
175
  a128 -= ld;           // { dg-error "error" }
176
}
177
 
178
void
179
bad_timeseq (void)
180
{
181
  a32 *= f;             // { dg-error "error" }
182
  a32 *= d;             // { dg-error "error" }
183
  a32 *= ld;            // { dg-error "error" }
184
  a64 *= f;             // { dg-error "error" }
185
  a64 *= d;             // { dg-error "error" }
186
  a64 *= ld;            // { dg-error "error" }
187
  a128 *= f;            // { dg-error "error" }
188
  a128 *= d;            // { dg-error "error" }
189
  a128 *= ld;           // { dg-error "error" }
190
}
191
 
192
void
193
bad_divideeq (void)
194
{
195
  a32 /= f;             // { dg-error "error" }
196
  a32 /= d;             // { dg-error "error" }
197
  a32 /= ld;            // { dg-error "error" }
198
  a64 /= f;             // { dg-error "error" }
199
  a64 /= d;             // { dg-error "error" }
200
  a64 /= ld;            // { dg-error "error" }
201
  a128 /= f;            // { dg-error "error" }
202
  a128 /= d;            // { dg-error "error" }
203
  a128 /= ld;           // { dg-error "error" }
204
}
205
 
206
// { dg-excess-errors "notes about candidates" }

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.