Douglas Gregor 46841e1bd9 Implement crazy destructor name lookup semantics differently in
C++98/03 and C++0x, since the '0x semantics break valid C++98/03
code. This new mess is tracked by core issue 399, which is still
unresolved.

Fixes PR6358 and PR6359.

llvm-svn: 96836
2010-02-23 00:15:22 +00:00

25 lines
352 B
C++

// RUN: %clang_cc1 -fsyntax-only -verify %s
struct C {
typedef int I;
};
typedef int I1, I2;
extern int* p;
extern int* q;
void f() {
p->C::I::~I();
q->I1::~I2();
}
struct A {
~A();
};
typedef A AB;
int main() {
AB *p;
p->AB::~AB(); // expected-error{{identifier 'AB' in pseudo-destructor expression does not name a type}}
}