+ /* Cast the pointers */
+ const LineInfo* LI1 = LI1_;
+ const LineInfo* LI2 = LI2_;
+
+ /* Unreferenced line infos are always larger, otherwise sort by file,
+ * then by line.
+ */
+ if ((LI1->Usage == 0) == (LI2->Usage == 0)) {
+ /* Both are either referenced or unreferenced */
+ if (LI1->Pos.Name< LI2->Pos.Name) {
+ return -1;
+ } else if (LI1->Pos.Name > LI2->Pos.Name) {
+ return 1;
+ } else if (LI1->Pos.Line < LI2->Pos.Line) {
+ return -1;
+ } else if (LI1->Pos.Line > LI2->Pos.Line) {
+ return 1;
+ } else {
+ return 0;
+ }
+ } else {
+ if (LI1->Usage > 0) {
+ return -1;
+ } else {
+ return 1;