blob: 9ff73bc8535e3ab091e29b38644fe9c22f3e6d25 [file] [edit]
// RUN: %clang_analyze_cc1 -std=c++14 -analyzer-checker=core -verify %s
// expected-no-diagnostics
template <typename> struct S;
class Sp {
public:
template <bool> void M() {}
template <unsigned> struct I {
static void IM();
};
};
template <> struct S<Sp> {
using F = void (Sp::*)();
template <bool P> static constexpr F SpM = &Sp::template M<P>;
};
template <bool> constexpr S<Sp>::F S<Sp>::SpM;
template <unsigned X> void Sp::I<X>::IM() {
using Spec = S<Sp>;
typename Spec::F E = Spec::template SpM<true>;
}