MaskRay wrote:

> > For reference, can you give a couple examples of code where this is 
> > triggering?
> > If this is triggering in practice, do we want a real driver option to 
> > control the sanitizer? The alignment attributes themselves?


> I am not sure we need special driver flag for that.
> 
> @MaskRay After reading about amount of unique cases you see, maybe ignore 
> list is easier?

Given the scale of our internal code base, the identified unique failures are 
moderate. So eventually we can remove the `cl::opt` option, but having the 
option buys us time to clean up the code base.

Many problems identified look like this:
https://chromium.googlesource.com/v8/v8.git/+/bb2ac8991c64601be9852d88c22abac2d6a6c39b/src/bigint/bigint.h#120

```cpp
 protected:
  friend class ShiftedDigits;
  digit_t* digits_;     // digits_ may be misaligned
  int len_;
 private:
  // We require externally-provided digits arrays to be 4-byte aligned, but
  // not necessarily 8-byte aligned; so on 64-bit platforms we use memcpy
  // to allow unaligned reads.
  digit_t read_4byte_aligned(int i) {
    if (sizeof(digit_t) == 4) {
      return digits_[i];
    } else {
      digit_t result;
      memcpy(&result, digits_ + i, sizeof(result));  // unspecified behavior 
identified here
      return result;
    }
  }
};
```


https://github.com/llvm/llvm-project/pull/69240
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to