HomePhabricator

[Sema][SVE] Don't allow static or thread-local variables to have sizeless type

Authored by rsandifo-arm on Feb 21 2020, 7:49 AM.

Description

[Sema][SVE] Don't allow static or thread-local variables to have sizeless type

clang accepts a TU containing just:

__SVInt8_t x;

However, sizeless types are not allowed to have static or thread-local
storage duration and trying to code-generate the TU triggers an LLVM
fatal error:

Globals cannot contain scalable vectors
<vscale x 16 x i8>* @x
fatal error: error in backend: Broken module found, compilation aborted!

This patch adds an associated clang diagnostic.

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