2
0
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:
Michael Matz 2004-01-30 17:05:09 +00:00 committed by Michael Matz
parent 98ce043bed
commit 48ef529f41
4 changed files with 78 additions and 0 deletions

@ -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

@ -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);
}
}

@ -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 "" }
}
}

@ -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 "" }
}
}