On Fri, Oct 6, 2023 at 19:01 Alvaro Herrera <alvhe...@alvh.no-ip.org> wrote:
> On 2023-Oct-06, Amit Langote wrote: > > > 2. Assignment of op->d.iocoerce.escontext needed to be changed like this: > > > > v_params[4] = > l_ptr_const(op->d.iocoerce.escontext, > > - > > l_ptr(StructErrorSaveContext)); > > + l_ptr(StructNode)); > > Oh, so you had to go back to using StructNode in order to get this > fixed? That's weird. Is it just because InputFunctionCallSafe is > defined to take fmNodePtr? (I still fail to see that a pointer to > ErrorSaveContext would differ in any material way from a pointer to > Node). The difference matters to LLVM’s type system, which considers Node to be a type with 1 sub-type (struct member) and ErrorSaveContext with 4 sub-types. It doesn’t seem to understand that both share the first member. Another think I thought was weird is that it would only crash in LLVM5 > debug and not the other LLVM-enabled animals, but looking closer at the > buildfarm results, I think that may have been only because you reverted > too quickly, and phycodorus and petalura didn't actually run with > 7fbc75b26ed8 before you reverted it. Dragonet did make a run with it, > but it's marked as "LLVM optimized" instead of "LLVM debug". I suppose > that must be making a difference. AFAICS, only assert-enabled LLVM builds crash. >