http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57349

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Reduced testcase, fails with -O -fbranch-probabilities

struct __jmp_buf_tag   { };
typedef struct __jmp_buf_tag jmp_buf[1];
typedef struct cop COP;
typedef struct gv GV;
struct cop {
    GV * cop_filegv;
};
struct jmpenv {
    jmp_buf je_buf;
    int je_ret;
};
typedef struct jmpenv JMPENV;
extern char * PL_origfilename;
extern COP * volatile PL_curcop ;
static void open_script() {
    PL_curcop->cop_filegv = Perl_gv_fetchfile(PL_origfilename);
}
int perl_parse(char **argv) {
    char *scriptname = ((void *)0);
    char *validarg = "";
    JMPENV cur_env;
    int fdscript = -1;
    cur_env.je_ret = _setjmp (((cur_env.je_buf)));
    if (!scriptname)  scriptname = argv[0];
    open_script();
    validate_suid(validarg, scriptname,fdscript);
}

Reply via email to