llvm rejects DWARF operator DW_OP_over.This DWARF
operator is needed for Flang to support assumed rank array.
Debugger in such cases calculates Array bounds using
DW_AT_rank and DW_TAG_generic_subrange.
for (i=0;i<rank;i++) {
lBound of i'th dim =>
Debugger keeps hidden operator DW_OP_lit"i" before lBound expression
and this operator is used by the expression having DW_OP_over.
}
Summary:
Currently llvm rejects DWARF operator DW_OP_over.
below error is produced when llvm finds this operator.
[..]
invalid expression
!DIExpression(151, 20, 16, 48, 30, 35, 80, 34, 6)
warning: ignoring invalid debug info in over.ll
[..]
There are some parts missing in support of this operator, need to
be completed.
Testing
-added a unit testcase
-check-debuginfo
-check-llvm