[all-commits] [llvm/llvm-project] 46ca88: clang: Don't assert on no_unique_address fields in...
Nico Weber via All-commits
all-commits at lists.llvm.org
Fri Nov 13 08:39:35 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 46ca880fcae24693d381ca05c16c704675545433
https://github.com/llvm/llvm-project/commit/46ca880fcae24693d381ca05c16c704675545433
Author: Nico Weber <thakis at chromium.org>
Date: 2020-11-13 (Fri, 13 Nov 2020)
Changed paths:
M clang/lib/AST/ASTContext.cpp
M clang/test/CodeGenObjCXX/encode.mm
Log Message:
-----------
clang: Don't assert on no_unique_address fields in @encode()
Just skip (non-bitfield) zero-sized fields, like we do with empty bases.
The class->struct conversion in the test is because -std=c++20 else deletes some default methods
due to non-accessible base dtors otherwise.
As a side-effect of writing the test, I discovered that D76801 did an ABI breaking change of sorts
for Objective-C's @encode. But it's been in for a while, so I'm not sure if we want to row back on
that or now.
Fixes PR48048.
Differential Revision: https://reviews.llvm.org/D90622
More information about the All-commits
mailing list