summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@google.com>2014-04-11 13:55:56 +0000
committerDiego Novillo <dnovillo@google.com>2014-04-11 13:55:56 +0000
commit199de39bf0e43e05924c7ba10f86acbdb9df7db5 (patch)
tree09e942497bc877464057f1fcce671f63abb49b66
parent77d8793fa6357fd3e8b0a4794126b0eabcaa50bb (diff)
downloadbcm5719-llvm-199de39bf0e43e05924c7ba10f86acbdb9df7db5.tar.gz
bcm5719-llvm-199de39bf0e43e05924c7ba10f86acbdb9df7db5.zip
Fix use-after-free bug caught by address sanitizer:
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. llvm-svn: 206032
-rw-r--r--llvm/include/llvm/IR/DiagnosticInfo.h2
-rw-r--r--llvm/lib/IR/DiagnosticInfo.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/llvm/include/llvm/IR/DiagnosticInfo.h b/llvm/include/llvm/IR/DiagnosticInfo.h
index fb3c9b6302d..8e6f949b2f3 100644
--- a/llvm/include/llvm/IR/DiagnosticInfo.h
+++ b/llvm/include/llvm/IR/DiagnosticInfo.h
@@ -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.
diff --git a/llvm/lib/IR/DiagnosticInfo.cpp b/llvm/lib/IR/DiagnosticInfo.cpp
index 82cc0ed47b7..3f8100f985d 100644
--- a/llvm/lib/IR/DiagnosticInfo.cpp
+++ b/llvm/lib/IR/DiagnosticInfo.cpp
@@ -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;
OpenPOWER on IntegriCloud