<div dir="ltr">Hi,<br><br>Apologies if I got the wrong list for what is essentially a bug report with the front-end.<br><br>The following code (godbolt: <a href="https://godbolt.org/z/lT4LIe">https://godbolt.org/z/lT4LIe</a>) breaks with -DBREAKAGE and compiles without that macro:<br><br><br>struct Value {<br>  union {<br>    int i32;<br>    float f32;<br>  };<br>};<br><br>template < int ><br>Value foo()<br>{<br>  int acc_i32 = 0;<br>  float acc_f32 = 0;<br>  bool isF32 = false;<br><br>#if BREAKAGE<br>  if (isF32) {<br>    const Value acc = { .f32 = acc_f32 };<br>    return acc;<br>  }<br>#endif<br><br>  const Value acc = { .i32 = 32 /*acc_i32*/ };<br>  return acc;<br>}<br><br>Value bar()<br>{<br>  int acc_i32 = 0;<br>  float acc_f32 = 0;<br>  bool isF32 = false;<br><br>  if (isF32) {<br>    const Value acc = { .f32 = acc_f32 };<br>    return acc;<br>  }<br><br>  const Value acc = { .i32 = acc_i32 };<br>  return acc;<br>}<br><br>Value eval(const int a)<br>{<br>  if (a)<br>    return foo< 42 >(); // error: field designator (null) does not refer to any field in type..<br>  else<br>    return bar();<br>}<br><br>Please note that bar() does not exhibit the problem.<br><br>Best regards,<br>Martin</div>