================
Comment at: lib/CodeGen/CGExpr.cpp:2306
@@ -2304,2 +2305,3 @@
llvm::Value *Check = Checked[i].first;
+ // -fsanitize-trap= overrides -fsanitize-recover=.
llvm::Value *&Cond =
----------------
samsonov wrote:
> Should we clarify this behavior in the docs?
> We can also handle this case in the driver, so that frontend can assert that
> each sanitizer check is listed in at most one of `-fsanitize-recover=` and
> `-fsanitize-trap=` lists. (i.e. intersection of `SanitizeTrap` and
> `SanitizeRecover` is empty).
>
> Another interesting question is handling the relative order of
> `-fsanitize-trap=` and `-fsanitize-recover=` flags. Now we parse them
> completely independently, but this may not be the best solution. Consider
> global
> CFLAGS='-fsanitize=undefined -fsanitize-trap=undefined'
> and now I want to compile a special program, and enable recovery for
> alignment issues. Using
> clang++ $(CFLAGS) -fsanitize-recover=alignment a.cc
> wouldn't work, I would have to write
> clang++ $(CFLAGS) -fno-sanitize-trap=alignment -fsanitize-recover=alignment
> a.cc
> Do you think we should instead parse `-fsanitize-trap` and
> `-fsanitize-recover` in a single pass, and maintain the recovery setting for
> each sanitizer kind to be one of
> * diagnosed, recoverable
> * diagnosed, unrecoverable/fatal
> * undiagnosed, trapping.
> ?
>
> Should we clarify this behavior in the docs?
Yes, done.
> Do you think we should instead parse -fsanitize-trap and -fsanitize-recover
> in a single pass
The logic around parsing these flags is already too complicated and I would be
against making it more complex than it already is. I would prefer to solve this
problem with documentation.
================
Comment at: lib/Driver/SanitizerArgs.cpp:503
@@ -462,2 +502,3 @@
RecoverableSanitizers.Mask |= RecoverableKinds;
+ TrapSanitizers.Mask |= TrappingKinds;
}
----------------
samsonov wrote:
> Note that you can also strip out sanitizers which were not enabled eventually
> from here
> TrappingKinds &= Kinds;
> as we do for recoverable sanitizers.
Done
http://reviews.llvm.org/D10464
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits