================ @@ -372,9 +372,11 @@ Address CIRGenFunction::getAddrOfBitFieldStorage(LValue base, unsigned index) { mlir::Location loc = getLoc(field->getLocation()); cir::PointerType fieldPtr = cir::PointerType::get(fieldType); + auto rec = cast<cir::RecordType>(base.getAddress().getElementType()); + if (index == 0 && rec.isUnion()) ---------------- Andres-Salamanca wrote:
```diff - loc, fieldPtr, base.getPointer(), field->getName(), index); + loc, fieldPtr, base.getPointer(), field->getName(), rec.isUnion() ? field->getFieldIndex() : index); ``` I changed it to use `field->getFieldIndex()`, similar to how `CIRGenFunction::emitAddrOfFieldStorage` does. https://github.com/llvm/llvm-project/pull/154398 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits