class C
{
extern (C) pragma(printf) int printf(const(char)*, ...) @trusted;
}
class D : C
{
override extern (C) int printf(const(char)*, ...) @trusted;
}
void f(char* s) @safe
{
C c = new C;
c.printf("%s", s); // error
D d = new D;
d.printf("%s", s); // no error
}