1762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
2c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hines// expected-no-diagnostics
3c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hines
4c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hinesstruct C {
593649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregor  typedef int I;
6c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hines};
793649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregor
8c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hinestypedef int I1, I2;
9c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hinesextern int* p;
10c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hinesextern int* q;
1193649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregor
1293649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregorvoid f() {
13c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hines  p->C::I::~I();
1493649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregor  q->I1::~I2();
1593649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregor}
1693649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregor
17c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hinesstruct A {
1893649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregor  ~A();
19c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hines};
2093649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregor
21c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hinestypedef A AB;
2293649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregorint main() {
23c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hines  AB *p;
2493649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregor  p->AB::~AB();
2593649fdc5e0c46e26bcba06ad39aa80196d3df27Douglas Gregor}
26