llvm-project/llvm/lib
Nick Kledzik e648037449 [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
2014-09-25 20:30:58 +00:00
..
Analysis Fix assertion in LICM doFinalization() 2014-09-24 16:48:31 +00:00
AsmParser Make CallingConv::ID an alias of "unsigned". 2014-09-10 18:00:17 +00:00
Bitcode Do not destroy external linkage when deleting function body 2014-09-23 12:54:19 +00:00
CodeGen SelectionDAG: Remove #if NDEBUG from check for a post-isel hook 2014-09-25 18:59:22 +00:00
DebugInfo Revert 218406 - Refactor the RelocVisitor::visit method 2014-09-24 21:30:43 +00:00
ExecutionEngine [MCJIT] Fix some more RuntimeDyld debugging output format specifiers. 2014-09-23 19:20:57 +00:00
IR DIBuilder: Delete dead code, NFC 2014-09-19 23:17:58 +00:00
IRReader Pass a && to getLazyBitcodeModule. 2014-09-03 17:31:46 +00:00
LTO LTO: introduce object file-based on-disk module format. 2014-09-18 21:28:49 +00:00
LineEditor [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
Linker Merge alignment of common GlobalValue. 2014-09-09 17:48:18 +00:00
MC MC: Use @IMGREL instead of @IMGREL32, which we can't parse 2014-09-25 02:09:18 +00:00
Object Converting object's error_category to a ManagedStatic to avoid static constructors and destructors. 2014-09-19 22:09:18 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData llvm-cov: Combine segments that cover the same location 2014-09-25 00:34:18 +00:00
Support [Support] Add type-safe alternative to llvm::format() 2014-09-25 20:30:58 +00:00
TableGen Refactoring: raw pointer -> unique_ptr 2014-09-25 19:55:58 +00:00
Target ARM: Remove unneeded check for MI->hasPostISelHook() 2014-09-25 18:59:23 +00:00
Transforms [asan] don't instrument module CTORs that may be run before asan.module_ctor. This fixes asan running together -coverage 2014-09-24 22:41:55 +00:00
CMakeLists.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
LLVMBuild.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
Makefile ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00