On Thu, Jan 26, 2017 at 02:04:00PM +0100, Martin Liška wrote:
> + The option is enabled with <code>-fsanitize=address</code> and disabled
s/enabled/& by default/
s/disabled/& by default/
> + with <code>-fsanitize=kernel-address</code>.
> + Compared to the LLVM compiler, where the option already exists,
> + the implementation in the GCC compiler has couple of improvements and
> advantages:
> + <ul>
> + <li>A complex usage of gotos and case labels are properly handled and
> should not
> + report any false positive or false negatives.
> + </li>
> + <li>Shadow memory poisoning (and unpoisoning) is optimized out in
> common situations
> + where the call is not needed.
> + </li>
> + <li>C++ temporaries are sanitized.</li>
> + <li>Sanitization can handle invalid memory stores that are optimized
> out
> + by the LLVM compiler when using an optimization level.</li>
Have you verified it is true on the LLVM side (i.e. that they mishandle
gotos or case labels, that they don't optimize away memory
poisoning/unpoisoning in cases where gcc does, that they don't sanitize C++
temporaries and that for optimized out invalid memory stores they don't
sanitize them?
Jakub