summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2018-05-23 09:02:40 +0000
committerRaphael Isemann <teemperor@gmail.com>2018-05-23 09:02:40 +0000
commiteb13d3d22e9bd303b4065b372a692cd04e4b8cc1 (patch)
treeaef99e8ddea888f84df42fed141d687d6c1c82f9 /clang/lib
parent6356571ec03d8ba816f9ac1d506b9fd34cfc9f3f (diff)
downloadbcm5719-llvm-eb13d3d22e9bd303b4065b372a692cd04e4b8cc1.tar.gz
bcm5719-llvm-eb13d3d22e9bd303b4065b372a692cd04e4b8cc1.zip
Fix unaligned memory access when reading INPUT_FILE_OFFSETS data
Summary: The blob data is unaligned, so we also should read it as such. Should fix the random failures with the sanitizer builds. Reviewers: rsmith, v.g.vassilev Reviewed By: v.g.vassilev Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D47247 llvm-svn: 333069
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Serialization/ASTReader.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index 8c8b8788910..8224236f610 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -4811,7 +4811,8 @@ bool ASTReader::readASTFileControlBlock(
unsigned NumInputFiles = Record[0];
unsigned NumUserFiles = Record[1];
- const uint64_t *InputFileOffs = (const uint64_t *)Blob.data();
+ const llvm::support::unaligned_uint64_t *InputFileOffs =
+ (const llvm::support::unaligned_uint64_t *)Blob.data();
for (unsigned I = 0; I != NumInputFiles; ++I) {
// Go find this input file.
bool isSystemFile = I >= NumUserFiles;
OpenPOWER on IntegriCloud