};
} // end anonymous namespace
-/// UToStr - Do itoa on the specified number, in-place in the specified buffer.
-/// endptr points to the end of the buffer.
-static char *UToStr(unsigned N, char *EndPtr) {
- // Null terminate the buffer.
- *--EndPtr = '\0';
- if (N == 0) // Zero is a special case.
- *--EndPtr = '0';
- while (N) {
- *--EndPtr = '0' + char(N % 10);
- N /= 10;
- }
- return EndPtr;
-}
-
-
/// MoveToLine - Move the output to the source line specified by the location
/// object. We can do this by emitting some number of \n's, or be emitting a
/// #line directive. This returns false if already at the specified line, true
CurLine = LineNo;
- OS << '#' << ' ';
- char NumberBuffer[20];
- const char *NumStr = UToStr(LineNo, NumberBuffer+20);
- OS.write(NumStr, (NumberBuffer+20)-NumStr-1);
- OS << ' ';
- OS << '"';
+ OS << '#' << ' ' << LineNo << ' ' << '"';
OS.write(&CurFilename[0], CurFilename.size());
OS << '"';
EmittedTokensOnThisLine = false;
}
- OS << '#' << ' ';
-
- char NumberBuffer[20];
- const char *NumStr = UToStr(CurLine, NumberBuffer+20);
- OS.write(NumStr, (NumberBuffer+20)-NumStr-1);
- OS << ' ' << '"';
+ OS << '#' << ' ' << CurLine << ' ' << '"';
OS.write(&CurFilename[0], CurFilename.size());
OS << '"';