summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAlp Toker <alp@nuanti.com>2014-06-07 23:30:53 +0000
committerAlp Toker <alp@nuanti.com>2014-06-07 23:30:53 +0000
commit6719dde6f3b5a94712a143da016ee5e214dc5f60 (patch)
tree9816d1db1f44f2998a70f2712543d43294ecb957 /tools
parentb521d7647c33a9de7384146fe89663d63f4fbf25 (diff)
downloadclang-6719dde6f3b5a94712a143da016ee5e214dc5f60.tar.gz
clang-6719dde6f3b5a94712a143da016ee5e214dc5f60.tar.bz2
clang-6719dde6f3b5a94712a143da016ee5e214dc5f60.tar.xz
Avoid dubious IdentifierInfo::getNameStart() uses
These cases in particular were incurring an extra strlen() when we already knew the length. They appear to be leftovers from when the interfaces worked with C strings that have continued to compile due to the implicit StringRef ctor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210403 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/libclang/CXString.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/libclang/CXString.cpp b/tools/libclang/CXString.cpp
index 1523034dbd..662b0f94db 100644
--- a/tools/libclang/CXString.cpp
+++ b/tools/libclang/CXString.cpp
@@ -81,7 +81,11 @@ CXString createDup(const char *String) {
CXString createRef(StringRef String) {
// If the string is not nul-terminated, we have to make a copy.
- // This is doing a one past end read, and should be removed!
+
+ // FIXME: This is doing a one past end read, and should be removed! For memory
+ // we don't manage, the API string can become unterminated at any time outside
+ // our control.
+
if (!String.empty() && String.data()[String.size()] != 0)
return createDup(String);