Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #68506

Re: Strange code-generation

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>

Show all headers | View raw


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


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