No hay diagnóstico del compilador cuando el identificador en una captura simple aparece como el ID del declarador de un parámetro

La sección sobre capturas lambda ([expr.prim.lambda.capture] / 5) Establece qu

Si un identificador en una captura simple aparece como el id del declarador de un parámetro de la cláusula-declaración-parámetro del declarador lambda, el programa está mal formado.

Considere el siguiente ejemplo:

#include <iostream>

int main ()
{
    auto foo = 1234;
    auto bar = [foo](int foo) { std::cout << foo << '\n'; };
    bar(4321);     
}

La última versión de GCC (8.2.0 - lanzada el 26 de julio de 2018) no tiene diagnóstico para esto. Tampoco la última versión de Clang (7.0.0, lanzada el 19 de septiembre de 2018).

Debería haber un diagnóstico (error / advertencia) de estos compiladores (como se menciona en la referencia) en la línea de:

// parameter and simple-capture have the same name

Godbolt Demoaqu

Respuestas a la pregunta(1)

Su respuesta a la pregunta