GNU bug report logs -
#18438
24.4.50; assertion failed in bidi.c
Previous Next
Reported by: aidalgol <at> amuri.net
Date: Tue, 9 Sep 2014 21:52:01 UTC
Severity: normal
Tags: moreinfo
Merged with 17817
Found in versions 24.3.91, 24.4.50
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #145 received at 18438 <at> debbugs.gnu.org (full text, mbox):
On 10/10/2014 3:19 AM, Eli Zaretskii wrote:
> === modified file 'src/bidi.c'
> --- src/bidi.c 2014-04-06 15:56:01 +0000
> +++ src/bidi.c 2014-10-10 07:12:01 +0000
> @@ -326,7 +326,14 @@ bidi_get_type (int ch, bidi_dir_t overri
> static void
> bidi_check_type (bidi_type_t type)
> {
> - eassert (UNKNOWN_BT <= type && type <= NEUTRAL_ON);
> + volatile ptrdiff_t qtype = type;
> +
> + if (!(suppress_checking || (UNKNOWN_BT <= qtype && qtype <= NEUTRAL_ON)))
> + {
> + fprintf (stderr, "\r\n%s:%d: bidi type %d is not in [%d..%d]\r\n",
> + __FILE__, __LINE__, type, UNKNOWN_BT, NEUTRAL_ON);
> + emacs_abort ();
> + }
> }
>
> /* Given a bidi TYPE of a character, return its category. */
It works:
Dump of assembler code for function bidi_check_type:
0x00000001004fc423 <+0>: push %rbp
0x00000001004fc424 <+1>: mov %rsp,%rbp
0x00000001004fc427 <+4>: sub $0x50,%rsp
0x00000001004fc42b <+8>: mov %ecx,0x10(%rbp)
0x00000001004fc42e <+11>: mov 0x10(%rbp),%eax
0x00000001004fc431 <+14>: mov %rax,-0x8(%rbp)
0x00000001004fc435 <+18>: mov 0x56bfb4(%rip),%rax # 0x100a683f0
<.refptr.suppress_checking>
0x00000001004fc43c <+25>: movzbl (%rax),%eax
0x00000001004fc43f <+28>: xor $0x1,%eax
0x00000001004fc442 <+31>: test %al,%al
0x00000001004fc444 <+33>: je 0x1004fc49b <bidi_check_type+120>
0x00000001004fc446 <+35>: mov -0x8(%rbp),%rax
0x00000001004fc44a <+39>: test %rax,%rax <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
0x00000001004fc44d <+42>: js 0x1004fc459 <bidi_check_type+54>
0x00000001004fc44f <+44>: mov -0x8(%rbp),%rax
0x00000001004fc453 <+48>: cmp $0x17,%rax <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
0x00000001004fc457 <+52>: jle 0x1004fc49b <bidi_check_type+120>
0x00000001004fc459 <+54>: callq 0x1006c6a50 <__getreent>
0x00000001004fc45e <+59>: mov 0x18(%rax),%rax
0x00000001004fc462 <+63>: movl $0x17,0x30(%rsp)
0x00000001004fc46a <+71>: movl $0x0,0x28(%rsp)
0x00000001004fc472 <+79>: mov 0x10(%rbp),%edx
0x00000001004fc475 <+82>: mov %edx,0x20(%rsp)
0x00000001004fc479 <+86>: mov $0x14d,%r9d
0x00000001004fc47f <+92>: lea 0x53b16a(%rip),%r8 # 0x100a375f0
<DEFAULT_REHASH_SIZE+56>
0x00000001004fc486 <+99>: lea 0x53b16b(%rip),%rdx # 0x100a375f8
<DEFAULT_REHASH_SIZE+64>
0x00000001004fc48d <+106>: mov %rax,%rcx
0x00000001004fc490 <+109>: callq 0x1006c6d70 <fprintf>
0x00000001004fc495 <+114>: callq 0x100672ebc <emacs_abort>
0x00000001004fc49a <+119>: nop
0x00000001004fc49b <+120>: add $0x50,%rsp
0x00000001004fc49f <+124>: pop %rbp
0x00000001004fc4a0 <+125>: retq
End of assembler dump.
Do you have a new theory that this is testing?
Ken
This bug report was last modified 9 years and 153 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.