[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#41357: 28.0.50; GC may miss to mark calle safe register content
From: |
Eli Zaretskii |
Subject: |
bug#41357: 28.0.50; GC may miss to mark calle safe register content |
Date: |
Sun, 17 May 2020 20:57:28 +0300 |
> From: Andrea Corallo <akrl@sdf.org>
> Cc: bug-gnu-emacs@gnu.org, eggert@cs.ucla.edu
> Date: Sun, 17 May 2020 17:45:28 +0000
>
> Lisp_Object
> foo (void)
> {
> /* 'res' goes in a callee saved reg */
> Lisp_Object res = build_string ("bar");
> [...]
> /* LTO inline the following as "flush_stack_call_func
> (mark_threads_callback, NULL);" */
> mark_threads ();
> [...]
> gc_sweep ();
>
> /* The string pointed by 'res' was garbage collected. */
> return res;
> }
But mark_threads etc. (GC in general) isn't called from functions like
your 'foo. It is more like this:
Lisp_Object
foo (void)
{
/* 'res' goes in a callee saved reg */
Lisp_Object res = build_string ("bar");
[...]
call_something ();
[...]
}
call_something (void)
{
[...]
garbage_collect ();
[...]
}
Which is quite different, AFAIU, wrt stack usage.
Or maybe I don't understand how "callee saved registers" work.
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, (continued)
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Paul Eggert, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Eli Zaretskii, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Andrea Corallo, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Eli Zaretskii, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Paul Eggert, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Andrea Corallo, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Eli Zaretskii, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Andrea Corallo, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Eli Zaretskii, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Andrea Corallo, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content,
Eli Zaretskii <=
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Andrea Corallo, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Paul Eggert, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Eli Zaretskii, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Paul Eggert, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Eli Zaretskii, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Andrea Corallo, 2020/05/17
- bug#41357: 28.0.50; GC may miss to mark calle safe register content, Paul Eggert, 2020/05/17
bug#41357: 28.0.50; GC may miss to mark calle safe register content, Tom Tromey, 2020/05/24