On Thu, Jan 26, 2017 at 02:59:50PM +0100, Martin Liška wrote: > On 01/26/2017 02:19 PM, Jakub Jelinek wrote: > > 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 > > > > Yes:
Perfect. Can you please just do the above mentioned 2 changes and commit then? Jakub