// RUN: %clang_cc1 -verify -std=c++11 %s
;
;
;
;
;
constexpr int a = ImplicitVirtualFromDependentBase<S>.; // expected-error {{constant expression}} expected-note {{cannot evaluate call to virtual function}}
constexpr int b = ImplicitVirtualFromDependentBase<T>.; // ok
constexpr int c = ImplicitVirtualFromDependentBase<S>.; // expected-error {{constant expression}} expected-note {{cannot evaluate call to virtual function}}
;
constexpr int d = ConstexprMember<int>.; // ok
constexpr int e = ConstexprMember<NonLiteral>.; // expected-error {{constant expression}} expected-note {{non-literal type 'NonLiteral' cannot be used in a constant expression}}
;
constexpr ConstexprCtor<> // ok
constexpr ConstexprCtor<int> // ok
constexpr ConstexprCtor<NonLiteral> // expected-error {{never produces a constant expression}} expected-note {{non-literal type 'NonLiteral}}
constexpr ConstexprCtor<int, NonLiteral> // expected-error {{never produces a constant expression}} expected-note {{non-literal type 'NonLiteral}}
; // expected-note {{here}}