Re: undefined behaviour in troff
"G. Branden Robinson" <[email protected]> Fri, 24 Jul 2026 18:18:19 -0500
| Newsgroups | gmane.comp.printing.groff.general |
|---|---|
| Message-ID | <20260724231819.tk5hi47piepbmgpo@illithid> |
--qouy26p5wh6yffw4 Content-Type: text/plain; protected-headers=v1; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Subject: Re: undefined behaviour in troff MIME-Version: 1.0 Hi Bruno, At 2026-07-25T01:10:20+0200, Bruno Haible wrote: > I tried building the groff-1.25.0.rc1 with clang's ASAN (usually > better than gcc's ASAN) on a GNU system. For reference, I use these > environment variables: > $ make -k > GEN doc/line-layout.eps > ../src/roff/troff/dictionary.cpp:45:29: runtime error: left shift of 7205= 7594037927936 by 8 places cannot be represented in type 'ssize_t' (aka 'lon= g') > SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/roff/troff= /dictionary.cpp:45:29=20 > /build/groff-1.25.0.rc1/build-64-clang/groff: error: troff: Aborted > make: *** [Makefile:20188: doc/line-layout.eps] Error 8 >=20 > Signed integer overflow is undefined behaviour. >=20 > The attached patch fixes it for me. Thanks! I had not run into this one yet, and have been procrastinating turning screws on GNU troff's `dictionary` class since it so obviously screams for a direct STL replacement. Regards, Branden --qouy26p5wh6yffw4 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEh3PWHWjjDgcrENwa0Z6cfXEmbc4FAmpj8rsACgkQ0Z6cfXEm bc6vmBAAgUuTy6bwR1iJ4nRBm7IsxRrwwBIs6BwJPsebia1JxAQr5IXkZo3Er76I lQOgdrLxolW9vJKIGlPQ9I7IdR7WQDEHs6zzzquwl7mAlxMCJJV2BmCN4vILuB53 kfWG4uGNtraBO29JpgBmMYP3xJyHpGTuW0R1JkYVkGSUjUleOql51XGWl1TcVIi7 AKcdiEHNCR2lKyrhx1PHifVeejVIFr3N56Jn5tFdjuF5KAuobHuV3U6pP5qvbPvg jC1oQxDHy17jWT0Z5Wh/7dnzlAr/mHmB9UKY8e7EPzsUjMd6Qatp/pu8eQVsLBgh EbJNDr/0uTD2SccaRq79r+DccLyf1GNkkPyW6XC0lRaBzfc9baUbG5v0VU/D42iL 9D1gNeCSgldHmYF+oXPJl27IyOibIi4CYrFMCwfsrMNmRAYT8GZiKVdiiRppOIWu xJ8Sp+CSFyGaRIXNaku9DMq9Wfk4MIwK+SN/ByDQvVbImGvI3mGN0N3ivFiewjou RSM01FSWUMzcqAmDRaNfFV3JkqhCrBVFcwlRD0GzWxLBOQ3vRXVQ+bH5LAezfWU8 Zf1iMHVY/oNuP5XUeDihbG4DEuHICtL9swPo5EazD0ZK6Uzdmevm/3h9EsVibjE/ xzHyDNVoMVRPOl0gxl1j8Sq5csefJL0PVaoIhWDLCps7MskKYfU= =1/wg -----END PGP SIGNATURE----- --qouy26p5wh6yffw4--