[libcxx-commits] [PATCH] D96842: [dfsan] Do not specialize vector<bool> for DFSan

Michael Schellenberger Costa via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Feb 17 11:06:32 PST 2021

miscco added a comment.

In D96842#2568789 <https://reviews.llvm.org/D96842#2568789>, @stephan.yichao.zhao wrote:

> re "We can't change the API". Is this because C++ standard claims that std::vector<bool> must be specialized?
> Can we keep all interfaces unchanged, and add some DFSan logic inside a method when the sanitizer is used?
> For example, the problem we have is operator= does not propagate DFSan's meta data correctly, and the 'reserve' method does not initialize DFSan's meta data.
> When DATAFLOW_SANITIZER is on, the code may add logic to initialize or propagate DFSan's information. This does not change interfaces.
> Is this a better approach?

As far as I can tell this should be no blocking issue. Usually the goal is to keep the changes as minimal as possible. E.g. would it suffice if we would zero out after allocating a new block? That would add some "minimal" runtime overhead but if you are running with a sanitizer anyway it should not be that big of a deal

  rG LLVM Github Monorepo



More information about the libcxx-commits mailing list