public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/63179] New: Does not work virtuality
@ 2014-09-04 18:46 isak50 at mail dot ru
  2014-09-04 21:59 ` [Bug c++/63179] Virtuality is not working redi at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: isak50 at mail dot ru @ 2014-09-04 18:46 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63179

            Bug ID: 63179
           Summary: Does not work virtuality
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: isak50 at mail dot ru

// g++ 1.cpp -O2 -Wall -std=c++11 -Wall
#include <stdio.h>
struct Base{
    virtual void f() {printf("base\n");}
};
struct Child : Base{
    void f()override {printf("child\n");}
};
alignas(Child)
char buf[sizeof(Child)];
union Ptr{
    decltype(::buf) buf;
    Base base;
};
int main(){
    new(buf) Child;
    Ptr *ptr = reinterpret_cast<Ptr*>(buf);
    //-------------------printf: base---//
    ptr->base.f();                      //
    Base &b = ptr->base;                //
    b.f();                              // clang print "child".
    //----------------------------------//
    //-------------------printf: child--//
    Base *b2 = &ptr->base;              //
    b2->f();                            //
    //----------------------------------//
}


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c++/63179] Virtuality is not working
  2014-09-04 18:46 [Bug c++/63179] New: Does not work virtuality isak50 at mail dot ru
@ 2014-09-04 21:59 ` redi at gcc dot gnu.org
  2014-09-05  6:52 ` isak50 at mail dot ru
  2014-09-05  8:42 ` rguenth at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: redi at gcc dot gnu.org @ 2014-09-04 21:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63179

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I don't think this is valid, the standard says it is OK to access the stored
value of the Child object through a union that has a Child member, or to access
it through Base, but not through a union that has a Base member. So the program
has undefined behaviour and any result is valid.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c++/63179] Virtuality is not working
  2014-09-04 18:46 [Bug c++/63179] New: Does not work virtuality isak50 at mail dot ru
  2014-09-04 21:59 ` [Bug c++/63179] Virtuality is not working redi at gcc dot gnu.org
@ 2014-09-05  6:52 ` isak50 at mail dot ru
  2014-09-05  8:42 ` rguenth at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: isak50 at mail dot ru @ 2014-09-05  6:52 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63179

--- Comment #2 from Pavel <isak50 at mail dot ru> ---
Sorry.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c++/63179] Virtuality is not working
  2014-09-04 18:46 [Bug c++/63179] New: Does not work virtuality isak50 at mail dot ru
  2014-09-04 21:59 ` [Bug c++/63179] Virtuality is not working redi at gcc dot gnu.org
  2014-09-05  6:52 ` isak50 at mail dot ru
@ 2014-09-05  8:42 ` rguenth at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-09-05  8:42 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63179

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-09-05  8:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-04 18:46 [Bug c++/63179] New: Does not work virtuality isak50 at mail dot ru
2014-09-04 21:59 ` [Bug c++/63179] Virtuality is not working redi at gcc dot gnu.org
2014-09-05  6:52 ` isak50 at mail dot ru
2014-09-05  8:42 ` rguenth at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).