/* PR69537, spurious warning because of a missed optimization. */ /* { dg-do compile } */ /* { dg-options "-O2 -fno-short-enums -Wuninitialized" } */ enum clnt_stat { RPC_SUCCESS=0, RPC_CANTENCODEARGS=1, }; int do_ypcall_tr (); static int yp_master (char **outname) { // Replacing enum clnt_stat with int avoids the warning. enum clnt_stat result; result = do_ypcall_tr (); if (result != 0) return result; *outname = __builtin_strdup ("foo"); return 0; } int yp_update (void) { char *master; int r; if ((r = yp_master (&master)) != 0) return r; __builtin_free (master); /* { dg-bogus "uninitialized" } */ return 0; }