brintos

brintos / llvm-project-archived public Read only

0
0
Text · 816 B · df590f2 Raw
41 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3// PR58684struct T0 {5  int x;6  union {7    void *m0;8  };9};10template <typename T>11struct T1 : public T0, public T { //expected-warning{{direct base 'T0' is inaccessible due to ambiguity:\n    struct T1<struct A> -> T0\n    struct T1<struct A> -> A -> T0}}12  void f0() { 13    m0 = 0; // expected-error{{ambiguous conversion}}14  } 15};16 17struct A : public T0 { };18 19void f1(T1<A> *S) { S->f0(); } // expected-note{{instantiation of member function}} expected-note{{in instantiation of template class 'T1<A>' requested here}}20 21namespace rdar8635664 {22  template<typename T>23  struct X {24    struct inner;25  26    struct inner {27      union {28        int x;29        float y;30      };31 32      typedef T type;33    };34  };35 36  void test() {37    X<int>::inner i;38    i.x = 0;39  }40}41