From: Chris Lattner Date: Wed, 19 Nov 2008 05:34:22 +0000 (+0000) Subject: Address Sebastian and Doug's objections with taking pointers to temporaries. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cfa96326158c32a0e08d3985a050f46bf7c6132d;p=clang Address Sebastian and Doug's objections with taking pointers to temporaries. Instead of doing that, copy the strings into the diagnostic info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59590 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/Diagnostic.h b/include/clang/Basic/Diagnostic.h index 3edf990d24..ca7c100ee9 100644 --- a/include/clang/Basic/Diagnostic.h +++ b/include/clang/Basic/Diagnostic.h @@ -180,7 +180,7 @@ private: /// DiagArguments - The values for the various substitution positions. It /// currently only support 10 arguments (%0-%9). - const std::string *DiagArguments[10]; + std::string DiagArguments[10]; /// DiagRanges - The list of ranges added to this diagnostic. It currently /// only support 10 ranges, could easily be extended if needed. const SourceRange *DiagRanges[10]; @@ -255,7 +255,7 @@ public: const std::string &getArgStr(unsigned Idx) const { assert((signed char)Idx < DiagObj->NumDiagArgs && "Argument out of range!"); - return *DiagObj->DiagArguments[Idx]; + return DiagObj->DiagArguments[Idx]; } /// getNumRanges - Return the number of source ranges associated with this @@ -273,7 +273,7 @@ public: assert((unsigned)DiagObj->NumDiagArgs < sizeof(DiagObj->DiagArguments)/sizeof(DiagObj->DiagArguments[0]) && "Too many arguments to diagnostic!"); - DiagObj->DiagArguments[DiagObj->NumDiagArgs++] = &S; + DiagObj->DiagArguments[DiagObj->NumDiagArgs++] = S; return *this; }