You have not specified a language.
In C++ a constructor must beware when calling a virtual function, in that the actual function it is calling is the class implementation. If it is a pure virtual method without an implementation, this will be an access violation.
A constructor may call non-virtual functions.
If your language is Java where functions are generally virtual by default it makes sense that you have to be extra careful.
C# seems to handle the situation the way you would expect: you can call virtual methods in constructors and it calls the most final version. So in C# not an anti-pattern.
A common reason for calling methods from constructors is that you have multiple constructors that want to call a common "init" method.
Note that destructors will have the same issue with virtual methods, thus you cannot have a virtual "cleanup" method that sits outside of your destructor and expect it to get called by the base-class destructor.
Java and C# don't have destructors, they have finalizers. I don't know the behaviour with Java.
C# appears to handle clean-up correctly with this regard.
(Note that although Java and C# have garbage collection, that only manages memory allocation. There is other clean-up that your destructor needs to do that is not releasing memory).