Passing my test with random addresses, sequential addresses, DW_AT_range tests, and label tests.
While testing, I found some discrepancy between GNU and elftoolchain output. If you give the program the low_pc of a function(subprogram), GNU will output first line of c code that's not a macro. Elftoolchain will output the line that has the opening bracket "{" of the function.