[PATCH] D20561: Warn when taking address of packed member

Matthias Braun via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 15 15:20:14 PDT 2016


MatzeB added a subscriber: MatzeB.
MatzeB added a comment.

The sanitizer code triggers this warning for code that looks conceptually like this:

  typedef struct Bla { char bar; int foo; } __attribute__((packed));
  
  uintptr_t getu(struct Bla *b) { return (uintptr_t)&b->foo; }

Resulting in:

  taking address of packed member 'foo' of class or structure
        'Bla' may result in an unaligned pointer value
        [-Waddress-of-packed-member]

Of course the warning can be silenced with `return (uintptr_t)(char*)&b->foo;` still casting to an int type seems like a benign case for this warning so maybe we should exclude that?


Repository:
  rL LLVM

https://reviews.llvm.org/D20561





More information about the cfe-commits mailing list