With llvm-ir (text) I know how to use llvm.dbg.declare, !DISubrange, etc to create a variable length array that gdb can understand
However, I do not know how to do this in a struct. The problem is DISubrange. If the struct is a variable on the stack I can declare the length as a variable and give it to DISubrange. How would I do this in a struct? I have no idea how to use a member as a variable. I suspect DIExpression is an answer but I have no idea how to use it. LLVM seems to suggest its using DWARF 5