/* { dg-do compile } */ | |
/* { dg-options "-O3 -Wno-return-type" } */ | |
template <typename a> class b | |
{ | |
public: | |
typename a::aa operator[] (typename a::c) { } | |
}; | |
class d | |
{ | |
public: | |
typedef long c; | |
typedef int aa; | |
}; | |
struct e | |
{ | |
int af[4]; | |
int ag; | |
}; | |
b<d> f; | |
bool | |
g (e &i) | |
{ | |
for (int h; h; ++h) | |
switch (f[h]) | |
{ | |
case 'x': | |
case 'a': | |
i.af[h] = 3; | |
break; | |
default: | |
return false; | |
} | |
return true; | |
} |