blob: 24a6b41cbd8cb122b8cc0957e5736e3e74c8f6dc [file] [log] [blame]
/* PR c++/18313 */
/* { dg-do compile } */
/* { dg-options "-Wignored-qualifiers" } */
volatile void bar(); /* { dg-warning "type qualifiers ignored" } */
// { dg-warning ".volatile.-qualified return type is deprecated" "" { target c++2a } .-1 }
struct A
{
const int bla(); /* { dg-warning "type qualifiers ignored" } */
static const A getA(); /* { dg-bogus "type qualifiers" } */
};
template<typename T> const T getfoo(const T def) /* { dg-bogus "type qualifiers ignored" } */
{ return def; }
template<typename T> class Pair
{
public:
T getLeft() const { return T(); } /* { dg-bogus "type qualifiers ignored" } */
const T getRight() const { return T(); } /* { dg-bogus "type qualifiers ignored" } */
};
template <typename T> struct S {
const int f(); /* { dg-warning "type qualifiers ignored" } */
const T g(); /* { dg-bogus "type qualifiers ignored" } */
T h();
};
int* testtemplate()
{
int i;
Pair<const int> a;
a.getLeft();
a.getRight();
S<bool> b;
b.h(); /* { dg-bogus "type qualifiers ignored" } */
b.g(); /* { dg-bogus "type qualifiers ignored" } */
return getfoo<int*>(&i);
}