[cfe-commits] [PATCH] Add -fsanitize= command line argument to control -fcatch-undefined-behavior, -faddress-sanitizer, and -fthread-sanitizer

Alexander Potapenko glider at google.com
Thu Nov 1 22:41:09 PDT 2012


I haven't seen the patch yet, but here are two thoughts:
- some tools may be incompatible with each other (e.g. ASan and TSan), so
we shouldn't allow to use them together;
- there are many users of TSan and ASan, thus we can't easily rename the
corresponding command line options. The right thing to do is to make
-fsanitize fully functional, announce that and then remove the existing
flags.
I'm also unsure whether having such an umbrella flag for such different
tools won't confuse the users.
On Nov 2, 2012 4:51 AM, "Richard Smith" <richard at metafoo.co.uk> wrote:

> Hi,
>
> The attached patch series adds a
> -fsanitize=sanitizer1,sanitizer2,sanitizer3 command-line option to
> Clang (and a corresponding -fno-sanitize=...). This works as follows
> for the driver options:
>
>   -faddress-sanitizer becomes a synonym for -fsanitize=address
>   -fno-address-sanitizer becomes a synonym for -fno-sanitize=address
>   -fthread-sanitizer becomes a synonym for -fsanitize=thread
>   -fno-thread-sanitizer becomes a synonym for -fno-sanitize=thread
>   -fcatch-undefined-behavior becomes a synonym for -fsanitize=undefined
>   -fsanitize=undefined is expanded by the driver into a list of
> individual undefined behavior sanitizers
>
> The -cc1 interface is deliberately very simplistic: it loses support
> for the existing flags, and instead only supports -fsanitize=..., and
> only supports naming the individual checks (and not groups like
> -fsanitize=undefined).
>
> Patch 1 just renames the existing ASan and TSan LangOptions to follow
> the naming convention used by the later patches.
> Patch 2 adds support to the driver and frontend for parsing
> -fsanitize, converting the other options to it, and filling in
> LangOptions.
> Patch 3 uses the -fsanitize=... values to enable/disable the existing
> -fcatch-undefined-behavior checks, and removes frontend support for
> the other options.
>
> Please review! I'd like to get this in for the 3.2 release.
>
> Thanks!
> Richard
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20121102/9edb3e8e/attachment.html>


More information about the cfe-commits mailing list