This is an archive of the discontinued LLVM Phabricator instance.

Update hwasan docs to cover outlined checks and globals.
ClosedPublic

Authored by pcc on Feb 6 2020, 11:18 AM.

Diff Detail

Event Timeline

pcc created this revision.Feb 6 2020, 11:18 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 6 2020, 11:18 AM
Herald added a subscriber: cfe-commits. · View Herald Transcript
eugenis accepted this revision.Feb 6 2020, 11:27 AM

LGTM

clang/docs/HardwareAssistedAddressSanitizerDesign.rst
91

mention that "2" encodes access type and size. Do we want to expand on how?

This revision is now accepted and ready to land.Feb 6 2020, 11:27 AM
kcc accepted this revision.Feb 6 2020, 11:30 AM

thanks!

hctim added inline comments.Feb 6 2020, 11:32 AM
clang/docs/HardwareAssistedAddressSanitizerDesign.rst
73

Out of breath reading this sentence, maybe break up like:

"...custom calling convention, which:

  1. Preserves most registers, and
  2. Is specialised based on the type and size of the memory access, as well as the register that contains the address."
153
  • The first defined global in a translation unit has a pseudorandom tag associated with it, based on the hash of the file path. Subsequent global tags are incremental from the previously-assigned tag.
167

We have one section for all globals, right? So /s/section is emitted for each tagged global/section is emitted that contains information about the tagged globals/

pcc marked 5 inline comments as done.Feb 6 2020, 5:45 PM
pcc added inline comments.
clang/docs/HardwareAssistedAddressSanitizerDesign.rst
91

First part done. How is probably too much detail so I've left it out.

167

The globals have individual sections in the object files, it's the linker that concatenates them together. I've updated the document to talk about the linker's role.

This revision was automatically updated to reflect the committed changes.
pcc marked an inline comment as done.