diff options
author | Nick Kledzik <kledzik@apple.com> | 2014-09-25 20:30:58 +0000 |
---|---|---|
committer | Nick Kledzik <kledzik@apple.com> | 2014-09-25 20:30:58 +0000 |
commit | e648037449a0bb69b80275421fa6c30145f84c84 (patch) | |
tree | 36e7a464469a8519881a0dfb6a2408701a4acf50 /llvm/lib/CodeGen/MachineSink.cpp | |
parent | 3fa65d4ef488a53105ab2994b997a63683e86787 (diff) | |
download | llvm-e648037449a0bb69b80275421fa6c30145f84c84.zip llvm-e648037449a0bb69b80275421fa6c30145f84c84.tar.gz llvm-e648037449a0bb69b80275421fa6c30145f84c84.tar.bz2 |
[Support] Add type-safe alternative to llvm::format()
llvm::format() is somewhat unsafe. The compiler does not check that integer
parameter size matches the %x or %d size and it does not complain when a
StringRef is passed for a %s. And correctly using a StringRef with format() is
ugly because you have to convert it to a std::string then call c_str().
The cases where llvm::format() is useful is controlling how numbers and
strings are printed, especially when you want fixed width output. This
patch adds some new formatting functions to raw_streams to format numbers
and StringRefs in a type safe manner. Some examples:
OS << format_hex(255, 6) => "0x00ff"
OS << format_hex(255, 4) => "0xff"
OS << format_decimal(0, 5) => " 0"
OS << format_decimal(255, 5) => " 255"
OS << right_justify(Str, 5) => " foo"
OS << left_justify(Str, 5) => "foo "
llvm-svn: 218463
Diffstat (limited to 'llvm/lib/CodeGen/MachineSink.cpp')
0 files changed, 0 insertions, 0 deletions