Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[BTF] Fix BTFParserTest.cpp for unaligned access after D149058
Test bot reported an issue with unit tests for D149058 in [1]: [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from BTFParserTest [ RUN ] BTFParserTest.simpleCorrectInput /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/unittests/DebugInfo/BTF/BTFParserTest.cpp:141:33: runtime error: upcast of misaligned address 0x7facce60411f for type 'llvm::SmallString<0>', which requires 8 byte alignment 0x7facce60411f: note: pointer points here 64 00 00 00 37 41 60 ce ac 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/unittests/DebugInfo/BTF/BTFParserTest.cpp:141:33 The issue is caused by attribute "packed" used for too many things: #pragma pack(push, 1) struct MockData1 { struct B { ... } BTF; struct E { ... } Ext; int BTFSectionLen = sizeof(BTF); int ExtSectionLen = sizeof(Ext); SmallString<0> Storage; std::unique_ptr<ObjectFile> Obj; } #pragma pack(pop) Access to unaligned pointers in `Storage`/`Obj` causes unaligned access errors. To fix this #pragma directives are pushed invards to apply only to `B` and `E` definitions. [1] https://lab.llvm.org/buildbot/#/builders/5/builds/35040 Differential Revision: https://reviews.llvm.org/D155176
- Loading branch information