rose-compiler/rose

Recovering pre-parsing line numbers of an SgLocatedNode

Opened this issue · 0 comments

I am using the OFP frontend. Can anyone recommend a means of recovering the pre-parsing line number of an SgLocatedNode? I have tried ->get_file_info()->get_line(), ->get_file_info()->get_raw_line(), and ->get_file_info()->get_physical_line(), though each of these gives the line number of the node in the resulting unparsed file which can be dramatically different. I am aware that it is expected behavior to have the unparsed file differ from the original.

What I am trying to accomplish is to automatically map execution counts for lines (from using gcov or some such on the original source) to the AST nodes from that line.

A potential workaround is to try running the profiler on a binary compiled using the unparsed files, though this is cumbersome since the unparsed files often do not compile without some manual massaging.

I have also tried adding a line before each line that containing a single comment with the original line number which I then access via ->getAttachedPreprocessingInfo(), though this admittedly hacky approach also fails since ROSE seems to arbitrarily move some comments around or remove them altogether. I can't help but feel like I'm missing something quite obvious?