https://issues.dlang.org/show_bug.cgi?id=14436
--- Comment #5 from Marc Schütz <[email protected]> --- (In reply to yebblies from comment #4) > By empty array do you mean empty array literal? > > eg assert(x != []); Yes, it should read "empty array [literal] or string literal". In fact, the code generated for `int[]` instead of `string` looks even worse; there is a "call" instruction in it: 0000000000000000 <_D2xx7isEmptyFAiZb>: 0: 55 push %rbp 1: 48 8b ec mov %rsp,%rbp 4: 48 83 ec 30 sub $0x30,%rsp 8: 48 89 7d f0 mov %rdi,-0x10(%rbp) c: 48 89 75 f8 mov %rsi,-0x8(%rbp) 10: 48 31 f6 xor %rsi,%rsi 13: 48 bf 00 00 00 00 00 movabs $0x0,%rdi 1a: 00 00 00 1d: e8 00 00 00 00 callq 22 <_D2xx7isEmptyFAiZb+0x22> 22: 48 89 c1 mov %rax,%rcx 25: 48 31 c0 xor %rax,%rax 28: 48 89 45 e0 mov %rax,-0x20(%rbp) 2c: 48 89 4d e8 mov %rcx,-0x18(%rbp) 30: 48 89 45 d0 mov %rax,-0x30(%rbp) 34: 48 89 4d d8 mov %rcx,-0x28(%rbp) 38: 48 8b 55 f0 mov -0x10(%rbp),%rdx 3c: 48 3b 55 e0 cmp -0x20(%rbp),%rdx 40: 75 1a jne 5c <_D2xx7isEmptyFAiZb+0x5c> 42: 48 85 d2 test %rdx,%rdx 45: 74 19 je 60 <_D2xx7isEmptyFAiZb+0x60> 47: 48 8b 75 f8 mov -0x8(%rbp),%rsi 4b: 48 8b 7d d8 mov -0x28(%rbp),%rdi 4f: 48 89 d1 mov %rdx,%rcx 52: 48 c1 e1 02 shl $0x2,%rcx 56: 33 c0 xor %eax,%eax 58: f3 a6 repz cmpsb %es:(%rdi),%ds:(%rsi) 5a: 74 04 je 60 <_D2xx7isEmptyFAiZb+0x60> 5c: 31 c0 xor %eax,%eax 5e: eb 05 jmp 65 <_D2xx7isEmptyFAiZb+0x65> 60: b8 01 00 00 00 mov $0x1,%eax 65: 48 8b e5 mov %rbp,%rsp 68: 5d pop %rbp 69: c3 retq --
