Fix use-after-free bug caught by address sanitizer:
authorDiego Novillo <dnovillo@google.com>
Fri, 11 Apr 2014 13:55:56 +0000 (13:55 +0000)
committerDiego Novillo <dnovillo@google.com>
Fri, 11 Apr 2014 13:55:56 +0000 (13:55 +0000)
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/2959

The location string is returned as a std::string, not a StringRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206032 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/DiagnosticInfo.h
lib/IR/DiagnosticInfo.cpp

index fb3c9b6302dc02fb91c7905adbad82c6318800db..8e6f949b2f31e19216e74e81df15f39257140842 100644 (file)
@@ -267,7 +267,7 @@ public:
   /// Return a string with the location information for this diagnostic
   /// in the format "file:line:col". If location information is not available,
   /// it returns "<unknown>:0:0".
-  const StringRef getLocationStr() const;
+  const std::string getLocationStr() const;
 
   /// Return location information for this diagnostic in three parts:
   /// the source file name, line number and column.
index 82cc0ed47b7198d2df9a6b219d814baf89dfa9f0..3f8100f985d777fb6f097da6ef7b9d2cc3ed9ade 100644 (file)
@@ -80,7 +80,7 @@ void DiagnosticInfoOptimizationRemark::getLocation(StringRef *Filename,
   *Column = DIL.getColumnNumber();
 }
 
-const StringRef DiagnosticInfoOptimizationRemark::getLocationStr() const {
+const std::string DiagnosticInfoOptimizationRemark::getLocationStr() const {
   StringRef Filename("<unknown>");
   unsigned Line = 0;
   unsigned Column = 0;