------- Comment #29 from paolo dot bonzini at lu dot unisi dot ch 2007-02-06 08:26 ------- Subject: Re: Shared libstdc++ fails to link
> Paolo, would you be able to undo the change to make "foo" not marked > TREE_NOTHROW? IIUC, that would be different than the patch you posted > in Comment #22, which appears to affect "bar". My patch was related to Richi's comment when CCing me; the only patch I found from me that was related to TREE_NOTHROW subtly changed the semantics, and that patch sort of undone that change (I say "sort of" because it takes a little more care actually). > Also, I didn't quite > understand your patch, in that it would appear to result in fewer > functions being marked TREE_NOTHROW It would result in more functions being marked TREE_NOTHROW, since those functions will not go through the insn loop in set_nothrow_function_flags if the front-end declared them nothrow. I'm attaching an updated version of the patch, which passes some internal (i.e. my brain and a small testcase using weak and nothrow) sanity checks, but I've not tried in any real world situation. It's actually an alternate fix for PR29323 which doesn't trigger this bug. I'll let other people consider if it makes any sense since I'm not at all expert in this area. > I would think we want to remove the > check for binds_local_p at the top of set_nothrow_function_flags? Agreed, and we have to move it elsewhere. (See the upcoming patch). Paolo -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29487