CTSRD-CHERI/llvm-project

Crash when parsing capability qualifier with typeof

arichardson opened this issue · 0 comments

struct s { int i; };
static struct s *global_sptr = 0;
static __capability typeof(global_sptr) global_scap = 0;

Fails with
Assertion isDeclRep((TST) TypeSpecType) || TypeSpecType == TST_typename' failed.`

Interestingly using int instead of a struct works as expected:

static int *global_intptr = 0;
static __capability typeof(global_intptr) global_intcap = 0;
_Static_assert(__builtin_types_compatible_p(typeof(global_intptr), int *), "");
_Static_assert(__builtin_types_compatible_p(typeof(global_intcap), int *__capability), "");