From owner-freebsd-hackers@freebsd.org Sat Jan 16 00:26:43 2021 Return-Path: Delivered-To: freebsd-hackers@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CCF4F4F6FAC for ; Sat, 16 Jan 2021 00:26:43 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic312-25.consmr.mail.gq1.yahoo.com (sonic312-25.consmr.mail.gq1.yahoo.com [98.137.69.206]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4DHf4L5KCSz4W69 for ; Sat, 16 Jan 2021 00:26:42 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1610756800; bh=cWd+zYb2Q0HcJSbl6U9Ka3iM0agMm0t3mUL0hXfcpmq=; h=Subject:From:Date:To:From:Subject:Reply-To; b=AuQGbmXZcMXQv36P+m/+BWxjkTua6HmPb+PmV1LB5xnDVSdPtSpqgCvOkKFMqsVH17eC5xk/fczGkNHCoWNhfJse57aq8PmqMU7eGkOYPQkTgaDcZv/5S41/zF9wW42CFqEFgP+OO1phG2rOg4BWJOZ/z2Ga4+ikmnkvrJU/oQBlXor2GcGoOoak95Ghn6qHd9mEnH6dwLqeP4W6oIQwb7JZPpnVG1vlT+WzeOfixrF+dDboxbs32XRzYZYOri055Z/VL1SmfDmLRXAYkr/YBhYGG6jp3VKWUDTmBwmefBuAdRKyXEKu+HNDduMoD7HiK61Fh/I/wqNz+DUKqIyqxQ== X-YMail-OSG: fnkEe5AVM1muud.tUJCsat.vUlrhChpp1paxjJmAoOknruJZpzOIWfeYJYjZMEU _WWopiYxDVIse_XiodS91ELbMrxD8v0pqV6RRwOffHNAa2bKJglUmRZJklbPQsyMxtduwUHLJHmQ bUFXY1KJD0l1ZNQkoJlCjW_5899SmKvLTEKRmcVLyqsBwlyetU6sCcsJJJWiqpAX6O5fByMXC.pz .mFLflbkkT8iD8aprvlf9KlEWAKk.OGD0X8vg7XRgtE8X1EuT8dZoC9tnLiOTcMG217TlbnwiUHr pqXA8aWKr8O4QHHpsj38snxQ9_jQtaOMLJJge8t_6Pa6KIUIzLIno9h1d7dhshm9EuFMuWb.FyfG it9ql.cttAfxKWCXa6pIyusgxhMGaEG.SEy0l0vL9hWxEBisBQtJ9YrFX1N0O7oPEi0Rrmft7yRA 98BvyYpxAE6GH1c0iPAsZJs0l6NL0LW7wg9RJxhLshohaDWdtOKovLC5tP4gq4MeSBYBEokmNhn4 1L._xZaKVOPZIgwsPQhJvGCk4_x6XySssFtyS3xe2E39_.hsi8RU2L4WCGUMhFw3TQas_2egZYaj NH_Nh9g8K2PR0IdZvSuTnWVjdr1_vxAmkJNt5nJYFhohahHIC9aHc_CYSWqboeg0xprbkJbjIB.4 4qT6AO7811c02ZY_uZYu1NUbRFy3D8Ouwd5CtIlp6KlP9K.MoQVhO5mBBRfXtk3sa4P0D_dm7gGm cJHcpRbCOy3opzfz6ev3yXOcQ5G8FsBcnSQKZWh.t.0VjNB.QMEuWmM8UY6wd1HZl3Yt3ritm8dy ANhYRN4X_kpiphKdIBuxd6wKRAshGER9FSIEbiZXyn0XROR5QE179AgDtwCdTTk5wWyDIpLTccaD Uo1zk23UwUeq5BDw.OPBblR4P6qDCvrJgbaRE29TQFCgSjo3SZl7ZWH14I4FVS7cfYEmUQ1HeXYx 5nRNqmZKKX1OLWQRNuWv9RMxEnA0x4YvU.0oJRX_B2aTjI6em6JG9n7g1xfIuNgbteH__TMiOJK6 3IN1RXEqS.m0TjgGuf0OdI3SFOUpLRhz1NqZCop_L5xOapV8QEK33RzCo0BqfPpYuhCZ_rV5xGBc OaJd3GWJQcotnLd7l.NhWEulSJo6pA1yV74EH1KCLssrRk98JlOrQC.ERavqND.uL2CPpgr8ei.j eUnmscMgTIzvDfZfTCGLFSkTiiWyw.1FQ9fK59DyH9hnr0SxZRw0CdwXkNLmqjzIEbMTmdOla16z E3fBZCoEeVb_hmEEcR8vzKhOp9bGbLiwyqqkj9lAN1uVj5MR2nwEHoZvsZZB9sqZ_KejXUpdD8Yd dP3ON7srrlvZwt9SkyMrurWYrWRDWAPWZ7hCSVGdlIQm.K4AgBDAHn_sZbbJNnPdCE_pjSB4sJa6 esN4SGvz.RKnszKSu0utP02yeF5UKqc3d6.6kD6AQebpGOVO2a.OGx3dm3yByqiLR.WZZnjnVyTN JPLBpMcBPKtcpFAt8yX.1AkRB4AjUHnhUmXOEzUTPC.1SAKv1Icbwm6prGPC1.ymNQGSGxOzWd8r qgq3tlpIs_m9hSNnjD2mwaYClzm.weWbeqiUONKXAimaWPnKsp0c4.4qcWRg8I4qqoOrLjE9rUQV _7twhJA.9r.veRw3All2TMxbqF7sphxL9v4WNslRnfFrz2TQEvoTAaePujulCrfi7x4RnCvi5fS2 3RExAd5S5DDqG6SHV5K45OUMGPTHfHfvoqflZdRfpW1aUdyxy9m3ZQHPS_pHZ0t9AcyzMuf7kjTS FxTrWYrOrLo1Bta_AGZFWD.eoyx7T4SqQFdk9d.pTxdEY7YNjtpIWsYTt4o9ZKkgFkz6fS5qCYxE u3d.t7GM3sWJ1XcdQCqa9cZf9_iBDWvsmvflmvMgixM8SeKGhtr3L7.9Vz6oGjlUHK6NUHsu4NZ4 qkAV5eJ4LqXxoaY3ynhHdktyGUbbIjGlQrQdeGvPx7Hpr3ngEvOVAatGUO_YgWZn9t42hLv_44ru jTdU4WPEcv3VgZEXekPyxhlOlZ94YCK3HFIP73J2vc29.c07NtOxIVnFFyvB7dBDxzhiZX9bdCjD _1mmtBl_TUFAh3AV9VqceI0VjhC1sjJOyAiQxCEMqR01djmmkxQBrr3O_M3i_sBIDgR6v7C1uWH3 TT1E0HM8Gy2iXsWJlM6MICLidaRODctm399tXtHrtTwLqwe0XiIHlkRVAQXUsLLsAEvcQaNqyfDz bxxppjfpgmYiW1WVm7a9_aSfRZgyonPEP3qnYz2QmT3S13oo.s56n.wUmJsARV8iKm1s_DBWTB_G aZ7qu0F1LEwtwzFIevqyoELr5V0TfHHerxWIYHv5ZyiXuWtjg9xH_ePzHRZWYmqEezPPZ_1__lz. LotTQgYXOd2XtbsQOC1iX8Od6tOidjMXg13hED9uN5SnGFYyKeT5jKBDcHFo3I.EuJR0qiVQxQfd FHbGmi0Vrg0UpZpwX.wnd4qX07s0oUTEqvqKNgv9L_gh9sdiWaxV2scaN0VeCZBK.xieHEb4Lbcb 6DITSqD86PzG.kWL6ivLTq8kIJX5nXQA- Received: from sonic.gate.mail.ne1.yahoo.com by sonic312.consmr.mail.gq1.yahoo.com with HTTP; Sat, 16 Jan 2021 00:26:40 +0000 Received: by smtp424.mail.gq1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID a20b56617c36da7d50b8f21530bf991d; Sat, 16 Jan 2021 00:26:38 +0000 (UTC) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.40.0.2.32\)) Subject: Re: Implicit assumptions (was: Re: Some fun with -O2) From: Mark Millard In-Reply-To: <37B00E45-ABCC-4C8D-9BF6-C0DC5142F63A@yahoo.com> Date: Fri, 15 Jan 2021 16:26:37 -0800 Cc: freebsd-hackers@freebsd.org Content-Transfer-Encoding: 7bit Message-Id: <7AA78AA9-8010-483F-A33B-C50EA17539F1@yahoo.com> References: <8830694.EFs4ROYVHJ@t450s.local.lan> <4E90FC92-D255-4082-9F89-2BEE4D4C4E92@yahoo.com> <5358091.mMMZhaHaU6@t450s.local.lan> <37B00E45-ABCC-4C8D-9BF6-C0DC5142F63A@yahoo.com> To: Walter von Entferndt X-Mailer: Apple Mail (2.3654.40.0.2.32) X-Rspamd-Queue-Id: 4DHf4L5KCSz4W69 X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.50 / 15.00]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[yahoo.com]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; DKIM_TRACE(0.00)[yahoo.com:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; NEURAL_HAM_SHORT(-1.00)[-1.000]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; RBL_DBL_DONT_QUERY_IPS(0.00)[98.137.69.206:from]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; MID_RHS_MATCH_FROM(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; SPAMHAUS_ZRD(0.00)[98.137.69.206:from:127.0.2.255]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[98.137.69.206:from]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.69.206:from]; RCVD_COUNT_TWO(0.00)[2]; MAILMAN_DEST(0.00)[freebsd-hackers] X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Jan 2021 00:26:43 -0000 Walter, you had written: > Beside that, can you affirm the fix I suggested is correct & portable? I'm going to suggest some language generality that you might not want to deal with. N1570 documents such material, as an example. Modern C defines that Integer types other than char, unsigned char, and signed char are made up of: signed types: value bits, pad bits (zero or more), and a sign bit unsigned types: value bits, pad bits (zero or more). There are also things called "trap representations", that includes pad bits possibly being something like a parity bit but there will be some other allowed examples listed below. (unsigned char only has value bits and signed char has one sign bit and the rest being value bits. No form of char has any pad bits. char is like one of the two that are explicit about signed vs. unsigned.) In modern C, signed Integers are limited to: A) two's complement (by far the typical context) B) sign and magnitude C) one's complement For (A) the sign bit being 1 and the rest of the value bits being 0 is either a trap representation or a normal value. (Normal value is by far the typical context.) For (B) the sign bit being 1 and the rest of the value bits being 0 is either a trap representation or a normal value. As a normal value, it is the value called "negative zero". For (C) the sign bit being 1 and the rest of the value bits being 1 is either a trap representation or a normal value. As a normal value, it is the value called "negative zero". I'll note that modern C++ has only (A), with zero pad bits and no trap representations. You might want to target (A) with zero pad bits and no trap representations (all bit partterns being normal values) but still avoiding other undefined behavior and possibly avoiding implementation-defined behavior. === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)