Commit 48ef529f by Michael Matz Committed by Michael Matz

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
parent 98ce043b
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
......
// { 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);
}
}
// { 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 "" }
}
}
// { 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 "" }
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment