https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78244
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Enhanced testcase (so that I don't lose it): template <typename T> auto f1(T) -> decltype(int{2.0}, void()) { } template <typename T> auto f2(T) -> decltype(int{2.0}) { return 1; } template <typename T> auto f3(T) -> decltype(void(), int{2.0}) { return 1; } int main () { f1 (0); f2 (0); f3 (0); }