CharUnits::alignmentAtOffset is equivalent to llvm::MinAlign but
slightly less efficient. Use it's implementation instead.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202099
91177308-0d34-0410-b5e6-
96231b3b80d8
/// Given that this is a non-zero alignment value, what is the
/// alignment at the given offset?
CharUnits alignmentAtOffset(CharUnits offset) {
- // alignment: 0010000
- // offset: 1011100
- // lowBits: 0001011
- // result: 0000100
- QuantityType lowBits = (Quantity-1) & (offset.Quantity-1);
- return CharUnits((lowBits + 1) & ~lowBits);
+ return CharUnits(llvm::MinAlign(Quantity, offset.Quantity));
}