if (!MD || !MD->isVirtual())
return;
+ if (MD->isDependentContext())
+ return;
+
// C++0x [class.virtual]p3:
// If a virtual function is marked with the virt-specifier override and does
// not override a member function of a base class,
// RUN: %clang_cc1 -fsyntax-only -std=c++0x -verify %s
+namespace Test1 {
+
struct B {
virtual void f(int);
};
virtual void f(long) override; // expected-error {{'f' marked 'override' but does not override any member functions}}
void f(int) override;
};
+}
+
+namespace Test2 {
+
+struct A {
+ virtual void f(int, char, int);
+};
+
+template<typename T>
+struct B : A {
+ virtual void f(T) override;
+};
+
+}