OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libstdc++-v3/] [testsuite/] [decimal/] [mixed-mode-cmp_neg.cc] - Blame information for rev 749

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 742 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 comparison operators do not accept mixed decimal
22
// and generic floating-point operands.  This isn't explicity prohibited
23
// in 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 a
25
// 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_eq (void)
42
{
43
  b1 = b32 == f;        // { dg-error "error" }
44
  b2 = ld == b32;       // { dg-error "error" }
45
  b3 = b64 == d;        // { dg-error "error" }
46
  b4 = ld == b64;       // { dg-error "error" }
47
  b5 = b128 == ld;      // { dg-error "error" }
48
  b6 = d == b128;       // { dg-error "error" }
49
}
50
 
51
void
52
bad_ne (void)
53
{
54
  b1 = b32 != f;        // { dg-error "error" }
55
  b2 = ld != b32;       // { dg-error "error" }
56
  b3 = b64 != d;        // { dg-error "error" }
57
  b4 = ld != b64;       // { dg-error "error" }
58
  b5 = b128 != ld;      // { dg-error "error" }
59
  b6 = d != b128;       // { dg-error "error" }
60
}
61
 
62
void
63
bad_lt (void)
64
{
65
  b1 = b32 < f;         // { dg-error "error" }
66
  b2 = ld < b32;        // { dg-error "error" }
67
  b3 = b64 < d;         // { dg-error "error" }
68
  b4 = ld < b64;        // { dg-error "error" }
69
  b5 = b128 < ld;       // { dg-error "error" }
70
  b6 = d < b128;        // { dg-error "error" }
71
}
72
 
73
void
74
bad_le (void)
75
{
76
  b1 = b32 <= f;        // { dg-error "error" }
77
  b2 = ld <= b32;       // { dg-error "error" }
78
  b3 = b64 <= d;        // { dg-error "error" }
79
  b4 = ld <= b64;       // { dg-error "error" }
80
  b5 = b128 <= ld;      // { dg-error "error" }
81
  b6 = d <= b128;       // { dg-error "error" }
82
}
83
 
84
void
85
bad_gt (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_ge (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
 

powered by: WebSVN 2.1.0

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