Fix unaligned load

PiperOrigin-RevId: 577106224
Change-Id: Icd0e113031d367fa30557d4e77571abc78e8e378
pull/171/head
Wiktor Garbacz 2023-10-27 00:34:21 -07:00 committed by Copybara-Service
parent 0940a9ee4a
commit 4630346fd1
1 changed files with 4 additions and 2 deletions

View File

@ -15,6 +15,7 @@
#include "sandboxed_api/tools/clang_generator/diagnostics.h"
#include <cstdint>
#include <cstring>
#include <utility>
#include "absl/status/status.h"
@ -50,8 +51,9 @@ absl::optional<clang::SourceLocation> GetDiagnosticLocationFromStatus(
if (auto payload =
status.GetPayload(kSapiStatusPayload).value_or(absl::Cord());
payload.size() == sizeof(uint64_t)) {
return clang::SourceLocation::getFromRawEncoding(
*reinterpret_cast<const uint64_t*>(payload.Flatten().data()));
uint64_t raw_encoding = 0;
memcpy(&raw_encoding, payload.Flatten().data(), sizeof(raw_encoding));
return clang::SourceLocation::getFromRawEncoding(raw_encoding);
}
return absl::nullopt;
}