[cfe-commits] r66265 - in /cfe/trunk: include/clang/Analysis/PathDiagnostic.h lib/Analysis/PathDiagnostic.cpp

Ted Kremenek kremenek at apple.com
Thu Mar 5 23:53:30 PST 2009


Author: kremenek
Date: Fri Mar  6 01:53:30 2009
New Revision: 66265

URL: http://llvm.org/viewvc/llvm-project?rev=66265&view=rev
Log:
Fix regression: initialize 'size' for PathDiagnostic to 0.
Add some assertions along the way...

Modified:
    cfe/trunk/include/clang/Analysis/PathDiagnostic.h
    cfe/trunk/lib/Analysis/PathDiagnostic.cpp

Modified: cfe/trunk/include/clang/Analysis/PathDiagnostic.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/PathDiagnostic.h?rev=66265&r1=66264&r2=66265&view=diff

==============================================================================
--- cfe/trunk/include/clang/Analysis/PathDiagnostic.h (original)
+++ cfe/trunk/include/clang/Analysis/PathDiagnostic.h Fri Mar  6 01:53:30 2009
@@ -37,8 +37,12 @@
   const DisplayHint Hint;
   std::vector<SourceRange> ranges;
   
-public:
+  // Do not implement:
+  PathDiagnosticPiece();
+  PathDiagnosticPiece(const PathDiagnosticPiece &P);
+  PathDiagnosticPiece& operator=(const PathDiagnosticPiece &P);
   
+public:
   PathDiagnosticPiece(FullSourceLoc pos, const std::string& s,
                       Kind k = Event,
                       DisplayHint hint = Above);
@@ -98,10 +102,10 @@
   std::string Desc;
   std::string Category;
   std::vector<std::string> OtherDesc;
-
+  
 public:  
-  PathDiagnostic() : Size(0) {}
-
+  PathDiagnostic();
+  
   PathDiagnostic(const char* bugtype, const char* desc, const char* category);
   
   PathDiagnostic(const std::string& bugtype, const std::string& desc, 

Modified: cfe/trunk/lib/Analysis/PathDiagnostic.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/PathDiagnostic.cpp?rev=66265&r1=66264&r2=66265&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/PathDiagnostic.cpp (original)
+++ cfe/trunk/lib/Analysis/PathDiagnostic.cpp Fri Mar  6 01:53:30 2009
@@ -36,12 +36,20 @@
 PathDiagnosticPiece::PathDiagnosticPiece(FullSourceLoc pos,
                                          const std::string& s,
                                          Kind k, DisplayHint hint)
-  : Pos(pos), str(s, 0, GetNumCharsToLastNonPeriod(s)), kind(k), Hint(hint) {}
+  : Pos(pos), str(s, 0, GetNumCharsToLastNonPeriod(s)), kind(k), Hint(hint) {
+    assert(Pos.isValid() &&
+           "PathDiagnosticPiece's must have a valid location.");
+}
 
 PathDiagnosticPiece::PathDiagnosticPiece(FullSourceLoc pos,
                                          const char* s, Kind k,
                                          DisplayHint hint)
-  : Pos(pos), str(s, GetNumCharsToLastNonPeriod(s)), kind(k), Hint(hint) {}
+  : Pos(pos), str(s, GetNumCharsToLastNonPeriod(s)), kind(k), Hint(hint) {
+  assert(Pos.isValid() &&
+         "PathDiagnosticPiece's must have a valid location.");
+}
+
+PathDiagnostic::PathDiagnostic() : Size(0) {}
 
 PathDiagnostic::~PathDiagnostic() {
   for (iterator I = begin(), E = end(); I != E; ++I) delete &*I;
@@ -50,14 +58,16 @@
 
 PathDiagnostic::PathDiagnostic(const char* bugtype, const char* desc,
                                const char* category)
-  : BugType(bugtype, GetNumCharsToLastNonPeriod(bugtype)),
+  : Size(0),
+    BugType(bugtype, GetNumCharsToLastNonPeriod(bugtype)),
     Desc(desc, GetNumCharsToLastNonPeriod(desc)),
     Category(category, GetNumCharsToLastNonPeriod(category)) {}
 
 PathDiagnostic::PathDiagnostic(const std::string& bugtype,
                                const std::string& desc, 
                                const std::string& category)
-  : BugType(bugtype, 0, GetNumCharsToLastNonPeriod(bugtype)),
+  : Size(0),
+    BugType(bugtype, 0, GetNumCharsToLastNonPeriod(bugtype)),
     Desc(desc, 0, GetNumCharsToLastNonPeriod(desc)),
     Category(category, 0, GetNumCharsToLastNonPeriod(category)) {}
 





More information about the cfe-commits mailing list