HomePhabricator

[Sema][SVE] Don't allow fields to have sizeless type

Authored by rsandifo-arm on Feb 21 2020, 8:14 AM.

Description

[Sema][SVE] Don't allow fields to have sizeless type

The SVE ACLE doesn't allow fields to have sizeless type. At the moment
clang accepts things like:

struct s { __SVInt8_t x; } y;

but trying to code-generate it leads to LLVM asserts like:

llvm/include/llvm/Support/TypeSize.h:126: uint64_t llvm::TypeSize::getFixedSize() const: Assertion `!IsScalable && "Request for a fixed size on a scalable object"' failed.

This patch adds an associated clang diagnostic.

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

Details