SourceLoc comparison

Hi,

When grabbing SourceLocs from different Preprocessors, they cannot be compared with each other by using their comparison operator.

I assume this is because they have some kind of pointer identity and equality just compares raw representations.

I attached a function that helped me solve this issue. Can you please give feedback if I missed something existing or if there is an issue with my approach? Or maybe the SourceManager/Preprocessor should not even create new "duplicate" SrcLocs in this case?

Regards
Rafael