This is an archive of the discontinued LLVM Phabricator instance.

[hwasan] Support more complicated lifetimes.
ClosedPublic

Authored by fmayer on Aug 19 2021, 4:23 AM.

Details

Summary

This is important as with exceptions enabled, non-POD allocas often have
two lifetime ends: the exception handler, and the normal one.

Diff Detail

Unit TestsFailed

Event Timeline

fmayer created this revision.Aug 19 2021, 4:23 AM
fmayer updated this revision to Diff 367454.Aug 19 2021, 4:25 AM

formatting

fmayer updated this revision to Diff 367496.Aug 19 2021, 7:54 AM

add comment

fmayer published this revision for review.Aug 19 2021, 7:55 AM
fmayer added a reviewer: eugenis.
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptAug 19 2021, 7:55 AM
Herald added subscribers: llvm-commits, Restricted Project. · View Herald Transcript
eugenis accepted this revision.Sep 2 2021, 1:35 PM

LGTM

llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerCommon.h
50

Update the comment.

74

This does not handle diamond CFG, right? A case where two ends dominate a return as a group. I don't know if LLVM has an implementation of that.

I think it is fine, that must be a relatively uncommon case.

This revision is now accepted and ready to land.Sep 2 2021, 1:35 PM
fmayer updated this revision to Diff 370508.Sep 3 2021, 2:12 AM

update comment

fmayer updated this revision to Diff 370509.Sep 3 2021, 2:14 AM
fmayer marked 2 inline comments as done.

add todo

llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerCommon.h
74

Correct. I added a TODO.

This revision was landed with ongoing or failed builds.Sep 3 2021, 2:30 AM
This revision was automatically updated to reflect the committed changes.