DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 6512CiKa3086506 Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 6512CiKa3086506 Authentication-Results: delorie.com; dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=MX4DmoED X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C96534BA2E0F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1780279963; bh=FMzuJuQO3bBgVpRQiVz9uXFzqx4gOw2K7C9kbgQt0Ps=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=MX4DmoEDycb/ezoPnqszTUG+du2zBUrSCiwzqJ8PonHa2Gm01IHNxIl1uz7YbJCki Zr6Jpd6ZWOMgVKy68p3yVWQpLU9nM7/KCdRF1kahlE8M09PKUo5JRBrzDBBrQzwj7K TnNcZOMESSemglhCAz/vM9bhgsHwb2XrlnNZmIwE= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B18704BA2E0F ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B18704BA2E0F ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1780279915; cv=none; b=xDZh/xUiNWcGdIBvF/WjHZY3Llki8fV1vokMurD4F+ScfygE2KVSvA8iN2umMV2Z6N7YwSgctnZ8phyQ38omVTn4dN/5uVtdwdcsHJxHceoP7cI+ax2JxigWDHIR3ynGNNgwCk3YGXCa1eGK6C05/XFtPjVnp57FuyOUecIaMi8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1780279915; c=relaxed/simple; bh=rCin+Li+FrBgcSXT4WSl3BQCPdlUyXACBXQY1PGVKNg=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=qrS46j7VaqRS1k3zXqHZk5QBCll4N/+lMDahVq9SGbqIibPvN31V6UGlOGBxE/IKLQ0j+n/Hr1ljycMnsHGgOiXfScXJMnDVy1A8te9biVt+ZMRUgSYm1kHQqJHHNPvZJZT7SfT5Y/r9is4ia/BcmLhUrp8WqPfVU6V0WmOd0T4= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=towo.net header.i=towo AT towo DOT net header.a=rsa-sha256 header.s=s1-ionos header.b=LLtFi3xy DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B18704BA2E0F X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6 Message-ID: <21ca1d38-7b82-49af-b954-b83141237843@towo.net> Date: Mon, 1 Jun 2026 04:11:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: wcwidth broken with gcc 16 To: cygwin AT cygwin DOT com References: <874ikpawdk DOT fsf AT Gerda DOT invalid> <8ff2ab8d-dfdc-459c-96f3-ed4a4f451440 AT towo DOT net> <0140C1F4-CA22-46DE-AE21-69C5427C59B5 AT unified-streaming DOT com> <4f885156-7772-43d7-ab72-c88f0a7d1e52 AT towo DOT net> <112594ad-3c25-4dad-b1bc-071b4951ed98 AT towo DOT net> <97f0f3c6-9f2c-429c-aa8e-875b7806b275 AT towo DOT net> <8733z9jpfj DOT fsf AT Gerda DOT invalid> <87pl2bab08 DOT fsf AT Gerda DOT invalid> <2a39e204-bd8b-4511-bd34-703899600e9e AT towo DOT net> <87ldcza133 DOT fsf AT Gerda DOT invalid> Autocrypt: addr=towo AT towo DOT net; keydata= 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 kQ== In-Reply-To: <87ldcza133.fsf@Gerda.invalid> X-Provags-ID: V03:K1:veZXEtI2kt/3jrZa7VE2q2Uo7OV8R2+pQGi/eNHARLtPy0Zy0t4 639T6D9tlG9fvJnDZPV8zm7f77tPeBNx8m8jHjdvSLbtyy6NMxAsUIfE3Pyf167FgPEp0O0 GXmH8kAbBkE9MvOnkTnV7csXdbzYpvB7nWaXrniL5OWYJmcwHK0t7PBiGaycvLz6oJJz6wP KmhQPQ1RFgOXdBrKypOPg== UI-OutboundReport: notjunk:1;M01:P0:wmTmBrwxVps=;hJ1qvN5l30WBaYFACOxK+hEZNvH IaUny7Q3wjFxN6Ov3wr/89+2d8smMtT1/pY03y5VXtxexx2NmOcPqW9MOOLiV5TFGkNJuVa3p /lD7BO50/sVq0UkoZ/wA9nSba/oEjQ1GzJaVDVdnrJrn5m9IRZKs900GXzaL1/QkHToT72sBx sHW+t4wtoIPYh+k68IrCssn5dpXqcMMx035bkZEb6konTNXn4Mwzs3oKPs64tldNKVyMJmzJy Io9RosyGaaV/NWqXPokSP7tACTXziQzvTaohezbQby4dxw5g9rBueu4FLtefoRbYmiM1b+dKB mGIarHVLybVMeyiwUp3JWRJUPzKBBrFpIDxHZ3uxpi9BeBC0rtWCiJjurX/TMSzBobdDqcEOv Do3AWI8rckix4OJvGXXOcauPA1I+PO8l1KueH/Pj4YVmzBki2D+iYDjcRqqQ1yk5kKH9lWtSf +g2kavg8FDvIr64xl6k5DsFS09Mqlqh4NDM7c7uRnpEb2mzFIXIe9QHE3XZlq1Qsl1mpbKKmH fyCzcb0DdmPIwSQwIjlqapdSt9kw5yY0EOfZONEaP0zobzkfClwQ2XStC4nsXvlDzocpGdt9U kDzNd1hOYxLhI7nfZJqqkGUhlwUZ0RIxrccJGxx4dstsRW3o6cRfh6mE8f6Gi7x1AlALLRkT/ Rhm8F9t0QICoWbyfottScqNd5GVCpXpJQkElElHEnW+VQ8yKjjsEBRZgIbAP6ZFcEiMertZIv vjsFbMuoZsiQLFPY42nMbiHDUdpQOTKh0RlR4wnwvjYvsfLrWC5Rmge96MfioEyqFiyzotXje 45zYLLq6cBzkZN6OL9TyIBBiTMGPlNN3xYppqCGGuEl/I9KZilHrZ6RvLaaXZjzdTMwejiOxt hMt6fs6EJBliCKlKZl3kNmT5fis10QuAfA0wNLrWK80HpCb7n/aNp1bY4wkGZHGw3d/QU+O9V uXpJYcO1DvN+5zwDKru3XojBsNkQmqUQ8MgVuzhfD81hrcW3QOmzBtvHUaN+9hHjb2WNB5byV ompsXOvxq6sq6ICB6AcWG4peEDOSS6owaRlu0KPLNTSJaBagIwT8cR5+4lMjHlxhQ9lTVY030 qa3Vdnov4n9rhfk/LVBmFk1oDxCDyJN9tZ0nzka8DlcoeeTl6Ed3miPbdWdX+vbud9sN91kRd EW8otBiFl4ClYjsqNfXOw4Br50zbb5n2hSxURI/209DwM1YKpmZxsqX3xmUxcinhCkoD4Nwp3 1Lb61qkJUGstHaY5AADVjEkOqnC6224hfmK1SpybG59lJX8LxdckK8SV2qKG4wFKW3Hf31sJ6 a5BDj1rmGf//YefJ8tY1/51s/T7t3vH3Uvx5FJaXXHOohSb+Lm2popRgXa632m6pmvT+lYQbj lVRIzuLgCGkZrbJrgy7TvsAneRO4aDF3tJG9PAowE3tu4weLsIW+U4Biye7cQFpn4xi5M/m8H +GR+CjljtjVzOAxtp+HWzZH5joI/HUPUTy3cfMS8wZioSqUD3dTj/aHd5xhbBXqxcF9rTJUYs oNZGGKbtuqiLsgsV978Bn10CtJLkybGcIHDL3r621PYTyCK4pu1BGQP0Zbvzl1eYEm6bh98he jsSQm9mu166ym+9O1n26DuIuHoTcZJiUhkT7ETSHDIRjCSeXUVFo31oDVLynWNNRfRNKO8Mpj RvkB6u2UAXU7A7JpD5J85uIzDn5VJWywV+DIcdxkVQ7c8DwrxG8uROYFPj1cQyKZe+wQnYSWQ vBP/ePtXZPKkcWlOQn4bnR4UoWDz8rfjEY4FKbI54AjzsySBv3w7SXxWt30xlY9t1CmaLieYo K0CiB99yHcU34qLRmks5XaIUehXITQIxDfZGHQ/jcS8MYYyNQPNHy9qXCQWa42L51LAKvzP1x wihnYsMfyheUzgvMNtQ/jXf2lsmMGG+Ln6bi/w= X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Thomas Wolff via Cygwin Reply-To: Thomas Wolff Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 6512CiKa3086506 Hi Achim, Am 31.05.2026 um 20:25 schrieb ASSI via Cygwin: > Thomas Wolff via Cygwin writes: >> cygwin has changed it already by defining wchar_t as 16-bit. My fix >> only reverts this. > Nope. That's not a Cygwin thing and wchar_t can be anything, even less > than 16bit, as far as the standards are concerned. Yes, that's messy, > but it is what it is. > >>> The fix for your bug is easy enough >> It's just not a fix because it narrows the parameter to 16 bits and >> thus breaks current wcwidth functionality. > It doesn't break anything that wasn't already broken before. There can > be no correct Cygwin program that can use an argument to wcwidth that > has more than 16 bits (and your own example doesn't use any of these > anyway). The public interface always was wchar_t (nee unsigned short on > Cygwin) and the extension to the win_t in the implementation function in > newlib libc just wasn't working as you (still?) seem to think it does > when you mismatch the types. The type extension of function arguments > (via register sharing) on x86_64 is undefined, the resulting upper 16 > bits in this case (wchar_t --> wint_t) can be anything: zero extension, > sign extension or even random bits. This is just not something that can > work reliably. I don't know what aarch64 does on that front. > > In your example, you use an int as argument, which is used as a function > argument declared as short unsigned (via wchar_t, so it gets truncated > to 16 bit, at least logically) and then used an int again inside the > actual implementation of that function. This is wrong as the prototype > and the implementation don't match, but the ABI only guarantees that the > lower 16 bit of the original argument transfer in that case. Even if > zero extension was used you'd lose any upper bits in the original > argument anyway (which you say works for your example and I'd argue that > there can't be any upper bits anyway on Cygwin, see aboive), which is > exactly what will _definitely_ happen if the libc implementation stub is > reverted to the correct signature. You explain what I had already conceded before, that I had overlooked the prototype and the intended functionality did not work:   printf("%d\n", wcwidth(0x13000));  // should be 1   printf("%d\n", wcwidth(0x1F500));  // should be 2 So why not establish that functionality with an easy tweak that does not interfere with anything? > Regards, > Achim. -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple