[PATCH] D136090: Handle errors in expansion of response files

Serge Pavlov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 28 03:15:53 PDT 2022


sepavloff added inline comments.


================
Comment at: clang/unittests/Driver/ToolChainTest.cpp:604-606
+  char *StrBuff = (char *)Alloc.Allocate(6, 2);
+  std::memcpy(StrBuff, "\xFF\xFE\x00\xD8\x00\x00", 6);
+  StringRef BadUTF(StrBuff, 6);
----------------
mgorny wrote:
> Wouldn't it be possible to use `std::string`, or maybe even `std::array<char, ...>` here? I think it'd be less error-prone.
Nor `std::string` neither `std::array<char,N>` provide custom alignment.

UTF-16 string is constructed here from array of chars to avoid problems with endianness. It consists of 2-byte elements and is expected to be aligned on 2-byte boundary. Array of chars is aligned on byte and sometimes the test failed due to invalid alignment.

So we have to use bare pointer to have guaranteed alignment.



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136090/new/

https://reviews.llvm.org/D136090



More information about the cfe-commits mailing list