Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #68506
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: Strange code-generation |
| Date | 2019-09-18 08:47 -0700 |
| Organization | A noiseless patient Spider |
| Message-ID | <867e654ndj.fsf@linuxsc.com> (permalink) |
| References | <qlo0kb$uhe$1@news.albasani.net> <qlo4fl$hv4$1@dont-email.me> |
Paavo Helde <myfirstname@osa.pri.ee> writes:
> On 16.09.2019 15:53, Bonita Montero wrote:
>
>> I just experimented a bit with downcasting to a derived class.
>> So here's the code:
>>
>> struct A
>> {
>> int a, b, c;
>> };
>>
>> struct B
>> {
>> int d, e, f;
>> };
>>
>> struct D : public A, public B
>> {
>> int i, j, k;
>> };
>>
>> D *f( B &b )
>> {
>> return &static_cast<D &>(b);
>> }
>>
>> This is what you will expect ... with g++:
>>
>> leaq -12(%rdi), %rax
>> ret
>>
>> This is what makes MSVC from the above code
>>
>> xor edx, edx
>> lea rax, QWORD PTR [rcx-12]
>> test rcx, rcx
>> cmove rax, rdx
>> ret 0
>>
>> So MSVC keeps a nullpointer when the input was also a nullpointer.
>> Is there any requirement of the standard that mandates this behaviour?
>> I think it would be even stupid to include that into the standard.
>
> In standard C++ one cannot legally construct a "null reference", so
> the standard cannot mandate any behavior regarding them. [...]
Sure it could. The Standard doesn't say that they can't exist,
and even if they couldn't exist the Standard could still specify
a behavior for how they must be treated. And it might even be
useful to give such a specification, for implementations that
choose to provide null references by means of an extension.
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Strange code-generation Bonita Montero <Bonita.Montero@gmail.com> - 2019-09-16 14:53 +0200
Re: Strange code-generation Paavo Helde <myfirstname@osa.pri.ee> - 2019-09-16 16:59 +0300
Re: Strange code-generation Bonita Montero <Bonita.Montero@gmail.com> - 2019-09-16 21:08 +0200
Re: Strange code-generation Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-09-18 08:47 -0700
Re: Strange code-generation Paavo Helde <myfirstname@osa.pri.ee> - 2019-09-18 21:06 +0300
Re: Strange code-generation Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-11-09 05:52 -0800
Re: Strange code-generation "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2019-11-09 19:15 +0100
Re: Strange code-generation Bonita Montero <Bonita.Montero@gmail.com> - 2019-09-19 19:05 +0200
Re: Strange code-generation David Brown <david.brown@hesbynett.no> - 2019-09-19 19:34 +0200
Re: Strange code-generation Bonita Montero <Bonita.Montero@gmail.com> - 2019-09-19 20:05 +0200
Re: Strange code-generation Paavo Helde <myfirstname@osa.pri.ee> - 2019-09-19 22:00 +0300
Re: Strange code-generation David Brown <david.brown@hesbynett.no> - 2019-09-20 08:21 +0200
csiph-web