[clang] [clang][Sema] Move computing enum bits into a separate function (PR #126096)

Michael Buch via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 6 10:54:59 PST 2025


Michael137 wrote:

> This is just moving stuff around so that seems fine. Though, I wonder, could we just pass e.g. an `ArrayRef<Decl*>` to `computeEnumBits()`? The LLDB pr you linked seems to have an `SmallVector<EnumConstantDecl*>`, so that should be possible (I think it does require a `reinterpret_cast` from a `const Decl**` to a `const EnumConstantDecl**`, but we already do that in other places in Clang iirc).

The reason I suggested the template initially was because in LLDB's case we don't have the `EnumConstantDecl`s in a container. We only have an `EnumDecl`. So the plan was to pass the `enumerators()` iterator into `computeEnumBits`. But if you know of a good way to turn the range into a container that we can pass as an `ArrayRef`, or some non-template way of passing both an `iterator_range` and `ArrayRef` into `computeEnumBits`, that'd be great!

https://github.com/llvm/llvm-project/pull/126096


More information about the cfe-commits mailing list