================ @@ -25,14 +25,19 @@ enum CXStringFlag { /// CXString contains a 'const char *' that it doesn't own. CXS_Unmanaged, - /// CXString contains a 'const char *' that it allocated with malloc(). - CXS_Malloc, + /// CXString contains a 'CStringImpl' that it allocated with malloc(). + CXS_MallocWithSize, /// CXString contains a CXStringBuf that needs to be returned to the /// CXStringPool. CXS_StringBuf }; +struct CStringImpl { + size_t length; + char buffer[sizeof(length)]; ---------------- AaronBallman wrote:
This not being in C++ is a good point. Given that this is purely internal, maybe we want to just have the size field and then tail-allocate the buffer? We could probably even use `llvm::TrailingObjects` given that this all lives in a C++ file? https://github.com/llvm/llvm-project/pull/134551 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits