Summary: | sanitizer detects undefined behaviour in libgfortran | ||
---|---|---|---|
Product: | gcc | Reporter: | Vittorio Zecca <zeccav> |
Component: | libfortran | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | fxcoudert, jb, marxin |
Priority: | P3 | ||
Version: | 11.0 | ||
Target Milestone: | 12.0 | ||
Host: | Target: | ||
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | 2021-02-22 00:00:00 | |
Bug Depends on: | |||
Bug Blocks: | 63426 |
Description
Vittorio Zecca
2021-02-22 09:21:52 UTC
Good, I can confirm that. The code contains a comment about it: if (n < 0) { negative = 1; t = -n; /*must use unsigned to protect from overflow*/ } Full back-trace: /home/marxin/Programming/gcc2/libgfortran/io/write.c:835:7: runtime error: negation of 0x80000000000000000000000000000000 cannot be represented in type '__int128'; cast to an unsigned type to negate this value to itself #0 0x7ffff7844eec in write_decimal /home/marxin/Programming/gcc2/libgfortran/io/write.c:835 #1 0x7ffff7846d56 in write_integer /home/marxin/Programming/gcc2/libgfortran/io/write.c:1369 #2 0x7ffff7849b34 in list_formatted_write_scalar /home/marxin/Programming/gcc2/libgfortran/io/write.c:1894 #3 0x7ffff784a5eb in _gfortrani_list_formatted_write /home/marxin/Programming/gcc2/libgfortran/io/write.c:1972 #4 0x7ffff7812440 in wrap_scalar_transfer /home/marxin/Programming/gcc2/libgfortran/io/transfer.c:2382 #5 0x7ffff7812487 in _gfortran_transfer_integer /home/marxin/Programming/gcc2/libgfortran/io/transfer.c:2393 #6 0x7ffff78124b7 in _gfortran_transfer_integer_write /home/marxin/Programming/gcc2/libgfortran/io/transfer.c:2399 #7 0x400873 in check.0 (/home/marxin/Programming/testcases/a.out+0x400873) #8 0x4008b0 in MAIN__ (/home/marxin/Programming/testcases/a.out+0x4008b0) #9 0x4008e7 in main (/home/marxin/Programming/testcases/a.out+0x4008e7) #10 0x7ffff54edb24 in __libc_start_main (/lib64/libc.so.6+0x27b24) #11 0x40072d in _start (/home/marxin/Programming/testcases/a.out+0x40072d) @Janne: Can you please take a look? Will be fixed by patch at https://gcc.gnu.org/pipermail/fortran/2021-December/057218.html Fixed. |