This is an archive of the discontinued LLVM Phabricator instance.

SpecialCaseList: Add support for parsing multiple input files.
ClosedPublic

Authored by samsonov on Feb 2 2015, 6:10 PM.

Details

Summary

This change allows users to create SpecialCaseList objects from
multiple local files. This is needed to implement a proper support
for -fsanitize-blacklist flag (allow users to specify multiple blacklists,
in addition to default blacklist, see PR22431).

DFSan can also benefit from this change, as DFSan instrumentation pass now
accepts ABI-lists both from -fsanitize-blacklist= and -mllvm -dfsan-abilist flags.

Go bindings are fixed accordingly.

Diff Detail

Event Timeline

samsonov updated this revision to Diff 19207.Feb 2 2015, 6:10 PM
samsonov retitled this revision from to SpecialCaseList: Add support for parsing multiple input files..
samsonov edited the test plan for this revision. (Show Details)
samsonov added a reviewer: pcc.
samsonov updated this object.
samsonov added subscribers: kcc, Unknown Object (MLST).
samsonov updated this revision to Diff 19242.Feb 3 2015, 10:18 AM
  • Remove special case for empty filename.
  • Report file name in parsing error message. Start error messages from lowecase letters.
pcc edited edge metadata.Feb 3 2015, 11:53 AM

Can we add a test showing that reading special case lists from multiple files works correctly?

bindings/go/llvm/InstrumentationBindings.cpp
43

Nit: i != ABIListFilesNum

bindings/go/llvm/transforms_instrumentation.go
46

Nit: indentation doesn't look right here.

samsonov updated this revision to Diff 19263.Feb 3 2015, 1:49 PM
samsonov edited edge metadata.
  • Remove special case for empty filename.
  • Report file name in parsing error message. Start error messages from lowecase letters.
  • Address reviewer's comments. Add unittest for multiple special-case list files.
bindings/go/llvm/InstrumentationBindings.cpp
43

Done

bindings/go/llvm/transforms_instrumentation.go
46

Done

pcc accepted this revision.Feb 3 2015, 3:34 PM
pcc edited edge metadata.

LGTM

lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
86

Nit: "files control"

This revision is now accepted and ready to land.Feb 3 2015, 3:34 PM
This revision was automatically updated to reflect the committed changes.