[LLVMdev] should asan catch tihs?

Eli Friedman eli.friedman at gmail.com
Fri Nov 2 18:38:50 PDT 2012


On Fri, Nov 2, 2012 at 6:27 PM, Rafael EspĂ­ndola
<rafael.espindola at gmail.com> wrote:
> I just tried asan on an optimized  32 bit build of
> -------------------------------------
> #include <stdint.h>
> __attribute__((noinline))
>  void f(uint64_t *p) {
>   *p = 42;
> }
> int main() {
>   void *p;
>   f((uint64_t*)&p);
> }
> ------------------------------------
>
> and it correctly catches the invalid access. If I comment the
> attribute, the optimizers find and exploit the undefined behavior and
> asan fails to report it. Is this the expected behavior? Is this
> something that needs -fcatch-undefined-behavior instead?

For performance reasons, asan runs at the end of the optimization
pipeline, so it doesn't check loads which get removed by the IR
optimizers.

-Eli




More information about the llvm-dev mailing list