[all-commits] [llvm/llvm-project] 63b0f8: [RecordLayout] Fix ItaniumRecordLayoutBuilder so t...

Shafik Yaghmour via All-commits all-commits at lists.llvm.org
Wed Jul 8 10:07:38 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 63b0f8c788d8c6978feb099fd6db8fe219c4d166
      https://github.com/llvm/llvm-project/commit/63b0f8c788d8c6978feb099fd6db8fe219c4d166
  Author: shafik <syaghmour at apple.com>
  Date:   2020-07-08 (Wed, 08 Jul 2020)

  Changed paths:
    M clang/lib/AST/RecordLayoutBuilder.cpp
    A lldb/test/API/lang/cpp/alignas_base_class/Makefile
    A lldb/test/API/lang/cpp/alignas_base_class/TestAlignAsBaseClass.py
    A lldb/test/API/lang/cpp/alignas_base_class/main.cpp

  Log Message:
  -----------
  [RecordLayout] Fix ItaniumRecordLayoutBuilder so that is grabs the correct bases class offsets from the external source

Currently the ItaniumRecordLayoutBuilder when laying out base classes has the virtual
and non-virtual bases mixed up when pulling the base class layouts from the external source.

This came up in an LLDB bug where on arm64 because of differences in how it deals with
tail padding would layout the bases differently without the correct layout from the
external source (LLDB). This would result in some fields being off by 4 bytes.

Differential Revision: https://reviews.llvm.org/D83008




More information about the All-commits mailing list