aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineSink.cpp
diff options
context:
space:
mode:
authorNick Kledzik <kledzik@apple.com>2014-09-25 20:30:58 +0000
committerNick Kledzik <kledzik@apple.com>2014-09-25 20:30:58 +0000
commite648037449a0bb69b80275421fa6c30145f84c84 (patch)
tree36e7a464469a8519881a0dfb6a2408701a4acf50 /llvm/lib/CodeGen/MachineSink.cpp
parent3fa65d4ef488a53105ab2994b997a63683e86787 (diff)
downloadllvm-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