Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > comp.lang.c > #396716
| Path | csiph.com!eternal-september.org!feeder.eternal-september.org!nntp.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
| Newsgroups | comp.lang.c |
| Subject | Re: Regarding assignment to struct |
| Date | Sun, 01 Mar 2026 19:36:03 -0800 |
| Organization | None to speak of |
| Lines | 52 |
| Message-ID | <874imyaonw.fsf@example.invalid> (permalink) |
| References | <vv338b$16oam$1@dont-email.me> <vv4j9p$33vhj$1@dont-email.me> <86plgo7ahu.fsf@linuxsc.com> <vv9hu7$3nomg$1@dont-email.me> <20250505111213.00004b55@yahoo.com> <vv9stv$2i8j$1@dont-email.me> <20250505120145.000014f8@yahoo.com> <vvame5$ppqp$1@dont-email.me> <87jz6uhkgo.fsf@nosuchdomain.example.com> <867c2u4nbd.fsf@linuxsc.com> <87r012ftl1.fsf@nosuchdomain.example.com> <86ldgbeyab.fsf@linuxsc.com> |
| MIME-Version | 1.0 |
| Content-Type | text/plain |
| Injection-Date | Mon, 02 Mar 2026 03:36:04 +0000 (UTC) |
| Injection-Info | dont-email.me; posting-host="904fdc8ce99c4265d8d70c325ce3d825"; logging-data="847899"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1826DNbyj/P4v+8Ybhnbrqg" |
| User-Agent | Gnus/5.13 (Gnus v5.13) |
| Cancel-Lock | sha1:XG3YATV+d3lIvJG719eGuJxfIxg= sha1:Mme8Yx4HqqjAL5/uywuba6WtJo4= |
| Xref | csiph.com comp.lang.c:396716 |
Show key headers only | View raw
Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>> Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
>>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>>>> Andrey Tarasevich <noone@noone.net> writes:
>>>> [...]
>>>>
>>>>> #include <stdio.h>
>>>>>
>>>>> struct S { int a[10]; };
>>>>>
>>>>> int main()
>>>>> {
>>>>> struct S a, b = { 0 };
>>>>> int *pa, *pb, *pc;
>>>>>
>>>>> pa = &a.a[5],
>>>>> pb = &b.a[5],
>>>>> pc = &(a = b).a[5],
>>>>> printf("%p %p %p\n", (void *) pa, (void *) pb, (void *) pc);
>>>>> }
>>>>>
>>>>> This version has no UB.
>>>>
>>>> I believe it does. [...]
>>>
>>> If you look again carefully, I expect you will reach a
>>> different conclusion.
>>
>> Please explain. Or don't.
>>
>> I explained, in text that you snipped, why I think it has UB.
>> If there's a flaw in my reasoning, I invite you to point it out
>> without being mysterious.
>
> I wasn't thinking about your reasoning or what flaw there may have
> been in it. My intention was to suggest a course of action that
> would be helpful rather than to point out any sort of mistake. But
> since you ask, I think the mistake you made was jumping to a
> conclusion without looking carefully enough at the problem.
The mistake I made was failing to notice that the line with the
assignment to pc ends with a comma operator rather than a semicolon.
The code was deliberately obfuscated, and I fell for it.
I acknowledged that nearly a year ago. Why bring it up now?
I find it extremely annoying.
--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */
Back to comp.lang.c | Previous | Next — Previous in thread | Find similar
Re: Regarding assignment to struct Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-03-01 18:54 -0800 Re: Regarding assignment to struct Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-03-01 19:36 -0800
csiph-web