.file "c-int32-uint64-cmp-bug.c" .text .Ltext0: .file 0 "/home/stolfi/programs/c/TESTS/bugs/c-int32-uint64-cmp-bug" "c-int32-uint64-cmp-bug.c" .section .rodata .LC0: .string "thinks -1 < 2LU\n" .LC1: .string "thinks -1 > 2LU\n" .LC2: .string "thinks -1L < 2LU\n" .LC3: .string "thinks -1L > 2LU\n" .text .globl main .type main, @function main: .LFB6: .file 1 "c-int32-uint64-cmp-bug.c" .loc 1 6 17 .cfi_startproc endbr64 pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 subq $32, %rsp .loc 1 7 12 movq $2, -16(%rbp) .loc 1 9 11 movl $-1, -20(%rbp) .loc 1 10 11 movl -20(%rbp), %eax cltq .loc 1 10 6 cmpq %rax, -16(%rbp) jbe .L2 .loc 1 11 5 movq stderr(%rip), %rax movq %rax, %rcx movl $16, %edx movl $1, %esi leaq .LC0(%rip), %rax movq %rax, %rdi call fwrite@PLT jmp .L3 .L2: .loc 1 13 5 movq stderr(%rip), %rax movq %rax, %rcx movl $16, %edx movl $1, %esi leaq .LC1(%rip), %rax movq %rax, %rdi call fwrite@PLT .L3: .loc 1 16 11 movq $-1, -8(%rbp) .loc 1 17 11 movq -8(%rbp), %rax .loc 1 17 6 cmpq %rax, -16(%rbp) jbe .L4 .loc 1 18 5 movq stderr(%rip), %rax movq %rax, %rcx movl $17, %edx movl $1, %esi leaq .LC2(%rip), %rax movq %rax, %rdi call fwrite@PLT jmp .L5 .L4: .loc 1 20 5 movq stderr(%rip), %rax movq %rax, %rcx movl $17, %edx movl $1, %esi leaq .LC3(%rip), %rax movq %rax, %rdi call fwrite@PLT .L5: .loc 1 24 9 movl $0, %eax .loc 1 25 1 leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE6: .size main, .-main .Letext0: .file 2 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" .file 3 "/usr/include/x86_64-linux-gnu/bits/types.h" .file 4 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" .file 5 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" .file 6 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" .file 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h" .file 8 "/usr/include/stdio.h" .section .debug_info,"",@progbits .Ldebug_info0: .long 0x30b .value 0x5 .byte 0x1 .byte 0x8 .long .Ldebug_abbrev0 .uleb128 0x9 .long .LASF54 .byte 0x1d .long .LASF0 .long .LASF1 .quad .Ltext0 .quad .Letext0-.Ltext0 .long .Ldebug_line0 .uleb128 0x2 .long .LASF10 .byte 0x2 .byte 0xd1 .byte 0x1b .long 0x3a .uleb128 0x3 .byte 0x8 .byte 0x7 .long .LASF2 .uleb128 0xa .byte 0x4 .byte 0x5 .string "int" .uleb128 0x3 .byte 0x8 .byte 0x5 .long .LASF3 .uleb128 0x3 .byte 0x8 .byte 0x5 .long .LASF4 .uleb128 0x3 .byte 0x1 .byte 0x8 .long .LASF5 .uleb128 0x3 .byte 0x2 .byte 0x7 .long .LASF6 .uleb128 0x3 .byte 0x4 .byte 0x7 .long .LASF7 .uleb128 0x3 .byte 0x1 .byte 0x6 .long .LASF8 .uleb128 0x3 .byte 0x2 .byte 0x5 .long .LASF9 .uleb128 0x2 .long .LASF11 .byte 0x3 .byte 0x29 .byte 0x14 .long 0x41 .uleb128 0x2 .long .LASF12 .byte 0x3 .byte 0x2c .byte 0x19 .long 0x48 .uleb128 0x2 .long .LASF13 .byte 0x3 .byte 0x2d .byte 0x1b .long 0x3a .uleb128 0x2 .long .LASF14 .byte 0x3 .byte 0x98 .byte 0x12 .long 0x48 .uleb128 0x2 .long .LASF15 .byte 0x3 .byte 0x99 .byte 0x12 .long 0x48 .uleb128 0xb .byte 0x8 .uleb128 0x4 .long 0xbc .uleb128 0x3 .byte 0x1 .byte 0x6 .long .LASF16 .uleb128 0x2 .long .LASF17 .byte 0x4 .byte 0x1a .byte 0x13 .long 0x79 .uleb128 0x2 .long .LASF18 .byte 0x4 .byte 0x1b .byte 0x13 .long 0x85 .uleb128 0x3 .byte 0x8 .byte 0x7 .long .LASF19 .uleb128 0x2 .long .LASF20 .byte 0x5 .byte 0x1b .byte 0x14 .long 0x91 .uleb128 0xc .long .LASF55 .byte 0xd8 .byte 0x6 .byte 0x31 .byte 0x8 .long 0x258 .uleb128 0x1 .long .LASF21 .byte 0x33 .byte 0x7 .long 0x41 .byte 0 .uleb128 0x1 .long .LASF22 .byte 0x36 .byte 0x9 .long 0xb7 .byte 0x8 .uleb128 0x1 .long .LASF23 .byte 0x37 .byte 0x9 .long 0xb7 .byte 0x10 .uleb128 0x1 .long .LASF24 .byte 0x38 .byte 0x9 .long 0xb7 .byte 0x18 .uleb128 0x1 .long .LASF25 .byte 0x39 .byte 0x9 .long 0xb7 .byte 0x20 .uleb128 0x1 .long .LASF26 .byte 0x3a .byte 0x9 .long 0xb7 .byte 0x28 .uleb128 0x1 .long .LASF27 .byte 0x3b .byte 0x9 .long 0xb7 .byte 0x30 .uleb128 0x1 .long .LASF28 .byte 0x3c .byte 0x9 .long 0xb7 .byte 0x38 .uleb128 0x1 .long .LASF29 .byte 0x3d .byte 0x9 .long 0xb7 .byte 0x40 .uleb128 0x1 .long .LASF30 .byte 0x40 .byte 0x9 .long 0xb7 .byte 0x48 .uleb128 0x1 .long .LASF31 .byte 0x41 .byte 0x9 .long 0xb7 .byte 0x50 .uleb128 0x1 .long .LASF32 .byte 0x42 .byte 0x9 .long 0xb7 .byte 0x58 .uleb128 0x1 .long .LASF33 .byte 0x44 .byte 0x16 .long 0x271 .byte 0x60 .uleb128 0x1 .long .LASF34 .byte 0x46 .byte 0x14 .long 0x276 .byte 0x68 .uleb128 0x1 .long .LASF35 .byte 0x48 .byte 0x7 .long 0x41 .byte 0x70 .uleb128 0x1 .long .LASF36 .byte 0x49 .byte 0x7 .long 0x41 .byte 0x74 .uleb128 0x1 .long .LASF37 .byte 0x4a .byte 0xb .long 0x9d .byte 0x78 .uleb128 0x1 .long .LASF38 .byte 0x4d .byte 0x12 .long 0x5d .byte 0x80 .uleb128 0x1 .long .LASF39 .byte 0x4e .byte 0xf .long 0x6b .byte 0x82 .uleb128 0x1 .long .LASF40 .byte 0x4f .byte 0x8 .long 0x27b .byte 0x83 .uleb128 0x1 .long .LASF41 .byte 0x51 .byte 0xf .long 0x28b .byte 0x88 .uleb128 0x1 .long .LASF42 .byte 0x59 .byte 0xd .long 0xa9 .byte 0x90 .uleb128 0x1 .long .LASF43 .byte 0x5b .byte 0x17 .long 0x295 .byte 0x98 .uleb128 0x1 .long .LASF44 .byte 0x5c .byte 0x19 .long 0x29f .byte 0xa0 .uleb128 0x1 .long .LASF45 .byte 0x5d .byte 0x14 .long 0x276 .byte 0xa8 .uleb128 0x1 .long .LASF46 .byte 0x5e .byte 0x9 .long 0xb5 .byte 0xb0 .uleb128 0x1 .long .LASF47 .byte 0x5f .byte 0xa .long 0x2e .byte 0xb8 .uleb128 0x1 .long .LASF48 .byte 0x60 .byte 0x7 .long 0x41 .byte 0xc0 .uleb128 0x1 .long .LASF49 .byte 0x62 .byte 0x8 .long 0x2a4 .byte 0xc4 .byte 0 .uleb128 0x2 .long .LASF50 .byte 0x7 .byte 0x7 .byte 0x19 .long 0xee .uleb128 0xd .long .LASF56 .byte 0x6 .byte 0x2b .byte 0xe .uleb128 0x5 .long .LASF51 .uleb128 0x4 .long 0x26c .uleb128 0x4 .long 0xee .uleb128 0x7 .long 0xbc .long 0x28b .uleb128 0x8 .long 0x3a .byte 0 .byte 0 .uleb128 0x4 .long 0x264 .uleb128 0x5 .long .LASF52 .uleb128 0x4 .long 0x290 .uleb128 0x5 .long .LASF53 .uleb128 0x4 .long 0x29a .uleb128 0x7 .long 0xbc .long 0x2b4 .uleb128 0x8 .long 0x3a .byte 0x13 .byte 0 .uleb128 0x4 .long 0x258 .uleb128 0xe .long .LASF57 .byte 0x8 .byte 0x91 .byte 0xe .long 0x2b4 .uleb128 0xf .long .LASF58 .byte 0x1 .byte 0x6 .byte 0x5 .long 0x41 .quad .LFB6 .quad .LFE6-.LFB6 .uleb128 0x1 .byte 0x9c .uleb128 0x6 .string "u64" .byte 0x7 .byte 0xc .long 0xe2 .uleb128 0x2 .byte 0x91 .sleb128 -32 .uleb128 0x6 .string "i32" .byte 0x9 .byte 0xb .long 0xc3 .uleb128 0x2 .byte 0x91 .sleb128 -36 .uleb128 0x6 .string "i64" .byte 0x10 .byte 0xb .long 0xcf .uleb128 0x2 .byte 0x91 .sleb128 -24 .byte 0 .byte 0 .section .debug_abbrev,"",@progbits .Ldebug_abbrev0: .uleb128 0x1 .uleb128 0xd .byte 0 .uleb128 0x3 .uleb128 0xe .uleb128 0x3a .uleb128 0x21 .sleb128 6 .uleb128 0x3b .uleb128 0xb .uleb128 0x39 .uleb128 0xb .uleb128 0x49 .uleb128 0x13 .uleb128 0x38 .uleb128 0xb .byte 0 .byte 0 .uleb128 0x2 .uleb128 0x16 .byte 0 .uleb128 0x3 .uleb128 0xe .uleb128 0x3a .uleb128 0xb .uleb128 0x3b .uleb128 0xb .uleb128 0x39 .uleb128 0xb .uleb128 0x49 .uleb128 0x13 .byte 0 .byte 0 .uleb128 0x3 .uleb128 0x24 .byte 0 .uleb128 0xb .uleb128 0xb .uleb128 0x3e .uleb128 0xb .uleb128 0x3 .uleb128 0xe .byte 0 .byte 0 .uleb128 0x4 .uleb128 0xf .byte 0 .uleb128 0xb .uleb128 0x21 .sleb128 8 .uleb128 0x49 .uleb128 0x13 .byte 0 .byte 0 .uleb128 0x5 .uleb128 0x13 .byte 0 .uleb128 0x3 .uleb128 0xe .uleb128 0x3c .uleb128 0x19 .byte 0 .byte 0 .uleb128 0x6 .uleb128 0x34 .byte 0 .uleb128 0x3 .uleb128 0x8 .uleb128 0x3a .uleb128 0x21 .sleb128 1 .uleb128 0x3b .uleb128 0xb .uleb128 0x39 .uleb128 0xb .uleb128 0x49 .uleb128 0x13 .uleb128 0x2 .uleb128 0x18 .byte 0 .byte 0 .uleb128 0x7 .uleb128 0x1 .byte 0x1 .uleb128 0x49 .uleb128 0x13 .uleb128 0x1 .uleb128 0x13 .byte 0 .byte 0 .uleb128 0x8 .uleb128 0x21 .byte 0 .uleb128 0x49 .uleb128 0x13 .uleb128 0x2f .uleb128 0xb .byte 0 .byte 0 .uleb128 0x9 .uleb128 0x11 .byte 0x1 .uleb128 0x25 .uleb128 0xe .uleb128 0x13 .uleb128 0xb .uleb128 0x3 .uleb128 0x1f .uleb128 0x1b .uleb128 0x1f .uleb128 0x11 .uleb128 0x1 .uleb128 0x12 .uleb128 0x7 .uleb128 0x10 .uleb128 0x17 .byte 0 .byte 0 .uleb128 0xa .uleb128 0x24 .byte 0 .uleb128 0xb .uleb128 0xb .uleb128 0x3e .uleb128 0xb .uleb128 0x3 .uleb128 0x8 .byte 0 .byte 0 .uleb128 0xb .uleb128 0xf .byte 0 .uleb128 0xb .uleb128 0xb .byte 0 .byte 0 .uleb128 0xc .uleb128 0x13 .byte 0x1 .uleb128 0x3 .uleb128 0xe .uleb128 0xb .uleb128 0xb .uleb128 0x3a .uleb128 0xb .uleb128 0x3b .uleb128 0xb .uleb128 0x39 .uleb128 0xb .uleb128 0x1 .uleb128 0x13 .byte 0 .byte 0 .uleb128 0xd .uleb128 0x16 .byte 0 .uleb128 0x3 .uleb128 0xe .uleb128 0x3a .uleb128 0xb .uleb128 0x3b .uleb128 0xb .uleb128 0x39 .uleb128 0xb .byte 0 .byte 0 .uleb128 0xe .uleb128 0x34 .byte 0 .uleb128 0x3 .uleb128 0xe .uleb128 0x3a .uleb128 0xb .uleb128 0x3b .uleb128 0xb .uleb128 0x39 .uleb128 0xb .uleb128 0x49 .uleb128 0x13 .uleb128 0x3f .uleb128 0x19 .uleb128 0x3c .uleb128 0x19 .byte 0 .byte 0 .uleb128 0xf .uleb128 0x2e .byte 0x1 .uleb128 0x3f .uleb128 0x19 .uleb128 0x3 .uleb128 0xe .uleb128 0x3a .uleb128 0xb .uleb128 0x3b .uleb128 0xb .uleb128 0x39 .uleb128 0xb .uleb128 0x27 .uleb128 0x19 .uleb128 0x49 .uleb128 0x13 .uleb128 0x11 .uleb128 0x1 .uleb128 0x12 .uleb128 0x7 .uleb128 0x40 .uleb128 0x18 .uleb128 0x7c .uleb128 0x19 .byte 0 .byte 0 .byte 0 .section .debug_aranges,"",@progbits .long 0x2c .value 0x2 .long .Ldebug_info0 .byte 0x8 .byte 0 .value 0 .value 0 .quad .Ltext0 .quad .Letext0-.Ltext0 .quad 0 .quad 0 .section .debug_line,"",@progbits .Ldebug_line0: .section .debug_str,"MS",@progbits,1 .LASF15: .string "__off64_t" .LASF18: .string "int64_t" .LASF23: .string "_IO_read_end" .LASF10: .string "size_t" .LASF55: .string "_IO_FILE" .LASF57: .string "stderr" .LASF25: .string "_IO_write_base" .LASF29: .string "_IO_buf_end" .LASF54: .string "GNU C17 11.3.0 -mtune=generic -march=x86-64 -g -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection" .LASF11: .string "__int32_t" .LASF22: .string "_IO_read_ptr" .LASF47: .string "__pad5" .LASF7: .string "unsigned int" .LASF20: .string "uint64_t" .LASF42: .string "_offset" .LASF48: .string "_mode" .LASF34: .string "_chain" .LASF30: .string "_IO_save_base" .LASF5: .string "unsigned char" .LASF46: .string "_freeres_buf" .LASF2: .string "long unsigned int" .LASF6: .string "short unsigned int" .LASF32: .string "_IO_save_end" .LASF56: .string "_IO_lock_t" .LASF33: .string "_markers" .LASF12: .string "__int64_t" .LASF45: .string "_freeres_list" .LASF58: .string "main" .LASF50: .string "FILE" .LASF36: .string "_flags2" .LASF37: .string "_old_offset" .LASF41: .string "_lock" .LASF51: .string "_IO_marker" .LASF38: .string "_cur_column" .LASF19: .string "long long unsigned int" .LASF52: .string "_IO_codecvt" .LASF35: .string "_fileno" .LASF28: .string "_IO_buf_base" .LASF39: .string "_vtable_offset" .LASF43: .string "_codecvt" .LASF17: .string "int32_t" .LASF14: .string "__off_t" .LASF49: .string "_unused2" .LASF4: .string "long long int" .LASF16: .string "char" .LASF27: .string "_IO_write_end" .LASF9: .string "short int" .LASF31: .string "_IO_backup_base" .LASF13: .string "__uint64_t" .LASF21: .string "_flags" .LASF44: .string "_wide_data" .LASF3: .string "long int" .LASF26: .string "_IO_write_ptr" .LASF53: .string "_IO_wide_data" .LASF8: .string "signed char" .LASF24: .string "_IO_read_base" .LASF40: .string "_shortbuf" .section .debug_line_str,"MS",@progbits,1 .LASF0: .string "c-int32-uint64-cmp-bug.c" .LASF1: .string "/home/stolfi/programs/c/TESTS/bugs/c-int32-uint64-cmp-bug" .ident "GCC: (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0" .section .note.GNU-stack,"",@progbits .section .note.gnu.property,"a" .align 8 .long 1f - 0f .long 4f - 1f .long 5 0: .string "GNU" 1: .align 8 .long 0xc0000002 .long 3f - 2f 2: .long 0x3 3: .align 8 4: