> I have the impression that if there is copy pasted code in a function and 
> there are warnings then the hash will be the same. I don't know if this would 
> be a problem.. but is that true?


You are right: when a code is copy pasted within the same function (which 
implies that within the same file), the bug ids will be the same. We think 
that, having the same bug id inside a function in same rare cases is better 
than a too fragile bug id.

If we distinguish somehow between the two errors in this scenario, that makes 
the bug id too fragile (change almost every time, the function body is edited). 
In case you have an idea that can generate different bug ids for this case but 
not too fragile, please let us know.


================
Comment at: include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:78
@@ -77,2 +77,3 @@
   std::string Description;
+  std::string HashField;
   PathDiagnosticLocation Location;
----------------
danielmarjamaki wrote:
> I wonder if this needs to be a std::string.. the size of a hash is known isnt 
> it.
The HashField does not contains the hash itself but an arbitrary string 
generated by the checker to distinguish reports.  This is the optional extra 
field in the description. This string is added to the input of the hash 
function. 

================
Comment at: lib/StaticAnalyzer/Core/PlistDiagnostics.cpp:430
@@ +429,3 @@
+                                          StringRef HashField, const Decl *D) {
+  static const std::string Delimeter = "$";
+
----------------
danielmarjamaki wrote:
> It seems to me that this can be a char. Is std::string necessary or was it 
> chosen for safety?
Twine does not support appending a char, so I changed the delimiter to be a 
StringRef. The size of a StringRef is also smaller than a std::string. Thank 
you for this suggestion.

http://reviews.llvm.org/D10305

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to