This is one of various functions in clang that don't handle arbitrary strings
well and can benefit from compile-time safety checks.
Also fixes an off-by-one error that caused one additional null byte to get
added to the end of custom diagnostic descriptions. ConstStringRef handles
tricky details like that for us now.
Requires supporting changes in LLVM r200187.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200190
91177308-0d34-0410-b5e6-
96231b3b80d8
///
/// \param FormatString A fixed diagnostic format string that will be hashed
/// and mapped to a unique DiagID.
- template <unsigned N>
- unsigned getCustomDiagID(Level L, const char (&FormatString)[N]) {
- return Diags->getCustomDiagID((DiagnosticIDs::Level)L,
- StringRef(FormatString, N));
+ unsigned getCustomDiagID(Level L, ConstStringRef FormatString) {
+ return Diags->getCustomDiagID((DiagnosticIDs::Level)L, FormatString);
}
/// \brief Converts a diagnostic argument (as an intptr_t) into the string
namespace llvm {
// ADT's.
class StringRef;
+ class ConstStringRef;
class Twine;
template<typename T> class ArrayRef;
template<typename T> class OwningPtr;
using llvm::None;
using llvm::Optional;
using llvm::StringRef;
+ using llvm::ConstStringRef;
using llvm::Twine;
using llvm::ArrayRef;
using llvm::OwningPtr;