llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Vitaly Buka (vitalybuka) <details> <summary>Changes</summary> We can't guaranty that underlying string is 0-terminated and [String.size()] is even in the same allocation. --- Full diff: https://github.com/llvm/llvm-project/pull/125020.diff 1 Files Affected: - (modified) clang/tools/libclang/CXString.cpp (+1-13) ``````````diff diff --git a/clang/tools/libclang/CXString.cpp b/clang/tools/libclang/CXString.cpp index 5e427957a1092b..aaa8f8eeb67a12 100644 --- a/clang/tools/libclang/CXString.cpp +++ b/clang/tools/libclang/CXString.cpp @@ -87,19 +87,7 @@ CXString createRef(StringRef String) { if (String.empty()) return createEmpty(); - // If the string is not nul-terminated, we have to make a copy. - - // 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.data()[String.size()] != 0) - return createDup(String); - - CXString Result; - Result.data = String.data(); - Result.private_flags = (unsigned) CXS_Unmanaged; - return Result; + return createDup(String); } CXString createDup(StringRef String) { `````````` </details> https://github.com/llvm/llvm-project/pull/125020 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits