Documentação da conversão de "valor inválido do ponteiro" em implementações C ++

De acordo com o padrão C ++, é obrigatório para toda implementação documentar "comportamento definido pela implementação":

1.3.11[defns.impl.defined] comportamento definido pela implementação

comportamento, para uma construção de programa bem formada e dados corretos, que depende da implementação e que cada implementação documenta

E a leitura de um valor de ponteiro inválido possui um comportamento definido pela implementação (consulte 4.1 Conversão de valor-para-valor[conv.lval]):

se o objeto ao qual o glvalue se refere contiver um valor de ponteiro inválido (3.7.4.2, 3.7.4.3), o comportamento será definido pela implementação.

(cite o rascunho n4527, mas diga que "Indirecionar através de um valor de ponteiro inválido e passar um valor de ponteiro inválido para uma função de desalocação tem um comportamento indefinido. Qualquer outro uso de um valor de ponteiro inválido tem um comportamento definido pela implementação". 4.2 Funções de desalocação[basic.stc.dynamic.deallocation] desde pelo menos o rascunho n3485)

No entanto, muitas implementações populares não definem esse comportamento, e muitos especialistas descrevem isso como "comportamento indefinido".

Uma causa provável para a omissão de documentação clara é que, até onde posso determinar, a avaliação de "valores inválidos de ponteiro" está ausente no "Índice de comportamento definido pela implementação", que aparece nos rascunhos padrão após os apêndices.

Isso é um defeito no Padrão e existem relatórios abertos de defeitos ou ações do comitê tomadas desde C ++ 14 a respeito?

questionAnswers(1)

yourAnswerToTheQuestion