On Fri, Oct 7, 2011 at 6:34 PM, Michael Matz <[email protected]> wrote: > Hi, > > tree-emutls.c missed to called add_referenced_var for a variable that is > referenced. That always was a bug, but meanwhile is fatal (causing a > segfault). This fixes the problem. Okay for trunk if regstrapping > succeeds?
Ok (qualifies even as obvious). Thanks, Richard. > The related bugreport PR50640 (fortran segfaults for similar reasons) is a > bit more involved and requires some pondering on my part. The PR50644 > (LTO segfault) requires some analysis still, to know which variable causes > this. > > > Ciao, > Michael. > ----------------- > PR middle-end/50638 > * tree-emutls.c (gen_emutls_addr): Call add_referenced_var. > > Index: tree-emutls.c > =================================================================== > --- tree-emutls.c (revision 179606) > +++ tree-emutls.c (working copy) > @@ -434,6 +434,7 @@ gen_emutls_addr (tree decl, struct lower > addr = create_tmp_var (build_pointer_type (TREE_TYPE (decl)), NULL); > x = gimple_build_call (d->builtin_decl, 1, build_fold_addr_expr > (cdecl)); > gimple_set_location (x, d->loc); > + add_referenced_var (cdecl); > > addr = make_ssa_name (addr, x); > gimple_call_set_lhs (x, addr); >
