[cfe-dev] A bug in PresumedLoc?

maxs xtxwy.ustc at gmail.com
Mon Dec 2 23:55:53 PST 2013


Hi all,
     I use the following code to get source location:
=================================

     SourceManager &SM = context.getSourceManager();
     int lineStart = SM.getPresumedLoc(SR->getBegin()).getLine();
     int lineEnd = SM.getPresumedLoc(SR->getEnd()).getLine();
     int colStart = SM.getPresumedLoc(SR->getBegin()).getColumn();
     int colEnd = SM.getPresumedLoc(SR->getEnd()).getColumn();
     llvm::outs() << "For:" << lineStart << "  " << colStart << "  " << lineEnd << "  " << colEnd << " \n";

=================================

The test case is:

=================================
(1)

for(i = 0 ; i<100;i++)
sum++;

(2)

for(i = 0 ; i<100;i++)
{sum++;}

=================================

The result is:

=================================
(1)

44  1  45  4   =>  incorrect, should be 44  1  45  4

(2)

44  1  45  8  => correct

=================================

So, is it a bug?  or I misunderstand it?

Thanks.



More information about the cfe-dev mailing list