From: Robert Pluim <rpluim@gmail.com>
To: Pip Cet <pipcet@gmail.com>
Cc: alan@idiocy.org, jguenther@gmail.com,
Andrii Kolomoiets <andreyk.mad@gmail.com>,
38748@debbugs.gnu.org
Subject: bug#38748: 28.0.50; crash on MacOS 10.15.2
Date: Wed, 08 Jan 2020 22:43:30 +0100 [thread overview]
Message-ID: <m2ftgpipz1.fsf@gmail.com> (raw)
In-Reply-To: <CAOqdjBcX++J_9Sy1ikNJmijYX=SP0VGArj8TPqXf86XOVT5Zsg@mail.gmail.com> (Pip Cet's message of "Wed, 8 Jan 2020 19:18:15 +0000")
[-- Attachment #1: Type: text/plain, Size: 2418 bytes --]
>>>>> On Wed, 8 Jan 2020 19:18:15 +0000, Pip Cet <pipcet@gmail.com> said:
Pip> On Wed, Jan 8, 2020 at 5:40 PM Robert Pluim <rpluim@gmail.com> wrote:
>> >> But I found the commit after which error is occurs:> >> b2949d39261e82c33572ba8a250298ef0b165b95
>> >>
>> >> Commenting out that 'ok = false;' line make Emacs works without errors.
>>
>> I can confirm this.
Pip> I think we should disassemble the two versions and see where the
Pip> differences are, unless this is too difficult because of inlining. Can
Pip> you provide compiler details?
gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Iʼve attached the disassembly of the two versions. They're very very
similar (this is with -g3 -O0).
Eli> I cannot explain how that change could cause any harm. Here's the
Eli> relevant code fragment:
Eli> So how could the initial value of 'ok' matter here? What am I
Eli> missing?
Pip> I think it's likely to be the stack thing; the ok = false might make
Pip> the difference between allocating inherited_attrs on the stack once
Pip> and doing so once per recursion of face_inherited_attr. The latter
Pip> case might lead to a stack overflow more easily.
The allocation of inherited_attrs is the same in both.
>> Yes. Iʼll note that when this happens there are over 9000 stackframes,
>> so perhaps itʼs stack exhaustion. macOS has a default stack of 8192
>> kB, Iʼll see if increasing it helps.
Pip> That does sound like infinite recursion, or infinite recursion waiting
Pip> for something to change asynchronously that breaks the loop. If the
Pip> "ok = false" prevents the compiler from recognizing
Pip> face_inherited_attr is effectively tail-recursive, that might be it?
Pip> Changing the line to "ok = true" would be an interesting experiment.
Hmm, yes. Iʼll try that.
BTW, running under lldb, last_marked can be accessed successfully, but
of course under lldb you donʼt get all the nice commands from
.gdbinit. Iʼd build a newer version of gdb, but signing binaries on
macOS is a real hassle.
Robert
[-- Attachment #2: modified.txt --]
[-- Type: text/plain, Size: 9885 bytes --]
Dump of assembler code for function face_inherited_attr:
xfaces.c:
2156 {
0x000000010015fa50 <+0>: push %rbp
0x000000010015fa51 <+1>: mov %rsp,%rbp
0x000000010015fa54 <+4>: sub $0x130,%rsp
0x000000010015fa5b <+11>: mov $0xa0,%eax
0x000000010015fa60 <+16>: mov %eax,%r9d
0x000000010015fa63 <+19>: lea -0xb0(%rbp),%r10
0x000000010015fa6a <+26>: mov 0x2a571f(%rip),%r11 # 0x100405190
0x000000010015fa71 <+33>: mov (%r11),%r11
0x000000010015fa74 <+36>: mov %r11,-0x8(%rbp)
0x000000010015fa78 <+40>: mov %rdi,-0xb8(%rbp)
0x000000010015fa7f <+47>: mov %rsi,-0xc0(%rbp)
0x000000010015fa86 <+54>: mov %rdx,-0xc8(%rbp)
0x000000010015fa8d <+61>: mov %ecx,-0xcc(%rbp)
0x000000010015fa93 <+67>: mov %r8,-0xd8(%rbp)
2157 Lisp_Object inherited_attrs[LFACE_VECTOR_SIZE];
2158 Lisp_Object attr_val = attrs[attr_idx];
0x000000010015fa9a <+74>: mov -0xc8(%rbp),%rdx
0x000000010015faa1 <+81>: mov -0xcc(%rbp),%eax
0x000000010015faa7 <+87>: mov %eax,%esi
0x000000010015faa9 <+89>: mov (%rdx,%rsi,8),%rdx
0x000000010015faad <+93>: mov %rdx,-0xe0(%rbp)
2159
2160 memcpy (inherited_attrs, attrs, LFACE_VECTOR_SIZE * sizeof (attrs[0]));
0x000000010015fab4 <+100>: mov -0xc8(%rbp),%rdx
0x000000010015fabb <+107>: mov %r10,%rdi
0x000000010015fabe <+110>: mov %rdx,%rsi
0x000000010015fac1 <+113>: mov %r9,%rdx
0x000000010015fac4 <+116>: callq 0x1003cfb12
2161 while (UNSPECIFIEDP (attr_val)
0x000000010015fac9 <+121>: mov -0xe0(%rbp),%rax
0x000000010015fad0 <+128>: mov $0x45c,%edi
0x000000010015fad5 <+133>: mov %rax,-0x100(%rbp)
0x000000010015fadc <+140>: callq 0x10014c7b0 <builtin_lisp_symbol>
0x000000010015fae1 <+145>: xor %edi,%edi
0x000000010015fae3 <+147>: mov %dil,%cl
0x000000010015fae6 <+150>: mov -0x100(%rbp),%rdx
0x000000010015faed <+157>: cmp %rax,%rdx
2162 && !NILP (inherited_attrs[LFACE_INHERIT_INDEX])
0x000000010015faf0 <+160>: mov %cl,-0x101(%rbp)
0x000000010015faf6 <+166>: jne 0x10015fb54 <face_inherited_attr+260>
0x000000010015fafc <+172>: xor %edi,%edi
0x000000010015fafe <+174>: mov -0x30(%rbp),%rax
0x000000010015fb02 <+178>: mov %rax,-0x110(%rbp)
0x000000010015fb09 <+185>: callq 0x10014c7b0 <builtin_lisp_symbol>
0x000000010015fb0e <+190>: xor %edi,%edi
0x000000010015fb10 <+192>: mov %dil,%cl
0x000000010015fb13 <+195>: mov -0x110(%rbp),%rdx
0x000000010015fb1a <+202>: cmp %rax,%rdx
2163 && !UNSPECIFIEDP (inherited_attrs[LFACE_INHERIT_INDEX]))
0x000000010015fb1d <+205>: mov %cl,-0x101(%rbp)
0x000000010015fb23 <+211>: je 0x10015fb54 <face_inherited_attr+260>
0x000000010015fb29 <+217>: mov -0x30(%rbp),%rax
0x000000010015fb2d <+221>: mov $0x45c,%edi
0x000000010015fb32 <+226>: mov %rax,-0x118(%rbp)
0x000000010015fb39 <+233>: callq 0x10014c7b0 <builtin_lisp_symbol>
0x000000010015fb3e <+238>: mov -0x118(%rbp),%rcx
0x000000010015fb45 <+245>: cmp %rax,%rcx
0x000000010015fb48 <+248>: sete %dl
0x000000010015fb4b <+251>: xor $0xff,%dl
0x000000010015fb4e <+254>: mov %dl,-0x101(%rbp)
0x000000010015fb54 <+260>: mov -0x101(%rbp),%al
2161 while (UNSPECIFIEDP (attr_val)
0x000000010015fb5a <+266>: test $0x1,%al
0x000000010015fb5c <+268>: jne 0x10015fb67 <face_inherited_attr+279>
0x000000010015fb62 <+274>: jmpq 0x10015fd07 <face_inherited_attr+695>
2164 {
2165 Lisp_Object parent_face = inherited_attrs[LFACE_INHERIT_INDEX];
0x000000010015fb67 <+279>: mov -0x30(%rbp),%rax
0x000000010015fb6b <+283>: mov %rax,-0xe8(%rbp)
2166 bool ok;
2167
2168 if (CONSP (parent_face))
0x000000010015fb72 <+290>: mov -0xe8(%rbp),%rax
0x000000010015fb79 <+297>: sar $0x0,%rax
0x000000010015fb7d <+301>: mov %eax,%ecx
0x000000010015fb7f <+303>: sub $0x3,%ecx
0x000000010015fb82 <+306>: and $0x7,%ecx
0x000000010015fb85 <+309>: cmp $0x0,%ecx
0x000000010015fb88 <+312>: jne 0x10015fca6 <face_inherited_attr+598>
2169 {
2170 Lisp_Object tail;
2171 // ok = false;
2172 for (tail = parent_face; !NILP (tail); tail = XCDR (tail))
0x000000010015fb8e <+318>: mov -0xe8(%rbp),%rax
0x000000010015fb95 <+325>: mov %rax,-0xf8(%rbp)
0x000000010015fb9c <+332>: xor %edi,%edi
0x000000010015fb9e <+334>: mov -0xf8(%rbp),%rax
0x000000010015fba5 <+341>: mov %rax,-0x120(%rbp)
0x000000010015fbac <+348>: callq 0x10014c7b0 <builtin_lisp_symbol>
0x000000010015fbb1 <+353>: mov -0x120(%rbp),%rcx
0x000000010015fbb8 <+360>: cmp %rax,%rcx
0x000000010015fbbb <+363>: sete %dl
0x000000010015fbbe <+366>: xor $0xff,%dl
0x000000010015fbc1 <+369>: test $0x1,%dl
0x000000010015fbc4 <+372>: jne 0x10015fbcf <face_inherited_attr+383>
0x000000010015fbca <+378>: jmpq 0x10015fc8f <face_inherited_attr+575>
0x000000010015fbcf <+383>: xor %r8d,%r8d
0x000000010015fbd2 <+386>: lea -0xb0(%rbp),%rcx
2173 {
2174 ok = get_lface_attributes (w, f, XCAR (tail), inherited_attrs,
0x000000010015fbd9 <+393>: mov -0xb8(%rbp),%rdi
0x000000010015fbe0 <+400>: mov -0xc0(%rbp),%rsi
0x000000010015fbe7 <+407>: mov -0xf8(%rbp),%rax
0x000000010015fbee <+414>: mov -0x3(%rax),%rdx
2175 false, named_merge_points);
0x000000010015fbf2 <+418>: mov -0xd8(%rbp),%r9
2174 ok = get_lface_attributes (w, f, XCAR (tail), inherited_attrs,
0x000000010015fbf9 <+425>: callq 0x100156d50 <get_lface_attributes>
0x000000010015fbfe <+430>: and $0x1,%al
0x000000010015fc00 <+432>: mov %al,-0xe9(%rbp)
2176 if (!ok)
0x000000010015fc06 <+438>: testb $0x1,-0xe9(%rbp)
0x000000010015fc0d <+445>: jne 0x10015fc18 <face_inherited_attr+456>
2177 break;
0x000000010015fc13 <+451>: jmpq 0x10015fc8f <face_inherited_attr+575>
0x000000010015fc18 <+456>: lea -0xb0(%rbp),%rdx
2178 attr_val = face_inherited_attr (w, f, inherited_attrs, attr_idx,
0x000000010015fc1f <+463>: mov -0xb8(%rbp),%rdi
0x000000010015fc26 <+470>: mov -0xc0(%rbp),%rsi
0x000000010015fc2d <+477>: mov -0xcc(%rbp),%ecx
2179 named_merge_points);
0x000000010015fc33 <+483>: mov -0xd8(%rbp),%r8
2178 attr_val = face_inherited_attr (w, f, inherited_attrs, attr_idx,
0x000000010015fc3a <+490>: callq 0x10015fa50 <face_inherited_attr>
0x000000010015fc3f <+495>: mov %rax,-0xe0(%rbp)
2180 if (!UNSPECIFIEDP (attr_val))
0x000000010015fc46 <+502>: mov -0xe0(%rbp),%rax
0x000000010015fc4d <+509>: mov $0x45c,%edi
0x000000010015fc52 <+514>: mov %rax,-0x128(%rbp)
0x000000010015fc59 <+521>: callq 0x10014c7b0 <builtin_lisp_symbol>
0x000000010015fc5e <+526>: mov -0x128(%rbp),%rdx
0x000000010015fc65 <+533>: cmp %rax,%rdx
0x000000010015fc68 <+536>: je 0x10015fc73 <face_inherited_attr+547>
2181 break;
0x000000010015fc6e <+542>: jmpq 0x10015fc8f <face_inherited_attr+575>
2182 }
0x000000010015fc73 <+547>: jmpq 0x10015fc78 <face_inherited_attr+552>
2172 for (tail = parent_face; !NILP (tail); tail = XCDR (tail))
0x000000010015fc78 <+552>: mov -0xf8(%rbp),%rax
0x000000010015fc7f <+559>: mov 0x5(%rax),%rax
0x000000010015fc83 <+563>: mov %rax,-0xf8(%rbp)
0x000000010015fc8a <+570>: jmpq 0x10015fb9c <face_inherited_attr+332>
2183 if (!ok) /* bad face? */
0x000000010015fc8f <+575>: testb $0x1,-0xe9(%rbp)
0x000000010015fc96 <+582>: jne 0x10015fca1 <face_inherited_attr+593>
2184 break;
0x000000010015fc9c <+588>: jmpq 0x10015fd07 <face_inherited_attr+695>
2185 }
0x000000010015fca1 <+593>: jmpq 0x10015fd02 <face_inherited_attr+690>
0x000000010015fca6 <+598>: xor %r8d,%r8d
0x000000010015fca9 <+601>: lea -0xb0(%rbp),%rcx
2186 else
2187 {
2188 ok = get_lface_attributes (w, f, parent_face, inherited_attrs,
0x000000010015fcb0 <+608>: mov -0xb8(%rbp),%rdi
0x000000010015fcb7 <+615>: mov -0xc0(%rbp),%rsi
0x000000010015fcbe <+622>: mov -0xe8(%rbp),%rdx
2189 false, named_merge_points);
0x000000010015fcc5 <+629>: mov -0xd8(%rbp),%r9
2188 ok = get_lface_attributes (w, f, parent_face, inherited_attrs,
0x000000010015fccc <+636>: callq 0x100156d50 <get_lface_attributes>
0x000000010015fcd1 <+641>: and $0x1,%al
0x000000010015fcd3 <+643>: mov %al,-0xe9(%rbp)
2190 if (!ok)
0x000000010015fcd9 <+649>: testb $0x1,-0xe9(%rbp)
0x000000010015fce0 <+656>: jne 0x10015fceb <face_inherited_attr+667>
2191 break;
0x000000010015fce6 <+662>: jmpq 0x10015fd07 <face_inherited_attr+695>
2192 attr_val = inherited_attrs[attr_idx];
0x000000010015fceb <+667>: mov -0xcc(%rbp),%eax
0x000000010015fcf1 <+673>: mov %eax,%ecx
0x000000010015fcf3 <+675>: mov -0xb0(%rbp,%rcx,8),%rcx
0x000000010015fcfb <+683>: mov %rcx,-0xe0(%rbp)
2161 while (UNSPECIFIEDP (attr_val)
0x000000010015fd02 <+690>: jmpq 0x10015fac9 <face_inherited_attr+121>
2193 }
2194 }
2195 return attr_val;
0x000000010015fd07 <+695>: mov -0xe0(%rbp),%rax
0x000000010015fd0e <+702>: mov 0x2a547b(%rip),%rcx # 0x100405190
0x000000010015fd15 <+709>: mov (%rcx),%rcx
0x000000010015fd18 <+712>: mov -0x8(%rbp),%rdx
0x000000010015fd1c <+716>: cmp %rdx,%rcx
0x000000010015fd1f <+719>: mov %rax,-0x130(%rbp)
0x000000010015fd26 <+726>: jne 0x10015fd3c <face_inherited_attr+748>
0x000000010015fd2c <+732>: mov -0x130(%rbp),%rax
0x000000010015fd33 <+739>: add $0x130,%rsp
0x000000010015fd3a <+746>: pop %rbp
0x000000010015fd3b <+747>: retq
0x000000010015fd3c <+748>: callq 0x1003cf4a6
0x000000010015fd41 <+753>: ud2
End of assembler dump.
[-- Attachment #3: unmodified.txt --]
[-- Type: text/plain, Size: 9938 bytes --]
Dump of assembler code for function face_inherited_attr:
xfaces.c:
2156 {
0x000000010015fa50 <+0>: push %rbp
0x000000010015fa51 <+1>: mov %rsp,%rbp
0x000000010015fa54 <+4>: sub $0x130,%rsp
0x000000010015fa5b <+11>: mov $0xa0,%eax
0x000000010015fa60 <+16>: mov %eax,%r9d
0x000000010015fa63 <+19>: lea -0xb0(%rbp),%r10
0x000000010015fa6a <+26>: mov 0x2a571f(%rip),%r11 # 0x100405190
0x000000010015fa71 <+33>: mov (%r11),%r11
0x000000010015fa74 <+36>: mov %r11,-0x8(%rbp)
0x000000010015fa78 <+40>: mov %rdi,-0xb8(%rbp)
0x000000010015fa7f <+47>: mov %rsi,-0xc0(%rbp)
0x000000010015fa86 <+54>: mov %rdx,-0xc8(%rbp)
0x000000010015fa8d <+61>: mov %ecx,-0xcc(%rbp)
0x000000010015fa93 <+67>: mov %r8,-0xd8(%rbp)
2157 Lisp_Object inherited_attrs[LFACE_VECTOR_SIZE];
2158 Lisp_Object attr_val = attrs[attr_idx];
0x000000010015fa9a <+74>: mov -0xc8(%rbp),%rdx
0x000000010015faa1 <+81>: mov -0xcc(%rbp),%eax
0x000000010015faa7 <+87>: mov %eax,%esi
0x000000010015faa9 <+89>: mov (%rdx,%rsi,8),%rdx
0x000000010015faad <+93>: mov %rdx,-0xe0(%rbp)
2159
2160 memcpy (inherited_attrs, attrs, LFACE_VECTOR_SIZE * sizeof (attrs[0]));
0x000000010015fab4 <+100>: mov -0xc8(%rbp),%rdx
0x000000010015fabb <+107>: mov %r10,%rdi
0x000000010015fabe <+110>: mov %rdx,%rsi
0x000000010015fac1 <+113>: mov %r9,%rdx
0x000000010015fac4 <+116>: callq 0x1003cfb12
2161 while (UNSPECIFIEDP (attr_val)
0x000000010015fac9 <+121>: mov -0xe0(%rbp),%rax
0x000000010015fad0 <+128>: mov $0x45c,%edi
0x000000010015fad5 <+133>: mov %rax,-0x100(%rbp)
0x000000010015fadc <+140>: callq 0x10014c7b0 <builtin_lisp_symbol>
0x000000010015fae1 <+145>: xor %edi,%edi
0x000000010015fae3 <+147>: mov %dil,%cl
0x000000010015fae6 <+150>: mov -0x100(%rbp),%rdx
0x000000010015faed <+157>: cmp %rax,%rdx
2162 && !NILP (inherited_attrs[LFACE_INHERIT_INDEX])
0x000000010015faf0 <+160>: mov %cl,-0x101(%rbp)
0x000000010015faf6 <+166>: jne 0x10015fb54 <face_inherited_attr+260>
0x000000010015fafc <+172>: xor %edi,%edi
0x000000010015fafe <+174>: mov -0x30(%rbp),%rax
0x000000010015fb02 <+178>: mov %rax,-0x110(%rbp)
0x000000010015fb09 <+185>: callq 0x10014c7b0 <builtin_lisp_symbol>
0x000000010015fb0e <+190>: xor %edi,%edi
0x000000010015fb10 <+192>: mov %dil,%cl
0x000000010015fb13 <+195>: mov -0x110(%rbp),%rdx
0x000000010015fb1a <+202>: cmp %rax,%rdx
2163 && !UNSPECIFIEDP (inherited_attrs[LFACE_INHERIT_INDEX]))
0x000000010015fb1d <+205>: mov %cl,-0x101(%rbp)
0x000000010015fb23 <+211>: je 0x10015fb54 <face_inherited_attr+260>
0x000000010015fb29 <+217>: mov -0x30(%rbp),%rax
0x000000010015fb2d <+221>: mov $0x45c,%edi
0x000000010015fb32 <+226>: mov %rax,-0x118(%rbp)
0x000000010015fb39 <+233>: callq 0x10014c7b0 <builtin_lisp_symbol>
0x000000010015fb3e <+238>: mov -0x118(%rbp),%rcx
0x000000010015fb45 <+245>: cmp %rax,%rcx
0x000000010015fb48 <+248>: sete %dl
0x000000010015fb4b <+251>: xor $0xff,%dl
0x000000010015fb4e <+254>: mov %dl,-0x101(%rbp)
0x000000010015fb54 <+260>: mov -0x101(%rbp),%al
2161 while (UNSPECIFIEDP (attr_val)
0x000000010015fb5a <+266>: test $0x1,%al
0x000000010015fb5c <+268>: jne 0x10015fb67 <face_inherited_attr+279>
0x000000010015fb62 <+274>: jmpq 0x10015fd0e <face_inherited_attr+702>
2164 {
2165 Lisp_Object parent_face = inherited_attrs[LFACE_INHERIT_INDEX];
0x000000010015fb67 <+279>: mov -0x30(%rbp),%rax
0x000000010015fb6b <+283>: mov %rax,-0xe8(%rbp)
2166 bool ok;
2167
2168 if (CONSP (parent_face))
0x000000010015fb72 <+290>: mov -0xe8(%rbp),%rax
0x000000010015fb79 <+297>: sar $0x0,%rax
0x000000010015fb7d <+301>: mov %eax,%ecx
0x000000010015fb7f <+303>: sub $0x3,%ecx
0x000000010015fb82 <+306>: and $0x7,%ecx
0x000000010015fb85 <+309>: cmp $0x0,%ecx
0x000000010015fb88 <+312>: jne 0x10015fcad <face_inherited_attr+605>
2169 {
2170 Lisp_Object tail;
2171 ok = false;
0x000000010015fb8e <+318>: movb $0x0,-0xe9(%rbp)
2172 for (tail = parent_face; !NILP (tail); tail = XCDR (tail))
0x000000010015fb95 <+325>: mov -0xe8(%rbp),%rax
0x000000010015fb9c <+332>: mov %rax,-0xf8(%rbp)
0x000000010015fba3 <+339>: xor %edi,%edi
0x000000010015fba5 <+341>: mov -0xf8(%rbp),%rax
0x000000010015fbac <+348>: mov %rax,-0x120(%rbp)
0x000000010015fbb3 <+355>: callq 0x10014c7b0 <builtin_lisp_symbol>
0x000000010015fbb8 <+360>: mov -0x120(%rbp),%rcx
0x000000010015fbbf <+367>: cmp %rax,%rcx
0x000000010015fbc2 <+370>: sete %dl
0x000000010015fbc5 <+373>: xor $0xff,%dl
0x000000010015fbc8 <+376>: test $0x1,%dl
0x000000010015fbcb <+379>: jne 0x10015fbd6 <face_inherited_attr+390>
0x000000010015fbd1 <+385>: jmpq 0x10015fc96 <face_inherited_attr+582>
0x000000010015fbd6 <+390>: xor %r8d,%r8d
0x000000010015fbd9 <+393>: lea -0xb0(%rbp),%rcx
2173 {
2174 ok = get_lface_attributes (w, f, XCAR (tail), inherited_attrs,
0x000000010015fbe0 <+400>: mov -0xb8(%rbp),%rdi
0x000000010015fbe7 <+407>: mov -0xc0(%rbp),%rsi
0x000000010015fbee <+414>: mov -0xf8(%rbp),%rax
0x000000010015fbf5 <+421>: mov -0x3(%rax),%rdx
2175 false, named_merge_points);
0x000000010015fbf9 <+425>: mov -0xd8(%rbp),%r9
2174 ok = get_lface_attributes (w, f, XCAR (tail), inherited_attrs,
0x000000010015fc00 <+432>: callq 0x100156d50 <get_lface_attributes>
0x000000010015fc05 <+437>: and $0x1,%al
0x000000010015fc07 <+439>: mov %al,-0xe9(%rbp)
2176 if (!ok)
0x000000010015fc0d <+445>: testb $0x1,-0xe9(%rbp)
0x000000010015fc14 <+452>: jne 0x10015fc1f <face_inherited_attr+463>
2177 break;
0x000000010015fc1a <+458>: jmpq 0x10015fc96 <face_inherited_attr+582>
0x000000010015fc1f <+463>: lea -0xb0(%rbp),%rdx
2178 attr_val = face_inherited_attr (w, f, inherited_attrs, attr_idx,
0x000000010015fc26 <+470>: mov -0xb8(%rbp),%rdi
0x000000010015fc2d <+477>: mov -0xc0(%rbp),%rsi
0x000000010015fc34 <+484>: mov -0xcc(%rbp),%ecx
2179 named_merge_points);
0x000000010015fc3a <+490>: mov -0xd8(%rbp),%r8
2178 attr_val = face_inherited_attr (w, f, inherited_attrs, attr_idx,
0x000000010015fc41 <+497>: callq 0x10015fa50 <face_inherited_attr>
0x000000010015fc46 <+502>: mov %rax,-0xe0(%rbp)
2180 if (!UNSPECIFIEDP (attr_val))
0x000000010015fc4d <+509>: mov -0xe0(%rbp),%rax
0x000000010015fc54 <+516>: mov $0x45c,%edi
0x000000010015fc59 <+521>: mov %rax,-0x128(%rbp)
0x000000010015fc60 <+528>: callq 0x10014c7b0 <builtin_lisp_symbol>
0x000000010015fc65 <+533>: mov -0x128(%rbp),%rdx
0x000000010015fc6c <+540>: cmp %rax,%rdx
0x000000010015fc6f <+543>: je 0x10015fc7a <face_inherited_attr+554>
2181 break;
0x000000010015fc75 <+549>: jmpq 0x10015fc96 <face_inherited_attr+582>
2182 }
0x000000010015fc7a <+554>: jmpq 0x10015fc7f <face_inherited_attr+559>
2172 for (tail = parent_face; !NILP (tail); tail = XCDR (tail))
0x000000010015fc7f <+559>: mov -0xf8(%rbp),%rax
0x000000010015fc86 <+566>: mov 0x5(%rax),%rax
0x000000010015fc8a <+570>: mov %rax,-0xf8(%rbp)
0x000000010015fc91 <+577>: jmpq 0x10015fba3 <face_inherited_attr+339>
2183 if (!ok) /* bad face? */
0x000000010015fc96 <+582>: testb $0x1,-0xe9(%rbp)
0x000000010015fc9d <+589>: jne 0x10015fca8 <face_inherited_attr+600>
2184 break;
0x000000010015fca3 <+595>: jmpq 0x10015fd0e <face_inherited_attr+702>
2185 }
0x000000010015fca8 <+600>: jmpq 0x10015fd09 <face_inherited_attr+697>
0x000000010015fcad <+605>: xor %r8d,%r8d
0x000000010015fcb0 <+608>: lea -0xb0(%rbp),%rcx
2186 else
2187 {
2188 ok = get_lface_attributes (w, f, parent_face, inherited_attrs,
0x000000010015fcb7 <+615>: mov -0xb8(%rbp),%rdi
0x000000010015fcbe <+622>: mov -0xc0(%rbp),%rsi
0x000000010015fcc5 <+629>: mov -0xe8(%rbp),%rdx
2189 false, named_merge_points);
0x000000010015fccc <+636>: mov -0xd8(%rbp),%r9
2188 ok = get_lface_attributes (w, f, parent_face, inherited_attrs,
0x000000010015fcd3 <+643>: callq 0x100156d50 <get_lface_attributes>
0x000000010015fcd8 <+648>: and $0x1,%al
0x000000010015fcda <+650>: mov %al,-0xe9(%rbp)
2190 if (!ok)
0x000000010015fce0 <+656>: testb $0x1,-0xe9(%rbp)
0x000000010015fce7 <+663>: jne 0x10015fcf2 <face_inherited_attr+674>
2191 break;
0x000000010015fced <+669>: jmpq 0x10015fd0e <face_inherited_attr+702>
2192 attr_val = inherited_attrs[attr_idx];
0x000000010015fcf2 <+674>: mov -0xcc(%rbp),%eax
0x000000010015fcf8 <+680>: mov %eax,%ecx
0x000000010015fcfa <+682>: mov -0xb0(%rbp,%rcx,8),%rcx
0x000000010015fd02 <+690>: mov %rcx,-0xe0(%rbp)
2161 while (UNSPECIFIEDP (attr_val)
0x000000010015fd09 <+697>: jmpq 0x10015fac9 <face_inherited_attr+121>
2193 }
2194 }
2195 return attr_val;
0x000000010015fd0e <+702>: mov -0xe0(%rbp),%rax
0x000000010015fd15 <+709>: mov 0x2a5474(%rip),%rcx # 0x100405190
0x000000010015fd1c <+716>: mov (%rcx),%rcx
0x000000010015fd1f <+719>: mov -0x8(%rbp),%rdx
0x000000010015fd23 <+723>: cmp %rdx,%rcx
0x000000010015fd26 <+726>: mov %rax,-0x130(%rbp)
0x000000010015fd2d <+733>: jne 0x10015fd43 <face_inherited_attr+755>
0x000000010015fd33 <+739>: mov -0x130(%rbp),%rax
0x000000010015fd3a <+746>: add $0x130,%rsp
0x000000010015fd41 <+753>: pop %rbp
0x000000010015fd42 <+754>: retq
0x000000010015fd43 <+755>: callq 0x1003cf4a6
0x000000010015fd48 <+760>: ud2
End of assembler dump.
next prev parent reply other threads:[~2020-01-08 21:43 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-26 9:47 bug#38748: 28.0.50; crash on MacOS 10.15.2 Andrii Kolomoiets
2019-12-26 13:04 ` Alan Third
2019-12-26 17:18 ` Eli Zaretskii
2019-12-27 11:28 ` Andrii Kolomoiets
2019-12-27 14:14 ` Eli Zaretskii
2019-12-29 19:01 ` Andrii Kolomoiets
2019-12-29 19:31 ` Eli Zaretskii
2020-01-01 20:42 ` Andrii Kolomoiets
2020-01-02 14:06 ` Eli Zaretskii
2020-01-08 17:39 ` Robert Pluim
2020-01-08 19:18 ` Pip Cet
2020-01-08 19:58 ` Eli Zaretskii
2020-01-08 20:39 ` Pip Cet
2020-01-09 3:30 ` Eli Zaretskii
2020-01-10 7:32 ` Pip Cet
2020-01-10 8:27 ` Eli Zaretskii
2020-01-10 8:58 ` Robert Pluim
2020-01-10 9:21 ` Eli Zaretskii
2020-01-10 10:18 ` Robert Pluim
2020-01-11 6:26 ` Pankaj Jangid
2020-01-11 8:08 ` Eli Zaretskii
2020-01-11 10:43 ` Pankaj Jangid
2020-01-11 12:14 ` Eli Zaretskii
2020-01-10 9:22 ` Pip Cet
2020-01-10 9:33 ` Eli Zaretskii
2020-01-11 13:59 ` Alan Third
2020-01-11 14:13 ` Pip Cet
2020-01-11 19:07 ` Alan Third
2020-01-08 21:43 ` Robert Pluim [this message]
2020-01-08 22:18 ` Pip Cet
2020-01-08 22:23 ` Robert Pluim
2020-01-09 7:51 ` Robert Pluim
2020-01-09 10:07 ` Eli Zaretskii
2020-01-09 10:31 ` Robert Pluim
2020-01-09 14:10 ` Pip Cet
2020-01-09 14:16 ` Eli Zaretskii
2020-01-09 14:56 ` Robert Pluim
2020-01-09 17:06 ` Eli Zaretskii
2020-01-09 13:51 ` Andrii Kolomoiets
2020-01-09 14:13 ` Robert Pluim
2020-01-09 14:16 ` Pip Cet
2020-01-09 14:29 ` Andrii Kolomoiets
2020-01-09 15:15 ` Robert Pluim
2020-01-11 18:37 ` Pieter van Oostrum
2020-01-11 18:43 ` Eli Zaretskii
2020-01-11 21:23 ` Pieter van Oostrum
2020-01-12 3:33 ` Eli Zaretskii
2020-01-11 19:14 ` Pip Cet
2020-01-11 21:36 ` Pieter van Oostrum
2020-01-04 16:48 ` Pieter van Oostrum
2020-01-04 17:25 ` Alan Third
2020-01-05 19:41 ` Pieter van Oostrum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2ftgpipz1.fsf@gmail.com \
--to=rpluim@gmail.com \
--cc=38748@debbugs.gnu.org \
--cc=alan@idiocy.org \
--cc=andreyk.mad@gmail.com \
--cc=jguenther@gmail.com \
--cc=pipcet@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.