This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: serious EH thread bug
>>>>> Teemu Torma <tot@trema.com> writes:
> Mike Stump wrote:
>>
>> There is a serious bug in the thread support code for EH. The
>> work-around, is to put a try { before any auto vars with dtors, temps
>> with dtors or any other EH things.
>>
>> I'm working on a fix now. To observe it, try putting an auto var with
>> a dtor before any try { and watch the value of
>> libgcc.a(_eh.o):top_elt[2]. It changes. Oops, this is a single
>> shared global variable between all threads. We can't be changing such
>> a variable!
>>
>> To fix it, I think all I want to do is unshare the variable via malloc.
> In early versions, it was in the thread specific data, but Jason's
> opinion was that it is just a sentinel, and never changes.
> Jason, is this still true, or could it be a bug somewhere else?
That doesn't ring a bell, sorry. I don't remember what I was talking
about.
Jason