[llvm] [ADT] Fix llvm::concat_iterator for `ValueT == common_base_class *` (PR #144744)

Jakub Kuderski via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 20 14:24:44 PDT 2025


https://github.com/kuhar commented:

I took a closer look and I think I understand what the underlying issue was: with mixed pointer types, reference/handle type can no longer be `T*&` / `T**` because while it's fine to cast derived pointers to `T*`, we can't take an address off them using that base type.

I wonder if we should tighten this check to make sure that at least one input range type doesn't match the `ValueT` pointer type, and with that having them be returned via the same logic as `ReturnsByValue` doesn't sounds too bad to me. WDYT?

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


More information about the llvm-commits mailing list