/* TEST_OUTPUT:
---
fail_compilation/fix17349.d(35): Error: cannot implicitly override base class method `fix17349.E.foo` with `fix17349.F.foo`; add `override` attribute
---
 */
// https://issues.dlang.org/show_bug.cgi?id=17349
struct S { }
class C {
    void bar();
    void foo(void* p);
    void abc(Object);
    void def(S);
}
class D : C {
    override void bar() const;
    override void foo(const void*);
    override void abc(const Object);
    override void def(const S);
}
alias fp_t = void function(int*);
@safe void abc(const int*);
fp_t fp = &abc;
class E {
    void foo(void*);
}
class F : E {
    void foo(const void*);
}