Clang fails to compile

Hi Devs,
Consider below testcase

$cat test.cpp

struct A
struct B
double m = 0.;
void f(double d, const B &b = B{}) {}

GCC also rejects this:

So I’m leaning towards Clang/GCC probably being correct - but CC’ing Richard Smith: I would’ve thought the enclosing class of ‘m’ would be B, and so the default member initializer wasn’t needed before the end of /that/ enclosing class. But I guess I’m wrong here?