[cfe-dev] more --sanitize= flags

Richard Smith richard at metafoo.co.uk
Tue Nov 6 11:37:18 PST 2012


On Tue, Nov 6, 2012 at 11:15 AM, Matthieu Monrocq
<matthieu.monrocq at gmail.com> wrote:
> On Tue, Nov 6, 2012 at 7:53 PM, Kostya Serebryany <kcc at google.com> wrote:
>> Hi,
>>
>> We need more clang flags in two categories:
>>    - flags that modify the behavior of asan/tsan/msan
>>    - flags that enable additional features of asan/tsan/msan
>>
>> As we just discussed with Richard Smith, the flags should probably look
>> like this:
>>
>> modify the behavior:
>>    -f[no-]sanitize-address-zero-base-shadow # zero base for asan, should
>> check that -pie is present, linux-only
>>    -f[no-]sanitize-memory-track-origins  # msan track-origins (once msan
>> is in trunk, of course)
>>
>> add additional features:
>>   -fsanitize=address,global-init-order,use-after-return,use-after-scope #
>> asan subphases, currently off by default.
>>
>> Does that sound good? Anything else?
>>
>> Thanks,
>>
>> --kcc
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>
> It seems weird to me, as a user, than the syntax to modify behavior would
> not reuse the "-fsanitize" common prefix.

The idea is that -fsanitize=... specifies which things to check for.
These -fsanitize-... arguments instead specify details of how the
checks should behave (at the implementation level) and how they should
report issues. It would seem weird to me as a user to use
-fsanitize=... to control the implementation of a check, rather than
to enable a check. This is intended to parallel the warning flags,
where -W... controls which warnings are displayed, and
-fdiagnostics-... control how the diagnostics system itself behaves.

> There is precedent in -Wl being able to forward parameters to the linker
> already, so maybe a dedicated "-fsanitize-flags=address,....." could just
> forward the flags (whatever they are) to ASan and let it parse them. If the

This situation is not like -Wl. We're not calling some external tool
with a potentially-unknown command-line interface. These arguments are
interpreted by Clang itself.

> commas pose an issue, then perhaps than a "-fsanitize-address flag" would be
> simpler, with the latter part (address) being taken from the list of known
> checkers.

That is the proposed syntax, except that we use a dash instead of a space.



More information about the cfe-dev mailing list