// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s

// CHECK: @_ZTVZ1GvE1C = {{.*}} @_ZTIZ1GvE1C {{.*}} @_ZZ1GvENK1C1FEv
// CHECK: @_ZTIZ1GvE1C = {{.*}} @_ZTSZ1GvE1C
// CHECK: @_ZTVZ1GvE1C_0 = {{.*}} @_ZTIZ1GvE1C_0 {{.*}} @_ZZ1GvENK1C1FE_0v
// CHECK: @_ZTIZ1GvE1C_0 = {{.*}} @_ZTSZ1GvE1C_0
// CHECK: @_ZTVZ1GvE1C_1 = {{.*}} @_ZTIZ1GvE1C_1 {{.*}} @_ZZ1GvENK1C1FE_1v
// CHECK: @_ZTIZ1GvE1C_1 = {{.*}} @_ZTSZ1GvE1C_1
// CHECK: @_ZTVZN1J1KEvE1C = {{.*}} @_ZTIZN1J1KEvE1C {{.*}} @_ZZN1J1KEvENK1C1FEv
// CHECK: @_ZTIZN1J1KEvE1C = {{.*}} @_ZTSZN1J1KEvE1C

// CHECK: define {{.*}} @_ZZ1GvEN1CC2Ev(
// CHECK: define {{.*}} @_ZZ1GvENK1C1FEv(
// CHECK: define {{.*}} @_ZZ1GvEN1CC2E_0v(
// CHECK: define {{.*}} @_ZZ1GvENK1C1FE_0v(
// CHECK: define {{.*}} @_ZZ1GvENK1C1GE_0v(
// CHECK: define {{.*}} @_ZZ1GvEN1CC2E_1v(
// CHECK: define {{.*}} @_ZZ1GvENK1C1FE_1v(
// CHECK: define {{.*}} @_ZZ1GvENK1C1HE_1v(
// CHECK: define {{.*}} @_ZZN1J1KEvEN1CC2Ev(
// CHECK: define {{.*}} @_ZZN1J1KEvENK1C1FEv(

struct I { 
  virtual void F() const = 0;
};

void Go(const I &i);

void G() { 
  { 
    struct C : I { 
      void F() const {}
    };
    Go(C());
  }
  { 
    struct C : I { 
      void F() const { G(); }
      void G() const {}
    };
    Go(C());
  }
  { 
    struct C : I { 
      void F() const { H(); }
      void H() const {}
    };
    Go(C());
  }
}

struct J {
  void K();
};

void J::K() {
  struct C : I {
    void F() const {}
  };
  Go(C());
}
