view gcc/testsuite/g++.dg/Wclass-memaccess-4.C @ 144:8f4e72ab4e11

fix segmentation fault caused by nothing next cur_op to end
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 21:23:56 +0900
parents 84e7813d76e9
children
line wrap: on
line source

/* PR c++/84850 - missing -Wclass-memaccess for a memcpy in a copy ctor
   with a non-trivial member
   { dg-do compile }
   { dg-options "-Wclass-memaccess -ftrack-macro-expansion=0" } */

typedef __SIZE_TYPE__ size_t;

extern "C" void* memcpy (void*, const void*, size_t);

struct A
{
  const int &r;

  A ();

  A (const A&);

  virtual ~A ();
};

struct C
{
  A a;

  C (const C&);

  C& operator= (const C&);
};

C::C (const C &c)
{
  memcpy (this, &c, sizeof c);    // { dg-warning "\\\[-Wclass-memaccess]" }
}

C& C::operator= (const C &c)
{
  memcpy (this, &c, sizeof c);    // { dg-warning "\\\[-Wclass-memaccess]" }
  return *this;
}