mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-09 21:41:20 +08:00
case-range1.C, [...]: New tests.
* g++.dg/ext/case-range1.C, g++.dg/ext/case-range2.C, g++.dg/ext/case-range3.C: New tests. From-SVN: r76973
This commit is contained in:
parent
98ce043bed
commit
48ef529f41
gcc/testsuite
@ -1,3 +1,8 @@
|
||||
2004-01-30 Michael Matz <matz@suse.de>
|
||||
|
||||
* g++.dg/ext/case-range1.C, g++.dg/ext/case-range2.C,
|
||||
g++.dg/ext/case-range3.C: New tests.
|
||||
|
||||
2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
||||
|
||||
DR206
|
||||
|
23
gcc/testsuite/g++.dg/ext/case-range1.C
Normal file
23
gcc/testsuite/g++.dg/ext/case-range1.C
Normal file
@ -0,0 +1,23 @@
|
||||
// { dg-do compile }
|
||||
// Tests if case ranges (a GNU extension) are accepted
|
||||
// { dg-options "" }
|
||||
const int low = -2;
|
||||
const int high = 15;
|
||||
|
||||
template <typename T>
|
||||
T f2 (T i)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case low ... high : return i + 1;
|
||||
default : return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int f (int i)
|
||||
{
|
||||
switch (i) {
|
||||
case 1 ... 10: return i + 1;
|
||||
default: return f2 (i);
|
||||
}
|
||||
}
|
27
gcc/testsuite/g++.dg/ext/case-range2.C
Normal file
27
gcc/testsuite/g++.dg/ext/case-range2.C
Normal file
@ -0,0 +1,27 @@
|
||||
// { dg-do compile }
|
||||
// Tests if case ranges (a GNU extension) correctly emit messages
|
||||
// about overlapping ranges.
|
||||
// { dg-options "" }
|
||||
|
||||
const int low = -2;
|
||||
const int high = 15;
|
||||
|
||||
template <typename T>
|
||||
T f2 (T i)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case low ... high : return i + 1; // { dg-error "" }
|
||||
case 5 : return i + 2; // { dg-error "duplicate" }
|
||||
default : return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int f (int i)
|
||||
{
|
||||
switch (i) {
|
||||
case 1 ... 10: return i + 1; // { dg-error "" }
|
||||
case 3 ... 5 : return i + 3; // { dg-error "duplicate" }
|
||||
default: return f2 (i); // { dg-error "" }
|
||||
}
|
||||
}
|
23
gcc/testsuite/g++.dg/ext/case-range3.C
Normal file
23
gcc/testsuite/g++.dg/ext/case-range3.C
Normal file
@ -0,0 +1,23 @@
|
||||
// { dg-do compile }
|
||||
// Tests if case ranges (a GNU extension) emit errors in ISO mode
|
||||
// { dg-options "-pedantic" }
|
||||
const int low = -2;
|
||||
const int high = 15;
|
||||
|
||||
template <typename T>
|
||||
T f2 (T i)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case low ... high : return i + 1; // { dg-error "non-standard" }
|
||||
default : return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int f (int i)
|
||||
{
|
||||
switch (i) {
|
||||
case 1 ... 10: return i + 1; // { dg-error "non-standard" }
|
||||
default: return f2 (i); // { dg-error "" }
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user