Por que o tamanho máximo de uma matriz é "muito grande"?

Estou com a mesma impressão queesta resposta, quesize_t é sempre garantido pelo padrão como sendo grande o suficiente para conter o maior tipo possível de um determinado sistema.

No entanto, esse código falha ao compilar no gcc / Mingw:

#include <stdint.h>
#include <stddef.h>

typedef uint8_t array_t [SIZE_MAX];

erro: o tamanho da matriz 'array_t' é muito grande

Estou entendendo algo errado no padrão aqui? Ésize_t permitido ser muito grande para uma determinada implementação? Ou isso é outro bug em Mingw?

EDIT: mais pesquisas mostram que

typedef uint8_t array_t [SIZE_MAX/2];   // does compile
typedef uint8_t array_t [SIZE_MAX/2+1]; // does not compile

Que passa a ser o mesmo que

#include <limits.h>

typedef uint8_t array_t [LLONG_MAX];           // does compile
typedef uint8_t array_t [LLONG_MAX+(size_t)1]; // does not compile

Portanto, agora estou inclinado a acreditar que isso é um bug no Mingw, porque definir o tamanho máximo permitido com base em um tipo inteiro assinado não faz sentido.

questionAnswers(4)

yourAnswerToTheQuestion