// DR 2631: default args and DMI aren't immediately evaluated // { dg-do compile { target c++20 } } // { dg-final { scan-assembler-not "foober" } } consteval int foober(); int g(int = foober()); struct A { int i = foober(); }; template struct B { }; struct C { consteval C(int = foober()) { } }; int h(C = C()); consteval int foober() { return 42; } int main() { A a; B<> b; g(); h(); }