[PATCH] D57278: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls

Julian Lettner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 29 11:40:58 PST 2019


yln added a comment.

In D57278#1374852 <https://reviews.llvm.org/D57278#1374852>, @vsk wrote:

> Is it necessary to remove visitation of 'noreturn' call sites from ASan? I'd expect that to break non-C frontends which emit noreturn calls (rust/swift?).


Good point! I didn't think about other frontends.

Currently we insert all `noreturn` handler calls in the frontend. Since the ASan pass still needs to insert handler calls to support other frontends, I would like to change it so that clang only inserts calls when it is necessary to prevent UBSan incompatibilities. This means that the ASan pass can remain completely unchanged.
(Orthogonal issue exposed by the above: In a follow-up I will change the ASan pass to not intrument `!nosanitize` calls to get rid of superfluous handler calls.)

@eugenis
We were hoping to only insert `noreturn` handler calls in one place, but I am not sure this is feasible when we consider alternative frontends. Are you still fine with this?


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57278/new/

https://reviews.llvm.org/D57278





More information about the llvm-commits mailing list