For compiler generated assignment operator that is not trivial (calling base class operator=()), Clang FE assign region counters to the function body but does not emit profile counter increment for the function entry. This leads to many problems:
- the operator body does not have profile data generated leading to warning in profile-use
- the size of the function body may be large and lack of profile data may lead to wrong inlining decisions
- when FE assign region counters to the function, it also emit coverage mapping data for the function -- but it has no coverage data which is confusing (currently the llvm-cov tool will report malformed format (as the name of the operator is not put into the right name section).
This doesn't need to be main or have an int return. Just make it a void function (with some generic name) & drop the "return 0" to keep it simple.