------- Comment #4 from rguenth at gcc dot gnu dot org 2008-04-05 20:58 ------- (works with the C frontend)
We don't share the decls of g_iValue properly, but doesn't this program violate the ODR anyway? void SetValue(int) (iD.2309) { <bb 2>: g_iValueD.2312 ={v} iD.2309_1(D); return; } int GetValue() () { intD.2 D.2316; <bb 2>: D.2316_1 = g_iValueD.2315; return D.2316_1; } int main() () { intD.2 D.2333; intD.2 D.2333; intD.2 iValueSaveD.2320; <bb 2>: iValueSaveD.2320_6 = g_iValueD.2315; g_iValueD.2312 ={v} 1; D.2333_7 = g_iValueD.2315; printf (&"%d\n"[0], D.2333_7); g_iValueD.2312 ={v} iValueSaveD.2320_6; return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35835