-fstrict-vtable-pointers causes many functions to no longer be
considered writeonly. This is because basic-aa thinks launder may read
from the pointer operand.
From the LangRef on writeonly:
If a writeonly function reads memory visible to the program, or has
other side-effects, the behavior is undefined. If a function reads from
a writeonly pointer argument, the behavior is undefined.
launder fits this criteria.
Could you expand the comment here with writeonly?
Optional: s/barrier/launder