diff options
author | Diego Novillo <dnovillo@google.com> | 2014-04-11 13:55:56 +0000 |
---|---|---|
committer | Diego Novillo <dnovillo@google.com> | 2014-04-11 13:55:56 +0000 |
commit | 199de39bf0e43e05924c7ba10f86acbdb9df7db5 (patch) | |
tree | 09e942497bc877464057f1fcce671f63abb49b66 | |
parent | 77d8793fa6357fd3e8b0a4794126b0eabcaa50bb (diff) | |
download | bcm5719-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.h | 2 | ||||
-rw-r--r-- | llvm/lib/IR/DiagnosticInfo.cpp | 2 |
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; |